Scripts/VioletHold: fix Erekem adds AI

(cherry picked from commit 7ebf804a7598a46f3b52021f44516565a8a70844)
This commit is contained in:
ccrs
2026-06-30 19:16:20 +02:00
committed by Shauren
parent cfcc93a076
commit 8a80fa58c8
@@ -44,6 +44,11 @@ enum ErekemSpells
SPELL_WINDFURY = 54493
};
enum ErekemActions
{
ACTION_EREKEM_GUARD_DIED = 1
};
// 29315 - Erekem
// 32226 - Arakkoa Windwalker
struct boss_erekem : public BossAI
@@ -56,6 +61,7 @@ struct boss_erekem : public BossAI
void Initialize()
{
_phase = 0;
_addsKilled = 0;
}
void Reset() override
@@ -78,6 +84,24 @@ struct boss_erekem : public BossAI
instance->SetData(DATA_HANDLE_CELLS, DATA_EREKEM);
}
void DoAction(int32 actionId) override
{
switch (actionId)
{
case ACTION_EREKEM_GUARD_DIED:
if (!me->IsAlive())
break;
if (_addsKilled++ == 0)
Talk(SAY_ADD_KILLED);
else
Talk(SAY_BOTH_ADDS_KILLED);
break;
default:
break;
}
}
void KilledUnit(Unit* victim) override
{
if (victim->GetTypeId() == TYPEID_PLAYER)
@@ -231,6 +255,7 @@ struct boss_erekem : public BossAI
private:
uint8 _phase;
uint8 _addsKilled;
};
enum GuardSpells
@@ -244,7 +269,13 @@ enum GuardSpells
// 32228 - Arakkoa Talon Guard
struct npc_erekem_guard : public ScriptedAI
{
npc_erekem_guard(Creature* creature) : ScriptedAI(creature) { }
npc_erekem_guard(Creature* creature) : ScriptedAI(creature)
{
scheduler.SetValidator([this]
{
return !me->HasUnitState(UNIT_STATE_CASTING);
});
}
void Reset() override
{
@@ -253,9 +284,17 @@ struct npc_erekem_guard : public ScriptedAI
void JustEngagedWith(Unit* /*who*/) override
{
ScheduledTasks();
DoZoneInCombat();
}
void JustDied(Unit* /*killer*/) override
{
if (InstanceScript* instance = me->GetInstanceScript())
if (Creature* erekem = instance->GetCreature(DATA_EREKEM))
erekem->AI()->DoAction(ACTION_EREKEM_GUARD_DIED);
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())