home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Shrink sound Dijkstra map, reach; refactor lots of mapping code.
[plomrogue2]
/
plomrogue
/
things.py
diff --git
a/plomrogue/things.py
b/plomrogue/things.py
index b6fe5e15e5e919483962b87f63fdfa4a99a380e5..dfb536c27f8e6f9acb49b8e5ad2d60d16c66e27e 100644
(file)
--- 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):
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
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
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 = ''
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
else:
visible_terrain += ' '
return visible_terrain
@@
-107,5
+120,4
@@
class Thing_Player(ThingAnimate):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.nickname = 'undefined'
self.carrying = None
self.carrying = None