mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-18 05:59:03 +03:00
# 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.
53 lines
1.4 KiB
C#
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;
|
|
}
|