fix(Core/Stratholme): Some adjustments to Jarien and Sothos fight (#10269)

This commit is contained in:
Nefertumm 2022-01-22 16:22:49 -03:00 committed by GitHub
parent 4f1e13f03c
commit ce5fc6ebdf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 9 deletions

View file

@ -0,0 +1,3 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1642692898569257400');
UPDATE `gameobject_template` SET `Data15` = 1 WHERE `entry` = 181083;

View file

@ -110,6 +110,8 @@ struct boss_jarien : public BossAI
return !me->HasUnitState(UNIT_STATE_CASTING);
});
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
_talked = false;
_phase = PHASE_TALK;
}
@ -131,8 +133,6 @@ struct boss_jarien : public BossAI
void IsSummonedBy(Unit* /*summoner*/) override
{
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
Talk(SAY_JARIEN_ON_SUMMON_0);
_scheduler.Schedule(6s, [this](TaskContext /*context*/)
@ -145,7 +145,7 @@ struct boss_jarien : public BossAI
_talked = true;
_phase = PHASE_FIGHT;
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
});
}
@ -171,7 +171,10 @@ struct boss_jarien : public BossAI
{
me->SetFullHealth();
DoCastSelf(SPELL_VENGEANCE);
Talk(EMOTE_JARIEN_VENGEANCE);
if (Creature* sothos = me->FindNearestCreature(NPC_SOTHOS, 200.f, false))
{
Talk(EMOTE_JARIEN_VENGEANCE, sothos);
}
_sothosDied = true;
}
}
@ -230,6 +233,8 @@ struct boss_sothos : public BossAI
return !me->HasUnitState(UNIT_STATE_CASTING);
});
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
_talked = false;
_phase = PHASE_TALK;
}
@ -251,15 +256,12 @@ struct boss_sothos : public BossAI
void IsSummonedBy(Unit* /*summoner*/) override
{
me->SetReactState(REACT_PASSIVE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
_scheduler.Schedule(12s, [this](TaskContext /*context*/)
{
_talked = true;
_phase = PHASE_FIGHT;
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
})
.Schedule(3s, [this](TaskContext /*context*/)
{
@ -293,7 +295,10 @@ struct boss_sothos : public BossAI
{
me->SetFullHealth();
DoCastSelf(SPELL_VENGEANCE);
Talk(EMOTE_SOTHOS_VENGEANCE);
if (Creature* jarien = me->FindNearestCreature(NPC_JARIEN, 200.f, false))
{
Talk(EMOTE_SOTHOS_VENGEANCE, jarien);
}
_jarienDied = true;
}
}