diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp | 26 | ||||
-rw-r--r-- | src/server/scripts/Northrend/VioletHold/violet_hold.h | 7 |
2 files changed, 31 insertions, 2 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index fe7b777d9db..b6d2fa06e2d 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -125,6 +125,8 @@ struct instance_violet_hold : public ScriptedInstance uint32 uiActivationTimer; uint32 uiCyanigosaEventTimer; + std::set<uint64> trashMobs; // to kill with crystal + uint8 uiWaveCount; uint8 uiLocation; uint8 uiFirstBoss; @@ -171,6 +173,8 @@ struct instance_violet_hold : public ScriptedInstance uiMainDoor = 0; uiTeleportationPortal = 0; uiSaboteurPortal = 0; + + trashMobs.clear(); uiRemoveNpc = 0; @@ -362,6 +366,28 @@ struct instance_violet_hold : public ScriptedInstance break; } break; + case DATA_ACTIVATE_CRYSTAL: + // Kill all mobs registered with SetData64(ADD_TRASH_MOB) + // TODO: All visual, spells etc + 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); + } + } + } + + void SetData64(uint32 type, uint64 data) + { + switch(type) + { + case DATA_ADD_TRASH_MOB: + trashMobs.insert(data); + break; + case DATA_DEL_TRASH_MOB: + trashMobs.erase(data); + break; } } diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.h b/src/server/scripts/Northrend/VioletHold/violet_hold.h index c7b0f3cad5c..e9e70950603 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.h +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.h @@ -51,7 +51,8 @@ enum Data DATA_NPC_PRESENCE_AT_DOOR_REMOVE, DATA_START_BOSS_ENCOUNTER, DATA_FIRST_BOSS, - DATA_SECOND_BOSS + DATA_SECOND_BOSS, + DATA_ACTIVATE_CRYSTAL }; enum Data64 @@ -76,7 +77,9 @@ enum Data64 DATA_MAIN_DOOR, DATA_SINCLARI, DATA_TELEPORTATION_PORTAL, - DATA_SABOTEUR_PORTAL + DATA_SABOTEUR_PORTAL, + DATA_ADD_TRASH_MOB, + DATA_DEL_TRASH_MOB }; enum Bosses |