using Content.Shared.Botany.Systems; using Robust.Shared.GameStates; namespace Content.Shared.Botany.Components; /// /// Component for storing plant growth data. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true, raiseAfterAutoHandleState: true)] [Access(typeof(PlantSystem), typeof(PlantMutationSystem))] public sealed partial class PlantComponent : Component { /// /// The mutation effects that have been applied to this plant. /// Server-only: mutations are applied as effects which are synced separately. /// [DataField] public List Mutations = []; /// /// The plant's max health. /// [DataField, AutoNetworkedField] public float Endurance = 100f; /// /// How many produce are created on harvest. /// [DataField, AutoNetworkedField] public int Yield; /// /// The number of growth ticks this plant can be alive for. Plants take high damage levels when Age > Lifespan. /// [DataField, AutoNetworkedField] public float Lifespan; /// /// Damage from old age. /// [DataField, AutoNetworkedField] public float OldAgeDamage = 4f; /// /// The number of growth ticks it takes for a plant to reach its final growth stage. /// [DataField, AutoNetworkedField] public float Maturation; /// /// The number of growth ticks it takes for a plant to be (re-)harvestable. /// [DataField, AutoNetworkedField] public float Production; /// /// How many different sprites appear before the plant is fully grown. /// [DataField, AutoNetworkedField] public int GrowthStages = 6; /// /// A scalar for sprite size and chemical solution volume in the produce. Caps at 100. /// [DataField, AutoNetworkedField] public float Potency = 1f; }