v0.2.4: corrected some mob AI faults.
This commit is contained in:
parent
794adb8e7a
commit
ce619510ea
|
@ -120,7 +120,7 @@ public class Bee extends Mob {
|
||||||
//find all mobs near the pot
|
//find all mobs near the pot
|
||||||
HashSet<Char> enemies = new HashSet<Char>();
|
HashSet<Char> enemies = new HashSet<Char>();
|
||||||
for (Mob mob : Dungeon.level.mobs)
|
for (Mob mob : Dungeon.level.mobs)
|
||||||
if (!(mob instanceof Bee) && Level.distance(mob.pos, potPos) <= 3 && mob.hostile)
|
if (!(mob instanceof Bee) && Level.distance(mob.pos, potPos) <= 3 && (mob.hostile || mob.ally))
|
||||||
enemies.add(mob);
|
enemies.add(mob);
|
||||||
|
|
||||||
//pick one, if there are none, check if the hero is near the pot, go for them, otherwise go for nothing.
|
//pick one, if there are none, check if the hero is near the pot, go for them, otherwise go for nothing.
|
||||||
|
|
|
@ -168,10 +168,12 @@ public abstract class Mob extends Char {
|
||||||
}
|
}
|
||||||
|
|
||||||
//resets target if: the target is dead, the target has been lost (wandering)
|
//resets target if: the target is dead, the target has been lost (wandering)
|
||||||
//or if the mob is amoked and targeting a friendly (will try to target something else)
|
//or if the mob is amoked and targeting the hero (will try to target something else)
|
||||||
|
//or if the mob is not amoked, and is targeting a hostile mob
|
||||||
if ( enemy != null &&
|
if ( enemy != null &&
|
||||||
!enemy.isAlive() || state == WANDERING ||
|
!enemy.isAlive() || state == WANDERING ||
|
||||||
(buff( Amok.class ) != null && (enemy == Dungeon.hero || (enemy instanceof Mob && ((Mob)enemy).ally))))
|
(buff( Amok.class ) != null && enemy == Dungeon.hero ) ||
|
||||||
|
(buff( Amok.class ) == null && enemy instanceof Mob && ((Mob) enemy).hostile ))
|
||||||
enemy = null;
|
enemy = null;
|
||||||
|
|
||||||
//if there is no current target, find a new one.
|
//if there is no current target, find a new one.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user