def showExplosion(self): """ Cause the explosion effect to appear onscreen. """ coords_in_explosion = coordinates.radius(1, self.coords, self.currentLevel.dimensions) for i in coords_in_explosion: self.currentLevel.addSolidEffect(i, self.EXPLOSION_GLYPH) kb.pause(self.currentLevel.messages) for i in coords_in_explosion: self.currentLevel.removeSolidEffect(i)
def main(win = None): mainMonsterFactory = fileio.getMonsterFactory( fileio.getFile("monsters.dat")) floor_defs = fileio.getFloorDefinitions( mainMonsterFactory, fileio.getFile("levels.dat")) try: save_data = fileio.restore_save("John Stenibeck.sav") except IOError: # No save; load from a random dungeon instead. player = pc.Player("John Stenibeck", (40, 40)) curlev = mapgen.nextLevel(floor_defs, 1, player) else: (player, floor) = save_data curlev = mapgen.nextLevel(floor_defs, floor, player) display.init() display.display_main_screen(curlev.getFOVArray(), curlev.getPlayer().coords, curlev.messages.getArray(), curlev.getPlayer().getSidebar().getArray()) while 1: try: curlev.next() except exc.LevelChange: new_floor = curlev.floor + 1 curlev.player.clearMemory() fileio.save_game(curlev.player, new_floor) curlev = mapgen.nextLevel(floor_defs, new_floor, player) curlev.player.clearMemory() curlev.messages.append("Welcome to the next floor!") curlev.player.levelUp() except exc.SavingLevelChange: saved_player = curlev.player new_floor = curlev.floor + 1 saved_player.levelUp() saved_player.clearMemory() saved_player.currentLevel = None fileio.save_game(saved_player, new_floor) return except exc.PlayerDeath: curlev.messages.say("You die.") kb.pause(curlev.messages) return