using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.GameStates; namespace Content.Shared.Species.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ReformComponent : Component { /// /// The action to use. /// [DataField(required: true)] public EntProtoId ActionPrototype = default!; [DataField, AutoNetworkedField] public EntityUid? ActionEntity; /// /// How long it will take to reform /// [DataField(required: true)] public float ReformTime = 0; /// /// Whether or not the entity should start with a cooldown /// [DataField] public bool StartDelayed = true; /// /// Whether or not the entity should be stunned when reforming at all /// [DataField] public bool ShouldStun = true; /// /// The text that appears when attempting to reform /// [DataField(required: true)] public string PopupText; /// /// The mob that our entity will reform into /// [DataField(required: true)] public EntProtoId ReformPrototype { get; private set; } }