mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-03-10 11:10:33 +00:00
refactor(Core/EventMap): Refactor EventMap and related scripts (#23121)
Co-authored-by: Kelno <3866946+kelno@users.noreply.github.com> Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
This commit is contained in:
@@ -49,7 +49,7 @@ struct npc_pet_gen_soul_trader_beacon : public ScriptedAI
|
||||
npc_pet_gen_soul_trader_beacon(Creature* c) : ScriptedAI(c)
|
||||
{
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_INITIAL_TALK, 0);
|
||||
events.ScheduleEvent(EVENT_INITIAL_TALK, 0ms);
|
||||
if (me->ToTempSummon())
|
||||
if (Unit* owner = me->ToTempSummon()->GetOwner())
|
||||
{
|
||||
@@ -65,7 +65,7 @@ struct npc_pet_gen_soul_trader_beacon : public ScriptedAI
|
||||
if (spellInfo->Id == SPELL_STEAL_ESSENCE_VISUAL && target == me)
|
||||
{
|
||||
Talk(1);
|
||||
events.ScheduleEvent(EVENT_ADD_TOKEN, 3000);
|
||||
events.ScheduleEvent(EVENT_ADD_TOKEN, 3s);
|
||||
me->CastSpell(me, SPELL_EMOTE_STATE_SWIM_RUN, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,10 +62,18 @@ struct npc_pet_mage_mirror_image : CasterAI
|
||||
ObjectGuid _ebonGargoyleGUID;
|
||||
uint32 checktarget;
|
||||
uint32 dist = urand(1, 5);
|
||||
bool _delayAttack;
|
||||
|
||||
void InitializeAI() override
|
||||
{
|
||||
CasterAI::InitializeAI();
|
||||
|
||||
_delayAttack = true;
|
||||
me->m_Events.AddEventAtOffset([this]()
|
||||
{
|
||||
_delayAttack = false;
|
||||
}, 1200ms);
|
||||
|
||||
Unit* owner = me->GetOwner();
|
||||
if (!owner)
|
||||
return;
|
||||
@@ -185,10 +193,11 @@ struct npc_pet_mage_mirror_image : CasterAI
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
events.Update(diff);
|
||||
if (events.GetTimer() < 1200)
|
||||
if (_delayAttack)
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (!me->IsInCombat() || !me->GetVictim())
|
||||
{
|
||||
MySelectNextTarget();
|
||||
@@ -212,7 +221,7 @@ struct npc_pet_mage_mirror_image : CasterAI
|
||||
|
||||
if (uint32 spellId = events.ExecuteEvent())
|
||||
{
|
||||
events.RescheduleEvent(spellId, spellId == 59637 ? 6500 : 2500);
|
||||
events.RescheduleEvent(spellId, spellId == 59637 ? 6500ms : 2500ms);
|
||||
me->CastSpell(me->GetVictim(), spellId, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ struct npc_pet_shaman_earth_elemental : public ScriptedAI
|
||||
void JustEngagedWith(Unit*) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 0);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 0ms);
|
||||
}
|
||||
|
||||
void InitializeAI() override { }
|
||||
@@ -74,7 +74,7 @@ struct npc_pet_shaman_earth_elemental : public ScriptedAI
|
||||
if (_events.ExecuteEvent() == EVENT_SHAMAN_ANGEREDEARTH)
|
||||
{
|
||||
DoCastVictim(SPELL_SHAMAN_ANGEREDEARTH);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, urand(5000, 20000));
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_ANGEREDEARTH, 5s, 20s);
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
@@ -94,9 +94,9 @@ struct npc_pet_shaman_fire_elemental : public ScriptedAI
|
||||
void JustEngagedWith(Unit*) override
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, urand(5000, 20000));
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, urand(5000, 20000));
|
||||
//_events.ScheduleEvent(EVENT_SHAMAN_FIRESHIELD, 0);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, 5s, 20s);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, 5s, 20s);
|
||||
//_events.ScheduleEvent(EVENT_SHAMAN_FIRESHIELD, 0ms);
|
||||
|
||||
me->RemoveAurasDueToSpell(SPELL_SHAMAN_FIRESHIELD);
|
||||
me->CastSpell(me, SPELL_SHAMAN_FIRESHIELD, true);
|
||||
@@ -124,11 +124,11 @@ struct npc_pet_shaman_fire_elemental : public ScriptedAI
|
||||
{
|
||||
case EVENT_SHAMAN_FIRENOVA:
|
||||
me->CastSpell(me, SPELL_SHAMAN_FIRENOVA, false);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, urand(8000, 15000));
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIRENOVA, 8s, 15s);
|
||||
break;
|
||||
case EVENT_SHAMAN_FIREBLAST:
|
||||
me->CastSpell(me->GetVictim(), SPELL_SHAMAN_FIREBLAST, false);
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, urand(4000, 8000));
|
||||
_events.ScheduleEvent(EVENT_SHAMAN_FIREBLAST, 4s, 8s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user