home
·
contact
·
privacy
projects
/
plomrogue2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add door keys and door locking.
[plomrogue2]
/
plomrogue
/
things.py
diff --git
a/plomrogue/things.py
b/plomrogue/things.py
index 4cc3512cf82cc952f85e80ae9c35d00cd04538c5..3686ab0c2a2b78f41e024a5f9c8ef14958fc285d 100644
(file)
--- a/
plomrogue/things.py
+++ b/
plomrogue/things.py
@@
-127,8
+127,8
@@
class ThingSpawner(Thing):
def proceed(self):
for t in [t for t in self.game.things
if t != self and t.position == self.position]:
def proceed(self):
for t in [t for t in self.game.things
if t != self and t.position == self.position]:
- return
- self.game.add_thing(self.child_type, self.position)
+ return
None
+
return
self.game.add_thing(self.child_type, self.position)
@@
-164,16
+164,31
@@
class ThingInstallable(Thing):
class Thing_DoorSpawner(ThingSpawner):
child_type = 'Door'
class Thing_DoorSpawner(ThingSpawner):
child_type = 'Door'
+ def proceed(self):
+ door = super().proceed()
+ if door:
+ key = self.game.add_thing('DoorKey', self.position)
+ key.door = door
+
+
+
+class Thing_DoorKey(Thing):
+ portable = True
+ symbol_hint = 'k'
+
+
class Thing_Door(ThingInstallable):
symbol_hint = 'D'
blocks_movement = False
class Thing_Door(ThingInstallable):
symbol_hint = 'D'
blocks_movement = False
+ locked = False
def open(self):
self.blocks_movement = False
self.blocks_light = False
self.blocks_sound = False
def open(self):
self.blocks_movement = False
self.blocks_light = False
self.blocks_sound = False
+ self.locked = False
del self.thing_char
def close(self):
del self.thing_char
def close(self):
@@
-182,6
+197,10
@@
class Thing_Door(ThingInstallable):
self.blocks_sound = True
self.thing_char = '#'
self.blocks_sound = True
self.thing_char = '#'
+ def lock(self):
+ self.locked = True
+ self.thing_char = 'L'
+
class Thing_Psychedelic(Thing):
class Thing_Psychedelic(Thing):
@@
-433,7
+452,6
@@
class Thing_CookieSpawner(Thing):
class ThingAnimate(Thing):
class ThingAnimate(Thing):
- blocks_movement = True
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)