Esempio n. 1
0
    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)
Esempio n. 2
0
File: main.py Progetto: nrook/Spirit
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