def POST_use_item(self, item_name, target): try: inventory.consume_item(c.user, item_name) except inventory.NoSuchItemError: abort(400) c.user.f2p = "participated" c.user._commit() item = items.get_item(item_name) if not item.is_target_valid(target): abort(400) item.on_use(c.user, target) return json.dumps(c.state_changes)
def on_use(self, user, target): target_items = [item_dict['kind'] for item_dict in inventory.get_inventory(target)] if target_items: to_steal = random.choice(target_items) inventory.consume_item(target, to_steal) inventory.add_to_inventory(user, to_steal) to_steal_title = g.f2pitems[to_steal]['title'] item_title = self.item['title'] subject = "you've been robbed!" msg = ('%s used %s to steal your %s' % (user.name, item_title, to_steal_title)) send_system_message(target, subject, msg) subject = "you stole an item" msg = ("you used %s to steal %s from %s" % (item_title, to_steal_title, target.name)) send_system_message(user, subject, msg) self.apply_damage_and_log(user, target, [target])
def on_use(self, user, target): target_items = [ item_dict['kind'] for item_dict in inventory.get_inventory(target) ] if target_items: to_steal = random.choice(target_items) inventory.consume_item(target, to_steal) inventory.add_to_inventory(user, to_steal) to_steal_title = g.f2pitems[to_steal]['title'] item_title = self.item['title'] subject = "you've been robbed!" msg = ('%s used %s to steal your %s' % (user.name, item_title, to_steal_title)) send_system_message(target, subject, msg) subject = "you stole an item" msg = ("you used %s to steal %s from %s" % (item_title, to_steal_title, target.name)) send_system_message(user, subject, msg) self.apply_damage_and_log(user, target, [target])