""" 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 evennia.contrib.grid import extended_room from evennia.contrib.game_systems.gendersub import SetGender from evennia.contrib.rpg.rpsystem import RPSystemCmdSet from evennia.contrib.rpg.character_creator.character_creator import ContribChargenCmdSet from commands.sittables import CmdNoSitStand from commands.everyone import (CmdTake, CmdThink, CmdWhisper, CmdRead, CmdEat, CmdDrink, CmdUse, CmdPush, CmdPull, CmdOpen, CmdClose, CmdFeed) from commands.say import CmdSay from commands.scoring import CmdScore from commands.hint import CmdHint from commands.misc import CmdLight from commands.wizards import (CmdGM, CmdSpell, CmdGMTrigger, CmdMakeCocktail, CmdGift) from typeclasses.tutorial import CmdTutorial 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() self.add(CmdTutorial) self.add(CmdHint) self.add(CmdNoSitStand) self.add(CmdEat) self.add(CmdDrink) self.add(CmdUse) self.add(CmdPush) self.add(CmdPull) self.add(CmdOpen) self.add(CmdClose) self.add(CmdLight) self.add(CmdTake) self.add(CmdThink) self.add(SetGender) self.add(RPSystemCmdSet) self.add(extended_room.ExtendedRoomCmdSet) self.add(CmdSay) self.add(CmdWhisper) self.add(CmdRead) self.add(CmdGM) self.add(CmdSpell) self.add(CmdGMTrigger) self.add(CmdMakeCocktail) self.add(CmdGift) self.add(CmdFeed) self.add(CmdScore) 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. # self.add(ContribChargenCmdSet) 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. # 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. #