X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/balance2?a=blobdiff_plain;f=plomrogue%2Fthings.py;h=dfb536c27f8e6f9acb49b8e5ad2d60d16c66e27e;hb=70b12aa9c1fe6933cfc7e19775b67673d2e93768;hp=d1fc7110b8bba8ca32baeeb1105d69b4c43c880b;hpb=0747716a70ba46dbd6a8d7091b864e02b754f56f;p=plomrogue2 diff --git a/plomrogue/things.py b/plomrogue/things.py index d1fc711..dfb536c 100644 --- a/plomrogue/things.py +++ b/plomrogue/things.py @@ -35,8 +35,14 @@ class Thing(ThingBase): -class Thing_Stone(Thing): - symbol_hint = 'o' +class Thing_Item(Thing): + symbol_hint = 'i' + + + +class Thing_Furniture(Thing): + symbol_hint = 'h' + class ThingAnimate(Thing): @@ -88,14 +94,21 @@ class ThingAnimate(Thing): if self._fov: return self._fov fov_map_class = self.game.map_geometry.fov_map_class - self._fov = fov_map_class(self.game.map, self.position) + self._fov = fov_map_class(self.game.map, self.position, 12) return self._fov + def fov_test(self, yx): + test_position = self.fov_stencil.target_yx(yx) + if self.fov_stencil.inside(test_position): + if self.fov_stencil[test_position] == '.': + return True + return False + def fov_stencil_map(self, map): visible_terrain = '' - for i in range(self.fov_stencil.size_i): - if self.fov_stencil.terrain[i] == '.': - visible_terrain += map.terrain[i] + for yx in self.fov_stencil: + if self.fov_stencil[yx] == '.': + visible_terrain += map[self.fov_stencil.source_yx(yx)] else: visible_terrain += ' ' return visible_terrain @@ -107,4 +120,4 @@ class Thing_Player(ThingAnimate): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.nickname = 'undefined' + self.carrying = None