game.world.rand.prngod_seed = seed
cmd_SEED.argtypes = 'int:nonneg'
-def cmd_MAP(game, map_pos, size):
- """Create new map of size at position map_pos, and only '?' cells."""
- game.world.new_map(map_pos, size)
-cmd_MAP.argtypes = 'yx_tuple yx_tuple:pos'
+def cmd_MAP_SIZE(game, size):
+ game.world.map_size = size
+cmd_MAP_SIZE.argtypes = 'yx_tuple:pos'
+
+def cmd_MAP(game, map_pos):
+ """Create new map at position map_pos and only of '?' cells."""
+ game.world.new_map(map_pos)
+cmd_MAP.argtypes = 'yx_tuple'
def cmd_THING_TYPE(game, i, type_):
t_old = game.world.get_thing(i)
with open(save_file_name, 'w') as f:
write(f, 'TURN %s' % game.world.turn)
write(f, 'SEED %s' % game.world.rand.prngod_seed)
+ write(f, 'MAP_SIZE ' + stringify_yx(game.world.map_size))
for map_pos in game.world.maps:
- write(f, 'MAP ' + stringify_yx(map_pos) + ' ' +
- stringify_yx(game.world.maps[(0,0)].size))
+ write(f, 'MAP ' + stringify_yx(map_pos))
for map_pos in game.world.maps:
for y, line in game.world.maps[map_pos].lines():
write(f, 'TERRAIN_LINE %s %5s %s' % (stringify_yx(map_pos),
cmd_MAP, cmd_MAP, cmd_THING_TYPE,
cmd_THING_POS, cmd_THING_INVENTORY,
cmd_THING_HEALTH, cmd_SEED,
- cmd_GET_PICKABLE_ITEMS,
+ cmd_GET_PICKABLE_ITEMS, cmd_MAP_SIZE,
cmd_TERRAIN_LINE, cmd_PLAYER_ID,
cmd_TURN, cmd_SWITCH_PLAYER, cmd_SAVE)
from plomrogue.mapping import MapHex
self.player_id = 0
self.player_is_alive = True
self.maps = {}
+ self.map_size = (1,1)
self.rand = PRNGod(0)
@property
return 0
return self.things[-1].id_ + 1
- def new_map(self, map_pos, size):
- self.maps[map_pos] = self.game.map_type(size)
+ def new_map(self, map_pos):
+ self.maps[map_pos] = self.game.map_type(self.map_size)
def proceed_to_next_player_turn(self):
"""Run game world turns until player can decide their next step.
self.rand.seed(seed)
self.turn = 0
self.maps = {}
- self.new_map((0,0), yx)
- self.new_map((0,1), yx)
- self.new_map((1,1), yx)
- self.new_map((1,0), yx)
- self.new_map((1,-1), yx)
- self.new_map((0,-1), yx)
- self.new_map((-1,-1), yx)
- self.new_map((-1,0), yx)
- self.new_map((-1,1), yx)
+ self.map_size = yx
+ self.new_map((0,0))
+ self.new_map((0,1))
+ self.new_map((1,1))
+ self.new_map((1,0))
+ self.new_map((1,-1))
+ self.new_map((0,-1))
+ self.new_map((-1,-1))
+ self.new_map((-1,0))
+ self.new_map((-1,1))
for map_pos in self.maps:
map_ = self.maps[map_pos]
if (0,0) == map_pos:
self.commands = {'GEN_WORLD': cmd_GEN_WORLD,
'GET_GAMESTATE': cmd_GET_GAMESTATE,
'SEED': cmd_SEED,
+ 'MAP_SIZE': cmd_MAP_SIZE,
'MAP': cmd_MAP,
'THING_TYPE': cmd_THING_TYPE,
'THING_POS': cmd_THING_POS,
self.io.send('TURN ' + str(self.world.turn))
visible_map = self.world.player.get_visible_map()
offset = self.world.player.get_surroundings_offset()
- self.io.send('VISIBLE_MAP ' + stringify_yx(offset) + ' ' + stringify_yx(visible_map.size))
+ self.io.send('VISIBLE_MAP ' + stringify_yx(offset) + ' '
+ + stringify_yx(visible_map.size))
for y, line in visible_map.lines():
self.io.send('VISIBLE_MAP_LINE %5s %s' % (y, quote(line)))
visible_things = self.world.player.get_visible_things()
self._surrounding_map = self.world.game.\
map_type(size=(self._radius*2+1+int(add_line),
self._radius*2+1))
- size = self.world.maps[(0,0)].size
+ size = self.world.map_size
offset = self.get_surroundings_offset()
for pos in self._surrounding_map:
big_y, small_y = pan_and_scan(size[0], pos[0], offset[0])
stencil = self.get_stencil()
offset = self.get_surroundings_offset()
visible_things = []
- size = self.world.maps[(0,0)].size
+ size = self.world.map_size
fov_size = self.get_surrounding_map().size
for thing in self.world.things:
big_pos = thing.position[0]