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(OnGetResistance); SubscribeLocalEvent>(RelayedResistance); SubscribeLocalEvent(OnArmorExamine); } private void OnGetResistance(Entity ent, ref BeforeStaminaDamageEvent args) { args.Value *= ent.Comp.DamageCoefficient; } private void RelayedResistance(Entity ent, ref InventoryRelayedEvent args) { if (ent.Comp.Worn) OnGetResistance(ent, ref args.Args); } private void OnArmorExamine(Entity 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))); } }