dkmud/commands/default_cmdsets.py
Francesco Cappelli 5ef1b78c42 sistemati spells
2022-02-17 18:33:26 +01:00

141 lines
4 KiB
Python

"""
Command sets
All commands in the game must be grouped in a cmdset. A given command
can be part of any number of cmdsets and cmdsets can be added/removed
and merged onto entities at runtime.
To create new commands to populate the cmdset, see
`commands/command.py`.
This module wraps the default command sets of Evennia; overloads them
to add/remove commands from the default lineup. You can create your
own cmdsets by inheriting from them or directly from `evennia.CmdSet`.
"""
from evennia import default_cmds
from commands.command import CmdCharacter
from commands.command import CmdLook
from commands.command import CmdGet
from commands.command import CmdDrop
from commands.command import CmdLight
from commands.command import CmdTestPy
from commands.command import CmdSearch
from commands.command import CmdEquip
from commands.command import CmdInventory
from commands.command import CmdPut
from commands.command import CmdOpenCloseDoor
from commands.builder import CmdUpdateLightState
from commands.builder import CmdOpen
from commands.builder import CmdDescDoor
from commands.builder import CmdZone
from commands.builder import CmdAddToZone
from commands.builder import CmdPopen
from commands.unloggedin import CmdUnconnectedLook
from utils.crafting import CraftingCmdSet
from utils.spells import CastingCmdSet
class CharacterCmdSet(default_cmds.CharacterCmdSet):
"""
The `CharacterCmdSet` contains general in-game commands like `look`,
`get`, etc available on in-game Character objects. It is merged with
the `AccountCmdSet` when an Account puppets a Character.
"""
key = "DefaultCharacter"
def at_cmdset_creation(self):
"""
Populates the cmdset
"""
super().at_cmdset_creation()
#
# any commands you add below will overload the default ones.
#
self.add(CmdCharacter())
self.add(CmdLook())
self.add(CmdGet())
self.add(CmdDrop())
self.add(CmdTestPy())
self.add(CmdLight())
self.add(CmdSearch())
self.add(CmdEquip())
self.add(CmdInventory())
self.add(CmdPut())
self.add(CmdOpenCloseDoor())
self.add(CmdUpdateLightState())
self.add(CmdOpen())
self.add(CmdDescDoor())
self.add(CmdZone())
self.add(CmdAddToZone())
self.add(CmdPopen())
self.add(CraftingCmdSet())
self.add(CastingCmdSet())
class AccountCmdSet(default_cmds.AccountCmdSet):
"""
This is the cmdset available to the Account at all times. It is
combined with the `CharacterCmdSet` when the Account puppets a
Character. It holds game-account-specific commands, channel
commands, etc.
"""
key = "DefaultAccount"
def at_cmdset_creation(self):
"""
Populates the cmdset
"""
super().at_cmdset_creation()
#
# any commands you add below will overload the default ones.
#
class UnloggedinCmdSet(default_cmds.UnloggedinCmdSet):
"""
Command set available to the Session before being logged in. This
holds commands like creating a new account, logging in, etc.
"""
key = "DefaultUnloggedin"
def at_cmdset_creation(self):
"""
Populates the cmdset
"""
super().at_cmdset_creation()
#
# any commands you add below will overload the default ones.
#
self.add(CmdUnconnectedLook())
class SessionCmdSet(default_cmds.SessionCmdSet):
"""
This cmdset is made available on Session level once logged in. It
is empty by default.
"""
key = "DefaultSession"
def at_cmdset_creation(self):
"""
This is the only method defined in a cmdset, called during
its creation. It should populate the set with command instances.
As and example we just add the empty base `Command` object.
It prints some info.
"""
super().at_cmdset_creation()
#
# any commands you add below will overload the default ones.
#