mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
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:
@@ -71,7 +71,6 @@ enum Actions
|
|||||||
ACTION_START_ENCOUNTER = 1,
|
ACTION_START_ENCOUNTER = 1,
|
||||||
ACTION_DRAKE_BREATH = 2,
|
ACTION_DRAKE_BREATH = 2,
|
||||||
ACTION_PHASE2 = 3,
|
ACTION_PHASE2 = 3,
|
||||||
ACTION_HARPOON_HIT = 4,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CombatPhase
|
enum CombatPhase
|
||||||
@@ -171,8 +170,6 @@ public:
|
|||||||
_events.Reset();
|
_events.Reset();
|
||||||
_summons.DespawnAll();
|
_summons.DespawnAll();
|
||||||
_phase = PHASE_GROUND;
|
_phase = PHASE_GROUND;
|
||||||
_harpoonHit = 0;
|
|
||||||
_loveSkadi = 0;
|
|
||||||
_firstWaveSummoned = false;
|
_firstWaveSummoned = false;
|
||||||
_encounterStarted = false;
|
_encounterStarted = false;
|
||||||
|
|
||||||
@@ -266,8 +263,6 @@ public:
|
|||||||
_events.ScheduleEvent(EVENT_SKADI_RESET_CHECK, 6s);
|
_events.ScheduleEvent(EVENT_SKADI_RESET_CHECK, 6s);
|
||||||
break;
|
break;
|
||||||
case ACTION_DRAKE_BREATH:
|
case ACTION_DRAKE_BREATH:
|
||||||
if (_loveSkadi == 1)
|
|
||||||
++_loveSkadi;
|
|
||||||
Talk(SAY_DRAKE_BREATH);
|
Talk(SAY_DRAKE_BREATH);
|
||||||
break;
|
break;
|
||||||
case ACTION_PHASE2:
|
case ACTION_PHASE2:
|
||||||
@@ -283,21 +278,9 @@ public:
|
|||||||
_events.ScheduleEvent(EVENT_SKADI_SPEAR, 11s);
|
_events.ScheduleEvent(EVENT_SKADI_SPEAR, 11s);
|
||||||
_events.ScheduleEvent(EVENT_SKADI_WHIRLWIND, 23s);
|
_events.ScheduleEvent(EVENT_SKADI_WHIRLWIND, 23s);
|
||||||
break;
|
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
|
void UpdateAI(uint32 diff) override
|
||||||
{
|
{
|
||||||
_events.Update(diff);
|
_events.Update(diff);
|
||||||
@@ -384,8 +367,6 @@ public:
|
|||||||
EventMap _events;
|
EventMap _events;
|
||||||
SummonList _summons;
|
SummonList _summons;
|
||||||
CombatPhase _phase;
|
CombatPhase _phase;
|
||||||
uint8 _harpoonHit;
|
|
||||||
uint8 _loveSkadi;
|
|
||||||
bool _firstWaveSummoned;
|
bool _firstWaveSummoned;
|
||||||
bool _encounterStarted;
|
bool _encounterStarted;
|
||||||
};
|
};
|
||||||
@@ -415,6 +396,7 @@ public:
|
|||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_PASSIVE);
|
||||||
me->SetSpeedRate(MOVE_RUN, 2.5f);
|
me->SetSpeedRate(MOVE_RUN, 2.5f);
|
||||||
_flyingToSide = false;
|
_flyingToSide = false;
|
||||||
|
_passFreshStart = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoAction(int32 param) override
|
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
|
void MovementInform(uint32 type, uint32 /*id*/) override
|
||||||
{
|
{
|
||||||
if (type == ESCORT_MOTION_TYPE && me->movespline->Finalized())
|
if (type == ESCORT_MOTION_TYPE && me->movespline->Finalized())
|
||||||
@@ -470,6 +445,7 @@ public:
|
|||||||
FORCED_MOVEMENT_RUN);
|
FORCED_MOVEMENT_RUN);
|
||||||
break;
|
break;
|
||||||
case EVENT_GRAUF_BREATH_START:
|
case EVENT_GRAUF_BREATH_START:
|
||||||
|
_passFreshStart = me->IsFullHealth();
|
||||||
me->GetMotionMaster()->MovePath(
|
me->GetMotionMaster()->MovePath(
|
||||||
_lastSide == POINT_LEFT ? PATH_LEFT : PATH_RIGHT,
|
_lastSide == POINT_LEFT ? PATH_LEFT : PATH_RIGHT,
|
||||||
FORCED_MOVEMENT_RUN);
|
FORCED_MOVEMENT_RUN);
|
||||||
@@ -493,10 +469,11 @@ public:
|
|||||||
{
|
{
|
||||||
skadi->ExitVehicle();
|
skadi->ExitVehicle();
|
||||||
skadi->AI()->DoAction(ACTION_PHASE2);
|
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);
|
me->DespawnOrUnsummon(6s);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -506,6 +483,7 @@ public:
|
|||||||
SummonList _summons;
|
SummonList _summons;
|
||||||
uint8 _lastSide = POINT_LEFT;
|
uint8 _lastSide = POINT_LEFT;
|
||||||
bool _flyingToSide = false;
|
bool _flyingToSide = false;
|
||||||
|
bool _passFreshStart = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user