X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/static/git-logo.png?a=blobdiff_plain;f=plomrogue%2Fthings.py;h=da5cf7771c5698c0ce5c487737dc1ea26902362c;hb=3795deac19be4816d54829ed2e728e78f57f86de;hp=ecddc8767483dd8599b43a373de5392127fc260e;hpb=6cc83951670f2022bd22cbf0728ebb4c25479c4d;p=plomrogue2 diff --git a/plomrogue/things.py b/plomrogue/things.py index ecddc87..da5cf77 100644 --- a/plomrogue/things.py +++ b/plomrogue/things.py @@ -17,6 +17,7 @@ class ThingBase: class Thing(ThingBase): + blocking = False def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -34,11 +35,18 @@ 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): + blocking = True def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -89,11 +97,19 @@ class ThingAnimate(Thing): self._fov = fov_map_class(self.game.map, self.position) return self._fov + def fov_test(self, yx): + test_position = yx - self.fov_stencil.offset + 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] == '.': + corrected_yx = yx + self.fov_stencil.offset + visible_terrain += map[corrected_yx] else: visible_terrain += ' ' return visible_terrain @@ -105,4 +121,4 @@ class Thing_Player(ThingAnimate): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.nickname = 'undefined' + self.carrying = None