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