mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-27 07:36:23 +00:00
converted all tabs to 4 spaces
This commit is contained in:
@@ -75,30 +75,30 @@ Battlefield::~Battlefield()
|
||||
// Called when a player enters the zone
|
||||
void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/)
|
||||
{
|
||||
// Xinef: do not invite players on taxi
|
||||
if (!player->IsInFlight())
|
||||
{
|
||||
// If battle is started,
|
||||
// If not full of players > invite player to join the war
|
||||
// If full of players > announce to player that BF is full and kick him after a few second if he desn't leave
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_PlayersInWar[player->GetTeamId()].size() + m_InvitedPlayers[player->GetTeamId()].size() < m_MaxPlayer) // Vacant spaces
|
||||
InvitePlayerToWar(player);
|
||||
else // No more vacant places
|
||||
{
|
||||
// TODO: Send a packet to announce it to player
|
||||
m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = time(NULL) + (player->IsGameMaster() ? 30*MINUTE : 10);
|
||||
InvitePlayerToQueue(player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If time left is < 15 minutes invite player to join queue
|
||||
if (m_Timer <= m_StartGroupingTimer)
|
||||
InvitePlayerToQueue(player);
|
||||
}
|
||||
}
|
||||
// Xinef: do not invite players on taxi
|
||||
if (!player->IsInFlight())
|
||||
{
|
||||
// If battle is started,
|
||||
// If not full of players > invite player to join the war
|
||||
// If full of players > announce to player that BF is full and kick him after a few second if he desn't leave
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_PlayersInWar[player->GetTeamId()].size() + m_InvitedPlayers[player->GetTeamId()].size() < m_MaxPlayer) // Vacant spaces
|
||||
InvitePlayerToWar(player);
|
||||
else // No more vacant places
|
||||
{
|
||||
// TODO: Send a packet to announce it to player
|
||||
m_PlayersWillBeKick[player->GetTeamId()][player->GetGUID()] = time(NULL) + (player->IsGameMaster() ? 30*MINUTE : 10);
|
||||
InvitePlayerToQueue(player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If time left is < 15 minutes invite player to join queue
|
||||
if (m_Timer <= m_StartGroupingTimer)
|
||||
InvitePlayerToQueue(player);
|
||||
}
|
||||
}
|
||||
|
||||
// Add player in the list of player in zone
|
||||
m_players[player->GetTeamId()].insert(player->GetGUID());
|
||||
@@ -116,8 +116,8 @@ void Battlefield::HandlePlayerLeaveZone(Player* player, uint32 /*zone*/)
|
||||
m_PlayersInWar[player->GetTeamId()].erase(player->GetGUID());
|
||||
player->GetSession()->SendBfLeaveMessage(m_BattleId);
|
||||
if (Group* group = player->GetGroup()) // Remove the player from the raid group
|
||||
if (group->isBFGroup())
|
||||
group->RemoveMember(player->GetGUID());
|
||||
if (group->isBFGroup())
|
||||
group->RemoveMember(player->GetGUID());
|
||||
|
||||
OnPlayerLeaveWar(player);
|
||||
}
|
||||
@@ -138,12 +138,12 @@ bool Battlefield::Update(uint32 diff)
|
||||
{
|
||||
if (m_Timer <= diff)
|
||||
{
|
||||
if (!IsEnabled() || (!IsWarTime() && sWorld->GetActiveSessionCount() > 3500)) // if WG is disabled or there is more than 3500 connections, switch automaticly
|
||||
{
|
||||
m_isActive = true;
|
||||
EndBattle(false);
|
||||
return false;
|
||||
}
|
||||
if (!IsEnabled() || (!IsWarTime() && sWorld->GetActiveSessionCount() > 3500)) // if WG is disabled or there is more than 3500 connections, switch automaticly
|
||||
{
|
||||
m_isActive = true;
|
||||
EndBattle(false);
|
||||
return false;
|
||||
}
|
||||
// Battlefield ends on time
|
||||
if (IsWarTime())
|
||||
EndBattle(true);
|
||||
@@ -153,8 +153,8 @@ bool Battlefield::Update(uint32 diff)
|
||||
else
|
||||
m_Timer -= diff;
|
||||
|
||||
if (!IsEnabled())
|
||||
return false;
|
||||
if (!IsEnabled())
|
||||
return false;
|
||||
|
||||
// Invite players a few minutes before the battle's beginning
|
||||
if (!IsWarTime() && !m_StartGrouping && m_Timer <= m_StartGroupingTimer)
|
||||
@@ -466,7 +466,7 @@ void Battlefield::SendWarningToAllInZone(uint32 entry)
|
||||
{
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(StalkerGuid))
|
||||
if (Creature* stalker = unit->ToCreature())
|
||||
sCreatureTextMgr->SendChat(stalker, (uint8)entry, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
sCreatureTextMgr->SendChat(stalker, (uint8)entry, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
}
|
||||
|
||||
void Battlefield::SendWarningToPlayer(Player* player, uint32 entry)
|
||||
@@ -544,11 +544,11 @@ bool Battlefield::AddOrSetPlayerToCorrectBfGroup(Player* player)
|
||||
if (!player->IsInWorld())
|
||||
return false;
|
||||
|
||||
if (player->GetGroup() && (player->GetGroup()->isBGGroup() || player->GetGroup()->isBFGroup()))
|
||||
{
|
||||
sLog->outMisc("Battlefield::AddOrSetPlayerToCorrectBfGroup - player is already in %s group!", (player->GetGroup()->isBGGroup() ? "BG" : "BF"));
|
||||
return false;
|
||||
}
|
||||
if (player->GetGroup() && (player->GetGroup()->isBGGroup() || player->GetGroup()->isBFGroup()))
|
||||
{
|
||||
sLog->outMisc("Battlefield::AddOrSetPlayerToCorrectBfGroup - player is already in %s group!", (player->GetGroup()->isBGGroup() ? "BG" : "BF"));
|
||||
return false;
|
||||
}
|
||||
|
||||
Group* group = GetFreeBfRaid(player->GetTeamId());
|
||||
if (!group)
|
||||
@@ -802,7 +802,7 @@ Creature* Battlefield::SpawnCreature(uint32 entry, float x, float y, float z, fl
|
||||
return NULL;
|
||||
}
|
||||
|
||||
creature->setFaction(BattlefieldFactions[teamId]);
|
||||
creature->setFaction(BattlefieldFactions[teamId]);
|
||||
creature->SetHomePosition(x, y, z, o);
|
||||
|
||||
CreatureTemplate const* cinfo = sObjectMgr->GetCreatureTemplate(entry);
|
||||
@@ -841,7 +841,7 @@ GameObject* Battlefield::SpawnGameObject(uint32 entry, float x, float y, float z
|
||||
|
||||
// Add to world
|
||||
map->AddToMap(go);
|
||||
go->setActive(true);
|
||||
go->setActive(true);
|
||||
|
||||
return go;
|
||||
}
|
||||
@@ -890,7 +890,7 @@ GuidSet::iterator BfCapturePoint::HandlePlayerLeave(Player* player)
|
||||
|
||||
void BfCapturePoint::SendChangePhase()
|
||||
{
|
||||
GameObject* capturePoint = GetCapturePointGo();
|
||||
GameObject* capturePoint = GetCapturePointGo();
|
||||
if (!capturePoint)
|
||||
return;
|
||||
|
||||
@@ -957,7 +957,7 @@ bool BfCapturePoint::DelCapturePoint()
|
||||
|
||||
bool BfCapturePoint::Update(uint32 diff)
|
||||
{
|
||||
GameObject* capturePoint = GetCapturePointGo();
|
||||
GameObject* capturePoint = GetCapturePointGo();
|
||||
if (!capturePoint)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ class BfCapturePoint
|
||||
|
||||
bool SetCapturePointData(GameObject* capturePoint);
|
||||
GameObject* GetCapturePointGo() { return ObjectAccessor::GetObjectInWorld(m_capturePoint, (GameObject*)NULL); }
|
||||
GameObject* GetCapturePointGo(WorldObject* obj) { return ObjectAccessor::GetGameObject(*obj, m_capturePoint); }
|
||||
GameObject* GetCapturePointGo(WorldObject* obj) { return ObjectAccessor::GetGameObject(*obj, m_capturePoint); }
|
||||
|
||||
TeamId GetTeamId() { return m_team; }
|
||||
protected:
|
||||
@@ -183,7 +183,7 @@ class BfGraveyard
|
||||
if (!m_SpiritGuide[0] && !m_SpiritGuide[1])
|
||||
return false;
|
||||
|
||||
// performance
|
||||
// performance
|
||||
/*if (!ObjectAccessor::FindUnit(m_SpiritGuide[0]) &&
|
||||
!ObjectAccessor::FindUnit(m_SpiritGuide[1]))
|
||||
return false;*/
|
||||
@@ -335,7 +335,7 @@ class Battlefield : public ZoneScript
|
||||
//virtual void DoCompleteOrIncrementAchievement(uint32 /*achievement*/, Player* /*player*/, uint8 /*incrementNumber = 1*/) {};
|
||||
|
||||
/// Send all worldstate data to all player in zone.
|
||||
virtual void SendInitWorldStatesToAll() = 0;
|
||||
virtual void SendInitWorldStatesToAll() = 0;
|
||||
virtual void FillInitialWorldStates(WorldPacket& /*data*/) = 0;
|
||||
|
||||
/// Return if we can use mount in battlefield
|
||||
|
||||
@@ -45,8 +45,8 @@ bool BattlefieldWG::SetupBattlefield()
|
||||
m_ZoneId = BATTLEFIELD_WG_ZONEID;
|
||||
m_MapId = BATTLEFIELD_WG_MAPID;
|
||||
|
||||
// init stalker AFTER setting map id... we spawn it at map=random memory value?...
|
||||
InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]);
|
||||
// init stalker AFTER setting map id... we spawn it at map=random memory value?...
|
||||
InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]);
|
||||
|
||||
m_MaxPlayer = sWorld->getIntConfig(CONFIG_WINTERGRASP_PLR_MAX);
|
||||
m_IsEnabled = sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE);
|
||||
@@ -61,7 +61,7 @@ bool BattlefieldWG::SetupBattlefield()
|
||||
m_StartGrouping = false;
|
||||
|
||||
m_tenacityStack = 0;
|
||||
m_titansRelic = 0;
|
||||
m_titansRelic = 0;
|
||||
|
||||
KickPosition.Relocate(5728.117f, 2714.346f, 697.733f, 0);
|
||||
KickPosition.m_mapId = m_MapId;
|
||||
@@ -201,19 +201,19 @@ bool BattlefieldWG::Update(uint32 diff)
|
||||
else
|
||||
m_saveTimer -= diff;
|
||||
|
||||
// Update Tenacity
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_tenacityUpdateTimer <= diff)
|
||||
{
|
||||
m_tenacityUpdateTimer = 10000;
|
||||
if (!m_updateTenacityList.empty())
|
||||
UpdateTenacity();
|
||||
m_updateTenacityList.clear();
|
||||
}
|
||||
else
|
||||
m_tenacityUpdateTimer -= diff;
|
||||
}
|
||||
// Update Tenacity
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_tenacityUpdateTimer <= diff)
|
||||
{
|
||||
m_tenacityUpdateTimer = 10000;
|
||||
if (!m_updateTenacityList.empty())
|
||||
UpdateTenacity();
|
||||
m_updateTenacityList.clear();
|
||||
}
|
||||
else
|
||||
m_tenacityUpdateTimer -= diff;
|
||||
}
|
||||
|
||||
return m_return;
|
||||
}
|
||||
@@ -229,8 +229,8 @@ void BattlefieldWG::OnBattleStart()
|
||||
// Set in use (not allow to click on before last door is broken)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// save guid
|
||||
m_titansRelic = go->GetGUID();
|
||||
// save guid
|
||||
m_titansRelic = go->GetGUID();
|
||||
}
|
||||
else
|
||||
sLog->outError("WG: Failed to spawn titan relic.");
|
||||
@@ -259,7 +259,7 @@ void BattlefieldWG::OnBattleStart()
|
||||
}
|
||||
}
|
||||
|
||||
SetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, WG_MAX_ATTACKTOWERS);
|
||||
SetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, WG_MAX_ATTACKTOWERS);
|
||||
SetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT, 0);
|
||||
SetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT, 0);
|
||||
|
||||
@@ -286,9 +286,9 @@ void BattlefieldWG::OnBattleStart()
|
||||
// Send start warning to all players
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_START);
|
||||
|
||||
// Xinef: reset tenacity counter
|
||||
m_tenacityStack = 0;
|
||||
m_tenacityUpdateTimer = 20000;
|
||||
// Xinef: reset tenacity counter
|
||||
m_tenacityStack = 0;
|
||||
m_tenacityUpdateTimer = 20000;
|
||||
|
||||
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE))
|
||||
sWorld->SendWorldText(BATTLEFIELD_WG_WORLD_START_MESSAGE);
|
||||
@@ -324,29 +324,29 @@ void BattlefieldWG::UpdateVehicleCountWG()
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (GuidSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BattlefieldWG::CapturePointTaken(uint32 areaId)
|
||||
{
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (GuidSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetAreaId() == areaId)
|
||||
player->UpdateAreaDependentAuras(areaId);
|
||||
if (player->GetAreaId() == areaId)
|
||||
player->UpdateAreaDependentAuras(areaId);
|
||||
}
|
||||
|
||||
void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
{
|
||||
// Remove relic
|
||||
if (GameObject* go = GetRelic())
|
||||
go->RemoveFromWorld();
|
||||
m_titansRelic = 0;
|
||||
// Remove relic
|
||||
if (GameObject* go = GetRelic())
|
||||
go->RemoveFromWorld();
|
||||
m_titansRelic = 0;
|
||||
|
||||
// Remove turret
|
||||
for (GuidSet::const_iterator itr = CanonList.begin(); itr != CanonList.end(); ++itr)
|
||||
@@ -401,11 +401,11 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
|
||||
// Saving data
|
||||
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
||||
{
|
||||
(*itr)->Rebuild();
|
||||
{
|
||||
(*itr)->Rebuild();
|
||||
(*itr)->Save();
|
||||
(*itr)->UpdateTurretAttack(true);
|
||||
}
|
||||
(*itr)->UpdateTurretAttack(true);
|
||||
}
|
||||
|
||||
for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr)
|
||||
(*itr)->Save();
|
||||
@@ -415,59 +415,59 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
for (GuidSet::const_iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
if (Creature* creature = unit->ToCreature())
|
||||
creature->DespawnOrUnsummon(1);
|
||||
creature->DespawnOrUnsummon(1);
|
||||
|
||||
m_vehicles[team].clear();
|
||||
}
|
||||
|
||||
uint8 damagedTowersDef = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
uint8 damagedTowersAtt = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
uint32 spellDamagedDef = SPELL_DAMAGED_TOWER;
|
||||
uint32 spellFullDef = SPELL_DESTROYED_TOWER;
|
||||
uint32 spellDamagedAtt = SPELL_DAMAGED_BUILDING;
|
||||
uint32 spellFullAtt = SPELL_INTACT_BUILDING;
|
||||
uint8 damagedTowersDef = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
uint8 damagedTowersAtt = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
uint32 spellDamagedDef = SPELL_DAMAGED_TOWER;
|
||||
uint32 spellFullDef = SPELL_DESTROYED_TOWER;
|
||||
uint32 spellDamagedAtt = SPELL_DAMAGED_BUILDING;
|
||||
uint32 spellFullAtt = SPELL_INTACT_BUILDING;
|
||||
|
||||
if (!endByTimer)
|
||||
{
|
||||
brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
spellDamagedDef = SPELL_DAMAGED_BUILDING;
|
||||
spellFullDef = SPELL_INTACT_BUILDING;
|
||||
spellDamagedAtt = SPELL_DAMAGED_TOWER;
|
||||
spellFullAtt = SPELL_DESTROYED_TOWER;
|
||||
}
|
||||
if (!endByTimer)
|
||||
{
|
||||
brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
spellDamagedDef = SPELL_DAMAGED_BUILDING;
|
||||
spellFullDef = SPELL_INTACT_BUILDING;
|
||||
spellDamagedAtt = SPELL_DAMAGED_TOWER;
|
||||
spellFullAtt = SPELL_DESTROYED_TOWER;
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Victory in Wintergrasp
|
||||
player->AreaExploredOrEventHappens(GetDefenderTeam() ? 13183 : 13181); // HORDE / ALLY win wg quest id
|
||||
// Victory in Wintergrasp
|
||||
player->AreaExploredOrEventHappens(GetDefenderTeam() ? 13183 : 13181); // HORDE / ALLY win wg quest id
|
||||
|
||||
player->CastSpell(player, SPELL_ESSENCE_OF_WINTERGRASP, true);
|
||||
player->CastSpell(player, SPELL_ESSENCE_OF_WINTERGRASP, true);
|
||||
player->CastSpell(player, SPELL_VICTORY_REWARD, true);
|
||||
RemoveAurasFromPlayer(player);
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
for (uint8 i = 0; i < damagedTowersDef; ++i)
|
||||
player->CastSpell(player, spellDamagedDef, true);
|
||||
for (uint8 i = 0; i < brokenTowersDef; ++i)
|
||||
player->CastSpell(player, spellFullDef, true);
|
||||
for (uint8 i = 0; i < damagedTowersDef; ++i)
|
||||
player->CastSpell(player, spellDamagedDef, true);
|
||||
for (uint8 i = 0; i < brokenTowersDef; ++i)
|
||||
player->CastSpell(player, spellFullDef, true);
|
||||
}
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->CastSpell(player, SPELL_DEFEAT_REWARD, true);
|
||||
RemoveAurasFromPlayer(player);
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
for (uint8 i = 0; i < damagedTowersAtt; ++i)
|
||||
player->CastSpell(player, spellDamagedAtt, true);
|
||||
for (uint8 i = 0; i < brokenTowersAtt; ++i)
|
||||
player->CastSpell(player, spellFullAtt, true);
|
||||
}
|
||||
for (uint8 i = 0; i < damagedTowersAtt; ++i)
|
||||
player->CastSpell(player, spellDamagedAtt, true);
|
||||
for (uint8 i = 0; i < brokenTowersAtt; ++i)
|
||||
player->CastSpell(player, spellFullAtt, true);
|
||||
}
|
||||
|
||||
if (!endByTimer)
|
||||
{
|
||||
@@ -484,9 +484,9 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
}
|
||||
}
|
||||
|
||||
// Clear players in war list at the end.
|
||||
m_PlayersInWar[TEAM_ALLIANCE].clear();
|
||||
m_PlayersInWar[TEAM_HORDE].clear();
|
||||
// Clear players in war list at the end.
|
||||
m_PlayersInWar[TEAM_ALLIANCE].clear();
|
||||
m_PlayersInWar[TEAM_HORDE].clear();
|
||||
|
||||
if (!endByTimer) // win alli/horde
|
||||
SendWarningToAllInZone((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2));
|
||||
@@ -500,8 +500,8 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
|
||||
void BattlefieldWG::OnStartGrouping()
|
||||
{
|
||||
if (!IsWarTime())
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_WILL_START);
|
||||
if (!IsWarTime())
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_WILL_START);
|
||||
}
|
||||
|
||||
uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId) const
|
||||
@@ -532,16 +532,16 @@ uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId) const
|
||||
|
||||
uint32 BattlefieldWG::GetAreaByGraveyardId(uint8 gId) const
|
||||
{
|
||||
switch (gId)
|
||||
switch (gId)
|
||||
{
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NE:
|
||||
return AREA_THE_SUNKEN_RING;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NW:
|
||||
return AREA_THE_BROKEN_TEMPLE;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SW:
|
||||
return AREA_WESTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SE:
|
||||
return AREA_EASTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NE:
|
||||
return AREA_THE_SUNKEN_RING;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NW:
|
||||
return AREA_THE_BROKEN_TEMPLE;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SW:
|
||||
return AREA_WESTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SE:
|
||||
return AREA_EASTPARK_WORKSHOP;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -557,9 +557,9 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
{
|
||||
TeamId teamId = (creature->GetEntry() == NPC_DWARVEN_SPIRIT_GUIDE ? TEAM_ALLIANCE : TEAM_HORDE);
|
||||
uint8 graveyardId = GetSpiritGraveyardId(creature->GetAreaId(true));
|
||||
// xinef: little workaround, there are 2 spirit guides in same area
|
||||
if (creature->IsWithinDist2d(5103.0f, 3461.5f, 5.0f))
|
||||
graveyardId = BATTLEFIELD_WG_GY_WORKSHOP_NW;
|
||||
// xinef: little workaround, there are 2 spirit guides in same area
|
||||
if (creature->IsWithinDist2d(5103.0f, 3461.5f, 5.0f))
|
||||
graveyardId = BATTLEFIELD_WG_GY_WORKSHOP_NW;
|
||||
|
||||
if (m_GraveyardList[graveyardId])
|
||||
m_GraveyardList[graveyardId]->SetSpirit(creature, teamId);
|
||||
@@ -577,12 +577,12 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
case NPC_WINTERGRASP_CATAPULT:
|
||||
case NPC_WINTERGRASP_DEMOLISHER:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
return;
|
||||
|
||||
Player* creator = ObjectAccessor::FindPlayer(creature->ToTempSummon()->GetSummonerGUID());
|
||||
if (!creator)
|
||||
return;
|
||||
Player* creator = ObjectAccessor::FindPlayer(creature->ToTempSummon()->GetSummonerGUID());
|
||||
if (!creator)
|
||||
return;
|
||||
TeamId team = creator->GetTeamId();
|
||||
|
||||
if (team == TEAM_HORDE)
|
||||
@@ -617,16 +617,16 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE:
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE:
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
return;
|
||||
|
||||
if (Unit* owner = creature->ToTempSummon()->GetSummoner())
|
||||
creature->setFaction(owner->getFaction());
|
||||
break;
|
||||
}
|
||||
if (Unit* owner = creature->ToTempSummon()->GetSummoner())
|
||||
creature->setFaction(owner->getFaction());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -712,26 +712,26 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
|
||||
bool again = false;
|
||||
TeamId killerTeam = killer->GetTeamId();
|
||||
|
||||
// xinef: tower cannons also grant rank
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER || IsKeepNpc(victim->GetEntry()) || victim->GetEntry() == NPC_WINTERGRASP_TOWER_CANNON)
|
||||
// xinef: tower cannons also grant rank
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER || IsKeepNpc(victim->GetEntry()) || victim->GetEntry() == NPC_WINTERGRASP_TOWER_CANNON)
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetDistance2d(killer) < 40)
|
||||
PromotePlayer(player);
|
||||
|
||||
// Xinef: Allow to Skin non-released corpse
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER)
|
||||
victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
|
||||
// Xinef: Allow to Skin non-released corpse
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER)
|
||||
victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
|
||||
}
|
||||
else if (victim->IsVehicle() && !killer->IsFriendlyTo(victim))
|
||||
{
|
||||
// Quest - Wintergrasp - PvP Kill - Vehicle
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
else if (victim->IsVehicle() && !killer->IsFriendlyTo(victim))
|
||||
{
|
||||
// Quest - Wintergrasp - PvP Kill - Vehicle
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetDistance2d(killer) < 40)
|
||||
player->KilledMonsterCredit(NPC_QUEST_PVP_KILL_VEHICLE, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool BattlefieldWG::FindAndRemoveVehicleFromList(Unit* vehicle)
|
||||
@@ -806,7 +806,7 @@ void BattlefieldWG::OnPlayerJoinWar(Player* player)
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
player->CastSpell(player, SPELL_RECRUIT, true);
|
||||
AddUpdateTenacity(player);
|
||||
AddUpdateTenacity(player);
|
||||
|
||||
if (player->GetTeamId() == GetDefenderTeam())
|
||||
player->TeleportTo(571, 5345, 2842, 410, 3.14f);
|
||||
@@ -841,7 +841,7 @@ void BattlefieldWG::OnPlayerLeaveWar(Player* player)
|
||||
RemoveAurasFromPlayer(player);
|
||||
}
|
||||
|
||||
RemoveUpdateTenacity(player);
|
||||
RemoveUpdateTenacity(player);
|
||||
}
|
||||
|
||||
void BattlefieldWG::OnPlayerLeaveZone(Player* player)
|
||||
@@ -864,18 +864,18 @@ void BattlefieldWG::OnPlayerEnterZone(Player* player)
|
||||
// Send worldstate to player
|
||||
SendInitWorldStatesTo(player);
|
||||
|
||||
// xinef: Attacker, if hidden in relic room kick him out
|
||||
if (player->GetTeamId() == GetAttackerTeam())
|
||||
if (player->GetPositionX() > 5400.0f && player->GetPositionX() < 5490.0f && player->GetPositionY() > 2803.0f && player->GetPositionY() < 2878.0f)
|
||||
KickPlayerFromBattlefield(player->GetGUID());
|
||||
// xinef: Attacker, if hidden in relic room kick him out
|
||||
if (player->GetTeamId() == GetAttackerTeam())
|
||||
if (player->GetPositionX() > 5400.0f && player->GetPositionX() < 5490.0f && player->GetPositionY() > 2803.0f && player->GetPositionY() < 2878.0f)
|
||||
KickPlayerFromBattlefield(player->GetGUID());
|
||||
}
|
||||
|
||||
uint32 BattlefieldWG::GetData(uint32 data) const
|
||||
{
|
||||
// xinef: little hack, same area for default horde graveyard
|
||||
// this graveyard is the one of broken temple!
|
||||
if (data == AREA_THE_CHILLED_QUAGMIRE)
|
||||
data = AREA_THE_BROKEN_TEMPLE;
|
||||
// xinef: little hack, same area for default horde graveyard
|
||||
// this graveyard is the one of broken temple!
|
||||
if (data == AREA_THE_CHILLED_QUAGMIRE)
|
||||
data = AREA_THE_BROKEN_TEMPLE;
|
||||
|
||||
switch (data)
|
||||
{
|
||||
@@ -919,15 +919,15 @@ void BattlefieldWG::FillInitialWorldStates(WorldPacket& data)
|
||||
void BattlefieldWG::SendInitWorldStatesTo(Player* player)
|
||||
{
|
||||
WorldPacket data(SMSG_INIT_WORLD_STATES, (4 + 4 + 4 + 2 + (BuildingsInZone.size() * 8) + (WorkshopsList.size() * 8)));
|
||||
|
||||
|
||||
data << uint32(m_MapId);
|
||||
data << uint32(m_ZoneId);
|
||||
data << uint32(0);
|
||||
data << uint32(0);
|
||||
data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields
|
||||
|
||||
|
||||
FillInitialWorldStates(data);
|
||||
|
||||
player->GetSession()->SendPacket(&data);
|
||||
|
||||
player->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
void BattlefieldWG::SendInitWorldStatesToAll()
|
||||
@@ -970,9 +970,9 @@ void BattlefieldWG::UpdatedDestroyedTowerCount(TeamId team, GameObject* go)
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Quest - Wintergrasp - Southern Tower Kill
|
||||
if (go && player->GetDistance2d(go) < 200.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_SOUTHERN_TOWER_KILL, 0);
|
||||
// Quest - Wintergrasp - Southern Tower Kill
|
||||
if (go && player->GetDistance2d(go) < 200.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_SOUTHERN_TOWER_KILL, 0);
|
||||
|
||||
player->CastSpell(player, SPELL_TOWER_CONTROL, true);
|
||||
player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_LEANING_TOWER_ACHIEVEMENT, 0, 0);
|
||||
@@ -988,18 +988,18 @@ void BattlefieldWG::UpdatedDestroyedTowerCount(TeamId team, GameObject* go)
|
||||
SendInitWorldStatesToAll();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Xinef: rest of structures, quest credit
|
||||
else
|
||||
{
|
||||
// Xinef: rest of structures, quest credit
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Quest - Wintergrasp - Vehicle Protected
|
||||
if (go && player->GetDistance2d(go) < 100.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_VEHICLE_PROTECTED, 0);
|
||||
}
|
||||
// Quest - Wintergrasp - Vehicle Protected
|
||||
if (go && player->GetDistance2d(go) < 100.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_VEHICLE_PROTECTED, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
@@ -1024,19 +1024,19 @@ void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
// if destroy or damage event, search the wall/tower and update worldstate/send warning message
|
||||
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
||||
{
|
||||
if (GameObject* build = ObjectAccessor::GetGameObject(*obj, (*itr)->m_Build))
|
||||
{
|
||||
if (go->GetEntry() == build->GetEntry())
|
||||
{
|
||||
if (build->GetGOInfo()->building.damagedEvent == eventId)
|
||||
(*itr)->Damaged();
|
||||
if (GameObject* build = ObjectAccessor::GetGameObject(*obj, (*itr)->m_Build))
|
||||
{
|
||||
if (go->GetEntry() == build->GetEntry())
|
||||
{
|
||||
if (build->GetGOInfo()->building.damagedEvent == eventId)
|
||||
(*itr)->Damaged();
|
||||
|
||||
if (build->GetGOInfo()->building.destroyedEvent == eventId)
|
||||
(*itr)->Destroyed();
|
||||
if (build->GetGOInfo()->building.destroyedEvent == eventId)
|
||||
(*itr)->Destroyed();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,32 +1044,32 @@ void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
void BattlefieldWG::UpdateDamagedTowerCount(TeamId team)
|
||||
{
|
||||
if (team == GetAttackerTeam())
|
||||
{
|
||||
{
|
||||
UpdateData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT, 1);
|
||||
UpdateData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, -1);
|
||||
}
|
||||
UpdateData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, -1);
|
||||
}
|
||||
}
|
||||
|
||||
uint32 BattlefieldWG::GetHonorBuff(int32 stack) const
|
||||
{
|
||||
if (stack < 5)
|
||||
return 0;
|
||||
if (stack < 10)
|
||||
return SPELL_GREAT_HONOR;
|
||||
if (stack < 15)
|
||||
return SPELL_GREATER_HONOR;
|
||||
return SPELL_GREATEST_HONOR;
|
||||
if (stack < 5)
|
||||
return 0;
|
||||
if (stack < 10)
|
||||
return SPELL_GREAT_HONOR;
|
||||
if (stack < 15)
|
||||
return SPELL_GREATER_HONOR;
|
||||
return SPELL_GREATEST_HONOR;
|
||||
}
|
||||
|
||||
void BattlefieldWG::AddUpdateTenacity(Player* player)
|
||||
{
|
||||
m_updateTenacityList.insert(player->GetGUID());
|
||||
m_updateTenacityList.insert(player->GetGUID());
|
||||
}
|
||||
|
||||
void BattlefieldWG::RemoveUpdateTenacity(Player* player)
|
||||
{
|
||||
m_updateTenacityList.erase(player->GetGUID());
|
||||
m_updateTenacityList.insert(0);
|
||||
m_updateTenacityList.erase(player->GetGUID());
|
||||
m_updateTenacityList.insert(0);
|
||||
}
|
||||
|
||||
void BattlefieldWG::UpdateTenacity()
|
||||
@@ -1087,31 +1087,31 @@ void BattlefieldWG::UpdateTenacity()
|
||||
newStack = int32((1.0f - ((float)alliancePlayers / hordePlayers)) * 4.0f); // negative, should cast on horde
|
||||
}
|
||||
|
||||
// Return if no change in stack and apply tenacity to new player
|
||||
// Return if no change in stack and apply tenacity to new player
|
||||
if (newStack == m_tenacityStack)
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_updateTenacityList.begin(); itr != m_updateTenacityList.end(); ++itr)
|
||||
if (Player* newPlayer = ObjectAccessor::FindPlayer(*itr))
|
||||
if ((newPlayer->GetTeamId() == TEAM_ALLIANCE && m_tenacityStack > 0) || (newPlayer->GetTeamId() == TEAM_HORDE && m_tenacityStack < 0))
|
||||
{
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
newPlayer->SetAuraStack(SPELL_TENACITY, newPlayer, newStack);
|
||||
if (buff_honor)
|
||||
newPlayer->CastSpell(newPlayer, buff_honor, true);
|
||||
}
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_updateTenacityList.begin(); itr != m_updateTenacityList.end(); ++itr)
|
||||
if (Player* newPlayer = ObjectAccessor::FindPlayer(*itr))
|
||||
if ((newPlayer->GetTeamId() == TEAM_ALLIANCE && m_tenacityStack > 0) || (newPlayer->GetTeamId() == TEAM_HORDE && m_tenacityStack < 0))
|
||||
{
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
newPlayer->SetAuraStack(SPELL_TENACITY, newPlayer, newStack);
|
||||
if (buff_honor)
|
||||
newPlayer->CastSpell(newPlayer, buff_honor, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_tenacityStack != 0)
|
||||
{
|
||||
if (m_tenacityStack > 0 && newStack <= 0) // old buff was on alliance
|
||||
team = TEAM_ALLIANCE;
|
||||
else if (m_tenacityStack < 0 && newStack >= 0) // old buff was on horde
|
||||
team = TEAM_HORDE;
|
||||
}
|
||||
{
|
||||
if (m_tenacityStack > 0 && newStack <= 0) // old buff was on alliance
|
||||
team = TEAM_ALLIANCE;
|
||||
else if (m_tenacityStack < 0 && newStack >= 0) // old buff was on horde
|
||||
team = TEAM_HORDE;
|
||||
}
|
||||
|
||||
m_tenacityStack = newStack;
|
||||
m_tenacityStack = newStack;
|
||||
// Remove old buff
|
||||
if (team != TEAM_NEUTRAL)
|
||||
{
|
||||
@@ -1128,24 +1128,24 @@ void BattlefieldWG::UpdateTenacity()
|
||||
if (newStack)
|
||||
{
|
||||
team = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE;
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[team].begin(); itr != m_PlayersInWar[team].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->SetAuraStack(SPELL_TENACITY, player, newStack);
|
||||
if (buff_honor)
|
||||
player->CastSpell(player, buff_honor, true);
|
||||
}
|
||||
if (buff_honor)
|
||||
player->CastSpell(player, buff_honor, true);
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
{
|
||||
{
|
||||
unit->SetAuraStack(SPELL_TENACITY_VEHICLE, unit, newStack);
|
||||
if (buff_honor)
|
||||
unit->CastSpell(unit, buff_honor, true);
|
||||
}
|
||||
if (buff_honor)
|
||||
unit->CastSpell(unit, buff_honor, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ enum WintergraspSpells
|
||||
SPELL_WINTERGRASP_WATER = 36444,
|
||||
SPELL_ESSENCE_OF_WINTERGRASP = 58045,
|
||||
SPELL_WINTERGRASP_RESTRICTED_FLIGHT_AREA = 58730,
|
||||
SPELL_LEANING_TOWER_ACHIEVEMENT = 60676,
|
||||
SPELL_LEANING_TOWER_ACHIEVEMENT = 60676,
|
||||
|
||||
// Phasing spells
|
||||
SPELL_HORDE_CONTROLS_FACTORY_PHASE_SHIFT = 56618,// ADDS PHASE 16
|
||||
@@ -92,7 +92,7 @@ enum WintergraspSpells
|
||||
|
||||
enum WintergraspData
|
||||
{
|
||||
BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT,
|
||||
BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT,
|
||||
BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT,
|
||||
BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT,
|
||||
BATTLEFIELD_WG_DATA_MAX_VEHICLE_A,
|
||||
@@ -157,14 +157,14 @@ enum WGGraveyardId
|
||||
|
||||
enum eWGGossipText
|
||||
{
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_NE = 20071,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_NW = 20072,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_SE = 20074,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_SW = 20073,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_KEEP = 20070,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_HORDE = 20075,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_ALLIANCE = 20076,
|
||||
BATTLEFIELD_WG_WORLD_START_MESSAGE = 20078,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_NE = 20071,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_NW = 20072,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_SE = 20074,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_SW = 20073,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_KEEP = 20070,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_HORDE = 20075,
|
||||
BATTLEFIELD_WG_GOSSIPTEXT_GY_ALLIANCE = 20076,
|
||||
BATTLEFIELD_WG_WORLD_START_MESSAGE = 20078,
|
||||
};
|
||||
|
||||
enum WintergraspNpcs
|
||||
@@ -182,19 +182,19 @@ enum WintergraspNpcs
|
||||
BATTLEFIELD_WG_NPC_SIEGESMITH_STRONGHOOF = 31106,
|
||||
BATTLEFIELD_WG_NPC_PRIMALIST_MULFORT = 31053,
|
||||
BATTLEFIELD_WG_NPC_LIEUTENANT_MURP = 31107,
|
||||
BATTLEFIELD_WG_NPC_HORDE_WARBRINGER = 15350,
|
||||
BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL = 15351,
|
||||
BATTLEFIELD_WG_NPC_HORDE_WARBRINGER = 15350,
|
||||
BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL = 15351,
|
||||
|
||||
BATTLEFIELD_WG_NPC_AV_PORTAL_HORDE = 32617,
|
||||
BATTLEFIELD_WG_NPC_AV_PORTAL_ALLY = 32616,
|
||||
BATTLEFIELD_WG_NPC_AB_PORTAL_HORDE = 32619,
|
||||
BATTLEFIELD_WG_NPC_AB_PORTAL_ALLY = 32618,
|
||||
BATTLEFIELD_WG_NPC_EOTS_PORTAL_HORDE = 32620,
|
||||
BATTLEFIELD_WG_NPC_EOTS_PORTAL_ALLY = 32621,
|
||||
BATTLEFIELD_WG_NPC_SOTA_PORTAL_HORDE = 32623,
|
||||
BATTLEFIELD_WG_NPC_SOTA_PORTAL_ALLY = 32622,
|
||||
BATTLEFIELD_WG_NPC_WG_PORTAL_HORDE = 32625,
|
||||
BATTLEFIELD_WG_NPC_WG_PORTAL_ALLY = 32624,
|
||||
BATTLEFIELD_WG_NPC_AV_PORTAL_HORDE = 32617,
|
||||
BATTLEFIELD_WG_NPC_AV_PORTAL_ALLY = 32616,
|
||||
BATTLEFIELD_WG_NPC_AB_PORTAL_HORDE = 32619,
|
||||
BATTLEFIELD_WG_NPC_AB_PORTAL_ALLY = 32618,
|
||||
BATTLEFIELD_WG_NPC_EOTS_PORTAL_HORDE = 32620,
|
||||
BATTLEFIELD_WG_NPC_EOTS_PORTAL_ALLY = 32621,
|
||||
BATTLEFIELD_WG_NPC_SOTA_PORTAL_HORDE = 32623,
|
||||
BATTLEFIELD_WG_NPC_SOTA_PORTAL_ALLY = 32622,
|
||||
BATTLEFIELD_WG_NPC_WG_PORTAL_HORDE = 32625,
|
||||
BATTLEFIELD_WG_NPC_WG_PORTAL_ALLY = 32624,
|
||||
|
||||
BATTLEFIELD_WG_NPC_BOWYER_RANDOLPH = 31052,
|
||||
BATTLEFIELD_WG_NPC_KNIGHT_DAMERON = 32294,// <WINTERGRASP QUARTERMASTER>
|
||||
@@ -209,17 +209,17 @@ enum WintergraspNpcs
|
||||
NPC_TAUNKA_SPIRIT_GUIDE = 31841, // Horde spirit guide for Wintergrasp
|
||||
NPC_DWARVEN_SPIRIT_GUIDE = 31842, // Alliance spirit guide for Wintergrasp
|
||||
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE = 28319,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE = 32629,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_ALLIANCE = 28312,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_HORDE = 32627,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE = 28319,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE = 32629,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_ALLIANCE = 28312,
|
||||
NPC_WINTERGRASP_SIEGE_ENGINE_HORDE = 32627,
|
||||
NPC_WINTERGRASP_CATAPULT = 27881,
|
||||
NPC_WINTERGRASP_DEMOLISHER = 28094,
|
||||
NPC_WINTERGRASP_TOWER_CANNON = 28366,
|
||||
|
||||
NPC_QUEST_SOUTHERN_TOWER_KILL = 35074,
|
||||
NPC_QUEST_VEHICLE_PROTECTED = 31284,
|
||||
NPC_QUEST_PVP_KILL_VEHICLE = 31093,
|
||||
NPC_QUEST_SOUTHERN_TOWER_KILL = 35074,
|
||||
NPC_QUEST_VEHICLE_PROTECTED = 31284,
|
||||
NPC_QUEST_PVP_KILL_VEHICLE = 31093,
|
||||
};
|
||||
|
||||
struct BfWGCoordGY
|
||||
@@ -385,7 +385,7 @@ class BattlefieldWG : public Battlefield
|
||||
bool SetupBattlefield();
|
||||
|
||||
/// Return pointer to relic object
|
||||
GameObject* GetRelic() { return ObjectAccessor::GetObjectInWorld(m_titansRelic, (GameObject*)NULL); }
|
||||
GameObject* GetRelic() { return ObjectAccessor::GetObjectInWorld(m_titansRelic, (GameObject*)NULL); }
|
||||
|
||||
/// Define relic object
|
||||
//void SetRelic(GameObject* relic) { m_titansRelic = relic; }
|
||||
@@ -398,8 +398,8 @@ class BattlefieldWG : public Battlefield
|
||||
|
||||
/// Vehicle world states update
|
||||
void UpdateCounterVehicle(bool init);
|
||||
void UpdateVehicleCountWG();
|
||||
void CapturePointTaken(uint32 areaId);
|
||||
void UpdateVehicleCountWG();
|
||||
void CapturePointTaken(uint32 areaId);
|
||||
|
||||
void SendInitWorldStatesTo(Player* player);
|
||||
void SendInitWorldStatesToAll();
|
||||
@@ -409,17 +409,17 @@ class BattlefieldWG : public Battlefield
|
||||
void OnUnitDeath(Unit* unit);
|
||||
void PromotePlayer(Player* killer);
|
||||
|
||||
uint32 GetHonorBuff(int32 stack) const;
|
||||
uint32 GetHonorBuff(int32 stack) const;
|
||||
void UpdateTenacity();
|
||||
void AddUpdateTenacity(Player* player);
|
||||
void RemoveUpdateTenacity(Player* player);
|
||||
void AddUpdateTenacity(Player* player);
|
||||
void RemoveUpdateTenacity(Player* player);
|
||||
void ProcessEvent(WorldObject *obj, uint32 eventId);
|
||||
|
||||
bool FindAndRemoveVehicleFromList(Unit* vehicle);
|
||||
|
||||
// returns the graveyardId in the specified area.
|
||||
uint8 GetSpiritGraveyardId(uint32 areaId) const;
|
||||
uint32 GetAreaByGraveyardId(uint8 gId) const;
|
||||
uint32 GetAreaByGraveyardId(uint8 gId) const;
|
||||
|
||||
uint32 GetData(uint32 data) const;
|
||||
protected:
|
||||
@@ -435,10 +435,10 @@ class BattlefieldWG : public Battlefield
|
||||
GuidSet CanonList;
|
||||
GuidSet KeepCreature[2];
|
||||
GuidSet OutsideCreature[2];
|
||||
GuidSet m_updateTenacityList;
|
||||
GuidSet m_updateTenacityList;
|
||||
|
||||
int32 m_tenacityStack;
|
||||
uint32 m_tenacityUpdateTimer;
|
||||
uint32 m_tenacityUpdateTimer;
|
||||
uint32 m_saveTimer;
|
||||
|
||||
uint64 m_titansRelic;
|
||||
@@ -498,31 +498,31 @@ enum WintergraspWorldstates
|
||||
// TODO: Handle this with creature_text ?
|
||||
enum eWGText
|
||||
{
|
||||
BATTLEFIELD_WG_TEXT_START = 0,
|
||||
BATTLEFIELD_WG_TEXT_START = 0,
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NE_ATTACK = 19, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NW_ATTACK = 11, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_SE_ATTACK = 15, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_SW_ATTACK = 23, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN = 20, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NE_TAKEN = 20, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_NW_TAKEN = 12, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_SE_TAKEN = 16, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WORKSHOP_SW_TAKEN = 24, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_DEFEND_KEEP = 27, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_DEFEND_KEEP = 27, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WIN_KEEP = 28, // Ally, horde +2
|
||||
BATTLEFIELD_WG_TEXT_WILL_START = 31,
|
||||
BATTLEFIELD_WG_TEXT_FIRSTRANK = 32,
|
||||
BATTLEFIELD_WG_TEXT_SECONDRANK = 33,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_S_DAMAGED = 1,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_S_DAMAGED = 1,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_E_DAMAGED = 3,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_W_DAMAGED = 5,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_S_DESTROYED = 2,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_S_DESTROYED = 2,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_E_DESTROYED = 4,
|
||||
BATTLEFIELD_WG_TEXT_TOWER_W_DESTROYED = 6,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_NE_DAMAGED = 36,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_NW_DAMAGED = 34,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_SE_DAMAGED = 38,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_SW_DAMAGED = 40,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_NE_DESTROYED = 37,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_NE_DESTROYED = 37,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_NW_DESTROYED = 35,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_SE_DESTROYED = 39,
|
||||
BATTLEFIELD_WG_TEXT_KEEPTOWER_SW_DESTROYED = 41,
|
||||
@@ -571,7 +571,7 @@ struct WintergraspBuildingSpawnData
|
||||
float o;
|
||||
uint32 type;
|
||||
uint32 damageText;
|
||||
uint32 destroyText;
|
||||
uint32 destroyText;
|
||||
};
|
||||
|
||||
const WintergraspBuildingSpawnData WGGameObjectBuilding[WG_MAX_OBJ] = {
|
||||
@@ -637,38 +637,38 @@ const Position WGTurret[WG_MAX_TURRET] = {
|
||||
{ 5390.95f, 2615.5f, 421.126f, 4.6409f },
|
||||
{ 5148.8f, 2820.24f, 421.621f, 3.16043f },
|
||||
{ 5147.98f, 2861.93f, 421.63f, 3.18792f },
|
||||
{ 5352.22f, 3061.46f, 421.102f, 1.52235f }
|
||||
{ 5352.22f, 3061.46f, 421.102f, 1.52235f }
|
||||
};
|
||||
|
||||
static bool IsKeepNpc(uint32 entry)
|
||||
{
|
||||
switch (entry)
|
||||
{
|
||||
case BATTLEFIELD_WG_NPC_GUARD_H:
|
||||
case BATTLEFIELD_WG_NPC_GUARD_A:
|
||||
case BATTLEFIELD_WG_NPC_VIERON_BLAZEFEATHER:
|
||||
case BATTLEFIELD_WG_NPC_BOWYER_RANDOLPH:
|
||||
case BATTLEFIELD_WG_NPC_STONE_GUARD_MUKAR:
|
||||
case BATTLEFIELD_WG_NPC_KNIGHT_DAMERON:
|
||||
case BATTLEFIELD_WG_NPC_HOODOO_MASTER_FU_JIN:
|
||||
case BATTLEFIELD_WG_NPC_SORCERESS_KAYLANA:
|
||||
case BATTLEFIELD_WG_NPC_CHAMPION_ROS_SLAI:
|
||||
case BATTLEFIELD_WG_NPC_MARSHAL_MAGRUDER:
|
||||
case BATTLEFIELD_WG_NPC_COMMANDER_DARDOSH:
|
||||
case BATTLEFIELD_WG_NPC_COMMANDER_ZANNETH:
|
||||
case BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_KILRATH:
|
||||
case BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_AHBRAMIS:
|
||||
case BATTLEFIELD_WG_NPC_HORDE_WARBRINGER:
|
||||
case BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL:
|
||||
case BATTLEFIELD_WG_NPC_SIEGESMITH_STRONGHOOF:
|
||||
case BATTLEFIELD_WG_NPC_SIEGE_MASTER_STOUTHANDLE:
|
||||
case BATTLEFIELD_WG_NPC_PRIMALIST_MULFORT:
|
||||
case BATTLEFIELD_WG_NPC_ANCHORITE_TESSA:
|
||||
case BATTLEFIELD_WG_NPC_LIEUTENANT_MURP:
|
||||
case BATTLEFIELD_WG_NPC_SENIOR_DEMOLITIONIST_LEGOSO:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
switch (entry)
|
||||
{
|
||||
case BATTLEFIELD_WG_NPC_GUARD_H:
|
||||
case BATTLEFIELD_WG_NPC_GUARD_A:
|
||||
case BATTLEFIELD_WG_NPC_VIERON_BLAZEFEATHER:
|
||||
case BATTLEFIELD_WG_NPC_BOWYER_RANDOLPH:
|
||||
case BATTLEFIELD_WG_NPC_STONE_GUARD_MUKAR:
|
||||
case BATTLEFIELD_WG_NPC_KNIGHT_DAMERON:
|
||||
case BATTLEFIELD_WG_NPC_HOODOO_MASTER_FU_JIN:
|
||||
case BATTLEFIELD_WG_NPC_SORCERESS_KAYLANA:
|
||||
case BATTLEFIELD_WG_NPC_CHAMPION_ROS_SLAI:
|
||||
case BATTLEFIELD_WG_NPC_MARSHAL_MAGRUDER:
|
||||
case BATTLEFIELD_WG_NPC_COMMANDER_DARDOSH:
|
||||
case BATTLEFIELD_WG_NPC_COMMANDER_ZANNETH:
|
||||
case BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_KILRATH:
|
||||
case BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_AHBRAMIS:
|
||||
case BATTLEFIELD_WG_NPC_HORDE_WARBRINGER:
|
||||
case BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL:
|
||||
case BATTLEFIELD_WG_NPC_SIEGESMITH_STRONGHOOF:
|
||||
case BATTLEFIELD_WG_NPC_SIEGE_MASTER_STOUTHANDLE:
|
||||
case BATTLEFIELD_WG_NPC_PRIMALIST_MULFORT:
|
||||
case BATTLEFIELD_WG_NPC_ANCHORITE_TESSA:
|
||||
case BATTLEFIELD_WG_NPC_LIEUTENANT_MURP:
|
||||
case BATTLEFIELD_WG_NPC_SENIOR_DEMOLITIONIST_LEGOSO:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Here there is all npc keeper spawn point
|
||||
@@ -690,13 +690,13 @@ const WintergraspObjectPositionData WGKeepNPC[WG_MAX_KEEP_NPC] =
|
||||
{ 5388.560059f, 2834.770020f, 418.759003f, 3.071780f, BATTLEFIELD_WG_NPC_GUARD_H, BATTLEFIELD_WG_NPC_GUARD_A }, // Standing Guard
|
||||
{ 5359.129883f, 2837.989990f, 409.364014f, 4.698930f, BATTLEFIELD_WG_NPC_COMMANDER_DARDOSH, BATTLEFIELD_WG_NPC_COMMANDER_ZANNETH }, // Commander Dardosh
|
||||
{ 5366.129883f, 2833.399902f, 409.322998f, 3.141590f, BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_KILRATH, BATTLEFIELD_WG_NPC_TACTICAL_OFFICER_AHBRAMIS }, // Tactical Officer Kilrath
|
||||
{ 5467.590000f, 2841.060000f, 418.758000f, 1.396260f, BATTLEFIELD_WG_NPC_HORDE_WARBRINGER, BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL }, // Battlemaster
|
||||
{ 5467.590000f, 2841.060000f, 418.758000f, 1.396260f, BATTLEFIELD_WG_NPC_HORDE_WARBRINGER, BATTLEFIELD_WG_NPC_BRIGADIER_GENERAL }, // Battlemaster
|
||||
|
||||
{ 5415.120000f, 2811.420000f, 418.758000f, 2.321290f, BATTLEFIELD_WG_NPC_AV_PORTAL_HORDE, BATTLEFIELD_WG_NPC_AV_PORTAL_ALLY }, // Portal
|
||||
{ 5467.560000f, 2810.080000f, 418.758000f, 0.837758f, BATTLEFIELD_WG_NPC_AB_PORTAL_HORDE, BATTLEFIELD_WG_NPC_AB_PORTAL_ALLY }, // Portal
|
||||
{ 5476.330000f, 2863.210000f, 418.758000f, 0.471239f, BATTLEFIELD_WG_NPC_EOTS_PORTAL_HORDE, BATTLEFIELD_WG_NPC_EOTS_PORTAL_ALLY }, // Portal
|
||||
{ 5468.270000f, 2871.140000f, 418.758000f, 0.000000f, BATTLEFIELD_WG_NPC_SOTA_PORTAL_HORDE, BATTLEFIELD_WG_NPC_SOTA_PORTAL_ALLY }, // Portal
|
||||
{ 5476.100000f, 2818.040000f, 418.758000f, 4.380780f, BATTLEFIELD_WG_NPC_WG_PORTAL_HORDE, BATTLEFIELD_WG_NPC_WG_PORTAL_ALLY }, // Portal
|
||||
{ 5415.120000f, 2811.420000f, 418.758000f, 2.321290f, BATTLEFIELD_WG_NPC_AV_PORTAL_HORDE, BATTLEFIELD_WG_NPC_AV_PORTAL_ALLY }, // Portal
|
||||
{ 5467.560000f, 2810.080000f, 418.758000f, 0.837758f, BATTLEFIELD_WG_NPC_AB_PORTAL_HORDE, BATTLEFIELD_WG_NPC_AB_PORTAL_ALLY }, // Portal
|
||||
{ 5476.330000f, 2863.210000f, 418.758000f, 0.471239f, BATTLEFIELD_WG_NPC_EOTS_PORTAL_HORDE, BATTLEFIELD_WG_NPC_EOTS_PORTAL_ALLY }, // Portal
|
||||
{ 5468.270000f, 2871.140000f, 418.758000f, 0.000000f, BATTLEFIELD_WG_NPC_SOTA_PORTAL_HORDE, BATTLEFIELD_WG_NPC_SOTA_PORTAL_ALLY }, // Portal
|
||||
{ 5476.100000f, 2818.040000f, 418.758000f, 4.380780f, BATTLEFIELD_WG_NPC_WG_PORTAL_HORDE, BATTLEFIELD_WG_NPC_WG_PORTAL_ALLY }, // Portal
|
||||
|
||||
// X Y Z O horde alliance
|
||||
// North West
|
||||
@@ -1059,7 +1059,7 @@ struct WGWorkshopData
|
||||
uint8 id;
|
||||
uint32 worldstate;
|
||||
uint8 attackText;
|
||||
uint8 takenText;
|
||||
uint8 takenText;
|
||||
};
|
||||
|
||||
const WGWorkshopData WorkshopsData[WG_MAX_WORKSHOP] =
|
||||
@@ -1093,7 +1093,7 @@ struct BfWGGameObjectBuilding
|
||||
m_WorldState = 0;
|
||||
m_State = 0;
|
||||
m_damagedText = 0;
|
||||
m_destroyedText = 0;
|
||||
m_destroyedText = 0;
|
||||
}
|
||||
|
||||
// the team that controls this point
|
||||
@@ -1116,7 +1116,7 @@ struct BfWGGameObjectBuilding
|
||||
|
||||
// Name id for warning text
|
||||
uint8 m_damagedText;
|
||||
uint8 m_destroyedText;
|
||||
uint8 m_destroyedText;
|
||||
|
||||
// GameObject associations
|
||||
GameObjectSet m_GameObjectList[2];
|
||||
@@ -1145,13 +1145,13 @@ struct BfWGGameObjectBuilding
|
||||
break;
|
||||
}
|
||||
|
||||
GameObject* go = ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL);
|
||||
if (go)
|
||||
{
|
||||
// Rebuild gameobject
|
||||
go->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true);
|
||||
go->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[m_Team]);
|
||||
}
|
||||
GameObject* go = ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL);
|
||||
if (go)
|
||||
{
|
||||
// Rebuild gameobject
|
||||
go->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true);
|
||||
go->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[m_Team]);
|
||||
}
|
||||
|
||||
// Update worldstate
|
||||
m_State = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT - (m_Team * 3);
|
||||
@@ -1171,7 +1171,7 @@ struct BfWGGameObjectBuilding
|
||||
m_WG->SendWarningToAllInZone(m_damagedText);
|
||||
|
||||
for (GuidSet::const_iterator itr = m_CreatureTopList[m_WG->GetAttackerTeam()].begin(); itr != m_CreatureTopList[m_WG->GetAttackerTeam()].end(); ++itr)
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
if (Creature* creature = unit->ToCreature())
|
||||
m_WG->HideNpc(creature);
|
||||
|
||||
@@ -1199,8 +1199,8 @@ struct BfWGGameObjectBuilding
|
||||
{
|
||||
// Inform the global wintergrasp script of the destruction of this object
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_TOWER:
|
||||
m_WG->UpdatedDestroyedTowerCount(TeamId(m_Team), ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL));
|
||||
break;
|
||||
m_WG->UpdatedDestroyedTowerCount(TeamId(m_Team), ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL));
|
||||
break;
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_DOOR_LAST:
|
||||
m_WG->SetRelicInteractible(true);
|
||||
if (GameObject* go = m_WG->GetRelic())
|
||||
@@ -1208,11 +1208,11 @@ struct BfWGGameObjectBuilding
|
||||
else
|
||||
sLog->outError("BattlefieldWG: Relic not found.");
|
||||
break;
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_DOOR:
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_WALL:
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_KEEP_TOWER:
|
||||
m_WG->UpdatedDestroyedTowerCount(TeamId(m_Team), ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL));
|
||||
break;
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_DOOR:
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_WALL:
|
||||
case BATTLEFIELD_WG_OBJECTTYPE_KEEP_TOWER:
|
||||
m_WG->UpdatedDestroyedTowerCount(TeamId(m_Team), ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL));
|
||||
break;
|
||||
}
|
||||
|
||||
m_WG->BrokenWallOrTower(TeamId(m_Team));
|
||||
@@ -1231,7 +1231,7 @@ struct BfWGGameObjectBuilding
|
||||
|
||||
// NameId for Warning text
|
||||
m_damagedText = damageText;
|
||||
m_destroyedText = destroyText;
|
||||
m_destroyedText = destroyText;
|
||||
|
||||
switch (m_Type)
|
||||
{
|
||||
@@ -1388,17 +1388,17 @@ struct BfWGGameObjectBuilding
|
||||
|
||||
void UpdateTurretAttack(bool disable)
|
||||
{
|
||||
GameObject* build = ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL);
|
||||
if (!build)
|
||||
return;
|
||||
GameObject* build = ObjectAccessor::GetObjectInWorld(m_Build, (GameObject*)NULL);
|
||||
if (!build)
|
||||
return;
|
||||
|
||||
uint32 faction = 0;
|
||||
switch (build->GetEntry())
|
||||
uint32 faction = 0;
|
||||
switch (build->GetEntry())
|
||||
{
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_1:
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_2:
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_3:
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_4:
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_3:
|
||||
case GO_WINTERGRASP_FORTRESS_TOWER_4:
|
||||
faction = WintergraspFaction[m_WG->GetDefenderTeam()];
|
||||
break;
|
||||
case GO_WINTERGRASP_SHADOWSIGHT_TOWER:
|
||||
@@ -1408,19 +1408,19 @@ struct BfWGGameObjectBuilding
|
||||
break;
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_TowerCannonBottomList.begin(); itr != m_TowerCannonBottomList.end(); ++itr)
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_TowerCannonBottomList.begin(); itr != m_TowerCannonBottomList.end(); ++itr)
|
||||
{
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
{
|
||||
{
|
||||
if (Creature* creature = unit->ToCreature())
|
||||
{
|
||||
creature->setFaction(faction);
|
||||
{
|
||||
creature->setFaction(faction);
|
||||
if (disable)
|
||||
m_WG->HideNpc(creature);
|
||||
else
|
||||
m_WG->ShowNpc(creature, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_TurretTopList.begin(); itr != m_TurretTopList.end(); ++itr)
|
||||
@@ -1429,7 +1429,7 @@ struct BfWGGameObjectBuilding
|
||||
{
|
||||
if (Creature* creature = unit->ToCreature())
|
||||
{
|
||||
creature->setFaction(faction);
|
||||
creature->setFaction(faction);
|
||||
if (disable)
|
||||
m_WG->HideNpc(creature);
|
||||
else
|
||||
@@ -1499,10 +1499,10 @@ struct WGWorkshop
|
||||
}
|
||||
|
||||
if (!init)
|
||||
{
|
||||
{
|
||||
bf->UpdateCounterVehicle(false);
|
||||
bf->CapturePointTaken(bf->GetAreaByGraveyardId(workshopId));
|
||||
}
|
||||
bf->CapturePointTaken(bf->GetAreaByGraveyardId(workshopId));
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateGraveyardAndWorkshop()
|
||||
|
||||
Reference in New Issue
Block a user