Exemple #1
0
	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
Exemple #2
0
	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()