Core: Killing magic numbers.
This commit is contained in:
@@ -28,8 +28,8 @@
|
||||
|
||||
BattlegroundIC::BattlegroundIC()
|
||||
{
|
||||
m_BgObjects.resize(GAMEOBJECT_MAX_SPAWNS + MAX_AIRSHIPS + MAX_HANGAR_TELEPORTERS + MAX_TELEPORTERS_SPAWNS);
|
||||
m_BgCreatures.resize(NPCS_MAX_SPAWNS + MAX_WORKSHOP_SPAWNS + MAX_DOCKS_SPAWNS + MAX_SPIRIT_GUIDES);
|
||||
m_BgObjects.resize(MAX_NORMAL_GAMEOBJECTS_SPAWNS + MAX_AIRSHIPS_SPAWNS + MAX_HANGAR_TELEPORTERS_SPAWNS + MAX_FORTRESS_TELEPORTERS_SPAWNS);
|
||||
m_BgCreatures.resize(MAX_NORMAL_NPCS_SPAWNS + MAX_WORKSHOP_SPAWNS + MAX_DOCKS_SPAWNS + MAX_SPIRIT_GUIDES_SPAWNS);
|
||||
|
||||
m_StartMessageIds[BG_STARTING_EVENT_FIRST] = LANG_BG_IC_START_TWO_MINUTES;
|
||||
m_StartMessageIds[BG_STARTING_EVENT_SECOND] = LANG_BG_IC_START_ONE_MINUTE;
|
||||
@@ -37,19 +37,19 @@ BattlegroundIC::BattlegroundIC()
|
||||
m_StartMessageIds[BG_STARTING_EVENT_FOURTH] = LANG_BG_IC_HAS_BEGUN;
|
||||
|
||||
for (uint8 i = 0; i < 2; i++)
|
||||
factionReinforcements[i] = 300;
|
||||
factionReinforcements[i] = MAX_REINFORCEMENTS;
|
||||
|
||||
for (uint8 i = 0; i < BG_IC_MAXDOOR; i++)
|
||||
GateStatus[i] = BG_IC_GATE_OK;
|
||||
|
||||
closeFortressDoors = 20000; // the doors are closed again... in a special way
|
||||
closeFortressDoorsTimer = CLOSE_DOORS_TIME; // the doors are closed again... in a special way
|
||||
doorsClosed = false;
|
||||
resourceTimer = IC_RESOURCE_TIME;
|
||||
|
||||
for (uint8 i = 0; i < 7; i++)
|
||||
for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; i++)
|
||||
nodePoint[i] = nodePointInitial[i];
|
||||
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER;
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;
|
||||
|
||||
gunshipHorde = NULL;
|
||||
gunshipAlliance = NULL;
|
||||
@@ -87,7 +87,7 @@ void BattlegroundIC::SendTransportInit(Player* player)
|
||||
|
||||
void BattlegroundIC::DoAction(uint32 action, uint64 var)
|
||||
{
|
||||
if (action != 1)
|
||||
if (action != ACTION_TELEPORT_PLAYER_TO_TRANSPORT)
|
||||
return;
|
||||
|
||||
Player* plr = sObjectMgr->GetPlayer(var);
|
||||
@@ -95,15 +95,17 @@ void BattlegroundIC::DoAction(uint32 action, uint64 var)
|
||||
if (!plr || !gunshipAlliance || !gunshipHorde)
|
||||
return;
|
||||
|
||||
plr->CastSpell(plr,SPELL_PARACHUTE,true);
|
||||
plr->CastSpell(plr,SPELL_PARACHUTE,true); // this must be changed, there is a trigger in each transport that casts the spell.
|
||||
plr->CastSpell(plr,SPELL_SLOW_FALL,true);
|
||||
|
||||
plr->SetTransport(plr->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde);
|
||||
plr->m_movementInfo.t_pos.m_positionX = 7.305609f;
|
||||
plr->m_movementInfo.t_pos.m_positionY = -0.095246f;
|
||||
plr->m_movementInfo.t_pos.m_positionZ = 34.51022f;
|
||||
|
||||
plr->m_movementInfo.t_pos.m_positionX = TransportMovementInfo.GetPositionX();
|
||||
plr->m_movementInfo.t_pos.m_positionY = TransportMovementInfo.GetPositionY();
|
||||
plr->m_movementInfo.t_pos.m_positionZ = TransportMovementInfo.GetPositionZ();
|
||||
plr->m_movementInfo.t_guid = (plr->GetTeamId() == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->GetGUID();
|
||||
plr->TeleportTo(GetMapId(),661,-1244,288,0,TELE_TO_NOT_LEAVE_TRANSPORT);
|
||||
|
||||
plr->TeleportTo(GetMapId(),TeleportToTransportPosition.GetPositionX(),TeleportToTransportPosition.GetPositionY(),TeleportToTransportPosition.GetPositionZ(),TeleportToTransportPosition.GetOrientation(),TELE_TO_NOT_LEAVE_TRANSPORT);
|
||||
}
|
||||
|
||||
void BattlegroundIC::Update(uint32 diff)
|
||||
@@ -115,7 +117,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
|
||||
if (!doorsClosed)
|
||||
{
|
||||
if (closeFortressDoors <= diff)
|
||||
if (closeFortressDoorsTimer <= diff)
|
||||
{
|
||||
GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01)->RemoveFromWorld();
|
||||
GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01)->RemoveFromWorld();
|
||||
@@ -124,10 +126,10 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
GetBGObject(BG_IC_GO_HORDE_GATE_1)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); // Horde door
|
||||
|
||||
doorsClosed = true;
|
||||
} else closeFortressDoors -= diff;
|
||||
} else closeFortressDoorsTimer -= diff;
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < MAX_NODE_TYPES; i++)
|
||||
for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; i++)
|
||||
{
|
||||
if (nodePoint[i].nodeType == NODE_TYPE_DOCKS)
|
||||
{
|
||||
@@ -156,7 +158,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
}
|
||||
}
|
||||
|
||||
docksTimer = DOCKS_UPDATE_TIMER;
|
||||
docksTimer = DOCKS_UPDATE_TIME;
|
||||
} else nodePoint[i].timer -= diff;
|
||||
}
|
||||
}
|
||||
@@ -193,7 +195,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
demolisher->Respawn(true);
|
||||
}
|
||||
}
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER;
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;
|
||||
} else siegeEngineWorkshopTimer -= diff;
|
||||
}
|
||||
}
|
||||
@@ -227,7 +229,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
SendMessage2ToAll(LANG_BG_IC_TEAM_HAS_TAKEN_NODE,CHAT_MSG_BG_SYSTEM_NEUTRAL,NULL,(nodePoint[i].faction == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE),nodePoint[i].string);
|
||||
|
||||
nodePoint[i].needChange = false;
|
||||
nodePoint[i].timer = 60000;
|
||||
nodePoint[i].timer = BANNER_STATE_CHANGE_TIME;
|
||||
} else nodePoint[i].timer -= diff;
|
||||
}
|
||||
}
|
||||
@@ -240,7 +242,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)
|
||||
{
|
||||
factionReinforcements[nodePoint[i].faction] += 1;
|
||||
RewardHonorToTeam(12,nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE);
|
||||
RewardHonorToTeam(RESOURCE_HONOR_AMOUNT,nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE);
|
||||
UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[nodePoint[i].faction]);
|
||||
}
|
||||
}
|
||||
@@ -268,7 +270,7 @@ void BattlegroundIC::StartingEventOpenDoors()
|
||||
DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_1);
|
||||
DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2);
|
||||
|
||||
for (uint8 i = 0; i < MAX_TELEPORTERS_SPAWNS; i++)
|
||||
for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; i++)
|
||||
{
|
||||
if (!AddObject(BG_IC_Teleporters[i].type,BG_IC_Teleporters[i].entry,
|
||||
BG_IC_Teleporters[i].x,BG_IC_Teleporters[i].y,
|
||||
@@ -349,7 +351,7 @@ void BattlegroundIC::FillInitialWorldStates(WorldPacket& data)
|
||||
data << uint32(BG_IC_ALLIANCE_RENFORT) << uint32(factionReinforcements[TEAM_ALLIANCE]);
|
||||
data << uint32(BG_IC_HORDE_RENFORT) << uint32(factionReinforcements[TEAM_HORDE]);
|
||||
|
||||
for (uint8 i = 0; i < 6; i++)
|
||||
for (uint8 i = 0; i < MAX_FORTRESS_GATES_SPAWNS; i++)
|
||||
{
|
||||
uint32 uws = GetWorldStateFromGateEntry(BG_IC_ObjSpawnlocs[i].entry,(GateStatus[GetGateIDFromEntry(BG_IC_ObjSpawnlocs[i].entry)] == BG_IC_GATE_DESTROYED ? true : false));
|
||||
data << uint32(uws) << uint32(1);
|
||||
@@ -361,7 +363,7 @@ void BattlegroundIC::FillInitialWorldStates(WorldPacket& data)
|
||||
|
||||
bool BattlegroundIC::SetupBattleground()
|
||||
{
|
||||
for (uint8 i = 0; i < GAMEOBJECT_MAX_SPAWNS; i++)
|
||||
for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; i++)
|
||||
{
|
||||
if (!AddObject(BG_IC_ObjSpawnlocs[i].type,BG_IC_ObjSpawnlocs[i].entry,
|
||||
BG_IC_ObjSpawnlocs[i].x,BG_IC_ObjSpawnlocs[i].y,
|
||||
@@ -373,7 +375,7 @@ bool BattlegroundIC::SetupBattleground()
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < NPCS_MAX_SPAWNS; i++)
|
||||
for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; i++)
|
||||
{
|
||||
if (!AddCreature(BG_IC_NpcSpawnlocs[i].entry,BG_IC_NpcSpawnlocs[i].type,BG_IC_NpcSpawnlocs[i].team,
|
||||
BG_IC_NpcSpawnlocs[i].x,BG_IC_NpcSpawnlocs[i].y,
|
||||
@@ -394,8 +396,8 @@ bool BattlegroundIC::SetupBattleground()
|
||||
return false;
|
||||
}
|
||||
|
||||
gunshipHorde = CreateTransport(GO_HORDE_GUNSHIP,120000);
|
||||
gunshipAlliance = CreateTransport(GO_ALLIANCE_GUNSHIP,120000);
|
||||
gunshipHorde = CreateTransport(GO_HORDE_GUNSHIP,TRANSPORT_PERIOD_TIME);
|
||||
gunshipAlliance = CreateTransport(GO_ALLIANCE_GUNSHIP,TRANSPORT_PERIOD_TIME);
|
||||
|
||||
if (!gunshipAlliance || !gunshipHorde)
|
||||
{
|
||||
@@ -431,19 +433,19 @@ void BattlegroundIC::HandleKillUnit(Creature *unit, Player* killer)
|
||||
uint32 entry = unit->GetEntry();
|
||||
if (entry == NPC_HIGH_COMMANDER_HALFORD_WYRMBANE)
|
||||
{
|
||||
RewardHonorToTeam(500,HORDE);
|
||||
RewardHonorToTeam(WINNER_HONOR_AMOUNT,HORDE);
|
||||
EndBattleground(HORDE);
|
||||
}
|
||||
else if (entry == NPC_OVERLORD_AGMAR)
|
||||
{
|
||||
RewardHonorToTeam(500,ALLIANCE);
|
||||
RewardHonorToTeam(WINNER_HONOR_AMOUNT,ALLIANCE);
|
||||
EndBattleground(ALLIANCE);
|
||||
}
|
||||
|
||||
//Achievement Mowed Down
|
||||
// TO-DO: This should be done on the script of each vehicle of the BG.
|
||||
if (unit->IsVehicle())
|
||||
killer->CastSpell(killer,68357,true);
|
||||
killer->CastSpell(killer,SPELL_DESTROYED_VEHICLE_ACHIEVEMENT,true);
|
||||
}
|
||||
|
||||
void BattlegroundIC::HandleKillPlayer(Player* player, Player* killer)
|
||||
@@ -513,9 +515,10 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target
|
||||
nodePoint[i].gameobject_entry = nextBanner;
|
||||
|
||||
// this is just needed if the next banner is grey
|
||||
if (nodePoint[i].banners[1] == nextBanner || nodePoint[i].banners[3] == nextBanner)
|
||||
if (nodePoint[i].banners[BANNER_A_CONTESTED] == nextBanner ||
|
||||
nodePoint[i].banners[BANNER_H_CONTESTED] == nextBanner)
|
||||
{
|
||||
nodePoint[i].timer = 60000; // 1 minute for last change (real faction banner)
|
||||
nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)
|
||||
nodePoint[i].needChange = true;
|
||||
|
||||
RealocatePlayers(nodePoint[i].nodeType);
|
||||
@@ -531,9 +534,11 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target
|
||||
SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_1,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string);
|
||||
SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_2,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string, (player->GetTeamId() == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE));
|
||||
HandleContestedNodes(&nodePoint[i]);
|
||||
} else if (nextBanner == nodePoint[i].banners[0] || nextBanner == nodePoint[i].banners[2]) // if we are going to spawn the definitve faction banner, we dont need the timer anymore
|
||||
} else if (nextBanner == nodePoint[i].banners[BANNER_A_CONTROLLED] ||
|
||||
nextBanner == nodePoint[i].banners[BANNER_H_CONTROLLED])
|
||||
// if we are going to spawn the definitve faction banner, we dont need the timer anymore
|
||||
{
|
||||
nodePoint[i].timer = 60000;
|
||||
nodePoint[i].timer = BANNER_STATE_CHANGE_TIME;
|
||||
nodePoint[i].needChange = false;
|
||||
SendMessage2ToAll(LANG_BG_IC_TEAM_DEFENDED_NODE,CHAT_MSG_BG_SYSTEM_NEUTRAL,player,nodePoint[i].string);
|
||||
HandleCapturedNodes(&nodePoint[i],true);
|
||||
@@ -569,13 +574,13 @@ void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target
|
||||
void BattlegroundIC::UpdateNodeWorldState(ICNodePoint* nodePoint)
|
||||
{
|
||||
//updating worldstate
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[0])
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTROLLED])
|
||||
nodePoint->nodeState = NODE_STATE_CONTROLLED_A;
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[1])
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTESTED])
|
||||
nodePoint->nodeState = NODE_STATE_CONFLICT_A;
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[2])
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTROLLED])
|
||||
nodePoint->nodeState = NODE_STATE_CONTROLLED_H;
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[3])
|
||||
else if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTESTED])
|
||||
nodePoint->nodeState = NODE_STATE_CONFLICT_H;
|
||||
|
||||
uint32 worldstate = nodePoint->worldStates[nodePoint->nodeState];
|
||||
@@ -592,19 +597,19 @@ uint32 BattlegroundIC::GetNextBanner(ICNodePoint* nodePoint, uint32 team, bool r
|
||||
// this is only used in the update map function
|
||||
if (returnDefinitve)
|
||||
// here is a special case, here we must return the definitve faction banner after the grey banner was spawned 1 minute
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? 0 : 2)];
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTROLLED : BANNER_H_CONTROLLED)];
|
||||
|
||||
// there were no changes, this point has never been captured by any faction or at least clicked
|
||||
if (nodePoint->last_entry == 0)
|
||||
// 1 returns the CONTESTED ALLIANCE BANNER, 3 returns the HORDE one
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? 1 : 3)];
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)];
|
||||
|
||||
// If the actual banner is the definitive faction banner, we must return the grey banner of the player's faction
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[0] || nodePoint->gameobject_entry == nodePoint->banners[2])
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? 1 : 3)];
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTROLLED] || nodePoint->gameobject_entry == nodePoint->banners[BANNER_H_CONTROLLED])
|
||||
return nodePoint->banners[(team == TEAM_ALLIANCE ? BANNER_A_CONTESTED : BANNER_H_CONTESTED)];
|
||||
|
||||
// If the actual banner is the grey faction banner, we must return the previous banner
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[1] || nodePoint->banners[3])
|
||||
if (nodePoint->gameobject_entry == nodePoint->banners[BANNER_A_CONTESTED] || nodePoint->banners[BANNER_H_CONTESTED])
|
||||
return nodePoint->last_entry;
|
||||
|
||||
// we should never be here...
|
||||
@@ -642,7 +647,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
if (!gunshipAlliance || !gunshipHorde)
|
||||
break;
|
||||
|
||||
for (uint8 u = 0; u < 3; u++)
|
||||
for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; u++)
|
||||
{
|
||||
uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1+u;
|
||||
AddObject(type, (nodePoint->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL),
|
||||
@@ -670,8 +675,8 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
if (recapture)
|
||||
break;
|
||||
|
||||
if (docksTimer < DOCKS_UPDATE_TIMER)
|
||||
docksTimer = DOCKS_UPDATE_TIMER;
|
||||
if (docksTimer < DOCKS_UPDATE_TIME)
|
||||
docksTimer = DOCKS_UPDATE_TIME;
|
||||
|
||||
// we must del opposing faction vehicles when the node is captured (unused ones)
|
||||
for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_H : BG_IC_NPC_GLAIVE_THROWER_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_H : BG_IC_NPC_GLAIVE_THROWER_2_A); i++)
|
||||
@@ -699,14 +704,14 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
}
|
||||
|
||||
// spawning glaive throwers
|
||||
for (uint8 i = 0; i < 2; i++)
|
||||
for (uint8 i = 0; i < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; i++)
|
||||
{
|
||||
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i;
|
||||
|
||||
if (GetBGCreature(type) && GetBGCreature(type)->isAlive())
|
||||
continue;
|
||||
|
||||
if (AddCreature(NPC_GLAIVE_THROWER,type,nodePoint->faction,
|
||||
if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H,type,nodePoint->faction,
|
||||
BG_IC_DocksVehiclesGlaives[i].GetPositionX(),BG_IC_DocksVehiclesGlaives[i].GetPositionY(),
|
||||
BG_IC_DocksVehiclesGlaives[i].GetPositionZ(),BG_IC_DocksVehiclesGlaives[i].GetOrientation(),
|
||||
RESPAWN_ONE_DAY))
|
||||
@@ -714,7 +719,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
}
|
||||
|
||||
// spawning catapults
|
||||
for (uint8 i = 0; i < 4; i++)
|
||||
for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; i++)
|
||||
{
|
||||
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i;
|
||||
|
||||
@@ -730,15 +735,14 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
break;
|
||||
case BG_IC_GO_WORKSHOP_BANNER:
|
||||
{
|
||||
if (siegeEngineWorkshopTimer < WORKSHOP_UPDATE_TIMER)
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIMER;
|
||||
if (siegeEngineWorkshopTimer < WORKSHOP_UPDATE_TIME)
|
||||
siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;
|
||||
|
||||
if (!recapture)
|
||||
{
|
||||
// we must del opposing faction vehicles when the node is captured (unused ones)
|
||||
for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_H : BG_IC_NPC_DEMOLISHER_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_H : BG_IC_NPC_DEMOLISHER_4_A); i++)
|
||||
{
|
||||
//uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_H : BG_IC_NPC_DEMOLISHER_1_A)+i;
|
||||
if (Creature* demolisher = GetBGCreature(i))
|
||||
{
|
||||
if (Vehicle* vehicleDemolisher = demolisher->GetVehicleKit())
|
||||
@@ -750,7 +754,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < 4; i++)
|
||||
for (uint8 i = 0; i < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; i++)
|
||||
{
|
||||
uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H)+i;
|
||||
|
||||
@@ -792,7 +796,8 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture)
|
||||
}
|
||||
}
|
||||
}
|
||||
for (uint8 i = 0; i < 2; i++)
|
||||
|
||||
for (uint8 i = 0; i < MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION; i++)
|
||||
{
|
||||
AddObject(BG_IC_GO_SEAFORIUM_BOMBS_1+i,GO_SEAFORIUM_BOMBS,
|
||||
workshopBombs[i].GetPositionX(),workshopBombs[i].GetPositionY(),
|
||||
|
||||
@@ -37,7 +37,8 @@ enum creaturesIC
|
||||
NPC_DEMOLISHER = 34775,
|
||||
NPC_SIEGE_ENGINE_H = 35069,
|
||||
NPC_SIEGE_ENGINE_A = 34776,
|
||||
NPC_GLAIVE_THROWER = 34802,
|
||||
NPC_GLAIVE_THROWER_A = 34802,
|
||||
NPC_GLAIVE_THROWER_H = 35273,
|
||||
NPC_CATAPULT = 34793,
|
||||
NPC_HORDE_GUNSHIP_CANNON = 34935,
|
||||
NPC_ALLIANCE_GUNSHIP_CANNON = 34929
|
||||
@@ -181,16 +182,22 @@ enum gameobjectsIC
|
||||
GO_ALLIANCE_GUNSHIP = 195121,
|
||||
};
|
||||
|
||||
#define NPCS_MAX_SPAWNS BG_IC_NPC_KEEP_CANNON_25+1
|
||||
#define MAX_WORKSHOP_SPAWNS 10
|
||||
#define MAX_DOCKS_SPAWNS 12
|
||||
#define MAX_SPIRIT_GUIDES 7
|
||||
#define MAX_HANGAR_TELEPORTERS 3
|
||||
#define MAX_AIRSHIPS 2
|
||||
#define MAX_REINFORCEMENTS 300
|
||||
|
||||
#define WORKSHOP_UPDATE_TIMER 180000 // 3 minutes
|
||||
#define DOCKS_UPDATE_TIMER 180000 // not sure if it is 3 minutes
|
||||
#define IC_RESOURCE_TIME 45000 // not sure, need more research
|
||||
enum Times
|
||||
{
|
||||
WORKSHOP_UPDATE_TIME = 180000, // 3 minutes
|
||||
DOCKS_UPDATE_TIME = 180000, // not sure if it is 3 minutes
|
||||
IC_RESOURCE_TIME = 45000, // not sure, need more research
|
||||
CLOSE_DOORS_TIME = 20000,
|
||||
BANNER_STATE_CHANGE_TIME = 60000,
|
||||
TRANSPORT_PERIOD_TIME = 120000
|
||||
};
|
||||
|
||||
enum Actions
|
||||
{
|
||||
ACTION_TELEPORT_PLAYER_TO_TRANSPORT = 1
|
||||
};
|
||||
|
||||
struct ICNpc
|
||||
{
|
||||
@@ -203,154 +210,6 @@ struct ICNpc
|
||||
float o;
|
||||
};
|
||||
|
||||
enum BG_IC_NPCs
|
||||
{
|
||||
BG_IC_NPC_OVERLORD_AGMAR = 0,
|
||||
BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_1,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_2,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_3,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_4,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4,
|
||||
BG_IC_NPC_KEEP_CANNON_1,
|
||||
BG_IC_NPC_KEEP_CANNON_2,
|
||||
BG_IC_NPC_KEEP_CANNON_3,
|
||||
BG_IC_NPC_KEEP_CANNON_4,
|
||||
BG_IC_NPC_KEEP_CANNON_5,
|
||||
BG_IC_NPC_KEEP_CANNON_6,
|
||||
BG_IC_NPC_KEEP_CANNON_7,
|
||||
BG_IC_NPC_KEEP_CANNON_8,
|
||||
BG_IC_NPC_KEEP_CANNON_9,
|
||||
BG_IC_NPC_KEEP_CANNON_10,
|
||||
BG_IC_NPC_KEEP_CANNON_11,
|
||||
BG_IC_NPC_KEEP_CANNON_12,
|
||||
BG_IC_NPC_KEEP_CANNON_13,
|
||||
BG_IC_NPC_KEEP_CANNON_14,
|
||||
BG_IC_NPC_KEEP_CANNON_15,
|
||||
BG_IC_NPC_KEEP_CANNON_16,
|
||||
BG_IC_NPC_KEEP_CANNON_17,
|
||||
BG_IC_NPC_KEEP_CANNON_18,
|
||||
BG_IC_NPC_KEEP_CANNON_19,
|
||||
BG_IC_NPC_KEEP_CANNON_20,
|
||||
BG_IC_NPC_KEEP_CANNON_21,
|
||||
BG_IC_NPC_KEEP_CANNON_22,
|
||||
BG_IC_NPC_KEEP_CANNON_23,
|
||||
BG_IC_NPC_KEEP_CANNON_24,
|
||||
BG_IC_NPC_KEEP_CANNON_25,
|
||||
|
||||
BG_IC_NPC_SIEGE_ENGINE_A,
|
||||
BG_IC_NPC_SIEGE_ENGINE_H,
|
||||
|
||||
BG_IC_NPC_DEMOLISHER_1_A,
|
||||
BG_IC_NPC_DEMOLISHER_2_A,
|
||||
BG_IC_NPC_DEMOLISHER_3_A,
|
||||
BG_IC_NPC_DEMOLISHER_4_A,
|
||||
|
||||
BG_IC_NPC_DEMOLISHER_1_H,
|
||||
BG_IC_NPC_DEMOLISHER_2_H,
|
||||
BG_IC_NPC_DEMOLISHER_3_H,
|
||||
BG_IC_NPC_DEMOLISHER_4_H,
|
||||
|
||||
BG_IC_NPC_GLAIVE_THROWER_1_A,
|
||||
BG_IC_NPC_GLAIVE_THROWER_2_A,
|
||||
BG_IC_NPC_GLAIVE_THROWER_1_H,
|
||||
BG_IC_NPC_GLAIVE_THROWER_2_H,
|
||||
|
||||
BG_IC_NPC_CATAPULT_1_A,
|
||||
BG_IC_NPC_CATAPULT_2_A,
|
||||
BG_IC_NPC_CATAPULT_3_A,
|
||||
BG_IC_NPC_CATAPULT_4_A,
|
||||
|
||||
BG_IC_NPC_CATAPULT_1_H,
|
||||
BG_IC_NPC_CATAPULT_2_H,
|
||||
BG_IC_NPC_CATAPULT_3_H,
|
||||
BG_IC_NPC_CATAPULT_4_H,
|
||||
|
||||
BG_IC_NPC_SPIRIT_GUIDE_1,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_2,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_3,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_4,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_5,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_6,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_7,
|
||||
};
|
||||
const ICNpc BG_IC_NpcSpawnlocs[NPCS_MAX_SPAWNS]=
|
||||
{
|
||||
{BG_IC_NPC_OVERLORD_AGMAR,NPC_OVERLORD_AGMAR,TEAM_HORDE,1295.44f,-765.733f,70.0541f,0.0f},//Overlord Agmar 1
|
||||
{BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,TEAM_ALLIANCE,224.983f,-831.573f,60.9034f,0.0f},//High Commander Halford Wyrmbane 2
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_1,NPC_KOR_KRON_GUARD,TEAM_HORDE,1296.01f,-773.256f,69.958f,0.292168f}, // 3
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_2,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.94f,-757.756f,69.9587f,6.02165f}, // 4
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_3,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.09f,-760.927f,69.9587f,5.94311f}, // 5
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_4,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.13f,-769.7f,69.95f,0.34f}, // 6
|
||||
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.969f,-822.958f,60.8151f,0.46337f}, // 7
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,224.211f,-826.952f,60.8188f,6.25961f}, // 8
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.119f,-838.386f,60.8145f,5.64857f}, // 9
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.889f,-835.102f,60.8201f,6.21642f},// 10
|
||||
|
||||
{BG_IC_NPC_KEEP_CANNON_1,NPC_KEEP_CANNON,TEAM_ALLIANCE,415.825f,-754.634f,87.799f,1.78024f},// 11
|
||||
{BG_IC_NPC_KEEP_CANNON_2,NPC_KEEP_CANNON,TEAM_ALLIANCE,410.142f,-755.332f,87.7991f,1.78024f},// 12
|
||||
{BG_IC_NPC_KEEP_CANNON_3,NPC_KEEP_CANNON,TEAM_ALLIANCE,424.33f,-879.352f,88.0446f,0.436332f},// 13
|
||||
{BG_IC_NPC_KEEP_CANNON_4,NPC_KEEP_CANNON,TEAM_ALLIANCE,425.602f,-786.646f,87.7991f,5.74213f},// 14
|
||||
{BG_IC_NPC_KEEP_CANNON_5,NPC_KEEP_CANNON,TEAM_ALLIANCE,426.743f,-884.939f,87.9613f,0.436332f},// 15
|
||||
{BG_IC_NPC_KEEP_CANNON_6,NPC_KEEP_CANNON,TEAM_ALLIANCE,404.736f,-755.495f,87.7989f,1.78024f},// 16
|
||||
{BG_IC_NPC_KEEP_CANNON_7,NPC_KEEP_CANNON,TEAM_ALLIANCE,428.375f,-780.797f,87.7991f,5.79449f},// 17
|
||||
{BG_IC_NPC_KEEP_CANNON_8,NPC_KEEP_CANNON,TEAM_ALLIANCE,429.175f,-890.436f,88.0446f,0.436332f},// 18
|
||||
{BG_IC_NPC_KEEP_CANNON_9,NPC_KEEP_CANNON,TEAM_ALLIANCE,430.872f,-775.278f,87.7991f,5.88176f},// 19
|
||||
{BG_IC_NPC_KEEP_CANNON_10,NPC_KEEP_CANNON,TEAM_ALLIANCE,408.056f,-911.283f,88.0445f,4.64258f},// 20
|
||||
{BG_IC_NPC_KEEP_CANNON_11,NPC_KEEP_CANNON,TEAM_ALLIANCE,413.609f,-911.566f,88.0447f,4.66003f},// 21
|
||||
{BG_IC_NPC_KEEP_CANNON_12,NPC_KEEP_CANNON,TEAM_ALLIANCE,402.554f,-910.557f,88.0446f,4.57276f},// 22
|
||||
|
||||
{BG_IC_NPC_KEEP_CANNON_13,NPC_KEEP_CANNON,TEAM_HORDE,1158.91f,-660.144f,87.9332f,0.750492f},// 23
|
||||
{BG_IC_NPC_KEEP_CANNON_14,NPC_KEEP_CANNON,TEAM_HORDE,1156.22f,-866.809f,87.8754f,5.27089f},// 24
|
||||
{BG_IC_NPC_KEEP_CANNON_15,NPC_KEEP_CANNON,TEAM_HORDE,1163.74f,-663.67f,88.3571f,0.558505f},// 25
|
||||
{BG_IC_NPC_KEEP_CANNON_16,NPC_KEEP_CANNON,TEAM_HORDE,1135.18f,-683.896f,88.0409f,3.9619f},// 26
|
||||
{BG_IC_NPC_KEEP_CANNON_17,NPC_KEEP_CANNON,TEAM_HORDE,1138.91f,-836.359f,88.3728f,2.18166f},// 27
|
||||
{BG_IC_NPC_KEEP_CANNON_18,NPC_KEEP_CANNON,TEAM_HORDE,1162.08f,-863.717f,88.358f,5.48033f},// 28
|
||||
{BG_IC_NPC_KEEP_CANNON_19,NPC_KEEP_CANNON,TEAM_HORDE,1167.13f,-669.212f,87.9682f,0.383972f},// 29
|
||||
{BG_IC_NPC_KEEP_CANNON_20,NPC_KEEP_CANNON,TEAM_HORDE,1137.72f,-688.517f,88.4023f,3.9619f},// 30
|
||||
{BG_IC_NPC_KEEP_CANNON_21,NPC_KEEP_CANNON,TEAM_HORDE,1135.29f,-840.878f,88.0252f,2.30383f},// 31
|
||||
{BG_IC_NPC_KEEP_CANNON_22,NPC_KEEP_CANNON,TEAM_HORDE,1144.33f,-833.309f,87.9268f,2.14675f},// 32
|
||||
{BG_IC_NPC_KEEP_CANNON_23,NPC_KEEP_CANNON,TEAM_HORDE,1135.29f,-840.878f,88.0252f,2.30383f},// 33
|
||||
{BG_IC_NPC_KEEP_CANNON_24,NPC_KEEP_CANNON,TEAM_HORDE,1142.59f,-691.946f,87.9756f,3.9619f},// 34
|
||||
{BG_IC_NPC_KEEP_CANNON_25,NPC_KEEP_CANNON,TEAM_HORDE,1166.13f,-858.391f,87.9653f,5.63741f},// 35
|
||||
};
|
||||
|
||||
const Position BG_IC_WorkshopVehicles[5] =
|
||||
{
|
||||
{751.8281f, -852.732666f, 12.5250978f, 1.46607661f}, // Demolisher
|
||||
{761.809f, -854.2274f, 12.5263243f, 1.46607661f}, // Demolisher
|
||||
{783.4722f, -853.9601f, 12.54775f, 1.71042264f}, // Demolisher
|
||||
{793.055542f, -852.71875f, 12.5671329f, 1.71042264f}, // Demolisher
|
||||
{773.680542f, -884.092041f, 16.8090363f, 1.58824956f} // Siege Engine
|
||||
};
|
||||
|
||||
const Position BG_IC_DocksVehiclesGlaives[2] =
|
||||
{
|
||||
{ 779.3125f, -342.972229f, 12.2104874f, 4.712389f }, // Glaive Throwers
|
||||
{ 790.029541f, -342.899323f, 12.2128582f, 4.71238f }, // Glaive Throwers
|
||||
};
|
||||
|
||||
const Position BG_IC_DocksVehiclesCatapults[4] =
|
||||
{
|
||||
{757.283f, -341.7795f, 12.2113762f, 4.729842f}, // Catapults
|
||||
{766.947937f, -342.053833f, 12.2009945f, 4.694f}, // Catapults
|
||||
{800.3785f, -342.607635f, 12.1669979f, 4.6774f}, // Catapults
|
||||
{810.7257f, -342.083344f, 12.1675768f, 4.6600f}, // Catapults
|
||||
};
|
||||
|
||||
const Position BG_IC_HangarTeleporters[3] =
|
||||
{
|
||||
{827.958f,-994.467f,134.071f,0.0f}, // Gunship Portal
|
||||
{738.613f,-1106.58f,134.745f,2.54818f}, // Gunship Portal
|
||||
{672.283f,-1156.99f,133.706f,1.37881f}, // Gunship Portal
|
||||
};
|
||||
|
||||
#define GAMEOBJECT_MAX_SPAWNS BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01+1
|
||||
|
||||
enum BG_IC_GOs
|
||||
{
|
||||
BG_IC_GO_ALLIANCE_BANNER = 0,
|
||||
@@ -480,6 +339,182 @@ enum BG_IC_GOs
|
||||
BG_IC_GO_TELEPORTER_EFFECTS_H_6,
|
||||
};
|
||||
|
||||
enum BG_IC_NPCs
|
||||
{
|
||||
BG_IC_NPC_OVERLORD_AGMAR = 0,
|
||||
BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_1,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_2,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_3,
|
||||
BG_IC_NPC_KOR_KRON_GUARD_4,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3,
|
||||
BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4,
|
||||
BG_IC_NPC_KEEP_CANNON_1,
|
||||
BG_IC_NPC_KEEP_CANNON_2,
|
||||
BG_IC_NPC_KEEP_CANNON_3,
|
||||
BG_IC_NPC_KEEP_CANNON_4,
|
||||
BG_IC_NPC_KEEP_CANNON_5,
|
||||
BG_IC_NPC_KEEP_CANNON_6,
|
||||
BG_IC_NPC_KEEP_CANNON_7,
|
||||
BG_IC_NPC_KEEP_CANNON_8,
|
||||
BG_IC_NPC_KEEP_CANNON_9,
|
||||
BG_IC_NPC_KEEP_CANNON_10,
|
||||
BG_IC_NPC_KEEP_CANNON_11,
|
||||
BG_IC_NPC_KEEP_CANNON_12,
|
||||
BG_IC_NPC_KEEP_CANNON_13,
|
||||
BG_IC_NPC_KEEP_CANNON_14,
|
||||
BG_IC_NPC_KEEP_CANNON_15,
|
||||
BG_IC_NPC_KEEP_CANNON_16,
|
||||
BG_IC_NPC_KEEP_CANNON_17,
|
||||
BG_IC_NPC_KEEP_CANNON_18,
|
||||
BG_IC_NPC_KEEP_CANNON_19,
|
||||
BG_IC_NPC_KEEP_CANNON_20,
|
||||
BG_IC_NPC_KEEP_CANNON_21,
|
||||
BG_IC_NPC_KEEP_CANNON_22,
|
||||
BG_IC_NPC_KEEP_CANNON_23,
|
||||
BG_IC_NPC_KEEP_CANNON_24,
|
||||
BG_IC_NPC_KEEP_CANNON_25,
|
||||
|
||||
BG_IC_NPC_SIEGE_ENGINE_A,
|
||||
BG_IC_NPC_SIEGE_ENGINE_H,
|
||||
|
||||
BG_IC_NPC_DEMOLISHER_1_A,
|
||||
BG_IC_NPC_DEMOLISHER_2_A,
|
||||
BG_IC_NPC_DEMOLISHER_3_A,
|
||||
BG_IC_NPC_DEMOLISHER_4_A,
|
||||
|
||||
BG_IC_NPC_DEMOLISHER_1_H,
|
||||
BG_IC_NPC_DEMOLISHER_2_H,
|
||||
BG_IC_NPC_DEMOLISHER_3_H,
|
||||
BG_IC_NPC_DEMOLISHER_4_H,
|
||||
|
||||
BG_IC_NPC_GLAIVE_THROWER_1_A,
|
||||
BG_IC_NPC_GLAIVE_THROWER_2_A,
|
||||
BG_IC_NPC_GLAIVE_THROWER_1_H,
|
||||
BG_IC_NPC_GLAIVE_THROWER_2_H,
|
||||
|
||||
BG_IC_NPC_CATAPULT_1_A,
|
||||
BG_IC_NPC_CATAPULT_2_A,
|
||||
BG_IC_NPC_CATAPULT_3_A,
|
||||
BG_IC_NPC_CATAPULT_4_A,
|
||||
|
||||
BG_IC_NPC_CATAPULT_1_H,
|
||||
BG_IC_NPC_CATAPULT_2_H,
|
||||
BG_IC_NPC_CATAPULT_3_H,
|
||||
BG_IC_NPC_CATAPULT_4_H,
|
||||
|
||||
BG_IC_NPC_SPIRIT_GUIDE_1,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_2,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_3,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_4,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_5,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_6,
|
||||
BG_IC_NPC_SPIRIT_GUIDE_7,
|
||||
};
|
||||
|
||||
enum BannersTypes
|
||||
{
|
||||
BANNER_A_CONTROLLED,
|
||||
BANNER_A_CONTESTED,
|
||||
BANNER_H_CONTROLLED,
|
||||
BANNER_H_CONTESTED
|
||||
};
|
||||
|
||||
enum BG_IC_MaxSpawns
|
||||
{
|
||||
MAX_NORMAL_GAMEOBJECTS_SPAWNS = BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01+1,
|
||||
MAX_NORMAL_NPCS_SPAWNS = BG_IC_NPC_KEEP_CANNON_25+1,
|
||||
MAX_WORKSHOP_SPAWNS = 10,
|
||||
MAX_DOCKS_SPAWNS = 12,
|
||||
MAX_SPIRIT_GUIDES_SPAWNS = 7,
|
||||
MAX_HANGAR_TELEPORTERS_SPAWNS = 3,
|
||||
MAX_AIRSHIPS_SPAWNS = 2,
|
||||
MAX_FORTRESS_GATES_SPAWNS = 6,
|
||||
MAX_FORTRESS_TELEPORTERS_SPAWNS = 24,
|
||||
|
||||
// docks
|
||||
MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION = 2,
|
||||
MAX_CATAPULTS_SPAWNS_PER_FACTION = 4,
|
||||
|
||||
// workshop
|
||||
MAX_DEMOLISHERS_SPAWNS_PER_FACTION = 4,
|
||||
MAX_WORKSHOP_BOMBS_SPAWNS_PER_FACTION = 2
|
||||
};
|
||||
|
||||
const ICNpc BG_IC_NpcSpawnlocs[MAX_NORMAL_NPCS_SPAWNS]=
|
||||
{
|
||||
{BG_IC_NPC_OVERLORD_AGMAR,NPC_OVERLORD_AGMAR,TEAM_HORDE,1295.44f,-765.733f,70.0541f,0.0f},//Overlord Agmar 1
|
||||
{BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,NPC_HIGH_COMMANDER_HALFORD_WYRMBANE,TEAM_ALLIANCE,224.983f,-831.573f,60.9034f,0.0f},//High Commander Halford Wyrmbane 2
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_1,NPC_KOR_KRON_GUARD,TEAM_HORDE,1296.01f,-773.256f,69.958f,0.292168f}, // 3
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_2,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.94f,-757.756f,69.9587f,6.02165f}, // 4
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_3,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.09f,-760.927f,69.9587f,5.94311f}, // 5
|
||||
{BG_IC_NPC_KOR_KRON_GUARD_4,NPC_KOR_KRON_GUARD,TEAM_HORDE,1295.13f,-769.7f,69.95f,0.34f}, // 6
|
||||
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_1,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.969f,-822.958f,60.8151f,0.46337f}, // 7
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_2,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,224.211f,-826.952f,60.8188f,6.25961f}, // 8
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_3,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.119f,-838.386f,60.8145f,5.64857f}, // 9
|
||||
{BG_IC_NPC_SEVEN_TH_LEGION_INFANTRY_4,NPC_SEVEN_TH_LEGION_INFANTRY,TEAM_ALLIANCE,223.889f,-835.102f,60.8201f,6.21642f},// 10
|
||||
|
||||
{BG_IC_NPC_KEEP_CANNON_1,NPC_KEEP_CANNON,TEAM_ALLIANCE,415.825f,-754.634f,87.799f,1.78024f},// 11
|
||||
{BG_IC_NPC_KEEP_CANNON_2,NPC_KEEP_CANNON,TEAM_ALLIANCE,410.142f,-755.332f,87.7991f,1.78024f},// 12
|
||||
{BG_IC_NPC_KEEP_CANNON_3,NPC_KEEP_CANNON,TEAM_ALLIANCE,424.33f,-879.352f,88.0446f,0.436332f},// 13
|
||||
{BG_IC_NPC_KEEP_CANNON_4,NPC_KEEP_CANNON,TEAM_ALLIANCE,425.602f,-786.646f,87.7991f,5.74213f},// 14
|
||||
{BG_IC_NPC_KEEP_CANNON_5,NPC_KEEP_CANNON,TEAM_ALLIANCE,426.743f,-884.939f,87.9613f,0.436332f},// 15
|
||||
{BG_IC_NPC_KEEP_CANNON_6,NPC_KEEP_CANNON,TEAM_ALLIANCE,404.736f,-755.495f,87.7989f,1.78024f},// 16
|
||||
{BG_IC_NPC_KEEP_CANNON_7,NPC_KEEP_CANNON,TEAM_ALLIANCE,428.375f,-780.797f,87.7991f,5.79449f},// 17
|
||||
{BG_IC_NPC_KEEP_CANNON_8,NPC_KEEP_CANNON,TEAM_ALLIANCE,429.175f,-890.436f,88.0446f,0.436332f},// 18
|
||||
{BG_IC_NPC_KEEP_CANNON_9,NPC_KEEP_CANNON,TEAM_ALLIANCE,430.872f,-775.278f,87.7991f,5.88176f},// 19
|
||||
{BG_IC_NPC_KEEP_CANNON_10,NPC_KEEP_CANNON,TEAM_ALLIANCE,408.056f,-911.283f,88.0445f,4.64258f},// 20
|
||||
{BG_IC_NPC_KEEP_CANNON_11,NPC_KEEP_CANNON,TEAM_ALLIANCE,413.609f,-911.566f,88.0447f,4.66003f},// 21
|
||||
{BG_IC_NPC_KEEP_CANNON_12,NPC_KEEP_CANNON,TEAM_ALLIANCE,402.554f,-910.557f,88.0446f,4.57276f},// 22
|
||||
|
||||
{BG_IC_NPC_KEEP_CANNON_13,NPC_KEEP_CANNON,TEAM_HORDE,1158.91f,-660.144f,87.9332f,0.750492f},// 23
|
||||
{BG_IC_NPC_KEEP_CANNON_14,NPC_KEEP_CANNON,TEAM_HORDE,1156.22f,-866.809f,87.8754f,5.27089f},// 24
|
||||
{BG_IC_NPC_KEEP_CANNON_15,NPC_KEEP_CANNON,TEAM_HORDE,1163.74f,-663.67f,88.3571f,0.558505f},// 25
|
||||
{BG_IC_NPC_KEEP_CANNON_16,NPC_KEEP_CANNON,TEAM_HORDE,1135.18f,-683.896f,88.0409f,3.9619f},// 26
|
||||
{BG_IC_NPC_KEEP_CANNON_17,NPC_KEEP_CANNON,TEAM_HORDE,1138.91f,-836.359f,88.3728f,2.18166f},// 27
|
||||
{BG_IC_NPC_KEEP_CANNON_18,NPC_KEEP_CANNON,TEAM_HORDE,1162.08f,-863.717f,88.358f,5.48033f},// 28
|
||||
{BG_IC_NPC_KEEP_CANNON_19,NPC_KEEP_CANNON,TEAM_HORDE,1167.13f,-669.212f,87.9682f,0.383972f},// 29
|
||||
{BG_IC_NPC_KEEP_CANNON_20,NPC_KEEP_CANNON,TEAM_HORDE,1137.72f,-688.517f,88.4023f,3.9619f},// 30
|
||||
{BG_IC_NPC_KEEP_CANNON_21,NPC_KEEP_CANNON,TEAM_HORDE,1135.29f,-840.878f,88.0252f,2.30383f},// 31
|
||||
{BG_IC_NPC_KEEP_CANNON_22,NPC_KEEP_CANNON,TEAM_HORDE,1144.33f,-833.309f,87.9268f,2.14675f},// 32
|
||||
{BG_IC_NPC_KEEP_CANNON_23,NPC_KEEP_CANNON,TEAM_HORDE,1135.29f,-840.878f,88.0252f,2.30383f},// 33
|
||||
{BG_IC_NPC_KEEP_CANNON_24,NPC_KEEP_CANNON,TEAM_HORDE,1142.59f,-691.946f,87.9756f,3.9619f},// 34
|
||||
{BG_IC_NPC_KEEP_CANNON_25,NPC_KEEP_CANNON,TEAM_HORDE,1166.13f,-858.391f,87.9653f,5.63741f},// 35
|
||||
};
|
||||
|
||||
const Position BG_IC_WorkshopVehicles[5] =
|
||||
{
|
||||
{751.8281f, -852.732666f, 12.5250978f, 1.46607661f}, // Demolisher
|
||||
{761.809f, -854.2274f, 12.5263243f, 1.46607661f}, // Demolisher
|
||||
{783.4722f, -853.9601f, 12.54775f, 1.71042264f}, // Demolisher
|
||||
{793.055542f, -852.71875f, 12.5671329f, 1.71042264f}, // Demolisher
|
||||
{773.680542f, -884.092041f, 16.8090363f, 1.58824956f} // Siege Engine
|
||||
};
|
||||
|
||||
const Position BG_IC_DocksVehiclesGlaives[2] =
|
||||
{
|
||||
{ 779.3125f, -342.972229f, 12.2104874f, 4.712389f }, // Glaive Throwers
|
||||
{ 790.029541f, -342.899323f, 12.2128582f, 4.71238f }, // Glaive Throwers
|
||||
};
|
||||
|
||||
const Position BG_IC_DocksVehiclesCatapults[4] =
|
||||
{
|
||||
{757.283f, -341.7795f, 12.2113762f, 4.729842f}, // Catapults
|
||||
{766.947937f, -342.053833f, 12.2009945f, 4.694f}, // Catapults
|
||||
{800.3785f, -342.607635f, 12.1669979f, 4.6774f}, // Catapults
|
||||
{810.7257f, -342.083344f, 12.1675768f, 4.6600f}, // Catapults
|
||||
};
|
||||
|
||||
const Position BG_IC_HangarTeleporters[3] =
|
||||
{
|
||||
{827.958f,-994.467f,134.071f,0.0f}, // Gunship Portal
|
||||
{738.613f,-1106.58f,134.745f,2.54818f}, // Gunship Portal
|
||||
{672.283f,-1156.99f,133.706f,1.37881f}, // Gunship Portal
|
||||
};
|
||||
|
||||
struct ICGo
|
||||
{
|
||||
uint32 type;
|
||||
@@ -490,8 +525,7 @@ struct ICGo
|
||||
float o;
|
||||
};
|
||||
|
||||
#define MAX_TELEPORTERS_SPAWNS 24
|
||||
const ICGo BG_IC_Teleporters[MAX_TELEPORTERS_SPAWNS] =
|
||||
const ICGo BG_IC_Teleporters[MAX_FORTRESS_TELEPORTERS_SPAWNS] =
|
||||
{
|
||||
{BG_IC_GO_TELEPORTER_1_1,GO_TELEPORTER_1,1143.25f,-779.599f,48.629f,1.64061f}, // Teleporter
|
||||
{BG_IC_GO_TELEPORTER_1_2,GO_TELEPORTER_1,1236.53f,-669.415f,48.2729f,0.104719f}, // Teleporter
|
||||
@@ -521,7 +555,7 @@ const ICGo BG_IC_Teleporters[MAX_TELEPORTERS_SPAWNS] =
|
||||
{BG_IC_GO_TELEPORTER_EFFECTS_H_6,GO_TELEPORTER_EFFECTS_H,1235.6f,-683.806f,49.3028f,-3.07177f}, // Teleporter Effects (Horde)
|
||||
};
|
||||
|
||||
const ICGo BG_IC_ObjSpawnlocs[GAMEOBJECT_MAX_SPAWNS] =
|
||||
const ICGo BG_IC_ObjSpawnlocs[MAX_NORMAL_GAMEOBJECTS_SPAWNS] =
|
||||
{
|
||||
{BG_IC_GO_ALLIANCE_GATE_1,GO_ALLIANCE_GATE_1,351.615f,-762.75f,48.9162f,-1.5708f}, // Alliance Gate || Left
|
||||
{BG_IC_GO_ALLIANCE_GATE_2,GO_ALLIANCE_GATE_2,351.024f,-903.326f,48.9247f,1.5708f}, // Alliance Gate || Right
|
||||
@@ -617,13 +651,20 @@ const Position workshopBombs[2] =
|
||||
{785.509f,-864.715f,13.3993f,2.47837f}
|
||||
};
|
||||
|
||||
enum Buffs
|
||||
enum Spells
|
||||
{
|
||||
SPELL_OIL_REFINERY = 68719,
|
||||
SPELL_QUARRY = 68720,
|
||||
|
||||
SPELL_PARACHUTE = 66656,
|
||||
SPELL_SLOW_FALL = 12438
|
||||
SPELL_SLOW_FALL = 12438,
|
||||
|
||||
SPELL_DESTROYED_VEHICLE_ACHIEVEMENT = 68357,
|
||||
|
||||
SPELL_DRIVING_CREDIT_DEMOLISHER = 68365,
|
||||
SPELL_DRIVING_CREDIT_GLAIVE = 68363,
|
||||
SPELL_DRIVING_CREDIT_SIEGE = 68364,
|
||||
SPELL_DRIVING_CREDIT_CATAPULT = 68362
|
||||
};
|
||||
|
||||
enum BG_IC_Objectives
|
||||
@@ -738,6 +779,9 @@ enum ICNodeState
|
||||
|
||||
const uint32 BG_IC_GraveyardIds[MAX_NODE_TYPES+2] = {0, 0, 1480, 1481, 1482, 1485, 1486, 1483, 1484};
|
||||
|
||||
const Position TransportMovementInfo = {7.305609f,-0.095246f,34.51022f};
|
||||
const Position TeleportToTransportPosition = {661.0f,-1244.0f,288.0f,0.0f};
|
||||
|
||||
const float BG_IC_SpiritGuidePos[MAX_NODE_TYPES+2][4] =
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f, 0.0f}, // no grave
|
||||
@@ -796,6 +840,12 @@ const ICNodePoint nodePointInitial[7] =
|
||||
{BG_IC_GO_HORDE_BANNER,GO_HORDE_BANNER,TEAM_HORDE,NODE_TYPE_GRAVEYARD_H, {GO_ALLIANCE_BANNER_GRAVEYARD_H,GO_ALLIANCE_BANNER_GRAVEYARD_H_CONT,GO_HORDE_BANNER_GRAVEYARD_H,GO_HORDE_BANNER_GRAVEYARD_H_CONT},false,0,0,{BG_IC_HORDE_KEEP_UNCONTROLLED,BG_IC_HORDE_KEEP_CONFLICT_A,BG_IC_HORDE_KEEP_CONFLICT_H,BG_IC_HORDE_KEEP_CONTROLLED_A,BG_IC_HORDE_KEEP_CONTROLLED_H},NODE_STATE_CONTROLLED_H,LANG_BG_IC_HORDE_KEEP},
|
||||
};
|
||||
|
||||
enum HonorRewards
|
||||
{
|
||||
RESOURCE_HONOR_AMOUNT = 12,
|
||||
WINNER_HONOR_AMOUNT = 500
|
||||
};
|
||||
|
||||
class BattlegroundICScore : public BattlegroundScore
|
||||
{
|
||||
public:
|
||||
@@ -846,7 +896,7 @@ class BattlegroundIC : public Battleground
|
||||
|
||||
virtual bool IsAllNodesConrolledByTeam(uint32 team) const; // overwrited
|
||||
private:
|
||||
uint32 closeFortressDoors;
|
||||
uint32 closeFortressDoorsTimer;
|
||||
bool doorsClosed;
|
||||
uint32 docksTimer;
|
||||
uint32 resourceTimer;
|
||||
|
||||
Reference in New Issue
Block a user