Files
wwdpublic/Content.Shared/Radio/Components/SharedRadioJammerComponent.cs
RedFoxIV 0536fc8645 Fuselage rust stage 2 (#629)
* the definition of insanity

* the definition of insanity

* the definition of insanity

* we have hullrot at home

* maybe the real hullrot was the friends we made along the way

* john hullrot

* i am going to hullroooooot

* it's hullrotver

* we're so hullback

* we're rotting the hull with this one

* hullmerge

* the hullrot is leaking

* never gonna rot you up

* hullfresh

* john starsector

* god i wish we had grid collision damage

* you can tell I am very tired because I stopped forcing a hullrot joke into every commit message

* hr

* this is a surprise sprite that will help us later

* motherfucker

* i have nothing good to say

* still nothing

* brb

* random letter random letter random letter dash random number random number random number

* ass

* blast

* ffs

* fcuk

* RE: ffs

* RE: RE: ffs

* гнида жестяная

* continue

* i hate tests

* i love tests

* slide to the right

* i hate tests again

* what the fuck

* ты шиз?

* ??

* bbgun
2025-06-28 11:31:07 +03:00

75 lines
1.7 KiB
C#

using Robust.Shared.Serialization;
using Robust.Shared.GameStates;
namespace Content.Shared.RadioJammer;
/// <summary>
/// When activated (<see cref="ActiveRadioJammerComponent"/>) prevents from sending messages in range
/// Suit sensors will also stop working.
/// </summary>
[NetworkedComponent, RegisterComponent]
public sealed partial class RadioJammerComponent : Component
{
[DataDefinition]
public partial struct RadioJamSetting
{
/// <summary>
/// Power usage per second when enabled.
/// </summary>
[DataField(required: true)]
public float Wattage;
/// <summary>
/// Range of the jammer.
/// </summary>
[DataField(required: true)]
public float Range;
/// <summary>
/// The message that is displayed when switched
/// to this setting.
/// </summary>
[DataField(required: true)]
public LocId Message;
/// <summary>
/// Name of the setting.
/// </summary>
[DataField(required: true)]
public LocId Name;
}
/// <summary>
/// List of all the settings for the radio jammer.
/// </summary>
[DataField(required: true), ViewVariables(VVAccess.ReadOnly)]
public RadioJamSetting[] Settings = default!;
/// <summary>
/// Index of the currently selected setting.
/// </summary>
[DataField]
public int SelectedPowerLevel = 1;
}
[Serializable, NetSerializable]
public enum RadioJammerChargeLevel : byte
{
Low,
Medium,
High
}
[Serializable, NetSerializable]
public enum RadioJammerLayers : byte
{
LED
}
[Serializable, NetSerializable]
public enum RadioJammerVisuals : byte
{
ChargeLevel,
LEDOn
}