ToggleMode(injector, args.User);
args.Handled = true;
+ args.ApplyDelay = false;
}
private void OnInjectorAfterInteract(Entity<InjectorComponent> injector, ref AfterInteractEvent args)
return;
}
- args.Handled = TryMobsDoAfter(injector, args.User, target);
+ args.Handled |= TryMobsDoAfter(injector, args.User, target);
return;
}
// Draw from or inject into jugs, bottles, etc.
- args.Handled = ContainerDoAfter(injector, args.User, target);
+ args.Handled |= TryContainerDoAfter(injector, args.User, target);
}
private void OnInjectDoAfter(Entity<InjectorComponent> injector, ref InjectorDoAfterEvent args)
if (args.Cancelled || args.Handled || args.Args.Target == null)
return;
- args.Handled = TryUseInjector(injector, args.Args.User, args.Args.Target.Value);
+ args.Handled |= TryUseInjector(injector, args.Args.User, args.Args.Target.Value);
}
private void OnAttack(Entity<InjectorComponent> injector, ref MeleeHitEvent args)
|| !GetMobsDoAfterTime(injector, user, target, out var doAfterTime, out var amount)) // Get the DoAfter time.
return false;
- _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, doAfterTime, new InjectorDoAfterEvent(), injector.Owner, target: target, used: injector.Owner)
+ if (!_doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, doAfterTime, new InjectorDoAfterEvent(), injector.Owner, target: target, used: injector.Owner)
{
BreakOnMove = true,
BreakOnWeightlessMove = false,
NeedHand = injector.Comp.NeedHand,
BreakOnHandChange = injector.Comp.BreakOnHandChange,
MovementThreshold = injector.Comp.MovementThreshold,
- });
+ }))
+ return false;
// If the DoAfter was instant, don't send popups and logs indicating an attempt.
if (doAfterTime == TimeSpan.Zero)
#endregion Mob Interaction
#region Container Interaction
- private bool ContainerDoAfter(Entity<InjectorComponent> injector, EntityUid user, EntityUid target)
+ private bool TryContainerDoAfter(Entity<InjectorComponent> injector, EntityUid user, EntityUid target)
{
if (!GetContainerDoAfterTime(injector, user, target, out var doAfterTime))
return false;
- _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, doAfterTime, new InjectorDoAfterEvent(), injector.Owner, target: target, used: injector.Owner)
+ return _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, user, doAfterTime, new InjectorDoAfterEvent(), injector.Owner, target: target, used: injector.Owner)
{
BreakOnMove = true,
BreakOnWeightlessMove = false,
BreakOnHandChange = injector.Comp.BreakOnHandChange,
MovementThreshold = injector.Comp.MovementThreshold,
});
-
- return true;
}
/// <summary>