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:
@@ -69,7 +69,7 @@ public sealed partial class ReformSystem : EntitySystem
|
||||
// Create a doafter & start it
|
||||
var doAfter = new DoAfterArgs(EntityManager, uid, comp.ReformTime, new ReformDoAfterEvent(), uid)
|
||||
{
|
||||
BreakOnUserMove = true,
|
||||
BreakOnMove = true,
|
||||
BlockDuplicate = true,
|
||||
BreakOnDamage = true,
|
||||
CancelDuplicate = true,
|
||||
@@ -89,7 +89,7 @@ public sealed partial class ReformSystem : EntitySystem
|
||||
return;
|
||||
|
||||
// Spawn a new entity
|
||||
// This is, to an extent, taken from polymorph. I don't use polymorph for various reasons- most notably that this is permanent.
|
||||
// This is, to an extent, taken from polymorph. I don't use polymorph for various reasons- most notably that this is permanent.
|
||||
var child = Spawn(comp.ReformPrototype, Transform(uid).Coordinates);
|
||||
|
||||
// This transfers the mind to the new entity
|
||||
@@ -105,7 +105,7 @@ public sealed partial class ReformSystem : EntitySystem
|
||||
_actionsSystem.RemoveAction(uid, comp.ActionEntity); // Zombies can't reform
|
||||
}
|
||||
|
||||
public sealed partial class ReformEvent : InstantActionEvent { }
|
||||
public sealed partial class ReformEvent : InstantActionEvent { }
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
public sealed partial class ReformDoAfterEvent : SimpleDoAfterEvent { }
|
||||
|
||||
Reference in New Issue
Block a user