X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=plomrogue%2Ftasks.py;h=fced65036f94fa122afd07b9d634a76931c6535a;hb=a87fff596af07090497fc16c429c4df739f0c3d9;hp=4f390d47c92a88fbb1782944f623b3c44012d846;hpb=a1dff58317110c212b5493e3d1432b06d5058e10;p=plomrogue2 diff --git a/plomrogue/tasks.py b/plomrogue/tasks.py index 4f390d4..fced650 100644 --- a/plomrogue/tasks.py +++ b/plomrogue/tasks.py @@ -42,11 +42,33 @@ class Task_MOVE(Task): raise PlayError('blocked by impassable tile') def do(self): + if self.thing.type_ == 'Player' and not self.thing.standing: + self.thing.standing = True + self.thing.send_msg('CHAT "You get up."') self.thing.game.record_change(self.thing.position, 'other') if self.thing.blocks_light: self.thing.game.record_change(self.thing.position, 'fov') self.thing.position = self._get_move_target() + for t in [t for t in self.thing.game.things + if t.type_ == 'Player' and not t == self.thing + and t.position == self.thing.position]: + self.thing.send_msg('CHAT %s' % + quote('You get awkwardly close to %s.' % t.name)) + for c_id in self.thing.game.sessions: + if self.thing.game.sessions[c_id]['thing_id'] == t.id_: + t.send_msg('CHAT %s' % + quote('%s gets awkwardly close to you.' % + self.thing.name)) + break self.thing.game.record_change(self.thing.position, 'other') + terrain = \ + self.thing.game.maps[self.thing.position[0]][self.thing.position[1]] + if terrain in self.thing.game.terrains: + terrain_type = self.thing.game.terrains[terrain] + if 'sittable' in terrain_type.tags: + self.thing.standing = False + self.thing.send_msg('CHAT "You sink into the %s."' + % terrain_type.description) self.thing.invalidate('fov') if self.thing.blocks_light: self.thing.game.record_change(self.thing.position, 'fov')