]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Display obvious plant mutations in examine text (#32650)
authordrakewill-CRL <46307022+drakewill-CRL@users.noreply.github.com>
Tue, 29 Apr 2025 04:45:10 +0000 (00:45 -0400)
committerGitHub <noreply@github.com>
Tue, 29 Apr 2025 04:45:10 +0000 (00:45 -0400)
* Effect mutations now display on examine

* ChangeSpecies shouldn't stay on the list after running. Name cleanup

* EmoGarbage Review - convert description to LocId and add minor logic fix

* fix the dastardly yaml

---------

Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Content.Server/Botany/Systems/BotanySystem.Produce.cs
Content.Server/Botany/Systems/BotanySystem.Seed.cs
Content.Server/Botany/Systems/PlantHolderSystem.cs
Content.Shared/Random/RandomPlantMutation.cs
Resources/Locale/en-US/plants/mutations.ftl [new file with mode: 0644]
Resources/Prototypes/Hydroponics/randomMutations.yml

index 8fdf96f57ba997036dfba45142e17ea36e175c0a..f6f3f99c09e74ed8928ec4c410f22bd3ef1552ec 100644 (file)
@@ -1,5 +1,6 @@
 using Content.Server.Botany.Components;
 using Content.Shared.EntityEffects;
+using Content.Shared.Examine;
 using Content.Shared.FixedPoint;
 
 namespace Content.Server.Botany.Systems;
@@ -37,4 +38,23 @@ public sealed partial class BotanySystem
             solutionContainer.AddReagent(chem, amount);
         }
     }
+
+    public void OnProduceExamined(EntityUid uid, ProduceComponent comp, ExaminedEvent args)
+    {
+        if (comp.Seed == null)
+            return;
+
+        using (args.PushGroup(nameof(ProduceComponent)))
+        {
+            foreach (var m in comp.Seed.Mutations)
+            {
+                // Don't show mutations that have no effect on produce (sentience)
+                if (!m.AppliesToProduce)
+                    continue;
+
+                if (m.Description != null)
+                    args.PushMarkup(Loc.GetString(m.Description));
+            }
+        }
+    }
 }
index e10414ebe5a82cc6bf62f9d83f71115392ad7d8d..fd65c141aa02782be33df05a35a85275c1711df5 100644 (file)
@@ -36,6 +36,7 @@ public sealed partial class BotanySystem : EntitySystem
         base.Initialize();
 
         SubscribeLocalEvent<SeedComponent, ExaminedEvent>(OnExamined);
+        SubscribeLocalEvent<ProduceComponent, ExaminedEvent>(OnProduceExamined);
     }
 
     public bool TryGetSeed(SeedComponent comp, [NotNullWhen(true)] out SeedData? seed)
index 2661ed479c5353ffa35f2077f65baeaa7cc7c2c4..0686f3209729c8047c0a0c9d97bea44b40fd01f4 100644 (file)
@@ -116,6 +116,20 @@ public sealed class PlantHolderSystem : EntitySystem
                                 ? "plant-holder-component-plant-old-adjective"
                                 : "plant-holder-component-plant-unhealthy-adjective"))));
                 }
+
+                // For future reference, mutations should only appear on examine if they apply to a plant, not to produce.
+
+                if (component.Seed.Ligneous)
+                    args.PushMarkup(Loc.GetString("mutation-plant-ligneous"));
+
+                if (component.Seed.TurnIntoKudzu)
+                    args.PushMarkup(Loc.GetString("mutation-plant-kudzu"));
+
+                if (component.Seed.CanScream)
+                    args.PushMarkup(Loc.GetString("mutation-plant-scream"));
+
+                if (component.Seed.Viable == false)
+                    args.PushMarkup(Loc.GetString("mutation-plant-unviable"));
             }
             else
             {
index d95cf7bf422bf7b38cce2bce7555f0800c13e4a7..7d04aa626db7ab66cc8064cd94bcce48abab44a8 100644 (file)
@@ -22,6 +22,12 @@ public sealed partial class RandomPlantMutation
     [DataField]
     public string Name = "";
 
+    /// <summary>
+    /// The text to display to players when examining something with this mutation.
+    /// </summary>
+    [DataField]
+    public LocId? Description;
+
     /// <summary>
     /// The actual EntityEffect to apply to the target
     /// </summary>
diff --git a/Resources/Locale/en-US/plants/mutations.ftl b/Resources/Locale/en-US/plants/mutations.ftl
new file mode 100644 (file)
index 0000000..80f4052
--- /dev/null
@@ -0,0 +1,7 @@
+mutation-plant-bioluminescent = It glows with a gentle light.
+mutation-plant-kudzu = It is growing unusually fast and thin.
+mutation-plant-ligneous = It is woody and will need a sharp tool to harvest.
+mutation-plant-scream = This plant seems nervous somehow.
+mutation-plant-sentient = It seems to be examining its surroundings.
+mutation-plant-slippery = It is slick to the touch.
+mutation-plant-unviable = It is wilting and sickly.
\ No newline at end of file
index f203f8454730fc5c86252f6d97b73e88ef73b060..1120c38f3199a7322b3fe22035fef0cd7a96936f 100644 (file)
@@ -3,15 +3,18 @@
   mutations:
     # disabled until 50 morbillion point lights don't cause the renderer to die
     #- name: Bioluminescent
+    #  description: mutation-plant-bioluminescent
     #  baseOdds: 0.036
     #  appliesToPlant: false
     #  effect: !type:Glow
     - name: Sentient
+      description: mutation-plant-sentient
       baseOdds: 0.0072
       appliesToProduce: false
       persists: false
       effect: !type:MakeSentient # existing effect.
     - name: Slippery
+      description: mutation-plant-slippery
       baseOdds: 0.036
       appliesToPlant: false
       effect: !type:Slipify
       persists: false
       effect: !type:PlantChangeStat
         targetValue: Seedless
-    - name: ChangeLigneous
+    - name: Lignification
       baseOdds: 0.036
       persists: false
       effect: !type:PlantChangeStat
         targetValue: Ligneous
-    - name: ChangeTurnIntoKudzu
+    - name: Kudzufication
       baseOdds: 0.036
       persists: false
       effect: !type:PlantChangeStat