From 9bedc08b71427718b2dc3d6184b25b4caf996d2b Mon Sep 17 00:00:00 2001 From: Tartalo Date: Mon, 28 Jun 2010 22:39:54 +0200 Subject: Violet Hold: Fix crystal activation mechanic --HG-- branch : trunk --- .../Northrend/VioletHold/instance_violet_hold.cpp | 29 +++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 768544e768e..aa06cd4e2a8 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -56,6 +56,11 @@ enum AzureSaboteurSpells SABOTEUR_SHIELD_EFFECT = 45775 }; +enum CrystalSpells +{ + SPELL_ARCANE_LIGHTNING = 57912 +}; + const Position PortalLocation[] = { {1877.51, 850.104, 44.6599, 4.7822 }, // WP 1 @@ -367,15 +372,8 @@ struct instance_violet_hold : public ScriptedInstance } break; case DATA_ACTIVATE_CRYSTAL: - // Kill all mobs registered with SetData64(ADD_TRASH_MOB) - // TODO: All visual, spells etc - bCrystalActivated = true; - for (std::set::const_iterator itr = trashMobs.begin(); itr != trashMobs.end(); ++itr) - { - Creature* pCreature = instance->GetCreature(*itr); - if (pCreature && pCreature->isAlive()) - pCreature->Kill(pCreature); - } + ActivateCrystal(); + break; } } @@ -754,6 +752,19 @@ struct instance_violet_hold : public ScriptedInstance SetData(DATA_MAIN_DOOR,GO_STATE_ACTIVE); } } + + void ActivateCrystal() + { + // Kill all mobs registered with SetData64(ADD_TRASH_MOB) + // TODO: All visual, spells etc + bCrystalActivated = true; + for (std::set::const_iterator itr = trashMobs.begin(); itr != trashMobs.end(); ++itr) + { + Creature* pCreature = instance->GetCreature(*itr); + if (pCreature && pCreature->isAlive()) + pCreature->CastSpell(pCreature,SPELL_ARCANE_LIGHTNING,true); // Who should cast the spell? + } + } }; InstanceData* GetInstanceData_instance_violet_hold(Map* pMap) -- cgit v1.2.3