From 4e3424f2cb524fc18b79e19932fd1a24ad5a0301 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 30 Jan 2020 19:49:09 -0500 Subject: [PATCH] v0.8.0: bugfixes: - Hero FOV not being updated after they are pulled by golems - Necromancer skeletons counting towards mob spawn limits - New Tengu taking damage during phase 2 in rare cases - Keybindings window not accepting unbound keys. --- .../main/java/com/watabou/noosa/ui/Button.java | 2 +- .../actors/mobs/Golem.java | 1 + .../actors/mobs/Necromancer.java | 7 ++++++- .../actors/mobs/NewTengu.java | 17 +++++++++++++++-- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/ui/Button.java b/SPD-classes/src/main/java/com/watabou/noosa/ui/Button.java index cdbcaee2c..e7a4e21c9 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/ui/Button.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/ui/Button.java @@ -78,7 +78,7 @@ public class Button extends Component { private Signal.Listener keyListener; public GameAction keyAction(){ - return GameAction.NONE; + return null; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java index 0cdcd86af..fd4912059 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Golem.java @@ -139,6 +139,7 @@ public class Golem extends Mob { ScrollOfTeleportation.appear(enemy, bestPos); if (enemy instanceof Hero){ ((Hero) enemy).interrupt(); + Dungeon.observe(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java index a3f8c421c..80dd37fad 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Necromancer.java @@ -344,7 +344,12 @@ public class Necromancer extends Mob { //20/25 health to start HP = 20; } - + + @Override + public float spawningWeight() { + return 0; + } + private void teleportSpend(){ spend(TICK); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java index 6e22eafaa..9aeb18ea0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java @@ -113,9 +113,22 @@ public class NewTengu extends Mob { public int drRoll() { return Random.NormalIntRange(0, 5); } - + + //Tengu is immune to debuffs and damage when removed from the level + @Override + public void add(Buff buff) { + if (!Dungeon.level.mobs.contains(this)){ + return; + } + super.add(buff); + } + @Override public void damage(int dmg, Object src) { + if (!Dungeon.level.mobs.contains(this)){ + return; + } + NewPrisonBossLevel.State state = ((NewPrisonBossLevel)Dungeon.level).state(); int hpBracket = 20; @@ -171,7 +184,7 @@ public class NewTengu extends Mob { public boolean isAlive() { return HP > 0 || Dungeon.level.mobs.contains(this); //Tengu has special death rules, see prisonbosslevel.progress() } - + @Override public void die( Object cause ) {