fix(Scripts/UP): fix "My Girl Loves to Skadi All the Time" achievement (#25770)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Andrew
2026-05-08 22:35:37 -03:00
committed by GitHub
parent 94a096d778
commit 1f24863e58
@@ -71,7 +71,6 @@ enum Actions
ACTION_START_ENCOUNTER = 1,
ACTION_DRAKE_BREATH = 2,
ACTION_PHASE2 = 3,
ACTION_HARPOON_HIT = 4,
};
enum CombatPhase
@@ -171,8 +170,6 @@ public:
_events.Reset();
_summons.DespawnAll();
_phase = PHASE_GROUND;
_harpoonHit = 0;
_loveSkadi = 0;
_firstWaveSummoned = false;
_encounterStarted = false;
@@ -266,8 +263,6 @@ public:
_events.ScheduleEvent(EVENT_SKADI_RESET_CHECK, 6s);
break;
case ACTION_DRAKE_BREATH:
if (_loveSkadi == 1)
++_loveSkadi;
Talk(SAY_DRAKE_BREATH);
break;
case ACTION_PHASE2:
@@ -283,21 +278,9 @@ public:
_events.ScheduleEvent(EVENT_SKADI_SPEAR, 11s);
_events.ScheduleEvent(EVENT_SKADI_WHIRLWIND, 23s);
break;
case ACTION_HARPOON_HIT:
++_harpoonHit;
if (_harpoonHit == 1)
_loveSkadi = 1;
break;
}
}
uint32 GetData(uint32 id) const override
{
if (id == DATA_LOVE_TO_SKADI)
return _loveSkadi;
return 0;
}
void UpdateAI(uint32 diff) override
{
_events.Update(diff);
@@ -384,8 +367,6 @@ public:
EventMap _events;
SummonList _summons;
CombatPhase _phase;
uint8 _harpoonHit;
uint8 _loveSkadi;
bool _firstWaveSummoned;
bool _encounterStarted;
};
@@ -415,6 +396,7 @@ public:
me->SetReactState(REACT_PASSIVE);
me->SetSpeedRate(MOVE_RUN, 2.5f);
_flyingToSide = false;
_passFreshStart = false;
}
void DoAction(int32 param) override
@@ -430,13 +412,6 @@ public:
}
}
void SpellHit(Unit* /*caster*/, SpellInfo const* spellInfo) override
{
if (spellInfo->Id == SPELL_LAUNCH_HARPOON)
if (Creature* skadi = _instance->GetCreature(DATA_SKADI_THE_RUTHLESS))
skadi->AI()->DoAction(ACTION_HARPOON_HIT);
}
void MovementInform(uint32 type, uint32 /*id*/) override
{
if (type == ESCORT_MOTION_TYPE && me->movespline->Finalized())
@@ -470,6 +445,7 @@ public:
FORCED_MOVEMENT_RUN);
break;
case EVENT_GRAUF_BREATH_START:
_passFreshStart = me->IsFullHealth();
me->GetMotionMaster()->MovePath(
_lastSide == POINT_LEFT ? PATH_LEFT : PATH_RIGHT,
FORCED_MOVEMENT_RUN);
@@ -493,10 +469,11 @@ public:
{
skadi->ExitVehicle();
skadi->AI()->DoAction(ACTION_PHASE2);
if (skadi->AI()->GetData(DATA_LOVE_TO_SKADI) == 1)
_instance->SetData(DATA_SKADI_ACHIEVEMENT, true);
}
if (_passFreshStart)
_instance->SetData(DATA_SKADI_ACHIEVEMENT, true);
me->DespawnOrUnsummon(6s);
}
@@ -506,6 +483,7 @@ public:
SummonList _summons;
uint8 _lastSide = POINT_LEFT;
bool _flyingToSide = false;
bool _passFreshStart = false;
};
};