aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTartalo <none@none>2010-06-28 00:49:21 +0200
committerTartalo <none@none>2010-06-28 00:49:21 +0200
commitcba6515acb5820af5df6b77855464c29062b8c44 (patch)
treeeb46aa926f33de1d0b1178cae1a6d45e11dec823 /src
parent068810d04506fa50a56d5c80e8bbf446908dcf30 (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.cpp26
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.h7
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