Merge pull request #15164 from LuqJensen/mimiron

Scripts/Ulduar: Fix a visual issue with Mimirons Rocket Strike and Fix Mimiron DB target attacking players
This commit is contained in:
joschiwald
2015-07-26 03:35:40 +02:00
2 changed files with 13 additions and 6 deletions

View File

@@ -0,0 +1 @@
UPDATE `creature_template` SET `flags_extra` = 128 WHERE `entry` = 33576;

View File

@@ -120,7 +120,7 @@ enum Spells
SPELL_SUMMON_ROCKET_STRIKE = 63036,
SPELL_SCRIPT_EFFECT_ROCKET_STRIKE = 63681, // Cast by Rocket (Mimiron Visual)
SPELL_ROCKET_STRIKE = 64064, // Added in creature_template_addon
SPELL_ROCKET_STRIKE_LEFT = 64402, // Cast by VX-001
SPELL_ROCKET_STRIKE_SINGLE = 64402, // Cast by VX-001
SPELL_ROCKET_STRIKE_BOTH = 65034, // Cast by VX-001
// Flames
@@ -320,6 +320,12 @@ enum Waypoints
WP_AERIAL_P4_POS
};
enum SeatIds : int8
{
ROCKET_SEAT_LEFT = 5,
ROCKET_SEAT_RIGHT = 6
};
uint32 const RepairSpells[4] =
{
SPELL_SEAT_1,
@@ -1043,18 +1049,18 @@ class boss_vx_001 : public CreatureScript
events.RescheduleEvent(EVENT_RAPID_BURST, 3000, 0, PHASE_VX_001);
break;
case EVENT_ROCKET_STRIKE:
DoCastAOE(events.IsInPhase(PHASE_VX_001) ? SPELL_ROCKET_STRIKE_LEFT : SPELL_ROCKET_STRIKE_BOTH);
DoCastAOE(events.IsInPhase(PHASE_VX_001) ? SPELL_ROCKET_STRIKE_SINGLE : SPELL_ROCKET_STRIKE_BOTH);
events.ScheduleEvent(EVENT_RELOAD, 10000);
events.RescheduleEvent(EVENT_ROCKET_STRIKE, urand(20000, 25000));
break;
case EVENT_RELOAD:
for (uint8 seat = 6; seat <= 7; seat++)
for (int8 seat = ROCKET_SEAT_LEFT; seat <= ROCKET_SEAT_RIGHT; ++seat)
if (Unit* rocket = me->GetVehicleKit()->GetPassenger(seat))
rocket->SetDisplayId(rocket->GetNativeDisplayId());
break;
case EVENT_HAND_PULSE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 120, true))
DoCast(target, urand(0, 1) == 0 ? SPELL_HAND_PULSE_LEFT : SPELL_HAND_PULSE_RIGHT);
DoCast(target, RAND(SPELL_HAND_PULSE_LEFT, SPELL_HAND_PULSE_RIGHT));
events.RescheduleEvent(EVENT_HAND_PULSE, urand(1500, 3000), 0, PHASE_VOL7RON);
break;
case EVENT_FROST_BOMB:
@@ -2187,8 +2193,8 @@ class spell_mimiron_rocket_strike : public SpellScriptLoader
if (targets.empty())
return;
if (m_scriptSpellId == SPELL_ROCKET_STRIKE_LEFT && GetCaster()->IsVehicle())
if (WorldObject* target = GetCaster()->GetVehicleKit()->GetPassenger(6))
if (m_scriptSpellId == SPELL_ROCKET_STRIKE_SINGLE && GetCaster()->IsVehicle())
if (WorldObject* target = GetCaster()->GetVehicleKit()->GetPassenger(RAND(ROCKET_SEAT_LEFT, ROCKET_SEAT_RIGHT)))
{
targets.clear();
targets.push_back(target);