mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 10:30:27 +00:00
fix(Scripts/Arcatraz): Adjust Soccrothar charge timer and implement emote (#15643)
This commit is contained in:
@@ -44,23 +44,24 @@ enum Spells
|
||||
|
||||
struct boss_dalliah_the_doomsayer : public BossAI
|
||||
{
|
||||
boss_dalliah_the_doomsayer(Creature* creature) : BossAI(creature, DATA_DALLIAH), _percentHealthCheck(false) { }
|
||||
boss_dalliah_the_doomsayer(Creature* creature) : BossAI(creature, DATA_DALLIAH) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
_percentHealthCheck = false;
|
||||
me->SetImmuneToAll(false);
|
||||
|
||||
ScheduleHealthCheckEvent(25, [&]
|
||||
{
|
||||
if (Creature* soccothrates = instance->GetCreature(DATA_SOCCOTHRATES))
|
||||
{
|
||||
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void InitializeAI() override
|
||||
{
|
||||
BossAI::InitializeAI();
|
||||
|
||||
if (instance->GetBossState(DATA_SOCCOTHRATES) != DONE)
|
||||
{
|
||||
me->SetImmuneToAll(true);
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -117,19 +118,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellSchoolMask /*damageSchoolMask*/) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(25, damage) && !_percentHealthCheck)
|
||||
{
|
||||
if (Creature* soccothrates = instance->GetCreature(DATA_SOCCOTHRATES))
|
||||
{
|
||||
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
|
||||
}
|
||||
|
||||
_percentHealthCheck = true;
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
{
|
||||
if (victim->IsPlayer())
|
||||
@@ -137,9 +125,6 @@ struct boss_dalliah_the_doomsayer : public BossAI
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
bool _percentHealthCheck;
|
||||
};
|
||||
|
||||
void AddSC_boss_dalliah_the_doomsayer()
|
||||
|
||||
@@ -79,7 +79,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
_Reset();
|
||||
events2.Reset();
|
||||
me->CastSpell(me, SPELL_FEL_IMMOLATION, true);
|
||||
me->SetImmuneToAll(false);
|
||||
|
||||
ScheduleHealthCheckEvent(25, [&]
|
||||
{
|
||||
@@ -96,8 +95,6 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
void InitializeAI() override
|
||||
{
|
||||
BossAI::InitializeAI();
|
||||
if (!preFight)
|
||||
me->SetImmuneToAll(true);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -129,9 +126,10 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
scheduler.Schedule(11s, 12s, [this](TaskContext context)
|
||||
scheduler.Schedule(30s, 35s, [this](TaskContext context)
|
||||
{
|
||||
me->CastSpell(me, SPELL_KNOCK_AWAY, false);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
Talk(SAY_KNOCK_AWAY);
|
||||
|
||||
scheduler.Schedule(4600ms, [this](TaskContext)
|
||||
@@ -141,10 +139,7 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
|
||||
scheduler.Schedule(300ms, [this](TaskContext context2)
|
||||
{
|
||||
if (me->GetVictim() && !me->IsWithinMeleeRange(me->GetVictim()))
|
||||
{
|
||||
DoCastAOE(SPELL_FELFIRE, true);
|
||||
}
|
||||
DoCastAOE(SPELL_FELFIRE, true);
|
||||
|
||||
if (context2.GetRepeatCounter() <= 6)
|
||||
{
|
||||
@@ -153,7 +148,7 @@ struct boss_wrath_scryer_soccothrates : public BossAI
|
||||
});
|
||||
});
|
||||
|
||||
context.Repeat();
|
||||
context.Repeat(20s, 35s);
|
||||
}).Schedule(12s, 14s, [this](TaskContext context)
|
||||
{
|
||||
DoCastVictim(SPELL_FELFIRE_SHOCK);
|
||||
|
||||
Reference in New Issue
Block a user