fix(Scripts/Arcatraz): Adjust Soccrothar charge timer and implement emote (#15643)

This commit is contained in:
Skjalf
2023-03-29 03:12:41 -03:00
committed by GitHub
parent 7f186cce7a
commit d030260dd4
2 changed files with 13 additions and 33 deletions

View File

@@ -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()

View File

@@ -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);