X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=plomrogue%2Fthings.py;h=3686ab0c2a2b78f41e024a5f9c8ef14958fc285d;hb=5cd44408532e23648ddcd1d59004a9dae59694af;hp=98d056ac650508b239a284d84ee99cf40dc8b736;hpb=1101707a5518de54204fb2f856bdc540ae622991;p=plomrogue2
diff --git a/plomrogue/things.py b/plomrogue/things.py
index 98d056a..3686ab0 100644
--- 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]:
- 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'
+ 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
+ locked = 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):
@@ -182,6 +197,10 @@ class Thing_Door(ThingInstallable):
self.blocks_sound = True
self.thing_char = '#'
+ def lock(self):
+ self.locked = True
+ self.thing_char = 'L'
+
class Thing_Psychedelic(Thing):