62 KickPosition.Relocate(5728.117f, 2714.346f, 697.733f, 0);
156 WGTurret[i].GetPosition(&towerCannonPos);
219 SF_LOG_ERROR(
"bg.battlefield",
"WG: Failed to spawn titan relic.");
238 (*itr)->UpdateTurretAttack(
false);
250 (*itr)->UpdateGraveyardAndWorkshop();
252 for (
uint8 team = 0; team < 2; ++team)
253 for (GuidSet::const_iterator itr =
m_players[team].begin(); itr !=
m_players[team].end(); ++itr)
259 player->GetPosition(x, y, z);
260 if (5500 > x && x > 5392 && y < 2880 && y > 2800 && z < 480)
261 player->TeleportTo(571, 5349.8686f, 2838.481f, 409.240f, 0.046328f);
300 relic->RemoveFromWorld();
368 if (!endByTimer &&
GetTimer() <= 10000)
377 for (
uint8 team = 0; team < 2; ++team)
385 for (GuidSet::const_iterator itr =
m_vehicles[team].begin(); itr !=
m_vehicles[team].end(); ++itr)
387 if (creature->IsVehicle())
388 creature->DespawnOrUnsummon();
395 for (
uint8 team = 0; team < 2; ++team)
397 for (GuidSet::const_iterator itr =
m_players[team].begin(); itr !=
m_players[team].end(); ++itr)
421 if (!achievementEntry)
463 SF_LOG_ERROR(
"bg.battlefield",
"BattlefieldWG::GetSpiritGraveyardId: Unexpected Area Id %u", areaId);
578 uint8 workshopId = 0;
602 if (workshop->workshopId == workshopId)
618 if (killer == victim)
628 if (player->GetDistance2d(killer) < 40)
638 if (victim->
GetEntry() == creature->GetEntry() && !again)
643 if (player->GetDistance2d(killer) < 40.0f)
653 for (
uint32 itr = 0; itr < 2; ++itr)
684 if (aur->GetStackAmount() >= 5)
695 if (aur->GetStackAmount() >= 5)
727 player->
TeleportTo(571, 5345, 2842, 410, 3.14f);
731 player->
TeleportTo(571, 5025.857422f, 3674.628906f, 362.737122f, 4.135169f);
733 player->
TeleportTo(571, 5101.284f, 2186.564f, 373.549f, 3.812f);
758 vehicle->DespawnOrUnsummon();
802 return graveyard->GetControlTeamId();
816 for (
uint32 i = 0; i < 2; ++i)
825 builder.
AppendState((*itr)->m_WorldState, (*itr)->m_State);
841 for (
uint8 team = 0; team < 2; team++)
842 for (GuidSet::iterator itr =
m_players[team].begin(); itr !=
m_players[team].end(); ++itr)
924 if (go->
GetEntry() == build->GetEntry())
926 if (build->GetGOInfo()->building.damagedEvent == eventId)
929 if (build->GetGOInfo()->building.destroyedEvent == eventId)
963 if (alliancePlayers && hordePlayers)
965 if (alliancePlayers < hordePlayers)
966 newStack =
int32((
float(hordePlayers / alliancePlayers) - 1) * 4);
967 else if (alliancePlayers > hordePlayers)
968 newStack =
int32((1 -
float(alliancePlayers / hordePlayers)) * 4);
976 else if (newStack >= 0)
983 for (GuidSet::const_iterator itr =
m_players[team].begin(); itr !=
m_players[team].end(); ++itr)
988 for (GuidSet::const_iterator itr =
m_vehicles[team].begin(); itr !=
m_vehicles[team].end(); ++itr)
999 newStack = -newStack;
1015 for (GuidSet::const_iterator itr =
m_vehicles[team].begin(); itr !=
m_vehicles[team].end(); ++itr)
1019 if (buff_honor != 0)
1023 player->CastSpell(player, buff_honor,
true);
1024 for (GuidSet::const_iterator itr =
m_vehicles[team].begin(); itr !=
m_vehicles[team].end(); ++itr)
1026 creature->CastSpell(creature, buff_honor,
true);
@ BATTLEFIELD_BATTLEID_WG
@ NPC_WG_SEIGE_ENGINE_HORDE
@ NPC_WG_SEIGE_ENGINE_ALLIANCE
uint8 const WG_OUTSIDE_ALLIANCE_NPC
uint8 const WG_MAX_KEEP_NPC
const WGWorkshopData WorkshopsData[WG_MAX_WORKSHOP]
@ AREA_WINTERGRASP_FORTRESS
@ AREA_THE_BROKEN_TEMPLATE
@ AREA_THE_CHILLED_QUAGMIRE
const WintergraspTeleporterData WGPortalDefenderData[WG_MAX_TELEPORTER]
uint8 const WG_MAX_TURRET
@ NPC_WINTERGRASP_SIEGE_ENGINE_HORDE
@ NPC_WINTERGRASP_CATAPULT
@ NPC_WINTERGRASP_DEMOLISHER
@ NPC_WINTERGRASP_TOWER_CANNON
@ NPC_DWARVEN_SPIRIT_GUIDE
@ NPC_TAUNKA_SPIRIT_GUIDE
@ BATTLEFIELD_WG_NPC_STALKER
@ NPC_WINTERGRASP_SIEGE_ENGINE_ALLIANCE
uint32 const ClockWorldState[]
float const WintergraspStalkerPos[]
uint32 const WintergraspFaction[]
@ SPELL_ESSENCE_OF_WINTERGRASP
@ SPELL_WINTERGRASP_RESTRICTED_FLIGHT_AREA
@ SPELL_ALLIANCE_CONTROLS_FACTORY_PHASE_SHIFT
@ SPELL_HORDE_CONTROLS_FACTORY_PHASE_SHIFT
@ SPELL_HORDE_CONTROL_PHASE_SHIFT
@ SPELL_ALLIANCE_CONTROL_PHASE_SHIFT
@ SPELL_SPIRITUAL_IMMUNITY
const WintergraspObjectPositionData WGOutsideNPC[WG_MAX_OUTSIDE_NPC]
const Position WGTurret[WG_MAX_TURRET]
const WintergraspObjectPositionData WGKeepNPC[WG_MAX_KEEP_NPC]
uint8 const WG_MAX_OUTSIDE_NPC
@ GO_WINTERGRASP_FACTORY_BANNER_SW
@ GO_WINTERGRASP_FACTORY_BANNER_NW
@ GO_WINTERGRASP_FACTORY_BANNER_NE
@ GO_WINTERGRASP_TITAN_S_RELIC
@ GO_WINTERGRASP_FACTORY_BANNER_SE
@ GO_WINTERGRASP_VAULT_GATE
@ BATTLEFIELD_WG_GY_WORKSHOP_NE
@ BATTLEFIELD_WG_GRAVEYARD_MAX
@ BATTLEFIELD_WG_GY_WORKSHOP_SW
@ BATTLEFIELD_WG_GY_WORKSHOP_SE
@ BATTLEFIELD_WG_GY_HORDE
@ BATTLEFIELD_WG_GY_WORKSHOP_NW
@ BATTLEFIELD_WG_GY_ALLIANCE
uint8 const WG_MAX_TELEPORTER
BfWGCoordGY const WGGraveYard[BATTLEFIELD_WG_GRAVEYARD_MAX]
uint8 const WG_MAX_WORKSHOP
@ ACHIEVEMENTS_WIN_WG_TIMER_10
@ ACHIEVEMENTS_WIN_WG_100
@ ACHIEVEMENTS_WG_TOWER_DESTROY
@ BATTLEFIELD_WG_TEXT_WILL_START
@ BATTLEFIELD_WG_TEXT_SECONDRANK
@ BATTLEFIELD_WG_TEXT_START
@ BATTLEFIELD_WG_TEXT_WIN_KEEP
@ BATTLEFIELD_WG_TEXT_DEFEND_KEEP
@ BATTLEFIELD_WG_TEXT_FIRSTRANK
const WintergraspBuildingSpawnData WGGameObjectBuilding[WG_MAX_OBJ]
@ BATTLEFIELD_WG_DATA_VEHICLE_A
@ BATTLEFIELD_WG_DATA_MAX_VEHICLE_A
@ BATTLEFIELD_WG_DATA_MAX
@ BATTLEFIELD_WG_DATA_DAMAGED_TOWER_DEF
@ BATTLEFIELD_WG_DATA_VEHICLE_H
@ BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT
@ BATTLEFIELD_WG_DATA_MAX_VEHICLE_H
@ BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT
@ BATTLEFIELD_WG_DATA_BROKEN_TOWER_DEF
@ BATTLEFIELD_WG_WORKSHOP_SE
@ BATTLEFIELD_WG_WORKSHOP_KEEP_WEST
@ BATTLEFIELD_WG_WORKSHOP_NW
@ BATTLEFIELD_WG_WORKSHOP_SW
@ BATTLEFIELD_WG_WORKSHOP_NE
@ BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H
@ BATTLEFIELD_WG_WORLD_STATE_SHOW_WORLDSTATE
@ BATTLEFIELD_WG_WORLD_STATE_ACTIVE
@ BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A
@ BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H
@ BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A
@ BATTLEFIELD_WG_WORLD_STATE_DEFENDER
@ BATTLEFIELD_WG_WORLD_STATE_ATTACKER
#define SF_LOG_ERROR(filterType__,...)
@ GO_DESTRUCTIBLE_DESTROYED
@ GAMEOBJECT_FIELD_FACTION_TEMPLATE
GraveyardVect m_GraveyardList
void ShowNpc(Creature *creature, bool aggressive)
GuidSet m_players[BG_TEAMS_COUNT]
void AddCapturePoint(BfCapturePoint *cp)
std::vector< uint32 > m_Data32
void SendWarningToPlayer(Player *player, uint32 entry)
void EndBattle(bool endByTimer)
bool IsWarTime() const
Return true if battle is start, false if battle is not started.
virtual void UpdateData(uint32 index, int32 pad)
uint32 m_StartGroupingTimer
virtual bool Update(uint32 diff)
Called every time for update bf data and time.
GameObject * GetGameObject(uint64 GUID)
TeamId GetOtherTeam(TeamId team)
void RegisterZone(uint32 zoneid)
GuidSet m_PlayersInWar[BG_TEAMS_COUNT]
uint32 m_TimeForAcceptInvite
BfGraveyard * GetGraveyardById(uint32 id) const
GameObject * SpawnGameObject(uint32 entry, float x, float y, float z, float o)
void HideNpc(Creature *creature)
uint32 m_RestartAfterCrash
TeamId GetAttackerTeam() const
void InitStalker(uint32 entry, float x, float y, float z, float o)
TeamId GetDefenderTeam() const
virtual uint32 GetData(uint32 dataId) const
Creature * GetCreature(uint64 GUID)
void SendWarningToAllInZone(uint32 entry)
WorldLocation KickPosition
void SetGraveyardNumber(uint32 number)
bool IsEnabled() const
Return if battlefield is enable.
Creature * SpawnCreature(uint32 entry, float x, float y, float z, float o, TeamId team)
void SendUpdateWorldState(uint32 field, uint32 value)
Update data of a worldstate to all players present in zone.
void OnCreatureRemove(Creature *creature)
Called when a creature is removed.
void OnUnitDeath(Unit *unit)
void OnGameObjectCreate(GameObject *go)
Called when a gameobject is created.
void RemoveAurasFromPlayer(Player *player)
void OnPlayerLeaveZone(Player *player)
Called when player left the WG zone.
void UpdateCounterVehicle(bool init)
void OnCreatureCreate(Creature *creature)
Called when a creature is created.
GameObject * GetRelic()
Return pointer to relic object.
bool Update(uint32 diff)
Called for update battlefield data.
void PromotePlayer(Player *killer)
void UpdateVehicleCountWG()
GuidSet OutsideCreature[2]
void UpdatedDestroyedTowerCount(TeamId team)
Called when tower is broken.
void OnPlayerJoinWar(Player *player)
Called when player accept invite to join battle.
void UpdateDamagedTowerCount(TeamId team)
Called when a tower is damaged.
GuidSet DefenderPortalList
bool CanInteractWithRelic() const
Check if players can interact with the relic (Only if the last door has been broken).
GameObjectBuilding BuildingsInZone
void SendInitWorldStatesTo(Player *player)
void OnBattleStart()
Called when the battle start.
void OnPlayerEnterZone(Player *player)
Called when player enters in WG zone.
bool FindAndRemoveVehicleFromList(Unit *vehicle)
void OnStartGrouping()
Called when grouping starts (15 minutes before battlestart).
void ProcessEvent(WorldObject *obj, uint32 eventId)
GuidSet m_KeepGameObject[2]
uint8 GetSpiritGraveyardId(uint32 areaId) const
uint32 GetData(uint32 data) const
void BrokenWallOrTower(TeamId team)
Called when a wall/tower is broken.
void SendInitWorldStatesToAll()
Send all worldstate data to all player in zone.
void OnPlayerLeaveWar(Player *player)
Called when player left the battle.
void DoCompleteOrIncrementAchievement(uint32 achievement, Player *player, uint8 incrementNumber=1)
void OnBattleEnd(bool endByTimer)
Called when battle end.
void FillInitialWorldStates(WorldStateBuilder &builder)
bool SetupBattlefield()
Called when battlefield is setup, at server start.
void HandleKill(Player *killer, Unit *victim)
Called when a Unit is kill in battlefield zone.
BfCapturePoint(Battlefield *bf)
bool SetCapturePointData(GameObject *capturePoint)
BfGraveyard(Battlefield *Bf)
void Initialize(TeamId startcontrol, uint32 gy)
BfGraveyardWG(BattlefieldWG *Bf)
void SetTextId(int32 textid)
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
GameObject * ToGameObject()
void CompletedAchievement(AchievementEntry const *entry)
WorldSession * GetSession() const
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, uint32 options=0)
uint64 GetSummonerGUID() const
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Creature * GetVehicleCreatureBase() const
Aura * GetAura(uint32 spellId, uint64 casterGUID=0, uint64 itemCasterGUID=0, uint32 reqEffMask=0) const
void SetAuraStack(uint32 spellId, Unit *target, uint32 stack)
Aura * AddAura(uint32 spellId, Unit *target)
TempSummon * ToTempSummon()
void LinkToWorkshop(WGWorkshop *workshop)
WintergraspCapturePoint(BattlefieldWG *battlefield, TeamId teamInControl)
void ChangeTeam(TeamId oldteam)
bool PlayerLogout() const
void SendPacket(WorldSession *session)
void AppendState(uint32 worldstate, uint32 value)
@ CONFIG_WINTERGRASP_RESTART_AFTER_CRASH
@ CONFIG_WINTERGRASP_PLR_MIN_LVL
@ CONFIG_WINTERGRASP_BATTLETIME
@ CONFIG_WINTERGRASP_PLR_MIN
@ CONFIG_WINTERGRASP_PLR_MAX
@ CONFIG_WINTERGRASP_NOBATTLETIME
@ CONFIG_WINTERGRASP_ENABLE
void Init(GameObject *go, uint32 type, uint32 worldstate, uint32 nameid)
void GiveControlTo(uint8 team, bool init)