From a80881eb76927ae3ce5ca134c5418c377b706e59 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 15 Nov 2021 20:58:07 -0500 Subject: [PATCH] Wintergrasp Fix Collision Wall work: Open / Close collision wall when battle started/ended Port From (https://github.com/TrinityCore/TrinityCore/commit/e79cb1da2cd8b905d2103df548e298656684c9dd) --- Source/Game/BattleFields/Zones/WinterGrasp.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Source/Game/BattleFields/Zones/WinterGrasp.cs b/Source/Game/BattleFields/Zones/WinterGrasp.cs index 8b1147f1b..15133147b 100644 --- a/Source/Game/BattleFields/Zones/WinterGrasp.cs +++ b/Source/Game/BattleFields/Zones/WinterGrasp.cs @@ -281,6 +281,10 @@ namespace Game.BattleFields } m_titansRelicGUID.Clear(); + // change collision wall state closed + foreach (BfWGGameObjectBuilding building in BuildingsInZone) + building.RebuildGate(); + // successful defense if (endByTimer) UpdateData(GetDefenderTeam() == TeamId.Horde ? WGData.DefH : WGData.DefA, 1); @@ -1090,7 +1094,7 @@ namespace Game.BattleFields { GameObject go = build.FindNearestGameObject(WGGameObjects.KeepCollisionWall, 50.0f); if (go) - go.SetGoState(GameObjectState.Ready); + go.SetGoState(GameObjectState.Active); } // Update worldstate @@ -1102,6 +1106,20 @@ namespace Game.BattleFields } } + public void RebuildGate() + { + GameObject build = _wg.GetGameObject(_buildGUID); + if (build != null) + { + if (build.IsDestructibleBuilding() && build.GetEntry() == WGGameObjects.VaultGate) + { + GameObject go = build.FindNearestGameObject(WGGameObjects.KeepCollisionWall, 50.0f); + if (go != null) + go.SetGoState(GameObjectState.Ready); //not GO_STATE_ACTIVE + } + } + } + // Called when associated gameobject is damaged public void Damaged() {