using System.Text; using Content.Shared._CP14.MagicRitual.Prototypes; using Robust.Shared.Prototypes; namespace Content.Shared._CP14.MagicRitual.Actions; /// /// Removes the orb key from the ritual. /// public sealed partial class ConsumeOrb : CP14RitualAction { [DataField(required: true)] public ProtoId MagicType = new(); [DataField(required: true)] public int Count = 0; public override string? GetGuidebookEffectDescription(IPrototypeManager prototype, IEntitySystemManager entSys) { if (!prototype.TryIndex(MagicType, out var indexedType)) return null; var sb = new StringBuilder(); sb.Append(Loc.GetString("cp14-ritual-effect-consume-orb", ("name", Loc.GetString(indexedType.Name)), ("count", Count))+ "\n"); return sb.ToString(); } public override void Effect(EntityManager entManager, SharedTransformSystem transform, Entity phase) { if (phase.Comp.Ritual is null) return; var ritual = entManager.System(); for (var i = 0; i < Count; i++) { ritual.ConsumeOrbType(phase.Comp.Ritual.Value, MagicType); } } }