v0.3.1a: cleaned up quickslot autotargeting:

- quickslots will now only autotarget enemies they can actually auto-aim for.
- cleaned up code for determining which items should use targeting
This commit is contained in:
Evan Debenham
2015-08-20 10:55:07 -04:00
parent b2494fe76e
commit 0416e7f167
10 changed files with 48 additions and 25 deletions
@@ -936,30 +936,32 @@ public class Hero extends Char {
}
private void checkVisibleMobs() {
ArrayList<Mob> visible = new ArrayList<Mob>();
ArrayList<Mob> visible = new ArrayList<>();
boolean newMob = false;
Mob closest = null;
Mob target = null;
for (Mob m : Dungeon.level.mobs) {
if (Level.fieldOfView[ m.pos ] && m.hostile) {
visible.add( m );
visible.add(m);
if (!visibleEnemies.contains( m )) {
newMob = true;
}
if (closest == null){
closest = m;
} else if (distance(closest) > distance(m)) {
closest = m;
if (QuickSlotButton.autoAim(m) != -1){
if (target == null){
target = m;
} else if (distance(target) > distance(m)) {
target = m;
}
}
}
}
if (closest != null && (QuickSlotButton.lastTarget == null ||
if (target != null && (QuickSlotButton.lastTarget == null ||
!QuickSlotButton.lastTarget.isAlive() ||
!Dungeon.visible[QuickSlotButton.lastTarget.pos])){
QuickSlotButton.target(closest);
QuickSlotButton.target(target);
}
if (newMob) {