From 4b2e45bbae082aeed5a047bc89b432400dad6ba3 Mon Sep 17 00:00:00 2001 From: Scott_NZ Date: Wed, 12 Dec 2012 13:19:37 +1300 Subject: [PATCH] Refactor default difficulty setting into its own method --- OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs index ecd7effe55..411109c23f 100644 --- a/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs +++ b/OpenRA.Mods.RA/ServerTraits/LobbyCommands.cs @@ -261,6 +261,7 @@ namespace OpenRA.Mods.RA.Server server.lobbyInfo.GlobalSettings.Map = s; var oldSlots = server.lobbyInfo.Slots.Keys.ToArray(); LoadMap(server); + SetDefaultDifficulty(server); // Reassign players into new slots based on their old slots: // - Observers remain as observers @@ -474,7 +475,12 @@ namespace OpenRA.Mods.RA.Server return a(cmdValue); } - public void ServerStarted(S server) { LoadMap(server); } + public void ServerStarted(S server) + { + LoadMap(server); + SetDefaultDifficulty(server); + } + static Session.Slot MakeSlotFromPlayerReference(PlayerReference pr) { if (!pr.Playable) return null; @@ -498,14 +504,16 @@ namespace OpenRA.Mods.RA.Server .Select(p => MakeSlotFromPlayerReference(p.Value)) .Where(s => s != null) .ToDictionary(s => s.PlayerReference, s => s); + } + static void SetDefaultDifficulty(S server) + { if (server.Map.Difficulties != null && server.Map.Difficulties.Any()) { if (!server.Map.Difficulties.Contains(server.lobbyInfo.GlobalSettings.Difficulty)) server.lobbyInfo.GlobalSettings.Difficulty = server.Map.Difficulties.First(); } - else - server.lobbyInfo.GlobalSettings.Difficulty = null; + else server.lobbyInfo.GlobalSettings.Difficulty = null; } } }