using System.Text;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.MagicRitual.Actions;
///
/// Adds a key-orb to the ritual.
///
public sealed partial class AddOrb : CP14RitualAction
{
[DataField(required: true)]
public Dictionary Orbs = new();
public override string? GetGuidebookEffectDescription(IPrototypeManager prototype, IEntitySystemManager entSys)
{
var sb = new StringBuilder();
sb.Append(Loc.GetString("cp14-ritual-effect-add-orb")+ "\n");
foreach (var orb in Orbs)
{
if (!prototype.TryIndex(orb.Key, out var indexedOrb))
continue;
sb.Append(Loc.GetString("cp14-ritual-entry-item", ("name", indexedOrb.Name), ("count", orb.Value)) + "\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();
foreach (var orb in Orbs)
{
for (var i = 0; i < orb.Value; i++)
{
ritual.AddOrbToRitual(phase.Comp.Ritual.Value, orb.Key);
}
}
}
}