fish-station/Content.Server/_Starlight/Combat/OnHit/OnHitSystem.cs
2026-01-04 22:43:27 +03:00

35 lines
1.1 KiB
C#

using Content.Shared.Actions;
using Content.Shared.DoAfter;
using Robust.Shared.Prototypes;
using Content.Shared.Cuffs.Components;
using Content.Shared.Damage.Components;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared._Starlight.Combat.OnHit;
namespace Content.Server._Starlight.Combat.OnHit;
public sealed partial class OnHitSystem : SharedOnHitSystem
{
public override void Initialize()
{
SubscribeLocalEvent<CuffsOnHitComponent, CuffsOnHitDoAfter>(OnCuffsOnHitDoAfter);
base.Initialize();
}
private void OnCuffsOnHitDoAfter(Entity<CuffsOnHitComponent> ent, ref CuffsOnHitDoAfter args)
{
if (!args.Args.Target.HasValue || args.Handled || args.Cancelled) return;
var user = args.Args.User;
var target = args.Args.Target.Value;
if (!TryComp<CuffableComponent>(target, out var cuffable) || cuffable.Container.Count != 0)
return;
args.Handled = true;
var handcuffs = SpawnNextToOrDrop(ent.Comp.HandcuffProtorype, args.User);
if (!_cuffs.TryCuffingNow(user, target, handcuffs))
QueueDel(handcuffs);
}
}