| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using Content.Shared.Actions;
- using Content.Shared.Ninja.Systems;
- using Robust.Shared.Audio;
- using Robust.Shared.GameStates;
- using Robust.Shared.Prototypes;
- using Robust.Shared.Utility;
- 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, in seconds
- /// </summary>
- [DataField]
- public float EmpDuration = 60f;
- }
- public sealed partial class RecallKatanaEvent : InstantActionEvent;
- public sealed partial class NinjaEmpEvent : InstantActionEvent;
|