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()
class Thing(ThingBase):
blocking = False
+ portable = False
+ protection = '.'
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
class Thing_Item(Thing):
symbol_hint = 'i'
+ portable = True
-class Thing_Furniture(Thing):
- symbol_hint = 'h'
+class Thing_ItemSpawner(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['Item'](self.game, position=self.position)
+ self.game.things += [t]
+ self.game.changed = True
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()