From 5d2445a234094f8205df4c09c1bed606618bb5db Mon Sep 17 00:00:00 2001 From: Oliver Brakmann Date: Sun, 20 Mar 2016 23:14:36 +0100 Subject: [PATCH] Fix winstate logic for cooperative games --- OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs b/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs index 074079546c..4def486404 100644 --- a/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs +++ b/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs @@ -214,8 +214,13 @@ namespace OpenRA.Mods.Common.Traits } if (Info.EarlyGameOver) + { foreach (var p in enemies) - p.PlayerActor.Trait().ForceDefeat(p); + { + p.WinState = WinState.Won; + p.World.OnPlayerWinStateChanged(p); + } + } } } else @@ -224,11 +229,13 @@ namespace OpenRA.Mods.Common.Traits player.World.OnPlayerWinStateChanged(player); if (Info.EarlyGameOver) + { foreach (var p in enemies) { p.WinState = WinState.Won; p.World.OnPlayerWinStateChanged(p); } + } } CheckIfGameIsOver(player);