private boolean actDescend(HeroAction.Descend action) { int stairs = action.dst; if (pos == stairs && pos == Dungeon.level.exit) { curAction = null; Hunger hunger = buff(Hunger.class); if (hunger != null && !hunger.isStarving()) { hunger.satisfy(-Hunger.STARVING / 10); } InterlevelScene.mode = InterlevelScene.Mode.DESCEND; Game.switchScene(InterlevelScene.class); return false; } else if (getCloser(stairs)) { return true; } else { ready(); return false; } }
private boolean actAscend(HeroAction.Ascend action) { int stairs = action.dst; if (pos == stairs && pos == Dungeon.level.entrance) { if (Dungeon.depth == 1) { if (belongings.getItem(Amulet.class) == null) { GameScene.show(new WndMessage(TXT_LEAVE)); ready(); } else { Dungeon.win(ResultDescriptions.WIN); Dungeon.deleteGame(Dungeon.hero.heroClass, true); Game.switchScene(SurfaceScene.class); } } else { curAction = null; Hunger hunger = buff(Hunger.class); if (hunger != null && !hunger.isStarving()) { hunger.satisfy(-Hunger.STARVING / 10); } InterlevelScene.mode = InterlevelScene.Mode.ASCEND; Game.switchScene(InterlevelScene.class); } return false; } else if (getCloser(stairs)) { return true; } else { ready(); return false; } }