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:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
|
||||
7
Resources/Locale/en-US/plants/mutations.ftl
Normal file
7
Resources/Locale/en-US/plants/mutations.ftl
Normal 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.
|
||||
@@ -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
|
||||
@@ -150,12 +153,12 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user