+class TaskOnInventoryItem(Task):
+ argtypes = 'int:nonneg'
+
+ def _basic_inventory_item_check(self):
+ item = self.thing.game.get_thing(self.args[0], create_unfound=False)
+ if item is None:
+ raise GameError('no thing of ID %s' % self.args[0])
+ if item.id_ not in self.thing.inventory:
+ raise GameError('no thing of ID %s in inventory' % self.args[0])
+ return item
+
+ def _eliminate_from_inventory(self):
+ item = self.thing.game.get_thing(self.args[0], create_unfound=False)
+ del self.thing.inventory[self.thing.inventory.index(item.id_)]
+ item.in_inventory = False
+ return item
+
+
+
+class Task_DROP(TaskOnInventoryItem):