using Content.Shared.Damage.Systems; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; using Robust.Shared.GameStates; namespace Content.Shared.Damage.Components; /// /// 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 worn: false. /// /// /// 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. /// [NetworkedComponent, RegisterComponent, AutoGenerateComponentState] public sealed partial class StaminaResistanceComponent : Component { /// /// The stamina resistance coefficient, This fraction is multiplied into the total resistance. /// [DataField, AutoNetworkedField] public float DamageCoefficient = 1; /// /// When true, resistances will be applied to the entity wearing this item. /// When false, only this entity will get the resistance. /// [DataField] public bool Worn = true; /// /// Examine string for stamina resistance. /// Passed value from 0 to 100. /// [DataField] public LocId Examine = "armor-stamina-projectile-coefficient-value"; // DeltaV /// /// DeltaV - Whether or not this includes melee resistance. By default, DeltaV assigns melee stamina resistance to /// blunt damage, but if this is set to true, it was override that and use the stamina resistance value. /// /// If this is true, then the stamina resistance will double-dip with any blunt resistance, since stamina damage due to /// blunt damage is calculated after blunt resistance is applied. Basically, use this when you want to make something even /// resistant or even immune to melee stamina damage. /// [DataField] public bool MeleeResistance = false; }