diff options
author | Tartalo <none@none> | 2010-06-28 00:49:21 +0200 |
---|---|---|
committer | Tartalo <none@none> | 2010-06-28 00:49:21 +0200 |
commit | cba6515acb5820af5df6b77855464c29062b8c44 (patch) | |
tree | eb46aa926f33de1d0b1178cae1a6d45e11dec823 /src | |
parent | 068810d04506fa50a56d5c80e8bbf446908dcf30 (diff) |
Violet Hold: Add crystal activation support backend to instance script.
Support is not used yet by the instance mechanic so is not usable as is
--HG--
branch : trunk
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 |