]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
add secret weight prototype cvar (#23564)
authorLankLTE <135308300+LankLTE@users.noreply.github.com>
Fri, 5 Jan 2024 23:30:00 +0000 (15:30 -0800)
committerGitHub <noreply@github.com>
Fri, 5 Jan 2024 23:30:00 +0000 (18:30 -0500)
Add cvar

Content.Server/GameTicking/Rules/SecretRuleSystem.cs
Content.Shared/CCVar/CCVars.cs

index 835fddc9f54cc28f94e988f031c991d8adc1aea1..afd6455f923ff8242018391e4319620dec15a2c0 100644 (file)
@@ -2,8 +2,10 @@ using Content.Server.GameTicking.Presets;
 using Content.Server.GameTicking.Rules.Components;
 using Content.Shared.Random;
 using Content.Shared.Random.Helpers;
+using Content.Shared.CCVar;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
+using Robust.Shared.Configuration;
 
 namespace Content.Server.GameTicking.Rules;
 
@@ -11,6 +13,7 @@ public sealed class SecretRuleSystem : GameRuleSystem<SecretRuleComponent>
 {
     [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly IConfigurationManager _configurationManager = default!;
 
     protected override void Started(EntityUid uid, SecretRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
     {
@@ -32,7 +35,8 @@ public sealed class SecretRuleSystem : GameRuleSystem<SecretRuleComponent>
     {
         // TODO: This doesn't consider what can't start due to minimum player count,
         // but currently there's no way to know anyway as they use cvars.
-        var preset = _prototypeManager.Index<WeightedRandomPrototype>("Secret").Pick(_random);
+        var presetString = _configurationManager.GetCVar(CCVars.SecretWeightPrototype);
+        var preset = _prototypeManager.Index<WeightedRandomPrototype>(presetString).Pick(_random);
         Logger.InfoS("gamepreset", $"Selected {preset} for secret.");
 
         var rules = _prototypeManager.Index<GamePresetPrototype>(preset).Rules;
index ca8ed54f3201c07edb99d2a21c03a49146f2c4f3..a65bf1a420a8fcdc1131dc4f055a44e045b4234b 100644 (file)
@@ -351,6 +351,12 @@ namespace Content.Shared.CCVar
         public static readonly CVarDef<float> RoundRestartTime =
             CVarDef.Create("game.round_restart_time", 120f, CVar.SERVERONLY);
 
+        /// <summary>
+        /// The prototype to use for secret weights. 
+        /// </summary>
+        public static readonly CVarDef<string> SecretWeightPrototype =
+            CVarDef.Create("game.secret_weight_prototype", "Secret", CVar.SERVERONLY);
+
         /*
          * Discord
          */