Scripts/BWD: corrected timer between Magmaw eating his victim and performing a Massive Crash
* move ejecting pincer passengers to spell script and use the correct spell for it
This commit is contained in:
1 parent
b7e44e1312
commit
c00736ed71
2 files changed
+32
-7
No files matched your search
@@ -0,0 +1,8 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_magmaw_eject_passenger';
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(78643, 'spell_magmaw_eject_passenger');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceEntry`= 78643 AND `SourceTypeOrReferenceId`= 13;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 78643, 0, 0, 31, 0, 3, 41789, 0, 0, 0, '', 'Eject Passenger - Target Magmaw''s Pincer'),
|
||||
(13, 1, 78643, 0, 1, 31, 0, 3, 41620, 0, 0, 0, '', 'Eject Passenger - Target Magmaw''s Pincer');
|
||||
+24
-7
@@ -64,6 +64,7 @@ enum Spells
|
||||
// Magmaw Spike Stalker
|
||||
SPELL_CHAIN_VISUAL_1 = 77940,
|
||||
SPELL_CHAIN_VISUAL_2 = 77929,
|
||||
SPELL_EJECT_PASSENGER = 78643,
|
||||
|
||||
// Lava Parasite
|
||||
SPELL_LAVA_PARASITE_PROC_AURA = 78019,
|
||||
@@ -94,7 +95,6 @@ enum Events
|
||||
EVENT_ANNOUNCE_PINCERS_EXPOSED,
|
||||
EVENT_FINISH_MASSIVE_CRASH,
|
||||
EVENT_IMPALE_SELF,
|
||||
EVENT_EJECT_PASSENGER_1,
|
||||
EVENT_EXPOSE_HEAD,
|
||||
EVENT_HIDE_HEAD,
|
||||
EVENT_FINISH_IMPALE_SELF,
|
||||
@@ -294,7 +294,6 @@ struct boss_magmaw : public BossAI
|
||||
|
||||
events.ScheduleEvent(EVENT_ANNOUNCE_PINCERS_EXPOSED, 1s);
|
||||
events.ScheduleEvent(EVENT_FINISH_MASSIVE_CRASH, 7s);
|
||||
events.ScheduleEvent(EVENT_EJECT_PASSENGER_1, 12s);
|
||||
|
||||
Unit* head = _exposedHead1;
|
||||
head->m_Events.AddEventAtOffset([head]()
|
||||
@@ -428,7 +427,7 @@ struct boss_magmaw : public BossAI
|
||||
|
||||
events.CancelEvent(EVENT_MAGMA_PROJECTILE);
|
||||
events.CancelEvent(EVENT_LAVA_SPEW);
|
||||
events.ScheduleEvent(EVENT_PREPARE_MASSIVE_CRASH, 5s);
|
||||
events.ScheduleEvent(EVENT_PREPARE_MASSIVE_CRASH, 3s + 500ms);
|
||||
events.Repeat(1min + 35s);
|
||||
break;
|
||||
case EVENT_PREPARE_MASSIVE_CRASH:
|
||||
@@ -462,10 +461,6 @@ struct boss_magmaw : public BossAI
|
||||
case EVENT_IMPALE_SELF:
|
||||
DoCastSelf(SPELL_IMPALE_SELF);
|
||||
break;
|
||||
case EVENT_EJECT_PASSENGER_1:
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true);
|
||||
break;
|
||||
case EVENT_EXPOSE_HEAD:
|
||||
if (!_headEngaged)
|
||||
{
|
||||
@@ -1019,6 +1014,7 @@ class spell_magmaw_launch_hook : public AuraScript
|
||||
target->RemoveAllAuras();
|
||||
target->CastSpell(target, SPELL_CHAIN_VISUAL_1);
|
||||
target->CastSpell(target, SPELL_CHAIN_VISUAL_2);
|
||||
target->CastSpell(target, SPELL_EJECT_PASSENGER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1028,6 +1024,26 @@ class spell_magmaw_launch_hook : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class spell_magmaw_eject_passenger : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_magmaw_eject_passenger);
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* target = GetHitUnit();
|
||||
target->m_Events.AddEventAtOffset([target]()
|
||||
{
|
||||
target->CastSpell(target, SPELL_EJECT_PASSENGER_1, true);
|
||||
}, 3s + 500ms);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_magmaw_eject_passenger::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_magmaw_eject_passenger_1 : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_magmaw_eject_passenger_1);
|
||||
@@ -1231,6 +1247,7 @@ void AddSC_boss_magmaw()
|
||||
RegisterSpellScript(spell_magmaw_pillar_of_flame_forcecast);
|
||||
RegisterSpellScript(spell_magmaw_ride_vehicle);
|
||||
RegisterAuraScript(spell_magmaw_launch_hook);
|
||||
RegisterSpellScript(spell_magmaw_eject_passenger);
|
||||
RegisterSpellScript(spell_magmaw_eject_passenger_1);
|
||||
RegisterSpellScript(spell_magmaw_eject_passenger_3);
|
||||
RegisterAuraScript(spell_magmaw_lava_parasite);
|
||||
|
||||
Reference in new issue
Block a user