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, 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
560 : GameObjectAI(go)
561 {
565 }
void ScheduleEvent(uint32 eventId, uint32 time, uint32 group=0, uint32 phase=0)
Definition EventMap.cpp:56
Definition GameObjectAI.h:33
@ EVENT_BM_SELECT_MUSIC
Definition go_scripts.cpp:549
@ EVENT_BM_START_MUSIC
Definition go_scripts.cpp:550
@ EVENT_BREWFESTGOBLIN01
Definition go_scripts.cpp:516
uint32 _currentMusicEvent
Definition go_scripts.cpp:677
EventMap _events
Definition go_scripts.cpp:676

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.

568 {
569 _events.Update(diff);
570 while (uint32 eventId = _events.ExecuteEvent())
571 {
572 switch (eventId)
573 {
575 {
576 if (!IsHolidayActive(HOLIDAY_BREWFEST)) // Check if Brewfest is active
577 break;
578 // Select random music sample
579 uint32 rnd = urand(0, 2);
580 uint32 musicTime = 1000;
581 //Restart the current selected music
583 //Check zone to play correct music
585 {
586 switch (rnd)
587 {
588 case 0:
590 musicTime = EVENT_BREWFESTGOBLIN01_TIME;
591 break;
592 case 1:
594 musicTime = EVENT_BREWFESTGOBLIN02_TIME;
595 break;
596 case 2:
598 musicTime = EVENT_BREWFESTGOBLIN03_TIME;
599 break;
600 default:
601 break;
602 }
603 }
604 else if (me->GetAreaId() == IRONFORGE_1 || me->GetAreaId() == IRONFORGE_2 || me->GetAreaId() == STORMWIND || me->GetAreaId() == EXODAR || me->GetAreaId() == DARNASSUS)
605 {
606 switch (rnd)
607 {
608 case 0:
610 musicTime = EVENT_BREWFESTDWARF01_TIME;
611 break;
612 case 1:
614 musicTime = EVENT_BREWFESTDWARF02_TIME;
615 break;
616 case 2:
618 musicTime = EVENT_BREWFESTDWARF03_TIME;
619 break;
620 default:
621 break;
622 }
623 }
624 else if (me->GetAreaId() == SHATTRATH)
625 {
626 rnd = urand(0, 5);
627 switch (rnd)
628 {
629 case 0:
631 musicTime = EVENT_BREWFESTGOBLIN01_TIME;
632 break;
633 case 1:
635 musicTime = EVENT_BREWFESTGOBLIN02_TIME;
636 break;
637 case 2:
639 musicTime = EVENT_BREWFESTGOBLIN03_TIME;
640 break;
641 case 3:
643 musicTime = EVENT_BREWFESTDWARF01_TIME;
644 break;
645 case 4:
647 musicTime = EVENT_BREWFESTDWARF02_TIME;
648 break;
649 case 5:
651 musicTime = EVENT_BREWFESTDWARF03_TIME;
652 break;
653 default:
654 break;
655 }
656 }
657 _events.ScheduleEvent(EVENT_BM_SELECT_MUSIC, musicTime); // Select new song music after play time is over
658 break;
659 }
661 if (!IsHolidayActive(HOLIDAY_BREWFEST)) // Check if Brewfest is active
662 break;
663 // Play selected music
664 if (_currentMusicEvent != 0)
665 {
667 }
668 _events.ScheduleEvent(EVENT_BM_START_MUSIC, 5000); // Every 5 second's SMSG_PLAY_MUSIC packet (PlayDirectMusic) is pushed to the client
669 break;
670 default:
671 break;
672 }
673 }
674 }
std::uint32_t uint32
Definition Define.h:107
bool IsHolidayActive(HolidayIds id)
Definition GameEventMgr.cpp:1949
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ HOLIDAY_BREWFEST
Definition SharedDefines.h:2758
uint32 ExecuteEvent()
Definition EventMap.cpp:114
void Update(uint32 time)
Definition EventMap.h:54
GameObject *const me
Definition GameObjectAI.h:35
void PlayDirectMusic(uint32 music_id, Player *target=nullptr)
Definition Object.cpp:2927
uint32 GetAreaId() const
Definition Object.cpp:3156
@ EVENT_BREWFESTGOBLIN03_TIME
Definition go_scripts.cpp:529
@ EVENT_BREWFESTGOBLIN02_TIME
Definition go_scripts.cpp:528
@ EVENT_BREWFESTGOBLIN01_TIME
Definition go_scripts.cpp:527
@ EVENT_BREWFESTDWARF03_TIME
Definition go_scripts.cpp:526
@ EVENT_BREWFESTDWARF01_TIME
Definition go_scripts.cpp:524
@ EVENT_BREWFESTDWARF02_TIME
Definition go_scripts.cpp:525
@ EVENT_BREWFESTGOBLIN03
Definition go_scripts.cpp:518
@ EVENT_BREWFESTDWARF02
Definition go_scripts.cpp:514
@ EVENT_BREWFESTDWARF01
Definition go_scripts.cpp:513
@ EVENT_BREWFESTDWARF03
Definition go_scripts.cpp:515
@ EVENT_BREWFESTGOBLIN02
Definition go_scripts.cpp:517
@ UNDERCITY
Definition go_scripts.cpp:535
@ IRONFORGE_1
Definition go_scripts.cpp:539
@ ORGRIMMAR_2
Definition go_scripts.cpp:537
@ SHATTRATH
Definition go_scripts.cpp:544
@ IRONFORGE_2
Definition go_scripts.cpp:540
@ THUNDERBLUFF
Definition go_scripts.cpp:538
@ DARNASSUS
Definition go_scripts.cpp:543
@ SILVERMOON
Definition go_scripts.cpp:534
@ STORMWIND
Definition go_scripts.cpp:541
@ EXODAR
Definition go_scripts.cpp:542
@ ORGRIMMAR_1
Definition go_scripts.cpp:536

References _currentMusicEvent, _events, DARNASSUS, 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(), EXODAR, WorldObject::GetAreaId(), HOLIDAY_BREWFEST, IRONFORGE_1, IRONFORGE_2, IsHolidayActive(), GameObjectAI::me, ORGRIMMAR_1, ORGRIMMAR_2, WorldObject::PlayDirectMusic(), EventMap::ScheduleEvent(), SHATTRATH, SILVERMOON, STORMWIND, THUNDERBLUFF, UNDERCITY, 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: