Display obvious plant mutations in examine text (#32650)

* 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>
This commit is contained in:
drakewill-CRL
2025-04-29 00:45:10 -04:00
committed by GitHub
parent 9a3e70ca13
commit 294a5a1b69
6 changed files with 53 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
using Content.Server.Botany.Components; using Content.Server.Botany.Components;
using Content.Shared.EntityEffects; using Content.Shared.EntityEffects;
using Content.Shared.Examine;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
namespace Content.Server.Botany.Systems; namespace Content.Server.Botany.Systems;
@@ -37,4 +38,23 @@ public sealed partial class BotanySystem
solutionContainer.AddReagent(chem, amount); 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));
}
}
}
} }

View File

@@ -36,6 +36,7 @@ public sealed partial class BotanySystem : EntitySystem
base.Initialize(); base.Initialize();
SubscribeLocalEvent<SeedComponent, ExaminedEvent>(OnExamined); SubscribeLocalEvent<SeedComponent, ExaminedEvent>(OnExamined);
SubscribeLocalEvent<ProduceComponent, ExaminedEvent>(OnProduceExamined);
} }
public bool TryGetSeed(SeedComponent comp, [NotNullWhen(true)] out SeedData? seed) public bool TryGetSeed(SeedComponent comp, [NotNullWhen(true)] out SeedData? seed)

View File

@@ -116,6 +116,20 @@ public sealed class PlantHolderSystem : EntitySystem
? "plant-holder-component-plant-old-adjective" ? "plant-holder-component-plant-old-adjective"
: "plant-holder-component-plant-unhealthy-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 else
{ {

View File

@@ -22,6 +22,12 @@ public sealed partial class RandomPlantMutation
[DataField] [DataField]
public string Name = ""; public string Name = "";
/// <summary>
/// The text to display to players when examining something with this mutation.
/// </summary>
[DataField]
public LocId? Description;
/// <summary> /// <summary>
/// The actual EntityEffect to apply to the target /// The actual EntityEffect to apply to the target
/// </summary> /// </summary>

View File

@@ -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.

View File

@@ -3,15 +3,18 @@
mutations: mutations:
# disabled until 50 morbillion point lights don't cause the renderer to die # disabled until 50 morbillion point lights don't cause the renderer to die
#- name: Bioluminescent #- name: Bioluminescent
# description: mutation-plant-bioluminescent
# baseOdds: 0.036 # baseOdds: 0.036
# appliesToPlant: false # appliesToPlant: false
# effect: !type:Glow # effect: !type:Glow
- name: Sentient - name: Sentient
description: mutation-plant-sentient
baseOdds: 0.0072 baseOdds: 0.0072
appliesToProduce: false appliesToProduce: false
persists: false persists: false
effect: !type:MakeSentient # existing effect. effect: !type:MakeSentient # existing effect.
- name: Slippery - name: Slippery
description: mutation-plant-slippery
baseOdds: 0.036 baseOdds: 0.036
appliesToPlant: false appliesToPlant: false
effect: !type:Slipify effect: !type:Slipify
@@ -150,12 +153,12 @@
persists: false persists: false
effect: !type:PlantChangeStat effect: !type:PlantChangeStat
targetValue: Seedless targetValue: Seedless
- name: ChangeLigneous - name: Lignification
baseOdds: 0.036 baseOdds: 0.036
persists: false persists: false
effect: !type:PlantChangeStat effect: !type:PlantChangeStat
targetValue: Ligneous targetValue: Ligneous
- name: ChangeTurnIntoKudzu - name: Kudzufication
baseOdds: 0.036 baseOdds: 0.036
persists: false persists: false
effect: !type:PlantChangeStat effect: !type:PlantChangeStat