Files
crystall-punk-14/Content.Shared/_CP14/MagicRitual/Effects/ChangeNode.cs
2025-08-12 13:44:15 +03:00

30 lines
1019 B
C#

using System.Numerics;
using Content.Shared._CP14.MagicRitual.Components;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
namespace Content.Shared._CP14.MagicRitual.Effects;
public sealed partial class ChangeNode : CP14RitualEffect
{
[DataField(required: true)]
public EntProtoId Proto = default!;
public override void Effect(IEntityManager entMan, IPrototypeManager protoMan, EntityUid ritual)
{
if (!protoMan.TryIndex(Proto, out var indexedProto))
return;
var compFactory = IoCManager.Resolve<IComponentFactory>();
if (!indexedProto.TryGetComponent<CP14RitualNodeComponent>(out var targetNode, compFactory))
{
Logger.Error($"Ritual node {indexedProto.ID} does not have a CP14RitualNodeComponent, cannot change node.");
return;
}
var origin = entMan.GetComponent<TransformComponent>(ritual).Coordinates;
entMan.SpawnAtPosition(Proto, origin);
entMan.QueueDeleteEntity(ritual);
}
}