fix(Scripts/TheEye): fix Kael progress bug and some other issues (#18580)

* init

* some fixes
This commit is contained in:
Dan
2024-03-18 22:04:49 +01:00
committed by GitHub
parent b661512c63
commit 8faaa77319
2 changed files with 16 additions and 12 deletions

View File

@@ -0,0 +1,2 @@
--
UPDATE `creature_template` SET `unit_flags` = `unit_flags`& ~33554432 & ~2 WHERE `entry` BETWEEN 21268 AND 21274;

View File

@@ -151,8 +151,9 @@ enum Misc
PHASE_NONE = 0,
PHASE_SINGLE_ADVISOR = 1,
PHASE_WEAPONS = 2,
PHASE_ALL_ADVISORS = 3,
PHASE_FINAL = 4,
PHASE_TRANSITION = 3,
PHASE_ALL_ADVISORS = 4,
PHASE_FINAL = 5,
EVENT_PREFIGHT_PHASE11 = 1,
EVENT_PREFIGHT_PHASE12 = 2,
@@ -352,6 +353,8 @@ struct boss_kaelthas : public BossAI
summons.Summon(summon);
if (summon->GetEntry() == NPC_NETHER_VAPOR)
summon->GetMotionMaster()->MoveRandom(20.0f);
if (summon->GetEntry() >= NPC_NETHERSTRAND_LONGBOW && summon->GetEntry() <= NPC_STAFF_OF_DISINTEGRATION)
summon->SetReactState(REACT_PASSIVE);
}
void DoAction(int32 action) override
@@ -380,7 +383,7 @@ struct boss_kaelthas : public BossAI
{
if (!summonedCreature->GetSpawnId())
{
summonedCreature->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
summonedCreature->SetReactState(REACT_AGGRESSIVE);
summonedCreature->SetInCombatWithZone();
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
{
@@ -678,13 +681,14 @@ struct boss_kaelthas : public BossAI
void PhaseAllAdvisorsExecute()
{
_phase = PHASE_TRANSITION;
scheduler.CancelGroup(GROUP_PROGRESS_PHASE);
_phase = PHASE_ALL_ADVISORS;
Talk(SAY_PHASE3_ADVANCE);
ScheduleUniqueTimedEvent(6s, [&]{
DoCastSelf(SPELL_RESURRECTION);
}, EVENT_PREFIGHT_PHASE62);
ScheduleUniqueTimedEvent(12s, [&]{
_phase = PHASE_ALL_ADVISORS;
summons.DoForAllSummons([&](WorldObject* summon)
{
if (Creature* summonedCreature = summon->ToCreature())
@@ -743,18 +747,16 @@ struct boss_kaelthas : public BossAI
DoCastSelf(SPELL_ARCANE_DISRUPTION);
});
}, 50s);
ScheduleTimedEvent(40s, [&]
ScheduleTimedEvent(43s, [&]
{
if (roll_chance_i(50))
Talk(SAY_MINDCONTROL);
me->CastCustomSpell(SPELL_MIND_CONTROL, SPELLVALUE_MAX_TARGETS, 3, me, false);
scheduler.Schedule(3s, [this](TaskContext)
{
if (roll_chance_i(50))
Talk(SAY_MINDCONTROL);
me->CastCustomSpell(SPELL_MIND_CONTROL, SPELLVALUE_MAX_TARGETS, 3, me, false);
}).Schedule(6s, [this](TaskContext)
{
DoCastSelf(SPELL_ARCANE_DISRUPTION);
});
}, 50s);
}, 53s);
ScheduleTimedEvent(60s, [&]
{
Talk(SAY_PYROBLAST);
@@ -1041,7 +1043,7 @@ struct npc_thaladred : public ScriptedAI
{
DoCastVictim(SPELL_REND);
}, 15700ms, 48900ms);
ScheduleTimedEvent(3000ms,6050ms, [&]
ScheduleTimedEvent(3000ms, 6050ms, [&]
{
if (Unit* victim = me->GetVictim())
{