using Content.Server.Chemistry.Components; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; using Content.Shared.Weapons.Melee; namespace Content.Server.Chemistry.EntitySystems { public sealed partial class ChemistrySystem { private void InitializeHypospray() { SubscribeLocalEvent(OnAfterInteract); SubscribeLocalEvent(OnClickAttack); SubscribeLocalEvent(OnSolutionChange); SubscribeLocalEvent(OnUseInHand); } private void OnUseInHand(EntityUid uid, HyposprayComponent component, UseInHandEvent args) { if (args.Handled) return; component.TryDoInject(args.User, args.User); args.Handled = true; } private void OnSolutionChange(EntityUid uid, HyposprayComponent component, SolutionChangedEvent args) { Dirty(component); } public void OnAfterInteract(EntityUid uid, HyposprayComponent comp, AfterInteractEvent args) { if (!args.CanReach) return; var target = args.Target; var user = args.User; comp.TryDoInject(target, user); } public void OnClickAttack(EntityUid uid, HyposprayComponent comp, ClickAttackEvent args) { if (args.Target == null) return; comp.TryDoInject(args.Target.Value, args.User); } } }