namespace Content.Shared._CP14.MagicSpell.Events; [ByRefEvent] public sealed class CP14BeforeCastMagicEffectEvent : CancellableEntityEventArgs { /// /// The Performer of the event, to check if they meet the requirements. /// public EntityUid Performer { get; init; } public string Reason = string.Empty; public void PushReason(string reason) { Reason += $"{reason}\n"; } } [ByRefEvent] public sealed class CP14AfterCastMagicEffectEvent : EntityEventArgs { public EntityUid? Performer { get; init; } } /// /// is invoked if all conditions are met and the spell has begun to be cast /// [ByRefEvent] public sealed class CP14StartCastMagicEffectEvent : EntityEventArgs { public EntityUid Performer { get; init; } } /// /// is invoked on the spell itself when the spell process has been completed or interrupted /// [ByRefEvent] public sealed class CP14EndCastMagicEffectEvent : EntityEventArgs { }