diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 87e1bcd30..f51aacf78 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -1149,6 +1149,14 @@ public class Hero extends Char { @Override public void call() { + boolean crystalAdjacent = false; + for (int i : PathFinder.NEIGHBOURS8) { + if (Dungeon.level.map[action.dst + i] == Terrain.MINE_CRYSTAL){ + crystalAdjacent = true; + break; + } + } + if (Dungeon.level.map[action.dst] == Terrain.WALL_DECO){ DarkGold gold = new DarkGold(); if (gold.doPickUp( Dungeon.hero )) { @@ -1160,6 +1168,7 @@ public class Hero extends Char { GLog.i(Messages.get(DarkGold.class, "you_now_have", existing.quantity())); } } + spend(-Actor.TICK); //picking up the gold doesn't spend a turn here } else { Dungeon.level.drop( gold, pos ).sprite.drop(); } @@ -1168,6 +1177,9 @@ public class Hero extends Char { Sample.INSTANCE.play( Assets.Sounds.EVOKE ); Level.set( action.dst, Terrain.EMPTY_DECO ); + //mining gold doesn't break crystals + crystalAdjacent = false; + } else if (Dungeon.level.map[action.dst] == Terrain.WALL){ buff(Hunger.class).affectHunger(-5); PixelScene.shake(0.5f, 0.5f); @@ -1194,14 +1206,6 @@ public class Hero extends Char { GameScene.updateMap( action.dst+i ); } - boolean crystalAdjacent = false; - for (int i : PathFinder.NEIGHBOURS8) { - if (Dungeon.level.map[action.dst + i] == Terrain.MINE_CRYSTAL){ - crystalAdjacent = true; - break; - } - } - if (crystalAdjacent){ sprite.parent.add(new Delayer(0.2f){ @Override