home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix broken map geometry commandeering.
[plomrogue2]
/
plomrogue
/
things.py
diff --git
a/plomrogue/things.py
b/plomrogue/things.py
index dfb536c27f8e6f9acb49b8e5ad2d60d16c66e27e..0f058f2af68822cf30650f667e5931a3e1f83562 100644
(file)
--- a/
plomrogue/things.py
+++ b/
plomrogue/things.py
@@
-6,7
+6,7
@@
from plomrogue.mapping import YX
class ThingBase:
type_ = '?'
class ThingBase:
type_ = '?'
- def __init__(self, game, id_=0, position=(YX(0,0))):
+ def __init__(self, game, id_=0, position=(YX(0,
0), YX(0,
0))):
self.game = game
if id_ == 0:
self.id_ = self.game.new_thing_id()
self.game = game
if id_ == 0:
self.id_ = self.game.new_thing_id()
@@
-81,8
+81,7
@@
class ThingAnimate(Thing):
self.task.check()
except GameError as e:
self.task = None
self.task.check()
except GameError as e:
self.task = None
- raise GameError
- return
+ raise e
self.task.todo -= 1
if self.task.todo <= 0:
self._last_task_result = self.task.do()
self.task.todo -= 1
if self.task.todo <= 0:
self._last_task_result = self.task.do()
@@
-94,21
+93,24
@@
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, 12)
+ self._fov = fov_map_class(self.game.maps, self.position, 12,
+ self.game.get_map)
return self._fov
return self._fov
- def fov_test(self, yx):
- test_position = self.fov_stencil.target_yx(yx)
+ def fov_test(self,
big_yx, little_
yx):
+ test_position = self.fov_stencil.target_yx(
big_yx, little_
yx)
if self.fov_stencil.inside(test_position):
if self.fov_stencil[test_position] == '.':
return True
return False
if self.fov_stencil.inside(test_position):
if self.fov_stencil[test_position] == '.':
return True
return False
- def fov_stencil_map(self, map):
+ def fov_stencil_map(self, map
_type='normal'
):
visible_terrain = ''
for yx in self.fov_stencil:
if self.fov_stencil[yx] == '.':
visible_terrain = ''
for yx in self.fov_stencil:
if self.fov_stencil[yx] == '.':
- visible_terrain += map[self.fov_stencil.source_yx(yx)]
+ big_yx, little_yx = self.fov_stencil.source_yxyx(yx)
+ map_ = self.game.get_map(big_yx, map_type)
+ visible_terrain += map_[little_yx]
else:
visible_terrain += ' '
return visible_terrain
else:
visible_terrain += ' '
return visible_terrain