Files
tbd-station-14/Content.Shared/Ninja/Components/NinjaSuitComponent.cs
Connor Huffine 8c406cbe38 Remove unused includes in Ninja (#41207)
* Remove Unused

* Additional cleanup
2025-10-31 00:03:09 +00:00

83 lines
2.3 KiB
C#

using Content.Shared.Actions;
using Content.Shared.Ninja.Systems;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Ninja.Components;
/// <summary>
/// Component for ninja suit abilities and power consumption.
/// As an implementation detail, dashing with katana is a suit action which isn't ideal.
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(SharedNinjaSuitSystem))]
public sealed partial class NinjaSuitComponent : Component
{
/// <summary>
/// Sound played when a ninja is hit while cloaked.
/// </summary>
[DataField]
public SoundSpecifier RevealSound = new SoundPathSpecifier("/Audio/Effects/chime.ogg");
/// <summary>
/// ID of the use delay to disable all ninja abilities.
/// </summary>
[DataField]
public string DisableDelayId = "suit_powers";
/// <summary>
/// The action id for recalling a bound energy katana
/// </summary>
[DataField]
public EntProtoId RecallKatanaAction = "ActionRecallKatana";
[DataField, AutoNetworkedField]
public EntityUid? RecallKatanaActionEntity;
/// <summary>
/// Battery charge used per tile the katana teleported.
/// Uses 1% of a default battery per tile.
/// </summary>
[DataField]
public float RecallCharge = 3.6f;
/// <summary>
/// The action id for creating an EMP burst
/// </summary>
[DataField]
public EntProtoId EmpAction = "ActionNinjaEmp";
[DataField, AutoNetworkedField]
public EntityUid? EmpActionEntity;
/// <summary>
/// Battery charge used to create an EMP burst. Can do it 2 times on a small-capacity power cell.
/// </summary>
[DataField]
public float EmpCharge = 180f;
// TODO: EmpOnTrigger bruh
/// <summary>
/// Range of the EMP in tiles.
/// </summary>
[DataField]
public float EmpRange = 6f;
/// <summary>
/// Power consumed from batteries by the EMP
/// </summary>
[DataField]
public float EmpConsumption = 100000f;
/// <summary>
/// How long the EMP effects last for
/// </summary>
[DataField]
public TimeSpan EmpDuration = TimeSpan.FromSeconds(60);
}
public sealed partial class RecallKatanaEvent : InstantActionEvent;
public sealed partial class NinjaEmpEvent : InstantActionEvent;