aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp43
-rwxr-xr-xsrc/server/game/OutdoorPvP/OutdoorPvP.h3
-rwxr-xr-xsrc/server/game/Scripting/ScriptLoader.cpp2
-rw-r--r--src/server/scripts/OutdoorPvP/CMakeLists.txt2
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp785
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPEP.h331
6 files changed, 1 insertions, 1165 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 812383b9616..f84ff1ead1d 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -9138,9 +9138,6 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
case 2918:
NumberOfFields = 8;
break;
- case 139:
- NumberOfFields = 41;
- break;
case 1377:
NumberOfFields = 15;
break;
@@ -9228,46 +9225,6 @@ void Player::SendInitWorldStates(uint32 zoneid, uint32 areaid)
case 2257: // Deeprun Tram
case 3703: // Shattrath City
break;
- case 139: // Eastern Plaguelands
- if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_EP)
- pvp->FillInitialWorldStates(data);
- else
- {
- data << uint32(0x97a) << uint32(0x0); // 10 2426
- data << uint32(0x917) << uint32(0x0); // 11 2327
- data << uint32(0x918) << uint32(0x0); // 12 2328
- data << uint32(0x97b) << uint32(0x32); // 13 2427
- data << uint32(0x97c) << uint32(0x32); // 14 2428
- data << uint32(0x933) << uint32(0x1); // 15 2355
- data << uint32(0x946) << uint32(0x0); // 16 2374
- data << uint32(0x947) << uint32(0x0); // 17 2375
- data << uint32(0x948) << uint32(0x0); // 18 2376
- data << uint32(0x949) << uint32(0x0); // 19 2377
- data << uint32(0x94a) << uint32(0x0); // 20 2378
- data << uint32(0x94b) << uint32(0x0); // 21 2379
- data << uint32(0x932) << uint32(0x0); // 22 2354
- data << uint32(0x934) << uint32(0x0); // 23 2356
- data << uint32(0x935) << uint32(0x0); // 24 2357
- data << uint32(0x936) << uint32(0x0); // 25 2358
- data << uint32(0x937) << uint32(0x0); // 26 2359
- data << uint32(0x938) << uint32(0x0); // 27 2360
- data << uint32(0x939) << uint32(0x1); // 28 2361
- data << uint32(0x930) << uint32(0x1); // 29 2352
- data << uint32(0x93a) << uint32(0x0); // 30 2362
- data << uint32(0x93b) << uint32(0x0); // 31 2363
- data << uint32(0x93c) << uint32(0x0); // 32 2364
- data << uint32(0x93d) << uint32(0x0); // 33 2365
- data << uint32(0x944) << uint32(0x0); // 34 2372
- data << uint32(0x945) << uint32(0x0); // 35 2373
- data << uint32(0x931) << uint32(0x1); // 36 2353
- data << uint32(0x93e) << uint32(0x0); // 37 2366
- data << uint32(0x931) << uint32(0x1); // 38 2367 ?? grey horde not in dbc! send for consistency's sake, and to match field count
- data << uint32(0x940) << uint32(0x0); // 39 2368
- data << uint32(0x941) << uint32(0x0); // 7 2369
- data << uint32(0x942) << uint32(0x0); // 8 2370
- data << uint32(0x943) << uint32(0x0); // 9 2371
- }
- break;
case 1377: // Silithus
if (pvp && pvp->GetTypeId() == OUTDOOR_PVP_SI)
pvp->FillInitialWorldStates(data);
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.h b/src/server/game/OutdoorPvP/OutdoorPvP.h
index 6ea13d353c5..d2f1362dc82 100755
--- a/src/server/game/OutdoorPvP/OutdoorPvP.h
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.h
@@ -31,10 +31,9 @@ enum OutdoorPvPTypes
OUTDOOR_PVP_TF = 3,
OUTDOOR_PVP_ZM = 4,
OUTDOOR_PVP_SI = 5,
- OUTDOOR_PVP_EP = 6,
};
-#define MAX_OUTDOORPVP_TYPES 7
+#define MAX_OUTDOORPVP_TYPES 6
enum ObjectiveStates
{
diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp
index 5e6caec1f29..e7d203c9bc1 100755
--- a/src/server/game/Scripting/ScriptLoader.cpp
+++ b/src/server/game/Scripting/ScriptLoader.cpp
@@ -593,7 +593,6 @@ void AddSC_zangarmarsh();
// battlegrounds
// outdoor pvp
-void AddSC_outdoorpvp_ep();
void AddSC_outdoorpvp_hp();
void AddSC_outdoorpvp_na();
void AddSC_outdoorpvp_si();
@@ -1224,7 +1223,6 @@ void AddNorthrendScripts()
void AddOutdoorPvPScripts()
{
#ifdef SCRIPTS
- AddSC_outdoorpvp_ep();
AddSC_outdoorpvp_hp();
AddSC_outdoorpvp_na();
AddSC_outdoorpvp_si();
diff --git a/src/server/scripts/OutdoorPvP/CMakeLists.txt b/src/server/scripts/OutdoorPvP/CMakeLists.txt
index 237b974aa9d..15d7dbd7e8d 100644
--- a/src/server/scripts/OutdoorPvP/CMakeLists.txt
+++ b/src/server/scripts/OutdoorPvP/CMakeLists.txt
@@ -17,8 +17,6 @@ set(scripts_STAT_SRCS
OutdoorPvP/OutdoorPvPNA.cpp
OutdoorPvP/OutdoorPvPHP.cpp
OutdoorPvP/OutdoorPvPTF.h
- OutdoorPvP/OutdoorPvPEP.h
- OutdoorPvP/OutdoorPvPEP.cpp
OutdoorPvP/OutdoorPvPHP.h
OutdoorPvP/OutdoorPvPZM.h
OutdoorPvP/OutdoorPvPNA.h
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
deleted file mode 100755
index 2a94ddb3134..00000000000
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp
+++ /dev/null
@@ -1,785 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ScriptMgr.h"
-#include "OutdoorPvPEP.h"
-#include "WorldPacket.h"
-#include "Player.h"
-#include "GameObject.h"
-#include "ObjectMgr.h"
-#include "ObjectAccessor.h"
-#include "OutdoorPvPMgr.h"
-#include "Creature.h"
-#include "Language.h"
-#include "World.h"
-#include "GossipDef.h"
-
-OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT(OutdoorPvP* pvp)
-: OPvPCapturePoint(pvp), m_TowerState(EP_TS_N), m_UnitsSummonedSide(0)
-{
- SetCapturePointData(EPCapturePoints[EP_EWT].entry, EPCapturePoints[EP_EWT].map, EPCapturePoints[EP_EWT].x, EPCapturePoints[EP_EWT].y, EPCapturePoints[EP_EWT].z, EPCapturePoints[EP_EWT].o, EPCapturePoints[EP_EWT].rot0, EPCapturePoints[EP_EWT].rot1, EPCapturePoints[EP_EWT].rot2, EPCapturePoints[EP_EWT].rot3);
- AddObject(EP_EWT_FLAGS, EPTowerFlags[EP_EWT].entry, EPTowerFlags[EP_EWT].map, EPTowerFlags[EP_EWT].x, EPTowerFlags[EP_EWT].y, EPTowerFlags[EP_EWT].z, EPTowerFlags[EP_EWT].o, EPTowerFlags[EP_EWT].rot0, EPTowerFlags[EP_EWT].rot1, EPTowerFlags[EP_EWT].rot2, EPTowerFlags[EP_EWT].rot3);
-}
-
-void OPvPCapturePointEP_EWT::ChangeState()
-{
- // if changing from controlling alliance to horde or vice versa
- if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_A));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, 0);
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_EWT_H));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, 0);
- }
-
- uint32 artkit = 21;
-
- switch (m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- m_TowerState = EP_TS_A;
- artkit = 2;
- SummonSupportUnitAtNorthpassTower(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, ALLIANCE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- m_TowerState = EP_TS_H;
- artkit = 1;
- SummonSupportUnitAtNorthpassTower(HORDE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_EWT, HORDE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_EWT_FLAGS]);
- if (flag)
- {
- flag->SetGoArtKit(artkit);
- }
- if (flag2)
- {
- flag2->SetGoArtKit(artkit);
- }
-
- UpdateTowerState();
-
- // complete quest objective
- if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_EWT_CM, 0);
-}
-
-void OPvPCapturePointEP_EWT::SendChangePhase()
-{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
-}
-
-void OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPacket &data)
-{
- data << EP_EWT_A << uint32(bool(m_TowerState & EP_TS_A));
- data << EP_EWT_H << uint32(bool(m_TowerState & EP_TS_H));
- data << EP_EWT_N_A << uint32(bool(m_TowerState & EP_TS_N_A));
- data << EP_EWT_N_H << uint32(bool(m_TowerState & EP_TS_N_H));
- data << EP_EWT_N << uint32(bool(m_TowerState & EP_TS_N));
-}
-
-void OPvPCapturePointEP_EWT::UpdateTowerState()
-{
- m_PvP->SendUpdateWorldState(EP_EWT_A, bool(m_TowerState & EP_TS_A));
- m_PvP->SendUpdateWorldState(EP_EWT_H, bool(m_TowerState & EP_TS_H));
- m_PvP->SendUpdateWorldState(EP_EWT_N_A, bool(m_TowerState & EP_TS_N_A));
- m_PvP->SendUpdateWorldState(EP_EWT_N_H, bool(m_TowerState & EP_TS_N_H));
- m_PvP->SendUpdateWorldState(EP_EWT_N, bool(m_TowerState & EP_TS_N));
-}
-
-bool OPvPCapturePointEP_EWT::HandlePlayerEnter(Player* player)
-{
- if (OPvPCapturePoint::HandlePlayerEnter(player))
- {
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
- return true;
- }
- return false;
-}
-
-void OPvPCapturePointEP_EWT::HandlePlayerLeave(Player* player)
-{
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
- OPvPCapturePoint::HandlePlayerLeave(player);
-}
-
-void OPvPCapturePointEP_EWT::SummonSupportUnitAtNorthpassTower(uint32 team)
-{
- if (m_UnitsSummonedSide != team)
- {
- m_UnitsSummonedSide = team;
- const creature_type * ct = NULL;
- if (team == ALLIANCE)
- ct=EP_EWT_Summons_A;
- else
- ct=EP_EWT_Summons_H;
-
- for (uint8 i = 0; i < EP_EWT_NUM_CREATURES; ++i)
- {
- DelCreature(i);
- AddCreature(i, ct[i].entry, ct[i].teamval, ct[i].map, ct[i].x, ct[i].y, ct[i].z, ct[i].o, 1000000);
- }
- }
-}
-
-// NPT
-OPvPCapturePointEP_NPT::OPvPCapturePointEP_NPT(OutdoorPvP* pvp)
-: OPvPCapturePoint(pvp), m_TowerState(EP_TS_N), m_SummonedGOSide(0)
-{
- SetCapturePointData(EPCapturePoints[EP_NPT].entry, EPCapturePoints[EP_NPT].map, EPCapturePoints[EP_NPT].x, EPCapturePoints[EP_NPT].y, EPCapturePoints[EP_NPT].z, EPCapturePoints[EP_NPT].o, EPCapturePoints[EP_NPT].rot0, EPCapturePoints[EP_NPT].rot1, EPCapturePoints[EP_NPT].rot2, EPCapturePoints[EP_NPT].rot3);
- AddObject(EP_NPT_FLAGS, EPTowerFlags[EP_NPT].entry, EPTowerFlags[EP_NPT].map, EPTowerFlags[EP_NPT].x, EPTowerFlags[EP_NPT].y, EPTowerFlags[EP_NPT].z, EPTowerFlags[EP_NPT].o, EPTowerFlags[EP_NPT].rot0, EPTowerFlags[EP_NPT].rot1, EPTowerFlags[EP_NPT].rot2, EPTowerFlags[EP_NPT].rot3);
-}
-
-void OPvPCapturePointEP_NPT::ChangeState()
-{
- // if changing from controlling alliance to horde or vice versa
- if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_NPT_A));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0);
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_NPT_H));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0);
- }
-
- uint32 artkit = 21;
-
- switch (m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- m_TowerState = EP_TS_A;
- artkit = 2;
- SummonGO(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, ALLIANCE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- m_TowerState = EP_TS_H;
- artkit = 1;
- SummonGO(HORDE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, HORDE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- m_SummonedGOSide = 0;
- DelObject(EP_NPT_BUFF);
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- m_SummonedGOSide = 0;
- DelObject(EP_NPT_BUFF);
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- m_SummonedGOSide = 0;
- DelObject(EP_NPT_BUFF);
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);
- if (flag)
- {
- flag->SetGoArtKit(artkit);
- }
- if (flag2)
- {
- flag2->SetGoArtKit(artkit);
- }
-
- UpdateTowerState();
-
- // complete quest objective
- if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_NPT_CM, 0);
-}
-
-void OPvPCapturePointEP_NPT::SendChangePhase()
-{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
-}
-
-void OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPacket &data)
-{
- data << EP_NPT_A << uint32(bool(m_TowerState & EP_TS_A));
- data << EP_NPT_H << uint32(bool(m_TowerState & EP_TS_H));
- data << EP_NPT_N_A << uint32(bool(m_TowerState & EP_TS_N_A));
- data << EP_NPT_N_H << uint32(bool(m_TowerState & EP_TS_N_H));
- data << EP_NPT_N << uint32(bool(m_TowerState & EP_TS_N));
-}
-
-void OPvPCapturePointEP_NPT::UpdateTowerState()
-{
- m_PvP->SendUpdateWorldState(EP_NPT_A, bool(m_TowerState & EP_TS_A));
- m_PvP->SendUpdateWorldState(EP_NPT_H, bool(m_TowerState & EP_TS_H));
- m_PvP->SendUpdateWorldState(EP_NPT_N_A, bool(m_TowerState & EP_TS_N_A));
- m_PvP->SendUpdateWorldState(EP_NPT_N_H, bool(m_TowerState & EP_TS_N_H));
- m_PvP->SendUpdateWorldState(EP_NPT_N, bool(m_TowerState & EP_TS_N));
-}
-
-bool OPvPCapturePointEP_NPT::HandlePlayerEnter(Player* player)
-{
- if (OPvPCapturePoint::HandlePlayerEnter(player))
- {
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
- return true;
- }
- return false;
-}
-
-void OPvPCapturePointEP_NPT::HandlePlayerLeave(Player* player)
-{
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
- OPvPCapturePoint::HandlePlayerLeave(player);
-}
-
-void OPvPCapturePointEP_NPT::SummonGO(uint32 team)
-{
- if (m_SummonedGOSide != team)
- {
- m_SummonedGOSide = team;
- DelObject(EP_NPT_BUFF);
- AddObject(EP_NPT_BUFF, EP_NPT_LordaeronShrine.entry, EP_NPT_LordaeronShrine.map, EP_NPT_LordaeronShrine.x, EP_NPT_LordaeronShrine.y, EP_NPT_LordaeronShrine.z, EP_NPT_LordaeronShrine.o, EP_NPT_LordaeronShrine.rot0, EP_NPT_LordaeronShrine.rot1, EP_NPT_LordaeronShrine.rot2, EP_NPT_LordaeronShrine.rot3);
- GameObject* go = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_BUFF]);
- if (go)
- go->SetUInt32Value(GAMEOBJECT_FACTION, (team == ALLIANCE ? 84 : 83));
- }
-}
-
-// CGT
-OPvPCapturePointEP_CGT::OPvPCapturePointEP_CGT(OutdoorPvP* pvp)
-: OPvPCapturePoint(pvp), m_TowerState(EP_TS_N), m_GraveyardSide(0)
-{
- SetCapturePointData(EPCapturePoints[EP_CGT].entry, EPCapturePoints[EP_CGT].map, EPCapturePoints[EP_CGT].x, EPCapturePoints[EP_CGT].y, EPCapturePoints[EP_CGT].z, EPCapturePoints[EP_CGT].o, EPCapturePoints[EP_CGT].rot0, EPCapturePoints[EP_CGT].rot1, EPCapturePoints[EP_CGT].rot2, EPCapturePoints[EP_CGT].rot3);
- AddObject(EP_CGT_FLAGS, EPTowerFlags[EP_CGT].entry, EPTowerFlags[EP_CGT].map, EPTowerFlags[EP_CGT].x, EPTowerFlags[EP_CGT].y, EPTowerFlags[EP_CGT].z, EPTowerFlags[EP_CGT].o, EPTowerFlags[EP_CGT].rot0, EPTowerFlags[EP_CGT].rot1, EPTowerFlags[EP_CGT].rot2, EPTowerFlags[EP_CGT].rot3);
-}
-
-void OPvPCapturePointEP_CGT::ChangeState()
-{
- // if changing from controlling alliance to horde or vice versa
- if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_CGT_A));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, 0);
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_CGT_H));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, 0);
- }
-
- uint32 artkit = 21;
-
- switch (m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- m_TowerState = EP_TS_A;
- artkit = 2;
- LinkGraveYard(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, ALLIANCE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- m_TowerState = EP_TS_H;
- artkit = 1;
- LinkGraveYard(HORDE);
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_CGT, HORDE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_CGT_FLAGS]);
- if (flag)
- {
- flag->SetGoArtKit(artkit);
- }
- if (flag2)
- {
- flag2->SetGoArtKit(artkit);
- }
-
- UpdateTowerState();
-
- // complete quest objective
- if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_CGT_CM, 0);
-}
-
-void OPvPCapturePointEP_CGT::SendChangePhase()
-{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
-}
-
-void OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPacket &data)
-{
- data << EP_CGT_A << uint32(bool(m_TowerState & EP_TS_A));
- data << EP_CGT_H << uint32(bool(m_TowerState & EP_TS_H));
- data << EP_CGT_N_A << uint32(bool(m_TowerState & EP_TS_N_A));
- data << EP_CGT_N_H << uint32(bool(m_TowerState & EP_TS_N_H));
- data << EP_CGT_N << uint32(bool(m_TowerState & EP_TS_N));
-}
-
-void OPvPCapturePointEP_CGT::UpdateTowerState()
-{
- m_PvP->SendUpdateWorldState(EP_CGT_A, bool(m_TowerState & EP_TS_A));
- m_PvP->SendUpdateWorldState(EP_CGT_H, bool(m_TowerState & EP_TS_H));
- m_PvP->SendUpdateWorldState(EP_CGT_N_A, bool(m_TowerState & EP_TS_N_A));
- m_PvP->SendUpdateWorldState(EP_CGT_N_H, bool(m_TowerState & EP_TS_N_H));
- m_PvP->SendUpdateWorldState(EP_CGT_N, bool(m_TowerState & EP_TS_N));
-}
-
-bool OPvPCapturePointEP_CGT::HandlePlayerEnter(Player* player)
-{
- if (OPvPCapturePoint::HandlePlayerEnter(player))
- {
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
- return true;
- }
- return false;
-}
-
-void OPvPCapturePointEP_CGT::HandlePlayerLeave(Player* player)
-{
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
- OPvPCapturePoint::HandlePlayerLeave(player);
-}
-
-void OPvPCapturePointEP_CGT::LinkGraveYard(uint32 team)
-{
- if (m_GraveyardSide != team)
- {
- m_GraveyardSide = team;
- sObjectMgr->RemoveGraveYardLink(EP_GraveYardId, EP_GraveYardZone, team, false);
- sObjectMgr->AddGraveYardLink(EP_GraveYardId, EP_GraveYardZone, team, false);
- }
-}
-
-// PWT
-OPvPCapturePointEP_PWT::OPvPCapturePointEP_PWT(OutdoorPvP* pvp)
-: OPvPCapturePoint(pvp), m_FlightMasterSpawned(0), m_TowerState(EP_TS_N)
-{
- SetCapturePointData(EPCapturePoints[EP_PWT].entry, EPCapturePoints[EP_PWT].map, EPCapturePoints[EP_PWT].x, EPCapturePoints[EP_PWT].y, EPCapturePoints[EP_PWT].z, EPCapturePoints[EP_PWT].o, EPCapturePoints[EP_PWT].rot0, EPCapturePoints[EP_PWT].rot1, EPCapturePoints[EP_PWT].rot2, EPCapturePoints[EP_PWT].rot3);
- AddObject(EP_PWT_FLAGS, EPTowerFlags[EP_PWT].entry, EPTowerFlags[EP_PWT].map, EPTowerFlags[EP_PWT].x, EPTowerFlags[EP_PWT].y, EPTowerFlags[EP_PWT].z, EPTowerFlags[EP_PWT].o, EPTowerFlags[EP_PWT].rot0, EPTowerFlags[EP_PWT].rot1, EPTowerFlags[EP_PWT].rot2, EPTowerFlags[EP_PWT].rot3);
-}
-
-void OPvPCapturePointEP_PWT::ChangeState()
-{
- // if changing from controlling alliance to horde or vice versa
- if ( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_PWT_A));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, 0);
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOSE_PWT_H));
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, 0);
- }
-
- uint32 artkit = 21;
-
- switch (m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- m_TowerState = EP_TS_A;
- SummonFlightMaster(ALLIANCE);
- artkit = 2;
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, ALLIANCE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- m_TowerState = EP_TS_H;
- SummonFlightMaster(HORDE);
- artkit = 1;
- ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_PWT, HORDE);
- if (m_OldState != m_State) sWorld->SendZoneText(EP_GraveYardZone, sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- DelCreature(EP_PWT_FLIGHTMASTER);
- m_FlightMasterSpawned = 0;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- DelCreature(EP_PWT_FLIGHTMASTER);
- m_FlightMasterSpawned = 0;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- DelCreature(EP_PWT_FLIGHTMASTER);
- m_FlightMasterSpawned = 0;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_PWT_FLAGS]);
- if (flag)
- {
- flag->SetGoArtKit(artkit);
- }
- if (flag2)
- {
- flag2->SetGoArtKit(artkit);
- }
-
- UpdateTowerState();
-
- // complete quest objective
- if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_PWT_CM, 0);
-}
-
-void OPvPCapturePointEP_PWT::SendChangePhase()
-{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
-}
-
-void OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPacket &data)
-{
- data << EP_PWT_A << uint32(bool(m_TowerState & EP_TS_A));
- data << EP_PWT_H << uint32(bool(m_TowerState & EP_TS_H));
- data << EP_PWT_N_A << uint32(bool(m_TowerState & EP_TS_N_A));
- data << EP_PWT_N_H << uint32(bool(m_TowerState & EP_TS_N_H));
- data << EP_PWT_N << uint32(bool(m_TowerState & EP_TS_N));
-}
-
-void OPvPCapturePointEP_PWT::UpdateTowerState()
-{
- m_PvP->SendUpdateWorldState(EP_PWT_A, bool(m_TowerState & EP_TS_A));
- m_PvP->SendUpdateWorldState(EP_PWT_H, bool(m_TowerState & EP_TS_H));
- m_PvP->SendUpdateWorldState(EP_PWT_N_A, bool(m_TowerState & EP_TS_N_A));
- m_PvP->SendUpdateWorldState(EP_PWT_N_H, bool(m_TowerState & EP_TS_N_H));
- m_PvP->SendUpdateWorldState(EP_PWT_N, bool(m_TowerState & EP_TS_N));
-}
-
-bool OPvPCapturePointEP_PWT::HandlePlayerEnter(Player* player)
-{
- if (OPvPCapturePoint::HandlePlayerEnter(player))
- {
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- uint32 phase = (uint32)ceil((m_value + m_maxValue) / (2 * m_maxValue) * 100.0f);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_neutralValuePct);
- return true;
- }
- return false;
-}
-
-void OPvPCapturePointEP_PWT::HandlePlayerLeave(Player* player)
-{
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
- OPvPCapturePoint::HandlePlayerLeave(player);
-}
-
-void OPvPCapturePointEP_PWT::SummonFlightMaster(uint32 team)
-{
- if (m_FlightMasterSpawned != team)
- {
- m_FlightMasterSpawned = team;
- DelCreature(EP_PWT_FLIGHTMASTER);
- AddCreature(EP_PWT_FLIGHTMASTER, EP_PWT_FlightMaster.entry, team, EP_PWT_FlightMaster.map, EP_PWT_FlightMaster.x, EP_PWT_FlightMaster.y, EP_PWT_FlightMaster.z, EP_PWT_FlightMaster.o);
- /*
- // sky - we need update gso code
-
- Creature* c = HashMapHolder<Creature>::Find(m_Creatures[EP_PWT_FLIGHTMASTER]);
- //Spawn flight master as friendly to capturing team
- c->SetUInt32Value(GAMEOBJECT_FACTION, (team == ALLIANCE ? 55 : 68));
- if (c)
- {
- GossipOption gso;
- gso.Action = GOSSIP_OPTION_OUTDOORPVP;
- gso.GossipId = 0;
- gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_NPT));
- gso.Id = 50;
- gso.Icon = 0;
- gso.NpcFlag = 0;
- gso.BoxMoney = 0;
- gso.Coded = false;
- c->addGossipOption(gso);
-
- gso.Action = GOSSIP_OPTION_OUTDOORPVP;
- gso.GossipId = 0;
- gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_EWT));
- gso.Id = 50;
- gso.Icon = 0;
- gso.NpcFlag = 0;
- gso.BoxMoney = 0;
- gso.Coded = false;
- c->addGossipOption(gso);
-
- gso.Action = GOSSIP_OPTION_OUTDOORPVP;
- gso.GossipId = 0;
- gso.OptionText.assign(sObjectMgr->GetTrinityStringForDBCLocale(LANG_OPVP_EP_FLIGHT_CGT));
- gso.Id = 50;
- gso.Icon = 0;
- gso.NpcFlag = 0;
- gso.BoxMoney = 0;
- gso.Coded = false;
- c->addGossipOption(gso);
- }
- */
- }
-}
-
-// ep
-OutdoorPvPEP::OutdoorPvPEP()
-{
- m_TypeId = OUTDOOR_PVP_EP;
- memset(EP_Controls, 0, sizeof(EP_Controls));
- m_AllianceTowersControlled = 0;
- m_HordeTowersControlled = 0;
-}
-
-bool OutdoorPvPEP::SetupOutdoorPvP()
-{
- for (uint8 i = 0; i < EPBuffZonesNum; ++i)
- RegisterZone(EPBuffZones[i]);
-
- AddCapturePoint(new OPvPCapturePointEP_EWT(this));
- AddCapturePoint(new OPvPCapturePointEP_PWT(this));
- AddCapturePoint(new OPvPCapturePointEP_CGT(this));
- AddCapturePoint(new OPvPCapturePointEP_NPT(this));
- return true;
-}
-
-bool OutdoorPvPEP::Update(uint32 diff)
-{
- if (OutdoorPvP::Update(diff))
- {
- m_AllianceTowersControlled = 0;
- m_HordeTowersControlled = 0;
- for (int i = 0; i < EP_TOWER_NUM; ++i)
- {
- if (EP_Controls[i] == ALLIANCE)
- ++m_AllianceTowersControlled;
- else if (EP_Controls[i] == HORDE)
- ++m_HordeTowersControlled;
- SendUpdateWorldState(EP_UI_TOWER_COUNT_A, m_AllianceTowersControlled);
- SendUpdateWorldState(EP_UI_TOWER_COUNT_H, m_HordeTowersControlled);
- BuffTeams();
- }
- return true;
- }
- return false;
-}
-
-void OutdoorPvPEP::HandlePlayerEnterZone(Player* player, uint32 zone)
-{
- // add buffs
- if (player->GetTeam() == ALLIANCE)
- {
- if (m_AllianceTowersControlled && m_AllianceTowersControlled < 5)
- player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled-1], true);
- }
- else
- {
- if (m_HordeTowersControlled && m_HordeTowersControlled < 5)
- player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled-1], true);
- }
- OutdoorPvP::HandlePlayerEnterZone(player, zone);
-}
-
-void OutdoorPvPEP::HandlePlayerLeaveZone(Player* player, uint32 zone)
-{
- // remove buffs
- if (player->GetTeam() == ALLIANCE)
- {
- for (int i = 0; i < 4; ++i)
- player->RemoveAurasDueToSpell(EP_AllianceBuffs[i]);
- }
- else
- {
- for (int i = 0; i < 4; ++i)
- player->RemoveAurasDueToSpell(EP_HordeBuffs[i]);
- }
- OutdoorPvP::HandlePlayerLeaveZone(player, zone);
-}
-
-void OutdoorPvPEP::BuffTeams()
-{
- for (PlayerSet::iterator itr = m_players[0].begin(); itr != m_players[0].end(); ++itr)
- {
- Player* player = *itr;
- {
- for (int i = 0; i < 4; ++i)
- player->RemoveAurasDueToSpell(EP_AllianceBuffs[i]);
- if (m_AllianceTowersControlled && m_AllianceTowersControlled < 5)
- player->CastSpell(player, EP_AllianceBuffs[m_AllianceTowersControlled-1], true);
- }
- }
- for (PlayerSet::iterator itr = m_players[1].begin(); itr != m_players[1].end(); ++itr)
- {
- Player* player = *itr;
- {
- for (int i = 0; i < 4; ++i)
- player->RemoveAurasDueToSpell(EP_HordeBuffs[i]);
- if (m_HordeTowersControlled && m_HordeTowersControlled < 5)
- player->CastSpell(player, EP_HordeBuffs[m_HordeTowersControlled-1], true);
- }
- }
-}
-
-void OutdoorPvPEP::SetControlledState(uint32 index, uint32 state)
-{
- EP_Controls[index] = state;
-}
-
-void OutdoorPvPEP::FillInitialWorldStates(WorldPacket & data)
-{
- data << EP_UI_TOWER_COUNT_A << m_AllianceTowersControlled;
- data << EP_UI_TOWER_COUNT_H << m_HordeTowersControlled;
- data << EP_UI_TOWER_SLIDER_DISPLAY << uint32(0);
- data << EP_UI_TOWER_SLIDER_POS << uint32(50);
- data << EP_UI_TOWER_SLIDER_N << uint32(100);
- for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
- {
- itr->second->FillInitialWorldStates(data);
- }
-}
-
-void OutdoorPvPEP::SendRemoveWorldStates(Player* player)
-{
- player->SendUpdateWorldState(EP_UI_TOWER_COUNT_A, 0);
- player->SendUpdateWorldState(EP_UI_TOWER_COUNT_H, 0);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 0);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, 0);
- player->SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, 0);
-
- player->SendUpdateWorldState(EP_EWT_A, 0);
- player->SendUpdateWorldState(EP_EWT_H, 0);
- player->SendUpdateWorldState(EP_EWT_N, 0);
- player->SendUpdateWorldState(EP_EWT_N_A, 0);
- player->SendUpdateWorldState(EP_EWT_N_H, 0);
-
- player->SendUpdateWorldState(EP_PWT_A, 0);
- player->SendUpdateWorldState(EP_PWT_H, 0);
- player->SendUpdateWorldState(EP_PWT_N, 0);
- player->SendUpdateWorldState(EP_PWT_N_A, 0);
- player->SendUpdateWorldState(EP_PWT_N_H, 0);
-
- player->SendUpdateWorldState(EP_NPT_A, 0);
- player->SendUpdateWorldState(EP_NPT_H, 0);
- player->SendUpdateWorldState(EP_NPT_N, 0);
- player->SendUpdateWorldState(EP_NPT_N_A, 0);
- player->SendUpdateWorldState(EP_NPT_N_H, 0);
-
- player->SendUpdateWorldState(EP_CGT_A, 0);
- player->SendUpdateWorldState(EP_CGT_H, 0);
- player->SendUpdateWorldState(EP_CGT_N, 0);
- player->SendUpdateWorldState(EP_CGT_N_A, 0);
- player->SendUpdateWorldState(EP_CGT_N_H, 0);
-}
-
-class OutdoorPvP_eastern_plaguelands : public OutdoorPvPScript
-{
- public:
-
- OutdoorPvP_eastern_plaguelands()
- : OutdoorPvPScript("outdoorpvp_ep")
- {
- }
-
- OutdoorPvP* GetOutdoorPvP() const
- {
- return new OutdoorPvPEP();
- }
-};
-
-void AddSC_outdoorpvp_ep()
-{
- new OutdoorPvP_eastern_plaguelands();
-}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h b/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
deleted file mode 100755
index 14712e0150d..00000000000
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPEP.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef OUTDOOR_PVP_EP_
-#define OUTDOOR_PVP_EP_
-
-#include "DBCStructure.h"
-#include "OutdoorPvP.h"
-
-const uint32 EP_AllianceBuffs[4] = {11413, 11414, 11415, 1386};
-
-const uint32 EP_HordeBuffs[4] = {30880, 30683, 30682, 29520};
-
-const uint32 EP_GraveYardZone = 139;
-
-const uint32 EP_GraveYardId = 927;
-
-const uint8 EPBuffZonesNum = 3;
-
-const uint32 EP_EWT_CM = 17690;
-const uint32 EP_CGT_CM = 17689;
-const uint32 EP_NPT_CM = 17696;
-const uint32 EP_PWT_CM = 17698;
-
-const uint32 EPBuffZones[EPBuffZonesNum] = {139, 2017, 2057};
-
-enum EP_TaxiNodes
-{
- EP_CGT_Taxi = 87,
- EP_EWT_Taxi = 86,
- EP_NPT_Taxi = 85,
- EP_PWT_Taxi = 84
-};
-
-enum EP_EastwallTowerWorldStates
-{
- EP_EWT_A = 2354,
- EP_EWT_H = 2356,
- EP_EWT_N_A = 2359, // ally conquested
- EP_EWT_N_H = 2360,
- EP_EWT_N = 2361
-};
-
-enum EP_NorthpassTowerWorldStates
-{
- EP_NPT_N = 2352,
- EP_NPT_N_A = 2362,
- EP_NPT_N_H = 2363,
- EP_NPT_A = 2372,
- EP_NPT_H = 2373
-};
-
-enum EP_PlagewoodTowerWorldStates
-{
- EP_PWT_N_A = 2366,
- EP_PWT_N_H = 2353, //2367 not present! use neutral!
- EP_PWT_A = 2370,
- EP_PWT_H = 2371,
- EP_PWT_N = 2353
-};
-
-enum EP_CrownGuardTowerWorldStates
-{
- EP_CGT_N_A = 2374,
- EP_CGT_N_H = 2375,
- EP_CGT_A = 2378,
- EP_CGT_H = 2379,
- EP_CGT_N = 2355
-};
-
-enum EP_WorldStates
-{
- EP_UI_TOWER_SLIDER_DISPLAY = 2426,
- EP_UI_TOWER_SLIDER_POS = 2427,
- EP_UI_TOWER_SLIDER_N = 2428,
-
- EP_UI_TOWER_COUNT_A = 2327,
- EP_UI_TOWER_COUNT_H = 2328
-};
-
-enum EP_Summons
-{
- EP_EWT_COMMANDER = 0,
- EP_EWT_SOLDIER1,
- EP_EWT_SOLDIER2,
- EP_EWT_SOLDIER3,
- EP_EWT_SOLDIER4,
- EP_PWT_FLIGHTMASTER,
-};
-
-enum EP_GoSummons
-{
- EP_NPT_BUFF = 0,
- EP_NPT_FLAGS,
- EP_EWT_FLAGS,
- EP_CGT_FLAGS,
- EP_PWT_FLAGS
-};
-
-enum EP_Towers
-{
- EP_EWT = 0, // plaguelands 03
- EP_NPT, // plaguelands 01
- EP_PWT, // plaguelands 04
- EP_CGT, // plaguelands 02
- EP_TOWER_NUM
-};
-
-const go_type EPCapturePoints[EP_TOWER_NUM] =
-{
- {182097, 0, 2574.51f, -4794.89f, 144.704f, -1.45003f, -0.097056f, 0.095578f, -0.656229f, 0.742165f},
- {181899, 0, 3181.08f, -4379.36f, 174.123f, -2.03472f, -0.065392f, 0.119494f, -0.842275f, 0.521553f},
- {182098, 0, 2962.71f, -3042.31f, 154.789f, 2.08426f, -0.074807f, -0.113837f, 0.855928f, 0.49883f},
- {182096, 0, 1860.85f, -3731.23f, 196.716f, -2.53214f, 0.033967f, -0.131914f, 0.944741f, -0.298177f}
-};
-
-const go_type EPTowerFlags[EP_TOWER_NUM] =
-{
- {182106, 0, 2569.60f, -4772.93f, 115.399f, 2.72271f, 0.0f, 0.0f, 0.978148f, 0.207912f},
- {182106, 0, 3148.17f, -4365.51f, 145.029f, 1.53589f, 0.0f, 0.0f, 0.694658f, 0.71934f},
- {182106, 0, 2992.63f, -3022.95f, 125.593f, 3.03687f, 0.0f, 0.0f, 0.99863f, 0.052336f},
- {182106, 0, 1838.42f, -3703.56f, 167.713f, 0.890118f, 0.0f, 0.0f, 0.430511f, 0.902585f}
-};
-
-const uint32 EPTowerPlayerEnterEvents[EP_TOWER_NUM] = {10691, 10699, 10701, 10705};
-
-const uint32 EPTowerPlayerLeaveEvents[EP_TOWER_NUM] = {10692, 10698, 10700, 10704};
-
-const uint8 EP_NUM_CREATURES = 6;
-const uint8 EP_EWT_NUM_CREATURES = 5;
-
-// one lordaeron commander, 4 soldiers
-// should be spawned at EWT and follow a path, but trans-grid pathing isn't safe, so summon them directly at NPT
-const creature_type EP_EWT_Summons_A[EP_EWT_NUM_CREATURES] =
-{
- {17635, 469, 0, 3167.61f, -4352.09f, 138.20f, 4.5811f},
- {17647, 469, 0, 3172.74f, -4352.99f, 139.14f, 4.9873f},
- {17647, 469, 0, 3165.89f, -4354.46f, 138.67f, 3.7244f},
- {17647, 469, 0, 3164.65f, -4350.26f, 138.22f, 2.4794f},
- {17647, 469, 0, 3169.91f, -4349.68f, 138.37f, 0.7444f}
-};
-
-const creature_type EP_EWT_Summons_H[EP_EWT_NUM_CREATURES] =
-{
- {17995, 67, 0, 3167.61f, -4352.09f, 138.20f, 4.5811f},
- {17996, 67, 0, 3172.74f, -4352.99f, 139.14f, 4.9873f},
- {17996, 67, 0, 3165.89f, -4354.46f, 138.67f, 3.7244f},
- {17996, 67, 0, 3164.65f, -4350.26f, 138.22f, 2.4794f},
- {17996, 67, 0, 3169.91f, -4349.68f, 138.37f, 0.7444f}
-};
-
-enum EP_TowerStates
-{
- EP_TS_N = 1,
- EP_TS_N_A = 2,
- EP_TS_N_H = 4,
- EP_TS_A_P = 8,
- EP_TS_H_P = 16,
- EP_TS_A = 32,
- EP_TS_H = 64
-};
-
-// when spawning, pay attention at setting the faction manually!
-const creature_type EP_PWT_FlightMaster = {17209, 0, 0, 2987.5f, -3049.11f, 120.126f, 5.75959f};
-
-// after spawning, modify the faction so that only the controller will be able to use it with SetUInt32Value(GAMEOBJECT_FACTION, faction_id);
-const go_type EP_NPT_LordaeronShrine = {181682, 0, 3167.72f, -4355.91f, 138.785f, 1.69297f, 0.0f, 0.0f, 0.748956f, 0.66262f};
-
-class OutdoorPvPEP;
-
-class OPvPCapturePointEP_EWT : public OPvPCapturePoint
-{
- public:
-
- OPvPCapturePointEP_EWT(OutdoorPvP* pvp);
-
- void ChangeState();
-
- void SendChangePhase();
-
- void FillInitialWorldStates(WorldPacket & data);
-
- // used when player is activated/inactivated in the area
- bool HandlePlayerEnter(Player* player);
- void HandlePlayerLeave(Player* player);
-
- protected:
-
- void SummonSupportUnitAtNorthpassTower(uint32 team);
-
- void UpdateTowerState();
-
- protected:
-
- uint32 m_TowerState;
-
- uint32 m_UnitsSummonedSide;
-};
-
-class OPvPCapturePointEP_NPT : public OPvPCapturePoint
-{
- public:
-
- OPvPCapturePointEP_NPT(OutdoorPvP* pvp);
-
- void ChangeState();
-
- void SendChangePhase();
-
- void FillInitialWorldStates(WorldPacket & data);
-
- // used when player is activated/inactivated in the area
- bool HandlePlayerEnter(Player* player);
- void HandlePlayerLeave(Player* player);
-
- protected:
-
- void SummonGO(uint32 team);
-
- void UpdateTowerState();
-
- protected:
-
- uint32 m_TowerState;
-
- uint32 m_SummonedGOSide;
-};
-
-class OPvPCapturePointEP_CGT : public OPvPCapturePoint
-{
- public:
-
- OPvPCapturePointEP_CGT(OutdoorPvP* pvp);
-
- void ChangeState();
-
- void SendChangePhase();
-
- void FillInitialWorldStates(WorldPacket & data);
-
- // used when player is activated/inactivated in the area
- bool HandlePlayerEnter(Player* player);
- void HandlePlayerLeave(Player* player);
-
- protected:
-
- void LinkGraveYard(uint32 team);
-
- void UpdateTowerState();
-
- protected:
-
- uint32 m_TowerState;
-
- uint32 m_GraveyardSide;
-};
-
-class OPvPCapturePointEP_PWT : public OPvPCapturePoint
-{
- public:
-
- OPvPCapturePointEP_PWT(OutdoorPvP* pvp);
-
- void ChangeState();
-
- void SendChangePhase();
-
- void FillInitialWorldStates(WorldPacket & data);
-
- // used when player is activated/inactivated in the area
- bool HandlePlayerEnter(Player* player);
- void HandlePlayerLeave(Player* player);
-
- protected:
-
- void SummonFlightMaster(uint32 team);
-
- void UpdateTowerState();
-
- protected:
-
- uint32 m_FlightMasterSpawned;
-
- uint32 m_TowerState;
-};
-
-class OutdoorPvPEP : public OutdoorPvP
-{
- public:
-
- OutdoorPvPEP();
-
- bool SetupOutdoorPvP();
-
- void HandlePlayerEnterZone(Player* player, uint32 zone);
- void HandlePlayerLeaveZone(Player* player, uint32 zone);
-
- bool Update(uint32 diff);
-
- void FillInitialWorldStates(WorldPacket &data);
-
- void SendRemoveWorldStates(Player* player);
-
- void BuffTeams();
-
- void SetControlledState(uint32 index, uint32 state);
-
- private:
-
- // how many towers are controlled
- uint32 EP_Controls[EP_TOWER_NUM];
-
- uint32 m_AllianceTowersControlled;
- uint32 m_HordeTowersControlled;
-};
-
-#endif