From 0d045f8620fe722af551e95653dd2c26b1ed6dd2 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 9 Mar 2025 20:04:37 -0400 Subject: [PATCH] v3.0.1: adjusted bees to target the closest enemy (like other mobs) --- .../shatteredpixeldungeon/actors/mobs/Bee.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java index ab67371ff..2f05a9dc3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bee.java @@ -32,8 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.BeeSprite; import com.watabou.utils.Bundle; import com.watabou.utils.Random; -import java.util.HashSet; - //FIXME the AI for these things is becoming a complete mess, should refactor public class Bee extends Mob { @@ -161,20 +159,22 @@ public class Bee extends Mob { || (alignment == Alignment.ALLY && enemy.alignment == Alignment.ALLY) || (buff( Amok.class ) == null && enemy.isInvulnerable(getClass()))){ - //find all mobs near the pot - HashSet enemies = new HashSet<>(); + //target closest potential enemy near the pot + Char closest = null; for (Mob mob : Dungeon.level.mobs) { if (!(mob == this) && Dungeon.level.distance(mob.pos, potPos) <= 3 && mob.alignment != Alignment.NEUTRAL && !mob.isInvulnerable(getClass()) && !(alignment == Alignment.ALLY && mob.alignment == Alignment.ALLY)) { - enemies.add(mob); + if (closest == null || Dungeon.level.distance(closest.pos, pos) > Dungeon.level.distance(mob.pos, pos)){ + closest = mob; + } } } - if (!enemies.isEmpty()){ - return Random.element(enemies); + if (closest != null){ + return closest; } else { if (alignment != Alignment.ALLY && Dungeon.level.distance(Dungeon.hero.pos, potPos) <= 3){ return Dungeon.hero;