home · contact · privacy
Only allow cookable items to be cooked into cookies.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 16 Dec 2020 21:45:07 +0000 (22:45 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 16 Dec 2020 21:45:07 +0000 (22:45 +0100)
plomrogue/tasks.py
plomrogue/things.py

index 94f79a3350e1335eede208608b15a8a3e7577190..9b53bbe86f98fdc0efe08cede71c0870fb3e3d17 100644 (file)
@@ -155,6 +155,12 @@ class Task_DROP(Task):
                       if t.type_ == 'BottleDeposit'
                       and t.position == target_position]:
                 raise PlayError('cannot drop full bottle into bottle deposit')
+        for t in [t for t in self.thing.game.things
+                  if t.type_ == 'CookieSpawner'
+                  and t.position == target_position]:
+            if not self.thing.carrying.cookable:
+                raise PlayError('cannot cook items of this type')
+            break
 
     def do(self):
         target_position = self._get_move_target()
index f8f13733ec2aef82ceab45c5dd27768c7b64eb46..6f8b79d5d1ce02e32cca57c4b950e884c7acf930 100644 (file)
@@ -26,6 +26,7 @@ class Thing(ThingBase):
     portable = False
     protection = '.'
     commandable = False
+    cookable = False
     carried = False
 
     def __init__(self, *args, **kwargs):
@@ -206,6 +207,7 @@ class Thing_Door(ThingInstallable):
 class Thing_Psychedelic(Thing):
     symbol_hint = 'P'
     portable = True
+    cookable = True
 
 
 
@@ -221,6 +223,7 @@ class Thing_Bottle(Thing):
     full = True
     thing_char = '~'
     spinnable = True
+    cookable = True
 
     def empty(self):
         self.thing_char = '_'
@@ -258,6 +261,7 @@ class Thing_Hat(Thing):
     portable = True
     design = ' +--+ ' + ' |  | ' + '======'
     spinnable = True
+    cookable = True
 
     def spin(self):
         new_design = ''
@@ -308,6 +312,7 @@ class Thing_MusicPlayer(Thing):
     next_song_start = datetime.datetime.now()
     playlist_index = -1
     playing = True
+    cookable = True
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)