using Content.Shared.Cloning; using Robust.Shared.Prototypes; using Content.Shared.Roles; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Content.Shared.DoAfter; namespace Content.Shared._DV.Abilities.Psionics; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class FracturedFormPowerComponent : Component { [DataField] public EntProtoId FracturedFormActionId = "ActionFracturedForm"; [DataField, AutoNetworkedField] public EntityUid? FracturedFormActionEntity; [DataField] public DoAfterId? DoAfter; [DataField] public ProtoId CopyNaked = "CloningPod"; [DataField] public ProtoId CopyClothed = "Antag"; [DataField] public ProtoId VisitorJob = "Passenger"; [DataField] public ProtoId? NakedJob = null; // Scary null, but we explicitely want no job for naked spawns. [DataField] public TimeSpan NextSwap = TimeSpan.MaxValue; [DataField] public float ManualSwapTime = 5f; [DataField] public bool SleepWarned = false; [DataField] public List Bodies { get; set; } = new(); [DataField] public SoundSpecifier SwapSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg") { Params = AudioParams.Default.WithVariation(0.05f) }; }