@Override public void die(Object cause) { GameScene.bossSlain(); Dungeon.level.drop(new ArmorKit(), pos).sprite.drop(); if (Dungeon.gamemode == GameMode.REGULAR) { Dungeon.level.drop(new SkeletonKey(Dungeon.depth), pos).sprite.drop(); } else if (Dungeon.gamemode == GameMode.ARENA) { // Level up Dungeon.hero.earnExp(Dungeon.hero.maxExp()); ArenaShopKey key = new ArenaShopKey(); key.identify(); Dungeon.level.drop(key, pos).sprite.drop(); } super.die(cause); Badges.validateBossSlain(); LloydsBeacon beacon = Dungeon.hero.belongings.getItem(LloydsBeacon.class); if (beacon != null) { beacon.upgrade(); GLog.p("Your beacon grows stronger!"); } yell("You cannot kill me, " + Dungeon.hero.givenName() + "... I am... immortal..."); }
@Override public boolean act() { if (target instanceof Hero) { target.HP = Math.min(target.HP + 1, target.HT); ((Hero) target).restoreHealth = true; if (target.HP == target.HT) { GLog.p("You wake up feeling refreshed and healthy."); detach(); } } spend(STEP); return true; }