From d98f0efd667a99aa14d8137ae5507e820ba577c2 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Mon, 25 Mar 2019 19:51:54 +0200 Subject: [PATCH] (0cd6089c2) Disable campaign start button if a round is already running when joining. --- .../BarotraumaClient/Source/Screens/CampaignUI.cs | 11 +++++++---- .../Source/Screens/NetLobbyScreen.cs | 12 +++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs b/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs index 827b8af57..3c322d12d 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs @@ -457,11 +457,14 @@ namespace Barotrauma { IgnoreLayoutGroups = true, OnClicked = (GUIButton btn, object obj) => { StartRound?.Invoke(); return true; }, - Enabled = true, - Visible = GameMain.Client == null || - GameMain.Client.HasPermission(Networking.ClientPermissions.ManageRound) || - GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign) + Enabled = true }; + if (GameMain.Client != null) + { + startButton.Visible = !GameMain.Client.GameStarted && + (GameMain.Client.HasPermission(Networking.ClientPermissions.ManageRound) || + GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign)); + } } OnLocationSelected?.Invoke(location, connection); diff --git a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs index e249c088f..02f6ba21c 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs @@ -726,6 +726,12 @@ namespace Barotrauma spectateButton.Visible = GameMain.Client.GameStarted; ReadyToStartBox.Visible = !GameMain.Client.GameStarted; ReadyToStartBox.Selected = false; + if (campaignUI?.StartButton != null) + { + campaignUI.StartButton.Visible = !GameMain.Client.GameStarted && + (GameMain.Client.HasPermission(ClientPermissions.ManageRound) || + GameMain.Client.HasPermission(ClientPermissions.ManageCampaign)); + } GameMain.Client.SetReadyToStart(ReadyToStartBox); } else @@ -847,9 +853,9 @@ namespace Barotrauma if (campaignUI?.StartButton != null) { - campaignUI.StartButton.Visible = - GameMain.Client.HasPermission(ClientPermissions.ManageRound) || - GameMain.Client.HasPermission(ClientPermissions.ManageCampaign); + campaignUI.StartButton.Visible = !GameMain.Client.GameStarted && + (GameMain.Client.HasPermission(ClientPermissions.ManageRound) || + GameMain.Client.HasPermission(ClientPermissions.ManageCampaign)); } }