#!/usr/bin/env python from evennia import CmdSet from evennia.commands.default.general import CmdGive, NumberedTargetCommand from commands.command import Command class CmdFeed(Command, NumberedTargetCommand): """ Feed or give something to an object that can eat. Typically this is used to feed wood to a fire, or berries to a beast. """ key = "feed" rhs_split = ("=", " to ") def func(self): """ Implements the feed (or give) command. """ if not self.args: self.caller.msg("Feed what?") elif not self.rhs: target = self.caller.search(self.lhs) if target: target.feed(self.caller) else: self.caller.msg(f"Don't see a '{self.lhs}' to feed.") else: self.caller.msg(f"give {self.args}") self.caller.execute_cmd("give " + self.args) # # Pass this off to CmdGive? # supercmd = CmdGive() # supercmd.caller = self.caller # supercmd.args = self.args # supercmd.lhs = self.lhs # supercmd.rhs = self.rhs # supercmd.func() class CmdFeedSet(CmdSet): """ Things that can be fed. Like a pet. """ def at_cmdset_creation(self): self.add(CmdFeed)