From 537a30710aa0baed8f4ff9ec176099537adc0a73 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Tue, 18 Mar 2025 21:29:01 -0500 Subject: [PATCH] perpetual movement machine fixed --- src/engine/gameManager/CombatManager.java | 5 ++++- src/engine/objects/AbstractCharacter.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/engine/gameManager/CombatManager.java b/src/engine/gameManager/CombatManager.java index 66700ecd..7d554a18 100644 --- a/src/engine/gameManager/CombatManager.java +++ b/src/engine/gameManager/CombatManager.java @@ -432,7 +432,10 @@ public enum CombatManager { //Source can attack. //NOTE Don't 'return;' beyond this point until timer created - + if(abstractCharacter.getObjectType().equals(GameObjectType.PlayerCharacter)){ + PlayerCharacter pc = (PlayerCharacter)abstractCharacter; + pc.updateMovementState(); + } boolean attackFailure = (wb != null) && (wb.getRange() > 35f) && abstractCharacter.isMoving(); //Target can't attack on move with ranged weapons. diff --git a/src/engine/objects/AbstractCharacter.java b/src/engine/objects/AbstractCharacter.java index a44faf44..e7a1a4c9 100644 --- a/src/engine/objects/AbstractCharacter.java +++ b/src/engine/objects/AbstractCharacter.java @@ -24,6 +24,7 @@ import engine.jobs.TrackJob; import engine.math.AtomicFloat; import engine.math.Bounds; import engine.math.Vector3fImmutable; +import engine.mobileAI.utilities.CombatUtilities; import engine.net.ByteBufferWriter; import engine.net.DispatchMessage; import engine.net.client.msg.UpdateStateMsg; @@ -819,7 +820,8 @@ public abstract class AbstractCharacter extends AbstractWorldObject { //TODO who the fuck wrote changeHeightJob. FIX THIS. - if (this.endLoc.equals(Vector3fImmutable.ZERO) || this.endLoc.equals(this.bindLoc)) + float distance = this.loc.distance2D(this.endLoc); + if (this.endLoc.equals(Vector3fImmutable.ZERO) || this.endLoc.equals(this.bindLoc) || distance < 1) return false; if (this.takeOffTime != 0)