if (_mobState.IsAlive(target, mobState))
return false;
+ if (!component.CanDefibCrit && _mobState.IsCritical(target, mobState))
+ return false;
+
return true;
}
{
BlockDuplicate = true,
BreakOnHandChange = true,
- NeedHand = true
+ NeedHand = true,
+ BreakOnMove = !component.AllowDoAfterMovement
});
}
// if we don't have enough power left for another shot, turn it off
if (!_powerCell.HasActivatableCharge(uid))
TryDisable(uid, component);
+
+ // TODO clean up this clown show above
+ var ev = new TargetDefibrillatedEvent(user, (uid, component));
+ RaiseLocalEvent(target, ref ev);
}
public override void Update(float frameTime)
[DataField("doAfterDuration"), ViewVariables(VVAccess.ReadWrite)]
public TimeSpan DoAfterDuration = TimeSpan.FromSeconds(3);
+ [DataField]
+ public bool AllowDoAfterMovement = true;
+
+ [DataField]
+ public bool CanDefibCrit = true;
+
/// <summary>
/// The sound when someone is zapped.
/// </summary>