]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Traitor Chemicals Rebalance (#42484)
authorPrincess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Mon, 19 Jan 2026 22:17:10 +0000 (14:17 -0800)
committerGitHub <noreply@github.com>
Mon, 19 Jan 2026 22:17:10 +0000 (22:17 +0000)
very small list of changes overall

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs
Resources/Locale/en-US/guidebook/entity-effects/effects.ftl
Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml
Resources/Prototypes/Catalog/uplink_catalog.yml
Resources/Prototypes/Entities/Objects/Fun/darts.yml
Resources/Prototypes/Reagents/fun.yml
Resources/Prototypes/Reagents/narcotics.yml
Resources/Prototypes/Reagents/toxins.yml

index b5a208f2c7c794516994abea72726912d7be71b6..a5259257829fb2ec85e7231931a1e9d069e63012 100644 (file)
@@ -4,7 +4,6 @@ using Robust.Shared.Prototypes;
 
 namespace Content.Shared.EntityEffects.Effects.StatusEffects;
 
-// TODO: When Electrocution is moved to new Status, make this use StatusEffectsContainerComponent.
 /// <summary>
 /// Electrocutes this entity for a given amount of damage and time.
 /// The shock damage applied by this effect is modified by scale.
@@ -19,7 +18,13 @@ public sealed partial class ElectrocuteEntityEffectSystem : EntityEffectSystem<S
     {
         var effect = args.Effect;
 
-        _electrocution.TryDoElectrocution(entity, null, (int)(args.Scale * effect.ShockDamage), effect.ElectrocuteTime, effect.Refresh, ignoreInsulation: effect.BypassInsulation);
+        _electrocution.TryDoElectrocution(entity,
+            null,
+            (int)(args.Scale * effect.ShockDamage),
+            effect.ElectrocuteTime,
+            effect.Refresh,
+            siemensCoefficient: effect.SiemensCoefficient,
+            ignoreInsulation: effect.BypassInsulation);
     }
 }
 
@@ -29,23 +34,33 @@ public sealed partial class Electrocute : EntityEffectBase<Electrocute>
     /// <summary>
     /// Time we electrocute this entity
     /// </summary>
-    [DataField] public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2);
+    [DataField]
+    public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2);
 
     /// <summary>
     /// Shock damage we apply to the entity.
     /// </summary>
-    [DataField] public int ShockDamage = 5;
+    [DataField]
+    public int ShockDamage = 5;
 
     /// <summary>
     /// Do we refresh the duration? Or add more duration if it already exists.
     /// </summary>
-    [DataField] public bool Refresh = true;
+    [DataField]
+    public bool Refresh = true;
 
     /// <summary>
     /// Should we by bypassing insulation?
     /// </summary>
-    [DataField] public bool BypassInsulation = true;
+    [DataField]
+    public bool BypassInsulation = true;
+
+    /// <summary>
+    /// How much electricity is being passed through the body basically. Lower means less oomph.
+    /// </summary>
+    [DataField]
+    public float SiemensCoefficient = 1f;
 
     public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
-        => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds));
+        => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds), ("stuns", SiemensCoefficient > 0.5f));
 }
index fccc6291a8fc5203072e78c3f079aa5eebb32f1c..3a453b3404bf8cda764db5a837d5a1612099d400 100644 (file)
@@ -335,8 +335,14 @@ entity-effect-guidebook-drunk =
 
 entity-effect-guidebook-electrocute =
     { $chance ->
-        [1] Electrocutes
-        *[other] electrocute
+        [1] { $stuns ->
+            [true] Electrocutes
+            *[false] Shocks
+            }
+        *[other] { $stuns ->
+            [true] electrocute
+            *[false] shock
+            }
     } the metabolizer for {NATURALFIXED($time, 3)} {MANY("second", $time)}
 
 entity-effect-guidebook-emote =
index 96d06ed30bf92ba480dccf0432afa3e2cc4bab53..998a0cde429a8ee53c32ca1d19bccd2f8296c965 100644 (file)
@@ -30,7 +30,7 @@
         - id: Dropper
         # It would be cool to have special "syndicate" chemical analysis goggles
         - id: ClothingEyesGlassesChemical
-        - id: SyringeStimulants
+        - id: Syringe
         - id: VestineChemistryVial
           amount: 2
         - id: ChemistryEmptyVial
index 2e9510b33754fb06770f50602f285c60df8ae75f..dee58741b255f4e283dad80d2e1bd43c977827c5 100644 (file)
   discountDownTo:
     Telecrystal: 2
   cost:
-    Telecrystal: 5
+    Telecrystal: 3
   categories:
   - UplinkChemicals
 
   discountDownTo:
     Telecrystal: 2
   cost:
-    Telecrystal: 4
+    Telecrystal: 3
   categories:
   - UplinkChemicals
 
index 0890fcffd5b44c555394c0fed6dc3e8bf84377ef..538cfaffa08fae5cf83c49181854393935a7ce73 100644 (file)
   - type: SolutionContainerManager
     solutions:
       melee:
-        maxVol: 7
+        maxVol: 10
   - type: SolutionInjectOnEmbed
-    transferAmount: 7
+    transferAmount: 10
     blockSlots: NONE
     solution: melee
   - type: SolutionTransfer
-    maxTransferAmount: 7
+    maxTransferAmount: 10
 
 - type: entity
   name: dartboard
index 2c6a0e0ffccdce5bf3eed61c496f7e700e354d0f..b4cb53747fcb7e45d1ea5e6f2d57a03036e4fca1 100644 (file)
   color: "#FDD023"
   metabolisms:
     Poison:
+      metabolismRate : 2.0
       effects:
       - !type:Electrocute
-        probability: 0.35
+        siemensCoefficient: 0.5
+        probability: 0.5
 
 - type: reagent
   id: Razorium
index 7ad463bfcc429a86b12fdd9173b80644224161f9..df81a8db13e8ca0a4bcaa7608212425d1a535b2a 100644 (file)
         conditions:
         - !type:ReagentCondition
           reagent: Stimulants
-          min: 50
+          min: 45
         damage:
           types:
-            Poison: 1
+            Poison: 3
       # Interactions
       - !type:ModifyStatusEffect
         conditions:
           reagent: Nocturine
           min: 8
         effectProto: StatusEffectForcedSleeping
-        time: 6
+        time: 9
         delay: 5
 
 - type: reagent
index 6fb5d3aa7ac5bfb03e98c04822c8288a7a0917e6..22aca1a7c1d8d820e11a6567305a709798bccb25 100644 (file)
   color: "#FDD023"
   metabolisms:
     Poison:
+      metabolismRate : 2.0
       effects:
       - !type:Electrocute
-        probability: 0.8
+        electrocuteTime: 1
+        probability: 0.5
 
 - type: reagent
   id: Lipolicide