From f4d8ec1b35fa94536b76272137bc614c506453f3 Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com> Date: Tue, 21 Dec 2021 21:23:29 +0100 Subject: [PATCH] Refactor Game Modes (#5857) --- Content.Client/Entry/EntryPoint.cs | 2 + Content.Client/Lobby/LobbyState.cs | 2 + Content.Client/Lobby/UI/LobbyGui.xaml | 2 +- .../Tests/GameRules/RuleMaxTimeRestartTest.cs | 19 +- .../Commands/ForcePresetCommand.cs | 5 +- .../GameTicking/Commands/GoLobbyCommand.cs | 7 +- .../GameTicking/Commands/ObserveCommand.cs | 10 +- .../Commands/SetGamePresetCommand.cs | 2 +- .../GameTicking/GameTicker.GamePreset.cs | 199 ++++++--- .../GameTicking/GameTicker.GameRule.cs | 78 ++-- .../GameTicking/GameTicker.Lobby.cs | 6 +- .../GameTicking/GameTicker.Player.cs | 2 +- .../GameTicking/GameTicker.RoundFlow.cs | 393 +++++++++++------ .../GameTicking/GameTicker.Spawning.cs | 77 +++- Content.Server/GameTicking/GameTicker.cs | 17 +- .../GameTicking/Presets/GamePreset.cs | 107 ----- .../Presets/GamePresetAttribute.cs | 27 -- .../Presets/GamePresetPrototype.cs | 34 ++ .../GameTicking/Presets/PresetDeathMatch.cs | 21 - .../GameTicking/Presets/PresetExtended.cs | 18 - .../GameTicking/Presets/PresetSandbox.cs | 22 - .../GameTicking/Presets/PresetSuspicion.cs | 146 ------- .../GameTicking/Presets/PresetTraitor.cs | 244 ----------- .../Presets/PresetTraitorDeathMatch.cs | 244 ----------- .../GameTicking/Rules/DeathMatchRuleSystem.cs | 127 ++++++ Content.Server/GameTicking/Rules/GameRule.cs | 19 - .../GameTicking/Rules/GameRulePrototype.cs | 11 + .../GameTicking/Rules/GameRuleSystem.cs | 61 +++ .../Rules/InactivityTimeRestartRuleSystem.cs | 97 ++++ .../Rules/MaxTimeRestartRuleSystem.cs | 80 ++++ .../GameTicking/Rules/RuleDeathMatch.cs | 110 ----- .../Rules/RuleInactivityTimeRestart.cs | 94 ---- .../GameTicking/Rules/RuleMaxTimeRestart.cs | 71 --- .../GameTicking/Rules/RuleSuspicion.cs | 168 ------- .../GameTicking/Rules/RuleTraitor.cs | 30 -- .../Rules/RuleTraitorDeathMatch.cs | 7 - .../GameTicking/Rules/SandboxRuleSystem.cs | 21 + .../GameTicking/Rules/SuspicionRuleSystem.cs | 413 ++++++++++++++++++ .../Rules/TraitorDeathMatchRuleSystem.cs | 270 ++++++++++++ .../GameTicking/Rules/TraitorRuleSystem.cs | 262 +++++++++++ .../Conditions/KillRandomPersonCondition.cs | 4 + .../Components/ConditionalSpawnerComponent.cs | 10 +- .../EntitySystems/SuspicionEndTimerSystem.cs | 78 ---- .../EntitySystems/SuspicionRoleSystem.cs | 96 ---- .../Suspicion/SuspicionRoleComponent.cs | 11 +- .../Managers/VoteManager.DefaultVotes.cs | 18 +- Content.Server/Voting/Managers/VoteManager.cs | 1 + Content.Shared/CCVar/CCVars.cs | 4 +- .../game-presets/preset-deathmatch.ftl | 2 + .../game-presets/preset-extended.ftl | 2 + .../game-presets/preset-sandbox.ftl | 2 + .../game-presets/preset-suspicion.ftl | 2 + .../game-presets/preset-traitor.ftl | 3 +- .../game-rules/rule-suspicion.ftl | 4 +- .../roles/suspicion-traitor-role.ftl | 4 +- .../en-US/voting/managers/vote-manager.ftl | 5 - .../Spawners/Conditional/suspicion.yml | 30 +- .../Spawners/Conditional/traitordm.yml | 2 +- .../Antags/Suspicion/suspicion_traitor.yml | 2 +- Resources/Prototypes/Roles/Antags/traitor.yml | 6 + Resources/Prototypes/game_presets.yml | 60 +++ Resources/Prototypes/game_rules.yml | 20 + 62 files changed, 2087 insertions(+), 1804 deletions(-) delete mode 100644 Content.Server/GameTicking/Presets/GamePreset.cs delete mode 100644 Content.Server/GameTicking/Presets/GamePresetAttribute.cs create mode 100644 Content.Server/GameTicking/Presets/GamePresetPrototype.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetDeathMatch.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetExtended.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetSandbox.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetSuspicion.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetTraitor.cs delete mode 100644 Content.Server/GameTicking/Presets/PresetTraitorDeathMatch.cs create mode 100644 Content.Server/GameTicking/Rules/DeathMatchRuleSystem.cs delete mode 100644 Content.Server/GameTicking/Rules/GameRule.cs create mode 100644 Content.Server/GameTicking/Rules/GameRulePrototype.cs create mode 100644 Content.Server/GameTicking/Rules/GameRuleSystem.cs create mode 100644 Content.Server/GameTicking/Rules/InactivityTimeRestartRuleSystem.cs create mode 100644 Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleDeathMatch.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleInactivityTimeRestart.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleMaxTimeRestart.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleSuspicion.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleTraitor.cs delete mode 100644 Content.Server/GameTicking/Rules/RuleTraitorDeathMatch.cs create mode 100644 Content.Server/GameTicking/Rules/SandboxRuleSystem.cs create mode 100644 Content.Server/GameTicking/Rules/SuspicionRuleSystem.cs create mode 100644 Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs create mode 100644 Content.Server/GameTicking/Rules/TraitorRuleSystem.cs delete mode 100644 Content.Server/Suspicion/EntitySystems/SuspicionEndTimerSystem.cs delete mode 100644 Content.Server/Suspicion/EntitySystems/SuspicionRoleSystem.cs create mode 100644 Resources/Locale/en-US/game-ticking/game-presets/preset-deathmatch.ftl create mode 100644 Resources/Locale/en-US/game-ticking/game-presets/preset-extended.ftl create mode 100644 Resources/Locale/en-US/game-ticking/game-presets/preset-sandbox.ftl create mode 100644 Resources/Locale/en-US/game-ticking/game-presets/preset-suspicion.ftl create mode 100644 Resources/Prototypes/Roles/Antags/traitor.yml create mode 100644 Resources/Prototypes/game_presets.yml create mode 100644 Resources/Prototypes/game_rules.yml diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 71d719c523..0ff2077933 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -97,6 +97,8 @@ namespace Content.Client.Entry prototypes.RegisterIgnore("advertisementsPack"); prototypes.RegisterIgnore("metabolizerType"); prototypes.RegisterIgnore("metabolismGroup"); + prototypes.RegisterIgnore("gamePreset"); + prototypes.RegisterIgnore("gameRule"); ClientContentIoC.Register(); diff --git a/Content.Client/Lobby/LobbyState.cs b/Content.Client/Lobby/LobbyState.cs index 38fcc66da9..a8bf76a178 100644 --- a/Content.Client/Lobby/LobbyState.cs +++ b/Content.Client/Lobby/LobbyState.cs @@ -204,6 +204,7 @@ namespace Content.Client.Lobby _lobby.ReadyButton.Text = Loc.GetString("lobby-state-ready-button-join-state"); _lobby.ReadyButton.ToggleMode = false; _lobby.ReadyButton.Pressed = false; + _lobby.ObserveButton.Disabled = false; } else { @@ -212,6 +213,7 @@ namespace Content.Client.Lobby _lobby.ReadyButton.ToggleMode = true; _lobby.ReadyButton.Disabled = false; _lobby.ReadyButton.Pressed = gameTicker.AreWeReady; + _lobby.ObserveButton.Disabled = true; } if (gameTicker.ServerInfoBlob != null) diff --git a/Content.Client/Lobby/UI/LobbyGui.xaml b/Content.Client/Lobby/UI/LobbyGui.xaml index cbab3cf710..b3d5a529a7 100644 --- a/Content.Client/Lobby/UI/LobbyGui.xaml +++ b/Content.Client/Lobby/UI/LobbyGui.xaml @@ -38,7 +38,7 @@ - +