From e69e316f6b57b1b5cd8df52f2e40be9f77ca23be Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Mon, 4 Dec 2017 20:52:25 -0300 Subject: [PATCH] Added the option to disable karma --- Barotrauma/BarotraumaShared/Source/DebugConsole.cs | 6 ++++++ .../BarotraumaShared/Source/Networking/Client.cs | 14 ++++++++++++-- .../Source/Networking/GameServerSettings.cs | 11 +++++++++-- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs index adebef33a..ce339de4c 100644 --- a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs @@ -408,6 +408,12 @@ namespace Barotrauma }); })); + commands.Add(new Command("togglekarma", "togglekarma: Toggles the karma system.", (string[] args) => + { + if (GameMain.Server == null) return; + GameMain.Server.KarmaEnabled = !GameMain.Server.KarmaEnabled; + })); + commands.Add(new Command("kick", "kick [name]: Kick a player out of the server.", (string[] args) => { if (GameMain.NetworkMember == null || args.Length == 0) return; diff --git a/Barotrauma/BarotraumaShared/Source/Networking/Client.cs b/Barotrauma/BarotraumaShared/Source/Networking/Client.cs index 307d26daf..268c701f8 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/Client.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/Client.cs @@ -32,8 +32,18 @@ namespace Barotrauma.Networking private float karma = 1.0f; public float Karma { - get { return karma; } - set { karma = Math.Min(Math.Max(value,0.0f),1.0f); DebugConsole.NewMessage(Name+"'s karma set to "+karma,Microsoft.Xna.Framework.Color.Yellow); } + get + { + if (GameMain.Server == null) return 1.0f; + if (!GameMain.Server.KarmaEnabled) return 1.0f; + return karma; + } + set + { + if (GameMain.Server == null) return; + if (!GameMain.Server.KarmaEnabled) return; + karma = Math.Min(Math.Max(value,0.0f),1.0f); + } } public byte TeamID = 0; diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs index 9034eb514..ade900b05 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs @@ -18,7 +18,7 @@ namespace Barotrauma.Networking { No = 0, Maybe = 1, Yes = 2 } - + partial class GameServer : NetworkMember, ISerializableEntity { private class SavedClientPermission @@ -69,7 +69,7 @@ namespace Barotrauma.Networking private bool isPublic; private int maxPlayers; - + private List clientPermissions = new List(); [Serialize(true, true)] @@ -210,6 +210,13 @@ namespace Barotrauma.Networking private set; } + [Serialize(false,true)] + public bool KarmaEnabled + { + get; + set; + } + private void SaveSettings() { XDocument doc = new XDocument(new XElement("serversettings"));