1
0

DamageOnHitSystem.cs 824 B

12345678910111213141516171819202122232425
  1. using Content.Server.Damage.Components;
  2. using Content.Shared.Damage;
  3. using Robust.Shared.Player;
  4. using Content.Shared.Weapons.Melee.Events;
  5. using System.Linq;
  6. namespace Content.Server.Damage.Systems;
  7. public sealed class DamageOnHitSystem : EntitySystem
  8. {
  9. [Dependency] private readonly DamageableSystem _damageableSystem = default!;
  10. public override void Initialize()
  11. {
  12. base.Initialize();
  13. SubscribeLocalEvent<DamageOnHitComponent, MeleeHitEvent>(DamageItem);
  14. }
  15. // Looks for a hit, then damages the held item an appropriate amount.
  16. private void DamageItem(EntityUid uid, DamageOnHitComponent component, MeleeHitEvent args)
  17. {
  18. if (args.HitEntities.Any()) {
  19. _damageableSystem.TryChangeDamage(uid, component.Damage, component.IgnoreResistances);
  20. }
  21. }
  22. }