using Content.Shared.CombatMode.Pacification; using Content.Shared.Damage.Components; using Content.Shared.Damage.Events; namespace Content.Shared.Damage.Systems; public abstract class SharedDamageOtherOnHitSystem : EntitySystem { [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly DamageExamineSystem _damageExamine = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnDamageExamine); SubscribeLocalEvent(OnAttemptPacifiedThrow); } private void OnDamageExamine(Entity ent, ref DamageExamineEvent args) { _damageExamine.AddDamageExamine(args.Message, _damageable.ApplyUniversalAllModifiers(ent.Comp.Damage * _damageable.UniversalThrownDamageModifier), Loc.GetString("damage-throw")); } /// /// Prevent players with the Pacified status effect from throwing things that deal damage. /// private void OnAttemptPacifiedThrow(Entity ent, ref AttemptPacifiedThrowEvent args) { args.Cancel("pacified-cannot-throw"); } }