X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new%2Fplomrogue%2Fthings.py;h=7789223b9c9e63abbb24874692ad63cbfc0c0a2c;hb=7cf9821ef5b430ac64d5c663ca67b2f1a887d8a4;hp=f300148a7ad5397c6a3b610d6cd818c1edeef477;hpb=8d7f49fd474eab519468f6ce0d7cf7dd4a69ec60;p=plomrogue2-experiments diff --git a/new/plomrogue/things.py b/new/plomrogue/things.py index f300148..7789223 100644 --- a/new/plomrogue/things.py +++ b/new/plomrogue/things.py @@ -110,6 +110,19 @@ class ThingAnimate(Thing): self.set_task('WAIT') self._last_task_result = None self.unset_surroundings() + self.close_maps = () + + def _position_set(self, pos): + """For player we need to update .close_maps on every move via the + self.surroundings property method, to keep their reality + bubble in sync with their movement. + + """ + super()._position_set(pos) + if self.id_ == self.game.player_id: + if not hasattr(self, '_surroundings'): + self._surroundings = None + self.surroundings def move_on_dijkstra_map(self, own_pos, targets): visible_map = self.get_visible_map() @@ -233,6 +246,7 @@ class ThingAnimate(Thing): if self is self.game.player: self.game.player_is_alive = False else: + # TODO: Handle inventory. del self.game.things[self.game.things.index(self)] return try: @@ -270,9 +284,12 @@ class ThingAnimate(Thing): def surroundings(self): if self._surroundings is not None: return self._surroundings - s = self.game.map_geometry.get_view(self.game.map_size, - self.game.get_map, - self._radius, self.view_offset) + s, close_maps = self.\ + game.map_geometry.get_view_and_seen_maps(self.game.map_size, + self.game.get_map, + self._radius, + self.view_offset) + self.close_maps = close_maps self._surroundings = s return self._surroundings