aboutsummaryrefslogtreecommitdiff
path: root/src/game/OutdoorPvPHP.h
diff options
context:
space:
mode:
authorSeline <none@none>2008-10-14 11:57:03 -0500
committerSeline <none@none>2008-10-14 11:57:03 -0500
commit2265aef916e3b2d63d87faa68a2b51e7d747c54c (patch)
treeb05420685b7d202aade6f70a6f511adbfb79e37f /src/game/OutdoorPvPHP.h
parent222cbfd4644412fb8e5aeed7c37c88797d09964a (diff)
[svn] * Merge Temp dev SVN with Assembla.
* Changes include: - Implementation of w12x's Outdoor PvP and Game Event Systems. - Temporary removal of IRC Chat Bot (until infinite loop when disabled is fixed). - All mangos -> trinity (to convert your mangos_string table, please run mangos_string_to_trinity_string.sql). - Improved Config cleanup. - And many more changes. --HG-- branch : trunk
Diffstat (limited to 'src/game/OutdoorPvPHP.h')
-rw-r--r--src/game/OutdoorPvPHP.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/game/OutdoorPvPHP.h b/src/game/OutdoorPvPHP.h
new file mode 100644
index 00000000000..33a5bbfe894
--- /dev/null
+++ b/src/game/OutdoorPvPHP.h
@@ -0,0 +1,100 @@
+#ifndef OUTDOOR_PVP_HP_
+#define OUTDOOR_PVP_HP_
+
+#include "OutdoorPvP.h"
+
+#define OutdoorPvPHPBuffZonesNum 6
+ // HP, citadel, ramparts, blood furnace, shattered halls, mag's lair
+const uint32 OutdoorPvPHPBuffZones[OutdoorPvPHPBuffZonesNum] = { 3483, 3563, 3562, 3713, 3714, 3836 };
+
+const uint32 AllianceBuff = 32071;
+
+const uint32 HordeBuff = 32049;
+
+const uint32 AlliancePlayerKillReward = 32155;
+
+const uint32 HordePlayerKillReward = 32158;
+
+enum OutdoorPvPHPTowerType{
+ HP_TOWER_BROKEN_HILL = 0,
+ HP_TOWER_OVERLOOK = 1,
+ HP_TOWER_STADIUM = 2,
+ HP_TOWER_NUM = 3
+};
+
+const uint32 HP_CREDITMARKER[HP_TOWER_NUM] = {19032,19028,19029};
+
+const uint32 HP_CapturePointEvent_Enter[HP_TOWER_NUM] = {11404,11396,11388};
+
+const uint32 HP_CapturePointEvent_Leave[HP_TOWER_NUM] = {11403,11395,11387};
+
+enum OutdoorPvPHPWorldStates{
+ HP_UI_TOWER_DISPLAY_A = 0x9ba,
+ HP_UI_TOWER_DISPLAY_H = 0x9b9,
+
+ HP_UI_TOWER_COUNT_H = 0x9ae,
+ HP_UI_TOWER_COUNT_A = 0x9ac,
+
+ HP_UI_TOWER_SLIDER_N = 2475,
+ HP_UI_TOWER_SLIDER_POS = 2474,
+ HP_UI_TOWER_SLIDER_DISPLAY = 2473
+};
+
+const uint32 HP_MAP_N[HP_TOWER_NUM] = {0x9b5,0x9b2,0x9a8};
+
+const uint32 HP_MAP_A[HP_TOWER_NUM] = {0x9b3,0x9b0,0x9a7};
+
+const uint32 HP_MAP_H[HP_TOWER_NUM] = {0x9b4,0x9b1,0x9a6};
+
+const uint32 HP_TowerArtKit_A[HP_TOWER_NUM] = {65,62,67};
+
+const uint32 HP_TowerArtKit_H[HP_TOWER_NUM] = {64,61,68};
+
+const uint32 HP_TowerArtKit_N[HP_TOWER_NUM] = {66,63,69};
+
+const go_type HPCapturePoints[HP_TOWER_NUM] = {
+ {182175,530,-471.462,3451.09,34.6432,0.174533,0,0,0.087156,0.996195}, // 0 - Broken Hill
+ {182174,530,-184.889,3476.93,38.205,-0.017453,0,0,0.008727,-0.999962}, // 1 - Overlook
+ {182173,530,-290.016,3702.42,56.6729,0.034907,0,0,0.017452,0.999848} // 2 - Stadium
+};
+
+const go_type HPTowerFlags[HP_TOWER_NUM] = {
+ {183514,530,-467.078,3528.17,64.7121,3.14159,0,0,1,0}, // 0 broken hill
+ {182525,530,-187.887,3459.38,60.0403,-3.12414,0,0,0.999962,-0.008727}, // 1 overlook
+ {183515,530,-289.610,3696.83,75.9447,3.12414,0,0,0.999962,0.008727} // 2 stadium
+};
+
+class OutdoorPvPObjectiveHP : public OutdoorPvPObjective
+{
+public:
+ OutdoorPvPObjectiveHP(OutdoorPvP * pvp, OutdoorPvPHPTowerType type);
+ bool Update(uint32 diff);
+ void FillInitialWorldStates(WorldPacket & data);
+ // used when player is activated/inactivated in the area
+ bool HandlePlayerEnter(Player * plr);
+ void HandlePlayerLeave(Player * plr);
+ bool HandleCapturePointEvent(Player * plr, uint32 eventId);
+private:
+ OutdoorPvPHPTowerType m_TowerType;
+};
+
+class OutdoorPvPHP : public OutdoorPvP
+{
+friend class OutdoorPvPObjectiveHP;
+public:
+ OutdoorPvPHP();
+ bool SetupOutdoorPvP();
+ void HandlePlayerEnterZone(Player *plr, uint32 zone);
+ void HandlePlayerLeaveZone(Player *plr, uint32 zone);
+ bool Update(uint32 diff);
+ void FillInitialWorldStates(WorldPacket &data);
+ void SendRemoveWorldStates(Player * plr);
+ void HandleKillImpl(Player * plr, Unit * killed);
+ void BuffTeam(uint32 team);
+private:
+ // how many towers are controlled
+ uint32 m_AllianceTowersControlled;
+ uint32 m_HordeTowersControlled;
+};
+
+#endif