From eee4825aba66fcdfb24824c2c007614aa12f8bf9 Mon Sep 17 00:00:00 2001 From: NotEvil Date: Tue, 14 Apr 2026 16:07:41 +0200 Subject: [PATCH] feat(D-01/A): NPC speed reduction for V2 items (A12) - onEquipped: apply RestraintEffectUtils speed reduction for non-Player entities with ARMS region and legs bound. Full immobilization for WRAP/LATEX_SACK pose types. - onUnequipped: remove speed reduction for non-Player entities - Players use MovementStyleManager (V2 tick-based), not this legacy path --- .../datadriven/DataDrivenBondageItem.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/com/tiedup/remake/v2/bondage/datadriven/DataDrivenBondageItem.java b/src/main/java/com/tiedup/remake/v2/bondage/datadriven/DataDrivenBondageItem.java index 7dd6269..876002a 100644 --- a/src/main/java/com/tiedup/remake/v2/bondage/datadriven/DataDrivenBondageItem.java +++ b/src/main/java/com/tiedup/remake/v2/bondage/datadriven/DataDrivenBondageItem.java @@ -349,6 +349,17 @@ public class DataDrivenBondageItem extends AbstractV2BondageItem { if (holder != null) { holder.onEquipped(stack, entity); } + + // NPC speed reduction (players use MovementStyleManager, not this legacy path) + if (!(entity instanceof Player)) { + Set regions = getOccupiedRegions(stack); + if (regions.contains(BodyRegionV2.ARMS) && BindModeHelper.hasLegsBound(stack)) { + com.tiedup.remake.items.base.PoseType pose = com.tiedup.remake.v2.bondage.PoseTypeHelper.getPoseType(stack); + boolean fullImmobilization = pose == com.tiedup.remake.items.base.PoseType.WRAP + || pose == com.tiedup.remake.items.base.PoseType.LATEX_SACK; + com.tiedup.remake.util.RestraintEffectUtils.applyBindSpeedReduction(entity, fullImmobilization); + } + } } @Override @@ -357,6 +368,14 @@ public class DataDrivenBondageItem extends AbstractV2BondageItem { if (holder != null) { holder.onUnequipped(stack, entity); } + + // NPC speed cleanup + if (!(entity instanceof Player)) { + Set regions = getOccupiedRegions(stack); + if (regions.contains(BodyRegionV2.ARMS)) { + com.tiedup.remake.util.RestraintEffectUtils.removeBindSpeedReduction(entity); + } + } } @Override