using Content.Shared.Examine; using Content.Shared.Inventory; namespace Content.Shared.Stunnable; public sealed class ClothingModifyStunTimeSystem : EntitySystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent>(OnModifyStunTime); SubscribeLocalEvent(OnExamined); } private void OnExamined(Entity ent, ref ExaminedEvent args) { args.PushMarkup(Loc.GetString("clothing-modify-stun-time-examine", ("mod", MathF.Round((1f - ent.Comp.Modifier) * 100)))); } private void OnModifyStunTime(Entity ent, ref InventoryRelayedEvent args) { args.Args.Modifier *= ent.Comp.Modifier; } public float GetModifier(EntityUid uid) { var ev = new ModifyStunTimeEvent(1f); RaiseLocalEvent(uid, ref ev); return ev.Modifier; } } [ByRefEvent] public record struct ModifyStunTimeEvent(float Modifier) : IInventoryRelayEvent { public SlotFlags TargetSlots => SlotFlags.WITHOUT_POCKET; }