X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=inline;f=plomrogue%2Fthings.py;h=a51b2b2b48083037b146cca377005ecf9994cb8b;hb=8b9e2703ed579b52dd514656599b8530c9b275cb;hp=a99460974f7dbc8f435f262b3caf8d14be5a9b79;hpb=3efcac66212325fecbbf28e3c19762821fb65d76;p=plomrogue2
diff --git a/plomrogue/things.py b/plomrogue/things.py
index a994609..a51b2b2 100644
--- a/plomrogue/things.py
+++ b/plomrogue/things.py
@@ -6,7 +6,7 @@ from plomrogue.mapping import YX
class ThingBase:
type_ = '?'
- def __init__(self, game, id_=0, position=(YX(0,0),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()
@@ -18,6 +18,8 @@ class ThingBase:
class Thing(ThingBase):
blocking = False
+ portable = False
+ protection = '.'
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -37,11 +39,38 @@ class Thing(ThingBase):
class Thing_Item(Thing):
symbol_hint = 'i'
+ portable = True
-class Thing_Furniture(Thing):
- symbol_hint = 'h'
+class ThingSpawner(Thing):
+ symbol_hint = 'S'
+
+ def proceed(self):
+ for t in [t for t in self.game.things
+ if t != self and t.position == self.position]:
+ return
+ t = self.game.thing_types[self.child_type](self.game,
+ position=self.position)
+ self.game.things += [t]
+ self.game.changed = True
+
+
+
+class Thing_ItemSpawner(ThingSpawner):
+ child_type = 'Item'
+
+
+
+class Thing_SpawnPointSpawner(ThingSpawner):
+ child_type = 'SpawnPoint'
+
+
+
+class Thing_SpawnPoint(Thing):
+ symbol_hint = 's'
+ portable = True
+ name = 'username'