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