Simplify DoAfterArgs behavior for movement and distance checks (#25226)
* Merge BreakOnWeightlessMove and BreakOnMove. Provide different theshold for weightless movement. * Adjust WeightlessMovementThresholds. Put a thing I forgot to put in the doafterargs. * Make DoAfterArgs only use OnMove to determine whether to check for movement and MoveThreshold to determine the threshold regardless of weightlessness. Gave DistanceThreshold a default value which will always be checked now. * Fix issue introduced by merge. * Use interaction system for determining whether a distance is within range * Fix incorrect doafter args introduced by previous merge. Forgor to commit these. * Exorcise ghost. The execution system should have been deleted when I merged previously. For a reason I cannot comprehend it came back, but only the execution system. * Exorcise ghost Pt. 2 * Allow for movement check to be overriden in zero g and adjust doafter args where needed. You can now override checking for movement in zero g with the BreakOnWeightlessMove bool. By default it will check. The following doafters were made to ignore the movement check in zero g: - Healing yourself with healing items, - Removing embedded projectiles, - Using tools like welders and crowbars * Adjust distance for cuffing/uncuffing to work. Make injections not break on weightless movement. * Fix evil incorrect and uneeded comments
This commit is contained in:
@@ -95,11 +95,9 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.SelectSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
@@ -151,11 +149,9 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.ChangeSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
@@ -206,11 +202,8 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, user, component.RemoveSlotTime, doAfter, uid, target: target, used: uid)
|
||||
{
|
||||
DistanceThreshold = SharedInteractionSystem.InteractionRange,
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
@@ -263,11 +256,9 @@ public sealed class MagicMirrorSystem : EntitySystem
|
||||
|
||||
_doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, message.Session.AttachedEntity.Value, component.AddSlotTime, doAfter, uid, target: component.Target.Value, used: uid)
|
||||
{
|
||||
BreakOnTargetMove = true,
|
||||
BreakOnDamage = true,
|
||||
BreakOnMove = true,
|
||||
BreakOnHandChange = false,
|
||||
BreakOnUserMove = true,
|
||||
BreakOnWeightlessMove = false,
|
||||
NeedHand = true
|
||||
}, out var doAfterId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user