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