50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using System.Threading;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared._White.Cult.Items;
|
|
|
|
[RegisterComponent]
|
|
public sealed partial class VoidTeleportComponent : Component
|
|
{
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("usesLeft")]
|
|
public int UsesLeft = 4;
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("minRange")]
|
|
public int MinRange = 5;
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("maxRange")]
|
|
public int MaxRange = 15;
|
|
|
|
[ViewVariables(VVAccess.ReadOnly)]
|
|
public bool Active = true;
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("cooldown")]
|
|
public TimeSpan Cooldown = TimeSpan.FromSeconds(5);
|
|
|
|
public CancellationTokenSource Token = new();
|
|
|
|
public TimeSpan TimerDelay = TimeSpan.FromSeconds(0.5);
|
|
|
|
[ViewVariables(VVAccess.ReadOnly)]
|
|
public TimeSpan NextUse = TimeSpan.Zero;
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("teleportInSound")]
|
|
public SoundSpecifier TeleportInSound = new SoundPathSpecifier("/Audio/White/Cult/veilin.ogg");
|
|
|
|
[ViewVariables(VVAccess.ReadWrite), DataField("teleportOutSound")]
|
|
public SoundSpecifier TeleportOutSound = new SoundPathSpecifier("/Audio/White/Cult/veilout.ogg");
|
|
|
|
[ViewVariables(VVAccess.ReadOnly), DataField("teleportInEffect")]
|
|
public string? TeleportInEffect = "CultTeleportInEffect";
|
|
|
|
[ViewVariables(VVAccess.ReadOnly), DataField("teleportOutEffect")]
|
|
public string? TeleportOutEffect = "CultTeleportOutEffect";
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public enum VeilVisuals : byte
|
|
{
|
|
Activated
|
|
}
|