From db018069a14f0d6b5c3569e813665f82fcf43f01 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 19 Oct 2025 15:41:08 -0400 Subject: [PATCH] v3.3.0: force cubes now affect chars from far to close from thrower --- .../items/weapon/missiles/ForceCube.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ForceCube.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ForceCube.java index 83f638aa5..3e290368f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ForceCube.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/ForceCube.java @@ -35,6 +35,8 @@ import com.watabou.noosa.audio.Sample; import com.watabou.utils.PathFinder; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; public class ForceCube extends MissileWeapon { @@ -82,6 +84,14 @@ public class ForceCube extends MissileWeapon { if (!(Dungeon.level.traps.get(cell+i) instanceof TenguDartTrap)) Dungeon.level.pressCell(cell+i); if (Actor.findChar(cell + i) != null) targets.add(Actor.findChar(cell + i)); } + + //furthest to closest, mainly for elastic + Collections.sort(targets, new Comparator() { + @Override + public int compare(Char a, Char b) { + return Float.compare(Dungeon.level.trueDistance(b.pos, curUser.pos), Dungeon.level.trueDistance(a.pos, curUser.pos)); + } + }); for (Char target : targets){ curUser.shoot(target, this);