v1.4.2: fixed cases where spinners would fail to shoot webs

This commit is contained in:
Evan Debenham
2022-10-27 13:33:52 -04:00
parent e4bb557911
commit 905ac23041
@@ -132,13 +132,15 @@ public class Spinner extends Mob {
} }
private boolean shotWebVisually = false; private boolean shotWebVisually = false;
private int visualWebPos = -1;
@Override @Override
public void move(int step, boolean travelling) { public void move(int step, boolean travelling) {
if (travelling && enemySeen && webCoolDown <= 0 && lastEnemyPos != -1){ if (travelling && enemySeen && webCoolDown <= 0 && lastEnemyPos != -1){
if (webPos() != -1){ if (webPos() != -1){
if (sprite != null && (sprite.visible || enemy.sprite.visible)) { if (sprite != null && (sprite.visible || enemy.sprite.visible)) {
sprite.zap( webPos() ); visualWebPos = webPos();
sprite.zap(visualWebPos);
shotWebVisually = true; shotWebVisually = true;
} else { } else {
shootWeb(); shootWeb();
@@ -150,6 +152,10 @@ public class Spinner extends Mob {
public int webPos(){ public int webPos(){
if (visualWebPos != -1){
return visualWebPos;
}
Char enemy = this.enemy; Char enemy = this.enemy;
if (enemy == null) return -1; if (enemy == null) return -1;
@@ -210,6 +216,7 @@ public class Spinner extends Mob {
if (Dungeon.level.heroFOV[enemy.pos]){ if (Dungeon.level.heroFOV[enemy.pos]){
Dungeon.hero.interrupt(); Dungeon.hero.interrupt();
} }
visualWebPos = -1;
} }
next(); next();
} }