}
cmd_MAP.argtypes = 'string:map_geometry yx_tuple:pos string'
+def cmd_FOV(game, content):
+ game.fov = content
+cmd_FOV.argtypes = 'string'
+
def cmd_MAP_CONTROL(game, content):
game.map_control_content = content
cmd_MAP_CONTROL.argtypes = 'string'
self.register_command(cmd_GAME_ERROR)
self.register_command(cmd_PLAY_ERROR)
self.register_command(cmd_TASKS)
+ self.register_command(cmd_FOV)
self.map_content = ''
self.player_id = -1
self.info_db = {}
self.disconnected = True
self.force_instant_connect = True
self.input_lines = []
+ self.fov = ''
curses.wrapper(self.loop)
def flash(self):
if not self.game.turn_complete:
return
pos_i = self.explorer.y * self.game.map_geometry.size.x + self.explorer.x
- info = 'TERRAIN: %s\n' % self.game.map_content[pos_i]
- for t in self.game.things:
- if t.position == self.explorer:
- info += 'PLAYER @: %s\n' % t.name
- if self.explorer in self.game.portals:
- info += 'PORTAL: ' + self.game.portals[self.explorer] + '\n'
- else:
- info += 'PORTAL: (none)\n'
- if self.explorer in self.game.info_db:
- info += 'ANNOTATION: ' + self.game.info_db[self.explorer]
- else:
- info += 'ANNOTATION: waiting …'
+ info = 'outside field of view'
+ if self.game.fov[pos_i] == '.':
+ info = 'TERRAIN: %s\n' % self.game.map_content[pos_i]
+ for t in self.game.things:
+ if t.position == self.explorer:
+ info += 'PLAYER @: %s\n' % t.name
+ if self.explorer in self.game.portals:
+ info += 'PORTAL: ' + self.game.portals[self.explorer] + '\n'
+ else:
+ info += 'PORTAL: (none)\n'
+ if self.explorer in self.game.info_db:
+ info += 'ANNOTATION: ' + self.game.info_db[self.explorer]
+ else:
+ info += 'ANNOTATION: waiting …'
lines = msg_into_lines_of_width(info, self.window_width)
height_header = 2
for i in range(len(lines)):
self.input_ = ""
self.switch_mode('play')
elif self.mode == self.mode_chat and key == '\n':
- if self.input_[0] == '/':
+ if self.input_ == '':
+ continue
+ if self.input_[0] == '/': # FIXME fails on empty input
if self.input_ in {'/' + self.keys['switch_to_play'], '/play'}:
self.switch_mode('play')
elif self.input_ in {'/' + self.keys['switch_to_study'], '/study'}: