mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 18:31:17 +03:00
* ActionRestrictions * katana use ActionGrant/ItemActionGrant * TeleportAction * no more DashAbility * no more TeleportSpell * no more EnergyKatana * cleanup * fix whitelist and popup * docs * display recharge cooldown * refactor: whitespace consistency!111 * Revert "display recharge cooldown" This reverts commit 3b93b179 * popup for limited charges * maybe fix * no more CanUseCharge * upd * better? * refactor: using _SharedPhysicsSystem for TeleportActionSystem collision detection + small refactoring * refactor: xml-doc --------- Co-authored-by: Fildrance <fildrance@gmail.com>
81 lines
2.2 KiB
C#
81 lines
2.2 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.
|
|
/// </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;
|