From aa58cf804184f8f414cc6998e5bef3bf0b9eec60 Mon Sep 17 00:00:00 2001 From: Kam Date: Sat, 21 Feb 2026 04:41:14 -0500 Subject: [PATCH] Fix DBC Turbo Bounceback in Liquid and Lava --- .../data/ability/type/AbilityCharge.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/java/kamkeel/npcs/controllers/data/ability/type/AbilityCharge.java b/src/main/java/kamkeel/npcs/controllers/data/ability/type/AbilityCharge.java index bc2da7cae..4f7021705 100644 --- a/src/main/java/kamkeel/npcs/controllers/data/ability/type/AbilityCharge.java +++ b/src/main/java/kamkeel/npcs/controllers/data/ability/type/AbilityCharge.java @@ -66,26 +66,25 @@ public class AbilityCharge extends AbilityMovement implements IAbilityCharge { } /** - * Called on the first tick of windup - lock direction here so it matches telegraph. + * During windup, NPCs face toward their target for animation purposes. + * Players aim freely — the telegraph follows their look direction on the client, + * and direction is locked at the end of windup in onExecute(). */ @Override public void onWindUpTick(EntityLivingBase caster, EntityLivingBase target, int tick) { - if (tick == 1) { - lockDirection(caster, target); + if (!isPlayerCaster(caster) && target != null) { + lockDirectionToTarget(caster, target); + enforceLockedRotation(caster); } - enforceLockedRotation(caster); } @Override public void onExecute(EntityLivingBase caster, EntityLivingBase target) { + // Lock final direction at end of windup so it matches the telegraph + lockDirection(caster, target); initMovement(caster, maxRange, chargeSpeed); hitEntities.clear(); - // If direction wasn't set during windup (shouldn't happen), set it now - if (movementDirection == null) { - lockDirection(caster, target); - } - enforceLockedRotation(caster); }