using Content.Shared._White.Guardian; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Guardian { /// /// Creates a GuardianComponent attached to the user's GuardianHost. /// [RegisterComponent, NetworkedComponent] public sealed partial class GuardianCreatorComponent : Component { /// /// Counts as spent upon exhausting the injection /// /// /// We don't mark as deleted as examine depends on this. /// [DataField] public bool Used = false; /// /// The prototype of the guardian entity which will be created /// [DataField("guardianProto", customTypeSerializer: typeof(PrototypeIdSerializer), required: true)] public string GuardianProto; /// /// How long it takes to inject someone. /// [DataField("delay")] public float InjectionDelay = 5f; [DataField("guardiansAvaliable")] public IReadOnlyCollection GuardiansAvaliable = ArraySegment.Empty; [DataField] public Dictionary GuardianSelectorToProto = new() { { GuardianSelector.Assasin, "MobHoloparasiteGuardianAssasin" }, { GuardianSelector.Standart, "MobHoloparasiteGuardianStandart" }, { GuardianSelector.Charger, "MobHoloparasiteGuardianCharger" }, { GuardianSelector.Lighting, "MobHoloparasiteGuardianLighting" } }; } }