- for t in [t for t in self.things
- if player.fov_stencil[t.position] == '.']:
- self.io.send('THING_POS %s %s' % (t.id_, t.position), c_id)
- if hasattr(t, 'nickname'):
- self.io.send('THING_NAME %s %s' % (t.id_,
- quote(t.nickname)), c_id)
- for yx in [yx for yx in self.portals
- if player.fov_stencil[yx] == '.']:
- self.io.send('PORTAL %s %s' % (yx, quote(self.portals[yx])), c_id)
+ for t in [t for t in self.things if player.fov_test(t.position)]:
+ target_yx = player.fov_stencil.target_yx(t.position)
+ self.io.send('THING %s %s %s' % (target_yx, t.type_, t.id_), c_id)
+ if hasattr(t, 'name'):
+ self.io.send('THING_NAME %s %s' % (t.id_, quote(t.name)), c_id)
+ if hasattr(t, 'player_char'):
+ self.io.send('THING_CHAR %s %s' % (t.id_,
+ quote(t.player_char)), c_id)
+ for yx in [yx for yx in self.portals if player.fov_test(yx)]:
+ self.io.send('PORTAL %s %s' % (player.fov_stencil.target_yx(yx),
+ quote(self.portals[yx])), c_id)