def transitions(self): coord = [self.location_level - game.WORLDMAP_WIDTH, self.location_level - 1, self.location_level + 1, self.location_level + game.WORLDMAP_WIDTH, self.location_level - game.WORLDMAP_WIDTH - 1, self.location_level - game.WORLDMAP_WIDTH + 1, self.location_level + game.WORLDMAP_WIDTH - 1, self.location_level + game.WORLDMAP_WIDTH + 1] for i in range(len(coord)): terrain = util.find_terrain_type(coord[i]) length = 5 aa = self.map_width if i in [1, 2]: aa = self.map_height if game.terrain[terrain]['elevation'] > game.terrain[util.find_terrain_type(self.location_level)]['maxelev']: if i < 4: for x in range(aa): for y in range(length): if i == 0: self.set_tile_values(game.terrain[terrain]['type'], x, y) if i == 1: self.set_tile_values(game.terrain[terrain]['type'], y, x) if i == 2: self.set_tile_values(game.terrain[terrain]['type'], self.map_width - y - 1, x) if i == 3: self.set_tile_values(game.terrain[terrain]['type'], x, self.map_height - y - 1) dice = util.roll_dice(1, 100) if dice < 50: length -= 1 else: length += 1 if length < 3: length = 3 if length > 7: length = 7 else: for x in range(aa, 5): for y in range(length): if i == 4: self.set_tile_values(game.terrain[terrain]['type'], x, y) if i == 5: self.set_tile_values(game.terrain[terrain]['type'], self.map_width - x - 1, y) if i == 6: self.set_tile_values(game.terrain[terrain]['type'], x, self.map_height - y - 1) if i == 7: self.set_tile_values(game.terrain[terrain]['type'], self.map_width - x - 1, self.map_height - y - 1) dice = util.roll_dice(1, 100) if dice < 50: length -= 1 else: length += 1 if length < 3: length = 3 if length > 7: length = 7
def new_game(self, chargeneration=True): global rnd, message, player, char, game_state, gametime, worldmap, current_map, savefiles cardinal = [-(WORLDMAP_WIDTH - 1), -(WORLDMAP_WIDTH), -(WORLDMAP_WIDTH + 1), -1, 1, WORLDMAP_WIDTH - 1, WORLDMAP_WIDTH, WORLDMAP_WIDTH + 1] rnd = libtcod.random_new() message = messages.Message() player = Player() char = mapgen.Object(libtcod.random_get_int(rnd, 40, 80), libtcod.random_get_int(rnd, 26, 46), player.icon, 'player', player.icon_color, blocks=True) if chargeneration: game_state = chargen.create_character() else: game_state = chargen.quick_start() if game_state == 'playing': contents = ['Generating world map...'] messages.box(None, None, 'center_screenx', 'center_screeny', len(max(contents, key=len)) + 16, len(contents) + 4, contents, input=False, align=libtcod.CENTER, nokeypress=True) gametime = Time() worldmap = worldgen.World() current_map = mapgen.Map('Wilderness', 'WD', 0, (worldmap.player_positiony * WORLDMAP_WIDTH) + worldmap.player_positionx, type=util.find_terrain_type((worldmap.player_positiony * WORLDMAP_WIDTH) + worldmap.player_positionx)) for i in range(len(border_maps)): border_maps[i] = mapgen.Map('Wilderness', 'WD', 0, (worldmap.player_positiony * WORLDMAP_WIDTH) + worldmap.player_positionx + cardinal[i], type=util.find_terrain_type((worldmap.player_positiony * WORLDMAP_WIDTH) + worldmap.player_positionx + cardinal[i])) IO.save_game(True) savefiles = [f for f in os.listdir('saves') if os.path.isfile(os.path.join('saves', f))] util.combine_maps() message.new('Welcome to Immortal, ' + player.name + '!', turns, libtcod.Color(96, 212, 238)) self.play_game()