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() {