aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp29
1 files changed, 20 insertions, 9 deletions
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<uint64>::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<uint64>::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)