diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index bad5b1a8cc..aad46669c8 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1813,6 +1813,7 @@ unitlocate.group = Building group to look for. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. +lenum.unbind = Completely disable logic control.\nResume standard AI. lenum.move = Move to exact position. lenum.approach = Approach a position with a radius. lenum.pathfind = Pathfind to the enemy spawn. diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 9a4e1f4083..65e68cea42 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -383,6 +383,10 @@ public class LExecutor{ unit.clearBuilding(); } } + case unbind -> { + //TODO is this a good idea? will allocate + unit.resetController(); + } case within -> { exec.setnum(p4, unit.within(x1, y1, d1) ? 1 : 0); } diff --git a/core/src/mindustry/logic/LUnitControl.java b/core/src/mindustry/logic/LUnitControl.java index 4647c28e00..26dee47d48 100644 --- a/core/src/mindustry/logic/LUnitControl.java +++ b/core/src/mindustry/logic/LUnitControl.java @@ -6,7 +6,7 @@ public enum LUnitControl{ move("x", "y"), approach("x", "y", "radius"), boost("enable"), - pathfind(), + pathfind, target("x", "y", "shoot"), targetp("unit", "shoot"), itemDrop("to", "amount"), @@ -18,7 +18,8 @@ public enum LUnitControl{ flag("value"), build("x", "y", "block", "rotation", "config"), getBlock("x", "y", "type", "building"), - within("x", "y", "radius", "result"); + within("x", "y", "radius", "result"), + unbind; public final String[] params; public static final LUnitControl[] all = values();