Delta-v/Content.Shared/_DV/Abilities/ShatterLightsAbilityCompone...

55 lines
1.5 KiB
C#

using Content.Shared.Actions;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared._DV.Abilities;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class ShatterLightsAbilityComponent : Component
{
/// <summary>
/// The radius in which lights will be broken.
/// </summary>
[DataField]
public float Radius = 10f;
/// <summary>
/// If true, lights will only be broken if the entity has line of sight to them.
/// </summary>
[DataField]
public bool LineOfSight = false;
/// <summary>
/// The radius to ignore line of sight restrictions.
/// </summary>
[DataField]
public float PenetratingRadius = 0f;
/// <summary>
/// The action that triggers the shatter lights ability.
/// </summary>
[DataField]
public EntProtoId ShatterLightsActionId = "ActionShatterLights";
/// <summary>
/// Standing reference to the action entity, if it exists.
/// </summary>
[DataField, AutoNetworkedField]
public EntityUid? ShatterLightsActionEntity;
/// <summary>
/// The sound to play when the ability is used.
/// </summary>
[DataField]
public SoundSpecifier AbilitySound = new SoundPathSpecifier("/Audio/_DV/Effects/creepyshriek.ogg");
/// <summary>
/// The effect to spawn when the ability is used.
/// </summary>
[DataField]
public EntProtoId Effect = "CMEffectScreech";
}
public sealed partial class ShatterLightsActionEvent : InstantActionEvent;