Files
Delta-v/Content.Shared/Damage/Systems/SharedStaminaSystem.Resistance.cs
T
Vanessa 9e6dfed7e5 Fixed colossus stamina issues (#4688)
* Fixed colossus stamina issues.

* Fixed some spacing.
2025-11-19 11:07:21 +01:00

40 lines
1.5 KiB
C#

using Content.Shared.Armor;
using Content.Shared.Damage.Components;
using Content.Shared.Damage.Events;
using Content.Shared.Inventory;
namespace Content.Shared.Damage.Systems;
public partial class SharedStaminaSystem
{
private void InitializeResistance()
{
SubscribeLocalEvent<StaminaResistanceComponent, BeforeStaminaDamageEvent>(OnGetResistance);
SubscribeLocalEvent<StaminaResistanceComponent, InventoryRelayedEvent<BeforeStaminaDamageEvent>>(RelayedResistance);
SubscribeLocalEvent<StaminaResistanceComponent, ArmorExamineEvent>(OnArmorExamine);
}
private void OnGetResistance(Entity<StaminaResistanceComponent> ent, ref BeforeStaminaDamageEvent args)
{
if (!args.FromMelee || ent.Comp.MeleeResistance) // DeltaV - StaminaResistance is only for disablers etc, blunt armor is for resisting baton. <- WHO THOUGHT THIS WAS A GOOD IDEA?
args.Value *= ent.Comp.DamageCoefficient;
}
private void RelayedResistance(Entity<StaminaResistanceComponent> ent, ref InventoryRelayedEvent<BeforeStaminaDamageEvent> args)
{
if (ent.Comp.Worn)
OnGetResistance(ent, ref args.Args);
}
private void OnArmorExamine(Entity<StaminaResistanceComponent> ent, ref ArmorExamineEvent args)
{
var value = MathF.Round((1f - ent.Comp.DamageCoefficient) * 100, 1);
if (value == 0)
return;
args.Msg.PushNewline();
args.Msg.AddMarkupOrThrow(Loc.GetString(ent.Comp.Examine, ("value", value)));
}
}