diff options
Diffstat (limited to 'src/game/BattleGroundDS.cpp')
| -rw-r--r-- | src/game/BattleGroundDS.cpp | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/game/BattleGroundDS.cpp b/src/game/BattleGroundDS.cpp deleted file mode 100644 index 9036ef83f93..00000000000 --- a/src/game/BattleGroundDS.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "BattleGround.h" -#include "BattleGroundDS.h" -#include "Language.h" -#include "Player.h" -#include "Object.h" -#include "ObjectMgr.h" -#include "WorldPacket.h" - -BattleGroundDS::BattleGroundDS() -{ - m_BgObjects.resize(BG_DS_OBJECT_MAX); - - m_StartDelayTimes[BG_STARTING_EVENT_FIRST] = BG_START_DELAY_1M; - m_StartDelayTimes[BG_STARTING_EVENT_SECOND] = BG_START_DELAY_30S; - m_StartDelayTimes[BG_STARTING_EVENT_THIRD] = BG_START_DELAY_15S; - m_StartDelayTimes[BG_STARTING_EVENT_FOURTH] = BG_START_DELAY_NONE; - //we must set messageIds - m_StartMessageIds[BG_STARTING_EVENT_FIRST] = LANG_ARENA_ONE_MINUTE; - m_StartMessageIds[BG_STARTING_EVENT_SECOND] = LANG_ARENA_THIRTY_SECONDS; - m_StartMessageIds[BG_STARTING_EVENT_THIRD] = LANG_ARENA_FIFTEEN_SECONDS; - m_StartMessageIds[BG_STARTING_EVENT_FOURTH] = LANG_ARENA_HAS_BEGUN; -} - -BattleGroundDS::~BattleGroundDS() -{ - -} - -void BattleGroundDS::Update(uint32 diff) -{ - BattleGround::Update(diff); - if (getWaterFallTimer() < diff) - { - if (isWaterFallActive()) - { - setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); - for (uint32 i = BG_DS_OBJECT_WATER_1; i <= BG_DS_OBJECT_WATER_2; ++i) - SpawnBGObject(i, getWaterFallTimer()); - setWaterFallActive(false); - } - else - { - setWaterFallTimer(BG_DS_WATERFALL_DURATION); - for (uint32 i = BG_DS_OBJECT_WATER_1; i <= BG_DS_OBJECT_WATER_2; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); - setWaterFallActive(true); - } - } - else - setWaterFallTimer(getWaterFallTimer() - diff); -} - -void BattleGroundDS::StartingEventCloseDoors() -{ - for (uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) - SpawnBGObject(i, RESPAWN_IMMEDIATELY); -} - -void BattleGroundDS::StartingEventOpenDoors() -{ - for (uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) - DoorOpen(i); - - for (uint32 i = BG_DS_OBJECT_BUFF_1; i <= BG_DS_OBJECT_BUFF_2; ++i) - SpawnBGObject(i, 60); - - setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); - setWaterFallActive(false); - - for (uint32 i = BG_DS_OBJECT_WATER_1; i <= BG_DS_OBJECT_WATER_2; ++i) - SpawnBGObject(i, getWaterFallTimer()); -} - -void BattleGroundDS::AddPlayer(Player *plr) -{ - BattleGround::AddPlayer(plr); - //create score and add it to map, default values are set in constructor - BattleGroundDSScore* sc = new BattleGroundDSScore; - - m_PlayerScores[plr->GetGUID()] = sc; - - UpdateArenaWorldState(); -} - -void BattleGroundDS::RemovePlayer(Player * /*plr*/, uint64 /*guid*/) -{ - if (GetStatus() == STATUS_WAIT_LEAVE) - return; - - UpdateArenaWorldState(); - CheckArenaWinConditions(); -} - -void BattleGroundDS::HandleKillPlayer(Player* player, Player* killer) -{ - if (GetStatus() != STATUS_IN_PROGRESS) - return; - - if (!killer) - { - sLog.outError("BattleGroundDS: Killer player not found"); - return; - } - - BattleGround::HandleKillPlayer(player,killer); - - UpdateArenaWorldState(); - CheckArenaWinConditions(); -} - -void BattleGroundDS::HandleAreaTrigger(Player *Source, uint32 Trigger) -{ - if (GetStatus() != STATUS_IN_PROGRESS) - return; - - switch(Trigger) - { - case 5347: - case 5348: - break; - default: - sLog.outError("WARNING: Unhandled AreaTrigger in Battleground: %u", Trigger); - Source->GetSession()->SendAreaTriggerMessage("Warning: Unhandled AreaTrigger in Battleground: %u", Trigger); - break; - } -} - -bool BattleGroundDS::HandlePlayerUnderMap(Player *player) -{ - player->TeleportTo(GetMapId(), 1299.046, 784.825, 9.338, 2.422, false); - return true; -} - -void BattleGroundDS::FillInitialWorldStates(WorldPacket &data) -{ - data << uint32(3610) << uint32(1); // 9 show - UpdateArenaWorldState(); -} - -void BattleGroundDS::Reset() -{ - //call parent's class reset - BattleGround::Reset(); -} - - -bool BattleGroundDS::SetupBattleGround() -{ - // gates - if (!AddObject(BG_DS_OBJECT_DOOR_1, BG_DS_OBJECT_TYPE_DOOR_1, 1350.95, 817.2, 20.8096, 3.15, 0, 0, 0.99627, 0.0862864, RESPAWN_IMMEDIATELY) - || !AddObject(BG_DS_OBJECT_DOOR_2, BG_DS_OBJECT_TYPE_DOOR_2, 1232.65, 764.913, 20.0729, 6.3, 0, 0, 0.0310211, -0.999519, RESPAWN_IMMEDIATELY) - // water - || !AddObject(BG_DS_OBJECT_WATER_1, BG_DS_OBJECT_TYPE_WATER_1, 1291.56, 790.837, 7.1, 3.14238, 0, 0, 0.694215, -0.719768, 120) - || !AddObject(BG_DS_OBJECT_WATER_2, BG_DS_OBJECT_TYPE_WATER_2, 1291.56, 790.837, 7.1, 3.14238, 0, 0, 0.694215, -0.719768, 120) - // buffs - || !AddObject(BG_DS_OBJECT_BUFF_1, BG_DS_OBJECT_TYPE_BUFF_1, 1291.7, 813.424, 7.11472, 4.64562, 0, 0, 0.730314, -0.683111, 120) - || !AddObject(BG_DS_OBJECT_BUFF_2, BG_DS_OBJECT_TYPE_BUFF_2, 1291.7, 768.911, 7.11472, 1.55194, 0, 0, 0.700409, 0.713742, 120)) - { - sLog.outErrorDb("BatteGroundDS: Failed to spawn some object!"); - return false; - } - - return true; -} |
