2024-06-29 20:02:26 +00:00
|
|
|
using Content.Shared.Damage;
|
2022-07-29 14:13:12 +12:00
|
|
|
using Robust.Shared.Audio;
|
2022-05-20 19:43:26 -07:00
|
|
|
|
|
|
|
|
namespace Content.Server.ImmovableRod;
|
|
|
|
|
|
|
|
|
|
[RegisterComponent]
|
2023-08-22 18:14:33 -07:00
|
|
|
public sealed partial class ImmovableRodComponent : Component
|
2022-05-20 19:43:26 -07:00
|
|
|
{
|
|
|
|
|
public int MobCount = 0;
|
|
|
|
|
|
|
|
|
|
[DataField("hitSound")]
|
2024-01-19 08:33:07 -07:00
|
|
|
public SoundSpecifier Sound = new SoundCollectionSpecifier("MetalSlam");
|
2022-05-20 19:43:26 -07:00
|
|
|
|
|
|
|
|
[DataField("hitSoundProbability")]
|
|
|
|
|
public float HitSoundProbability = 0.1f;
|
|
|
|
|
|
|
|
|
|
[DataField("minSpeed")]
|
|
|
|
|
public float MinSpeed = 10f;
|
|
|
|
|
|
|
|
|
|
[DataField("maxSpeed")]
|
|
|
|
|
public float MaxSpeed = 35f;
|
|
|
|
|
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// Stuff like wizard rods might want to set this to false, so that they can set the velocity themselves.
|
|
|
|
|
/// </remarks>
|
|
|
|
|
[DataField("randomizeVelocity")]
|
|
|
|
|
public bool RandomizeVelocity = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Overrides the random direction for an immovable rod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("directionOverride")]
|
|
|
|
|
public Angle DirectionOverride = Angle.Zero;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// With this set to true, rods will automatically set the tiles under them to space.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("destroyTiles")]
|
|
|
|
|
public bool DestroyTiles = true;
|
2024-06-29 20:02:26 +00:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// If true, this will gib & delete bodies
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool ShouldGib = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Damage done, if not gibbing
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public DamageSpecifier? Damage;
|
2022-05-20 19:43:26 -07:00
|
|
|
}
|