From f16edfcf983b24cf29080dfeb9e1b4101a0af93d Mon Sep 17 00:00:00 2001 From: Scott_NZ Date: Tue, 9 Apr 2013 00:18:21 +1200 Subject: [PATCH] Fix shroud bug in Monster Tank Madness --- .../Missions/MonsterTankMadnessScript.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Missions/MonsterTankMadnessScript.cs b/OpenRA.Mods.RA/Missions/MonsterTankMadnessScript.cs index 1e7feb2864..d4b2164875 100644 --- a/OpenRA.Mods.RA/Missions/MonsterTankMadnessScript.cs +++ b/OpenRA.Mods.RA/Missions/MonsterTankMadnessScript.cs @@ -281,13 +281,23 @@ namespace OpenRA.Mods.RA.Missions void OnSuperTankDomeInfiltrated(Actor spy) { if (superTankDomeInfiltratedTick != -1) return; + superTankDome.QueueActivity(new Transform(superTankDome, "dome") { SkipMakeAnims = true }); - turkey.Stances[greece] = turkey.Stances[neutral] = Stance.Ally; - greece.Stances[turkey] = neutral.Stances[turkey] = Stance.Ally; - greece.Shroud.ExploreAll(world); + + world.AddFrameEndTask(_ => + { + superTanks.Do(world.Remove); + turkey.Stances[greece] = turkey.Stances[neutral] = Stance.Ally; + greece.Stances[turkey] = neutral.Stances[turkey] = Stance.Ally; + greece.Shroud.ExploreAll(world); + superTanks.Do(world.Add); + }); + foreach (var tank in superTanks.Where(t => !t.IsDead() && t.IsInWorld)) MissionUtils.AttackNearestLandActor(false, tank, ussr); + superTankDomeInfiltratedTick = world.FrameNumber; + objectives[InfiltrateRadarDomeID].Status = ObjectiveStatus.Completed; OnObjectivesUpdated(true); }