home
·
contact
·
privacy
projects
/
plomrogue2-experiments
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix reproducibility bug due to unstable iteration order.
[plomrogue2-experiments]
/
new
/
plomrogue
/
things.py
diff --git
a/new/plomrogue/things.py
b/new/plomrogue/things.py
index 386dbc4522071e059cb80b73647c80d289053ee3..9bc84907bb757fe0251b47ca7808f1d64cebe4a2 100644
(file)
--- a/
new/plomrogue/things.py
+++ b/
new/plomrogue/things.py
@@
-5,15
+5,23
@@
from plomrogue.errors import GameError
class ThingBase:
type_ = '?'
class ThingBase:
type_ = '?'
- def __init__(self, world, id_, position=[0,0]):
+ def __init__(self, world, id_
=None
, position=[0,0]):
self.world = world
self.world = world
- self.id_ = id_
self.position = position
self.position = position
+ if id_ is None:
+ self.id_ = self.world.new_thing_id()
+ else:
+ self.id_ = id_
class Thing(ThingBase):
blocking = False
class Thing(ThingBase):
blocking = False
+ in_inventory = False
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.inventory = []
def proceed(self):
pass
def proceed(self):
pass
@@
-55,7
+63,7
@@
class ThingAnimate(Thing):
neighbors = dijkstra_map.get_neighbors(tuple(self.position))
n = n_max
target_direction = None
neighbors = dijkstra_map.get_neighbors(tuple(self.position))
n = n_max
target_direction = None
- for direction in
neighbors
:
+ for direction in
sorted(neighbors.keys())
:
yx = neighbors[direction]
if yx is not None:
n_new = dijkstra_map[yx]
yx = neighbors[direction]
if yx is not None:
n_new = dijkstra_map[yx]
@@
-137,7
+145,7
@@
class ThingAnimate(Thing):
stencil = self.get_stencil()
visible_things = []
for thing in self.world.things:
stencil = self.get_stencil()
visible_things = []
for thing in self.world.things:
- if stencil[thing.position] == '.':
+ if
(not thing.in_inventory) and
stencil[thing.position] == '.':
visible_things += [thing]
return visible_things
visible_things += [thing]
return visible_things