Files
tbd-station-14/Content.Shared/Damage/Components/StaminaResistanceComponent.cs
BramvanZijp cf14cb3eb5 The long overdue downfall of stun meta - Stamina resists on Nukie & ERT Suits. (#35580)
* Add stamina damage resistance

* Probably starting a civil war within the community.

* Tweak some values, my chart was outdated.

* Tone down the values

* Allow a way to bypass the resistances, which forks downstream can use.

* Apply suggestions from code review

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Comment out the changes to non-deathsquad suits.

* minor text fix e

* review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-14 17:27:26 +02:00

39 lines
1.4 KiB
C#

using Content.Shared.Damage.Systems;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
using Robust.Shared.GameStates;
namespace Content.Shared.Damage.Components;
/// <summary>
/// Component that provides entities with stamina resistance.
/// By default this is applied when worn, but to solely protect the entity itself and
/// not the wearer use <c>worn: false</c>.
/// </summary>
/// <remarks>
/// This is desirable over just using damage modifier sets, given that equipment like bomb-suits need to
/// significantly reduce the damage, but shouldn't be silly overpowered in regular combat.
/// </remarks>
[NetworkedComponent, RegisterComponent, AutoGenerateComponentState]
public sealed partial class StaminaResistanceComponent : Component
{
/// <summary>
/// The stamina resistance coefficient, This fraction is multiplied into the total resistance.
/// </summary>
[DataField, AutoNetworkedField]
public float DamageCoefficient = 1;
/// <summary>
/// When true, resistances will be applied to the entity wearing this item.
/// When false, only this entity will get the resistance.
/// </summary>
[DataField]
public bool Worn = true;
/// <summary>
/// Examine string for stamina resistance.
/// Passed <c>value</c> from 0 to 100.
/// </summary>
[DataField]
public LocId Examine = "stamina-resistance-coefficient-value";
}