Files
wwdpublic/Content.Server/ImmovableRod/ImmovableRodComponent.cs
VMSolidus d3536279ca Uncomment Immovable Rod (#973)
# Description

Part of the important gameplay loop for engineering is that they're
supposed to be repairing the station when shit breaks it, so the
ImmovableRod event is a key part of the game. However, it was currently
commented out because people didn't like it gibbing characters with no
reactability? Well news flash for people, there's a datafield for that.
I can also directly control how much damage it deals.

So in exchange for uncommenting the Immovable Rod event, I've set the
immovable rod spawned to be a little fairer for players, while still
being able to cause damage to the station that will require repairs(And
also expose players to vacuum. So that it puts them in danger.

# Changelog

🆑
- add: Immovable Rod Event has returned
- add: Immovable Rod Event has been made more fair. It won't
automatically gib people, just crit them with a ton of blunt damage(That
you can survive by wearing good armor), or just being an Oni funnily
enough.
2024-10-19 13:28:25 +07:00

53 lines
1.4 KiB
C#

using Content.Shared.Damage;
using Robust.Shared.Audio;
namespace Content.Server.ImmovableRod;
[RegisterComponent]
public sealed partial class ImmovableRodComponent : Component
{
public int MobCount = 0;
[DataField("hitSound")]
public SoundSpecifier Sound = new SoundCollectionSpecifier("MetalSlam");
[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;
/// <summary>
/// If true, this will gib & delete bodies
/// </summary>
[DataField]
public bool ShouldGib;
/// <summary>
/// Damage done, if not gibbing
/// </summary>
[DataField]
public DamageSpecifier? Damage;
}