From 21559e346843ec151b808a8675bd54d9d013333e Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Fri, 13 Dec 2024 21:40:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B5=D0=BC=D0=BE=D0=BA=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Honk/RoundEndVote/RoundEndVoteSystem.cs | 58 +++++++++++++++++++ Resources/Prototypes/Maps/DryDock.yml | 2 +- Resources/Prototypes/Maps/WhiteMoose.yml | 2 +- Resources/Prototypes/Maps/WonderBox.yml | 2 +- Resources/Prototypes/Maps/meta.yml | 6 +- Resources/Prototypes/game_presets.yml | 4 +- 6 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 Content.Server/_Honk/RoundEndVote/RoundEndVoteSystem.cs diff --git a/Content.Server/_Honk/RoundEndVote/RoundEndVoteSystem.cs b/Content.Server/_Honk/RoundEndVote/RoundEndVoteSystem.cs new file mode 100644 index 0000000000..91262846ba --- /dev/null +++ b/Content.Server/_Honk/RoundEndVote/RoundEndVoteSystem.cs @@ -0,0 +1,58 @@ +using Content.Server.GameTicking; +using Content.Server.RoundEnd; +using Content.Server.Voting.Managers; +using Content.Shared.Voting; +using Robust.Server.Player; +using Robust.Shared.Timing; + +namespace Content.Server._Honk.RoundEndVote; + +public sealed class RoundEndVoteSystem : EntitySystem +{ + [Dependency] private readonly IVoteManager _voteManager = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnRoundEndSystemChange); + } + + private void OnRoundEndSystemChange(RoundEndSystemChangedEvent ev) + { + if (_gameTicker.RunLevel != GameRunLevel.PreRoundLobby) + return; + + if (_playerManager.PlayerCount == 0) + { + _gameTicker.DelayStart(TimeSpan.FromSeconds(60)); + Timer.Spawn(60 * 1000, () => + { + if (_playerManager.PlayerCount >= 15) + { + _voteManager.CreateStandardVote(null, StandardVoteType.Preset); + } + else if (_playerManager.PlayerCount >= 5) + { + _gameTicker.SetGamePreset("Extended"); + } + }); + } + + if (_playerManager.PlayerCount >= 15) + { + _voteManager.CreateStandardVote(null, StandardVoteType.Preset); + } + else if (_playerManager.PlayerCount >= 5) + { + _gameTicker.SetGamePreset("Extended"); + } + else + { + _gameTicker.SetGamePreset("Greenshift"); + } + + _voteManager.CreateStandardVote(null, StandardVoteType.Map); + } + +} diff --git a/Resources/Prototypes/Maps/DryDock.yml b/Resources/Prototypes/Maps/DryDock.yml index f978389d47..01d7160f48 100644 --- a/Resources/Prototypes/Maps/DryDock.yml +++ b/Resources/Prototypes/Maps/DryDock.yml @@ -2,7 +2,7 @@ id: DryDock mapName: 'DryDock Station' mapPath: /Maps/White/DryDock.yml - minPlayers: 10 + minPlayers: 0 stations: DryDockStation: stationProto: StandardNanotrasenStation diff --git a/Resources/Prototypes/Maps/WhiteMoose.yml b/Resources/Prototypes/Maps/WhiteMoose.yml index e375956b9e..525046a5f1 100644 --- a/Resources/Prototypes/Maps/WhiteMoose.yml +++ b/Resources/Prototypes/Maps/WhiteMoose.yml @@ -2,7 +2,7 @@ id: WhiteMoose mapName: 'WhiteMoose Station' mapPath: /Maps/White/WhiteMoose.yml - minPlayers: 10 + minPlayers: 0 stations: WhiteMooseStation: stationProto: StandardNanotrasenStation diff --git a/Resources/Prototypes/Maps/WonderBox.yml b/Resources/Prototypes/Maps/WonderBox.yml index 7d1035821e..911f0a74ff 100644 --- a/Resources/Prototypes/Maps/WonderBox.yml +++ b/Resources/Prototypes/Maps/WonderBox.yml @@ -2,7 +2,7 @@ id: WonderBox mapName: 'WonderBox Station' mapPath: /Maps/White/WonderBox.yml - minPlayers: 20 + minPlayers: 0 stations: WonderBoxStation: stationProto: StandardNanotrasenStation diff --git a/Resources/Prototypes/Maps/meta.yml b/Resources/Prototypes/Maps/meta.yml index 319c243612..859571344c 100644 --- a/Resources/Prototypes/Maps/meta.yml +++ b/Resources/Prototypes/Maps/meta.yml @@ -2,7 +2,7 @@ id: Meta mapName: 'Meta Station' mapPath: /Maps/meta.yml - minPlayers: 50 + minPlayers: 0 stations: Meta: stationProto: StandardNanotrasenStation @@ -43,9 +43,9 @@ Paramedic: [ 1, 1 ] #science ResearchDirector: [ 1, 1 ] - SeniorResearcher: [ 1, 1 ] + SeniorResearcher: [ 1, 1 ] Scientist: [ 4, 6 ] - ResearchAssistant: [ 3, 6 ] + ResearchAssistant: [ 3, 6 ] Borg: [ 2, 2 ] #security HeadOfSecurity: [ 1, 1 ] diff --git a/Resources/Prototypes/game_presets.yml b/Resources/Prototypes/game_presets.yml index 31b9f2f0ab..a28adb6ee0 100644 --- a/Resources/Prototypes/game_presets.yml +++ b/Resources/Prototypes/game_presets.yml @@ -33,7 +33,7 @@ - extended - shittersafari name: extended-title - showInVote: false #2boring2vote + showInVote: true # WD EDIT description: extended-description rules: - BasicStationEventScheduler @@ -46,7 +46,7 @@ - greenshift - shittersafarideluxeedition name: greenshift-title - showInVote: false #4boring4vote + showInVote: true # WD EDIT description: greenshift-description rules: - BasicRoundstartVariation