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" }
};
}
}