using Robust.Shared.Prototypes; namespace Content.Shared._CP14.MagicRitual.Requirements; /// /// Requires that the stability of the ritual be within specified limits. If the stability is above or below the specified values, the check will fail /// public sealed partial class RequiredStability : CP14RitualRequirement { [DataField] public float Min = 0; [DataField] public float Max = 1; public override string? GetGuidebookRequirementDescription(IPrototypeManager prototype, IEntitySystemManager entSys) { return Min switch { > 0 when Max < 1 => Loc.GetString("cp14-ritual-required-stability-minmax", ("min", Min*100), ("max", Max*100)), > 0 => Loc.GetString("cp14-ritual-required-stability-min", ("min", Min*100)), < 0 => Loc.GetString("cp14-ritual-required-stability-max", ("min", Max*100)), _ => null, }; } public override bool Check(EntityManager entManager, Entity phaseEnt, float stability) { if (phaseEnt.Comp.Ritual is null) return false; var s = phaseEnt.Comp.Ritual.Value.Comp.Stability; return !(s < Min) && !(s > Max); } }