using Content.Shared._White.Guardian; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Guardian { /// /// Given to guardians to monitor their link with the host /// [RegisterComponent] public sealed partial class GuardianComponent : Component { /// /// The guardian host entity /// [DataField] public EntityUid? Host; /// /// Percentage of damage reflected from the guardian to the host /// [DataField("damageShare")] public float DamageShare { get; set; } = 0.65f; /// /// Maximum distance the guardian can travel before it's forced to recall, use YAML to set /// [DataField("distance")] public float DistanceAllowed { get; set; } = 5f; /// /// Maximum default distance the guardian can travel before it's forced to recall, use YAML to set /// [DataField("distanceDefault")] public float DistanceAllowedDefault { get; set; } = 10f; [DataField] public float DistancePowerAssasin { get; set; } = 25f; /// /// If the guardian is currently manifested /// [DataField] public bool GuardianLoose; [DataField] public GuardianSelector GuardianType = GuardianSelector.Standart; [DataField("powerToggleAction", customTypeSerializer: typeof(PrototypeIdSerializer))] public string PowerToggleAction = "ActionGuardianPowerToggle"; [DataField] public EntityUid? PowerToggleActionEntity; [ViewVariables(VVAccess.ReadWrite), DataField] public bool IsInPowerMode; [DataField("chargerPowerAction", customTypeSerializer: typeof(PrototypeIdSerializer))] public string ChargerPowerAction = "ActionChargerPower"; [DataField] public EntityUid? ChargerPowerActionEntity; [ViewVariables(VVAccess.ReadWrite), DataField] public bool IsCharged; [ViewVariables(VVAccess.ReadWrite), DataField("assasinDamageModifier")] public float AssasinDamageModifier = 3F; [ViewVariables(VVAccess.ReadWrite), DataField] public int LightingCount = 1; [ViewVariables(VVAccess.ReadWrite), DataField] public SoundSpecifier? ChargerSound = new SoundPathSpecifier("/Audio/White/Guardian/charger.ogg"); [DataField] public EntProtoId Action = "ActionToggleGuardian"; [DataField] public EntityUid? ActionEntity; } }