using Content.Shared.Damage.Events; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Events; using Content.Shared.Mobs.Systems; namespace Content.Shared.Traits.Assorted; public sealed class PainNumbnessSystem : EntitySystem { [Dependency] private readonly MobThresholdSystem _mobThresholdSystem = default!; public override void Initialize() { SubscribeLocalEvent(OnComponentInit); SubscribeLocalEvent(OnComponentRemove); SubscribeLocalEvent(OnChangeForceSay); SubscribeLocalEvent(OnAlertSeverityCheck); } private void OnComponentRemove(EntityUid uid, PainNumbnessComponent component, ComponentRemove args) { if (!HasComp(uid)) return; _mobThresholdSystem.VerifyThresholds(uid); } private void OnComponentInit(EntityUid uid, PainNumbnessComponent component, ComponentInit args) { if (!HasComp(uid)) return; _mobThresholdSystem.VerifyThresholds(uid); } private void OnChangeForceSay(Entity ent, ref BeforeForceSayEvent args) { args.Prefix = ent.Comp.ForceSayNumbDataset; } private void OnAlertSeverityCheck(Entity ent, ref BeforeAlertSeverityCheckEvent args) { if (args.CurrentAlert == "HumanHealth") args.CancelUpdate = true; } }