42 lines
1.1 KiB
Python
Executable file
42 lines
1.1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
from commands.command import Command
|
|
from evennia import CmdSet
|
|
from evennia.utils import logger
|
|
|
|
class CmdTake(Command):
|
|
"""
|
|
Steals an object from another.
|
|
Added to the default_cmdsets.
|
|
"""
|
|
key = "take"
|
|
aliases = ["remove"]
|
|
# only allow this command if command.obj is carried by caller.
|
|
# locks = "cmd:holds()"
|
|
|
|
def func(self):
|
|
"""
|
|
Implements the take command. Since this command is designed
|
|
to work on the object, we operate only on self.obj.
|
|
"""
|
|
# logger.log_info(f"Dealing with {self.caller.key}")
|
|
self.caller.do_take(self.args)
|
|
|
|
class CmdKnock(Command):
|
|
"""
|
|
The ability to knock on something, like a door.
|
|
|
|
While it would be great if it could be attached to a door or some
|
|
other exit, we need to attach this to the room.
|
|
|
|
"""
|
|
key = "knock"
|
|
|
|
def func(self):
|
|
logger.log_info(f"Seems like {self.caller.key} wants to knock on me.")
|
|
self.obj.do_knock(self.caller)
|
|
|
|
class CmdSetKnock(CmdSet):
|
|
def at_cmdset_creation(self):
|
|
self.add(CmdKnock)
|