Merge pull request #13050 from rob-v/DefeatedPlayersCanNotPauseGame
Lost players except Host can not pause game #12227
This commit is contained in:
@@ -35,19 +35,20 @@ namespace OpenRA.Mods.Common.Commands
|
||||
|
||||
public void InvokeCommand(string name, string arg)
|
||||
{
|
||||
if (world.LocalPlayer == null)
|
||||
return;
|
||||
|
||||
switch (name)
|
||||
{
|
||||
case "pause":
|
||||
world.IssueOrder(new Order("PauseGame", null, false)
|
||||
{
|
||||
TargetString = world.Paused ? "UnPause" : "Pause"
|
||||
});
|
||||
if (Game.IsHost || (world.LocalPlayer != null && world.LocalPlayer.WinState != WinState.Lost))
|
||||
world.IssueOrder(new Order("PauseGame", null, false)
|
||||
{
|
||||
TargetString = world.Paused ? "UnPause" : "Pause"
|
||||
});
|
||||
|
||||
break;
|
||||
case "surrender":
|
||||
world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
|
||||
if (world.LocalPlayer != null)
|
||||
world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,7 +241,8 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
{
|
||||
var key = Hotkey.FromKeyInput(e);
|
||||
|
||||
if (key == Game.Settings.Keys.PauseKey && World.LocalPlayer != null) // Disable pausing for spectators
|
||||
if (key == Game.Settings.Keys.PauseKey
|
||||
&& (Game.IsHost || (World.LocalPlayer != null && World.LocalPlayer.WinState != WinState.Lost))) // Disable pausing for spectators and defeated players
|
||||
World.SetPauseState(!World.Paused);
|
||||
else if (key == Game.Settings.Keys.SelectAllUnitsKey && !World.IsGameOver)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user