AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
go_brewfest_music::go_brewfest_musicAI Struct Reference
Inheritance diagram for go_brewfest_music::go_brewfest_musicAI:
GameObjectAI

Public Member Functions

 go_brewfest_musicAI (GameObject *go)
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from GameObjectAI
 GameObjectAI (GameObject *go)
 
virtual ~GameObjectAI ()
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid const &, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
virtual bool GossipHello (Player *, bool)
 
virtual bool GossipSelect (Player *, uint32, uint32)
 
virtual bool GossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual bool QuestAccept (Player *, Quest const *)
 
virtual bool QuestReward (Player *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *)
 
virtual void Destroyed (Player *, uint32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void OnGameEvent (bool, uint16)
 
virtual void OnStateChanged (uint32, Unit *)
 
virtual void EventInform (uint32)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual bool CanBeSeen (Player const *)
 
virtual void JustSummoned (Creature *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void SummonedCreatureEvade (Creature *)
 

Private Attributes

EventMap _events
 
uint32 _currentMusicEvent
 

Additional Inherited Members

- Static Public Member Functions inherited from GameObjectAI
static int32 Permissible (GameObject const *go)
 
- Protected Attributes inherited from GameObjectAI
GameObject *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ go_brewfest_musicAI()

go_brewfest_music::go_brewfest_musicAI::go_brewfest_musicAI ( GameObject go)
inline
510 : GameObjectAI(go)
511 {
515 }
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Definition EventMap.cpp:48
Definition GameObjectAI.h:33
@ EVENT_BM_SELECT_MUSIC
Definition go_scripts.cpp:499
@ EVENT_BM_START_MUSIC
Definition go_scripts.cpp:500
@ EVENT_BREWFESTGOBLIN01
Definition go_scripts.cpp:484
uint32 _currentMusicEvent
Definition go_scripts.cpp:627
EventMap _events
Definition go_scripts.cpp:626

References _currentMusicEvent, _events, EVENT_BM_SELECT_MUSIC, EVENT_BM_START_MUSIC, EVENT_BREWFESTGOBLIN01, and EventMap::ScheduleEvent().

Member Function Documentation

◆ UpdateAI()

void go_brewfest_music::go_brewfest_musicAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from GameObjectAI.

518 {
519 _events.Update(diff);
520 while (uint32 eventId = _events.ExecuteEvent())
521 {
522 switch (eventId)
523 {
525 {
526 if (!IsHolidayActive(HOLIDAY_BREWFEST)) // Check if Brewfest is active
527 break;
528 // Select random music sample
529 uint32 rnd = urand(0, 2);
530 Milliseconds musicTime = 1s;
531 //Restart the current selected music
533 //Check zone to play correct music
535 {
536 switch (rnd)
537 {
538 case 0:
540 musicTime = EVENT_BREWFESTGOBLIN01_TIME;
541 break;
542 case 1:
544 musicTime = EVENT_BREWFESTGOBLIN02_TIME;
545 break;
546 case 2:
548 musicTime = EVENT_BREWFESTGOBLIN03_TIME;
549 break;
550 default:
551 break;
552 }
553 }
555 {
556 switch (rnd)
557 {
558 case 0:
560 musicTime = EVENT_BREWFESTDWARF01_TIME;
561 break;
562 case 1:
564 musicTime = EVENT_BREWFESTDWARF02_TIME;
565 break;
566 case 2:
568 musicTime = EVENT_BREWFESTDWARF03_TIME;
569 break;
570 default:
571 break;
572 }
573 }
574 else if (me->GetAreaId() == AREA_SHATTRATH_CITY)
575 {
576 rnd = urand(0, 5);
577 switch (rnd)
578 {
579 case 0:
581 musicTime = EVENT_BREWFESTGOBLIN01_TIME;
582 break;
583 case 1:
585 musicTime = EVENT_BREWFESTGOBLIN02_TIME;
586 break;
587 case 2:
589 musicTime = EVENT_BREWFESTGOBLIN03_TIME;
590 break;
591 case 3:
593 musicTime = EVENT_BREWFESTDWARF01_TIME;
594 break;
595 case 4:
597 musicTime = EVENT_BREWFESTDWARF02_TIME;
598 break;
599 case 5:
601 musicTime = EVENT_BREWFESTDWARF03_TIME;
602 break;
603 default:
604 break;
605 }
606 }
607 _events.ScheduleEvent(EVENT_BM_SELECT_MUSIC, musicTime); // Select new song music after play time is over
608 break;
609 }
611 if (!IsHolidayActive(HOLIDAY_BREWFEST)) // Check if Brewfest is active
612 break;
613 // Play selected music
614 if (_currentMusicEvent != 0)
615 {
617 }
618 _events.ScheduleEvent(EVENT_BM_START_MUSIC, 5s); // Every 5 second's SMSG_PLAY_MUSIC packet (PlayDirectMusic) is pushed to the client
619 break;
620 default:
621 break;
622 }
623 }
624 }
@ AREA_UNDERCITY
Definition AreaDefines.h:80
@ AREA_THE_EXODAR
Definition AreaDefines.h:109
@ AREA_GATES_OF_IRONFORGE
Definition AreaDefines.h:77
@ AREA_DUN_MOROGH
Definition AreaDefines.h:25
@ AREA_DUROTAR
Definition AreaDefines.h:32
@ AREA_SHATTRATH_CITY
Definition AreaDefines.h:118
@ AREA_ROCKTUSK_FARM
Definition AreaDefines.h:78
@ AREA_DARNASSUS
Definition AreaDefines.h:85
@ AREA_THUNDER_BLUFF
Definition AreaDefines.h:84
@ AREA_ELWYNN_FOREST
Definition AreaDefines.h:31
@ AREA_EVERSONG_WOODS
Definition AreaDefines.h:96
std::uint32_t uint32
Definition Define.h:107
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition Duration.h:27
bool IsHolidayActive(HolidayIds id)
Definition GameEventMgr.cpp:2032
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ HOLIDAY_BREWFEST
Definition SharedDefines.h:2991
void Update(uint32 time)
Definition EventMap.h:67
EventId ExecuteEvent()
Definition EventMap.cpp:86
GameObject *const me
Definition GameObjectAI.h:35
void PlayDirectMusic(uint32 music_id, Player *target=nullptr)
Definition Object.cpp:3030
uint32 GetAreaId() const
Definition Object.cpp:3174
constexpr Milliseconds EVENT_BREWFESTDWARF01_TIME
Definition go_scripts.cpp:490
constexpr Milliseconds EVENT_BREWFESTDWARF03_TIME
Definition go_scripts.cpp:492
constexpr Milliseconds EVENT_BREWFESTGOBLIN02_TIME
Definition go_scripts.cpp:494
constexpr Milliseconds EVENT_BREWFESTDWARF02_TIME
Definition go_scripts.cpp:491
constexpr Milliseconds EVENT_BREWFESTGOBLIN01_TIME
Definition go_scripts.cpp:493
@ EVENT_BREWFESTGOBLIN03
Definition go_scripts.cpp:486
@ EVENT_BREWFESTDWARF02
Definition go_scripts.cpp:482
@ EVENT_BREWFESTDWARF01
Definition go_scripts.cpp:481
@ EVENT_BREWFESTDWARF03
Definition go_scripts.cpp:483
@ EVENT_BREWFESTGOBLIN02
Definition go_scripts.cpp:485
constexpr Milliseconds EVENT_BREWFESTGOBLIN03_TIME
Definition go_scripts.cpp:495

References _currentMusicEvent, _events, AREA_DARNASSUS, AREA_DUN_MOROGH, AREA_DUROTAR, AREA_ELWYNN_FOREST, AREA_EVERSONG_WOODS, AREA_GATES_OF_IRONFORGE, AREA_ROCKTUSK_FARM, AREA_SHATTRATH_CITY, AREA_THE_EXODAR, AREA_THUNDER_BLUFF, AREA_UNDERCITY, EVENT_BM_SELECT_MUSIC, EVENT_BM_START_MUSIC, EVENT_BREWFESTDWARF01, EVENT_BREWFESTDWARF01_TIME, EVENT_BREWFESTDWARF02, EVENT_BREWFESTDWARF02_TIME, EVENT_BREWFESTDWARF03, EVENT_BREWFESTDWARF03_TIME, EVENT_BREWFESTGOBLIN01, EVENT_BREWFESTGOBLIN01_TIME, EVENT_BREWFESTGOBLIN02, EVENT_BREWFESTGOBLIN02_TIME, EVENT_BREWFESTGOBLIN03, EVENT_BREWFESTGOBLIN03_TIME, EventMap::ExecuteEvent(), WorldObject::GetAreaId(), HOLIDAY_BREWFEST, IsHolidayActive(), GameObjectAI::me, WorldObject::PlayDirectMusic(), EventMap::ScheduleEvent(), EventMap::Update(), and urand().

Member Data Documentation

◆ _currentMusicEvent

uint32 go_brewfest_music::go_brewfest_musicAI::_currentMusicEvent
private

Referenced by go_brewfest_musicAI(), and UpdateAI().

◆ _events

EventMap go_brewfest_music::go_brewfest_musicAI::_events
private

Referenced by go_brewfest_musicAI(), and UpdateAI().


The documentation for this struct was generated from the following file: