using Content.Shared.Actions; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Magic.Events; public sealed partial class ProjectileSpellEvent : WorldTargetActionEvent, ISpeakSpell { /// /// What entity should be spawned. /// [DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] public string Prototype = default!; /// /// Gets the targeted spawn positions; may lead to multiple entities being spawned. /// [DataField("posData")] public MagicSpawnData Pos = new TargetCasterPos(); [DataField("speech")] public string? Speech { get; private set; } }