Files
OldThink/Content.Shared/_White/Cult/Items/VoidTeleportComponent.cs

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
}