mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fix(Scripts/Ulduar): keep VX-001 arms deployed during Mimiron phase 4 (#26623)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -952,6 +952,14 @@ struct npc_ulduar_leviathan_mkii : public ScriptedAI
|
|||||||
_events.Reset();
|
_events.Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AttackStart(Unit* who) override
|
||||||
|
{
|
||||||
|
ScriptedAI::AttackStart(who);
|
||||||
|
// Unit::Attack clears the emote state on target switch, which would retract VX-001's arms
|
||||||
|
if (_phase == 4)
|
||||||
|
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||||
|
}
|
||||||
|
|
||||||
void SetData(uint32 id, uint32 value) override
|
void SetData(uint32 id, uint32 value) override
|
||||||
{
|
{
|
||||||
if (id == 1) // setting phase to start fighting
|
if (id == 1) // setting phase to start fighting
|
||||||
@@ -985,6 +993,8 @@ struct npc_ulduar_leviathan_mkii : public ScriptedAI
|
|||||||
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
||||||
AttackStart(target);
|
AttackStart(target);
|
||||||
DoZoneInCombat();
|
DoZoneInCombat();
|
||||||
|
// The assembled V0-L7R-ON animates through its vehicle base; this state keeps VX-001's arms deployed
|
||||||
|
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||||
_events.Reset();
|
_events.Reset();
|
||||||
_events.ScheduleEvent(EVENT_SPELL_SHOCK_BLAST, 20s);
|
_events.ScheduleEvent(EVENT_SPELL_SHOCK_BLAST, 20s);
|
||||||
_events.ScheduleEvent(EVENT_PROXIMITY_MINES_1, 6s);
|
_events.ScheduleEvent(EVENT_PROXIMITY_MINES_1, 6s);
|
||||||
@@ -1380,7 +1390,8 @@ struct npc_ulduar_vx001 : public ScriptedAI
|
|||||||
if (Unit* vb = me->GetVehicleBase())
|
if (Unit* vb = me->GetVehicleBase())
|
||||||
{
|
{
|
||||||
vb->SendMeleeAttackStop();
|
vb->SendMeleeAttackStop();
|
||||||
vb->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
// Keep the arms-deployed state so the model returns to it after the one-shot pulse animation
|
||||||
|
vb->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01);
|
||||||
|
|
||||||
if (!_leftArm)
|
if (!_leftArm)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user