From b7984f37013a3055bfca7a255da9af18b3b6fb60 Mon Sep 17 00:00:00 2001 From: Evennia docbuilder action Date: Sat, 30 Mar 2024 08:51:22 +0000 Subject: [PATCH] Updated HTML docs. --- docs/latest/.buildinfo | 2 +- .../Part3/Beginner-Tutorial-Quests.html | 11 +- .../contrib/tutorials/evadventure/enums.html | 12 ++ .../contrib/tutorials/evadventure/quests.html | 179 ++++++++++++++---- .../evadventure/tests/test_quests.html | 2 +- .../Part3/Beginner-Tutorial-Quests.md.txt | 10 +- .../api/evennia.commands.default.account.html | 4 +- .../api/evennia.commands.default.admin.html | 4 +- ...evennia.commands.default.batchprocess.html | 4 +- .../evennia.commands.default.building.html | 8 +- .../api/evennia.commands.default.comms.html | 8 +- .../api/evennia.commands.default.general.html | 4 +- .../api/evennia.commands.default.system.html | 4 +- .../api/evennia.commands.default.tests.html | 2 +- .../evennia.commands.default.unloggedin.html | 8 +- ....base_systems.email_login.email_login.html | 8 +- ...b.base_systems.ingame_python.commands.html | 4 +- ...systems.mux_comms_cmds.mux_comms_cmds.html | 4 +- ...rib.full_systems.evscaperoom.commands.html | 24 +-- ...ia.contrib.game_systems.barter.barter.html | 4 +- ...trib.grid.extended_room.extended_room.html | 4 +- ...evennia.contrib.grid.xyzgrid.commands.html | 4 +- ...utorials.evadventure.combat_turnbased.html | 4 +- ...b.tutorials.evadventure.combat_twitch.html | 8 +- ...ontrib.tutorials.evadventure.commands.html | 4 +- ...a.contrib.tutorials.evadventure.enums.html | 27 +++ ....contrib.tutorials.evadventure.quests.html | 126 +++++++++++- ...ntrib.tutorials.red_button.red_button.html | 16 +- ...trib.tutorials.tutorial_world.objects.html | 12 +- ...ontrib.tutorials.tutorial_world.rooms.html | 8 +- ...utils.git_integration.git_integration.html | 4 +- docs/latest/api/evennia.utils.eveditor.html | 4 +- docs/latest/api/evennia.utils.evmenu.html | 4 +- docs/latest/api/evennia.utils.evmore.html | 4 +- docs/latest/genindex.html | 50 ++++- docs/latest/objects.inv | Bin 168398 -> 168538 bytes docs/latest/searchindex.js | 2 +- 37 files changed, 444 insertions(+), 143 deletions(-) diff --git a/docs/latest/.buildinfo b/docs/latest/.buildinfo index 15d5f9a01a..fa27f451a8 100644 --- a/docs/latest/.buildinfo +++ b/docs/latest/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: b7b590ff725db4dd9471b87551a5f0f7 +config: 3a00a65fe803d1a081be3ad1938e7b29 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/latest/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.html b/docs/latest/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.html index 95ba4f4e10..f94b154df1 100644 --- a/docs/latest/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.html +++ b/docs/latest/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.html @@ -114,10 +114,13 @@

14. Game Quests

-
-

Warning

-

This part of the Beginner tutorial is still being developed.

-
+

A quest is a common feature of games. From classic fetch-quests like retrieving 10 flowers to complex quest chains involving drama and intrigue, quests need to be properly tracked in our game.

+

A quest follows a specific development:

+
    +
  1. The quest is started. This normally involves the player accepting the quest, from a quest-giver, job board or other source. But the quest could also be thrust on the player (“save the family from the burning house before it collapses!”)

  2. +
  3. A quest may consist of one or more ‘steps’. Each step has its own set of finish conditions.

  4. +
  5. At suitable times the quest is checked. This could happen on a timer or when trying to ‘hand in’ the quest. When checking, the current ‘step’ is checked against its finish conditions. If ok, that step is closed and the next step is checked until it either hits a step that is not yet complete, or there are no more steps, in which case the entire quest is complete.

  6. +
diff --git a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/enums.html b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/enums.html index c924626b2c..46b631962d 100644 --- a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/enums.html +++ b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/enums.html @@ -176,6 +176,18 @@ MAGIC = "magic" QUEST = "quest" TREASURE = "treasure" + + +
[docs]class QuestStatus(Enum): + """ + Quest status + + """ + + STARTED = "started" + COMPLETED = "completed" + ABANDONED = "abandoned" + FAILED = "failed"
diff --git a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/quests.html b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/quests.html index 9c8b003119..f01107d239 100644 --- a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/quests.html +++ b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/quests.html @@ -106,9 +106,7 @@ """ -from copy import copy, deepcopy - -from evennia.utils import dbserialize +from .enums import QuestStatus
[docs]class EvAdventureQuest: @@ -132,11 +130,11 @@ start_step = "A" - help_A = "You need a '_quest_A_flag' on yourself to finish this step!" + help_A = "You need a 'A_flag' attribute on yourself to finish this step!" help_B = "Finally, you need more than 4 items in your inventory!" def step_A(self, *args, **kwargs): - if self.quester.db._quest_A_flag == True: + if self.get_data("A_flag") == True: self.quester.msg("Completed the first step of the quest.") self.current_step = "end" self.progress() @@ -159,21 +157,16 @@ help_start = "You need to start first" help_end = "You need to end the quest" -
[docs] def __init__(self, quester, start_step=None): +
[docs] def __init__(self, quester, data=None): if " " in self.key: raise TypeError("The Quest name must not have spaces in it.") self.quester = quester - self._current_step = start_step or self.start_step - self.is_completed = False - self.is_abandoned = False
+ self.data = data or dict() + self._current_step = self.get_data("current_step") - def __serialize_dbobjs__(self): - self.quester = dbserialize.dbserialize(self.quester) - - def __deserialize_dbobjs__(self): - if isinstance(self.quester, bytes): - self.quester = dbserialize.dbunserialize(self.quester) + if not self.current_step: + self.current_step = self.start_step
@property def questhandler(self): @@ -186,14 +179,73 @@ @current_step.setter def current_step(self, step_name): self._current_step = step_name + self.add_data("current_step", step_name) self.questhandler.do_save = True + @property + def status(self): + return self.get_data("status", QuestStatus.STARTED) + + @status.setter + def status(self, value): + self.add_data("status", value) + + @property + def is_completed(self): + return self.status == QuestStatus.COMPLETED + + @property + def is_abandoned(self): + return self.status == QuestStatus.ABANDONED + + @property + def is_failed(self): + return self.status == QuestStatus.FAILED + +
[docs] def add_data(self, key, value): + """ + Add data to the quest. This saves it permanently. + + Args: + key (str): The key to store the data under. + value (any): The data to store. + + """ + self.data[key] = value + self.questhandler.save_quest_data(self.key, self.data)
+ +
[docs] def remove_data(self, key): + """ + Remove data from the quest permanently. + + Args: + key (str): The key to remove. + + """ + self.data.pop(key, None) + self.questhandler.save_quest_data(self.key, self.data)
+ +
[docs] def get_data(self, key, default=None): + """ + Get data from the quest. + + Args: + key (str): The key to get data for. + default (any, optional): The default value to return if key is not found. + + Returns: + any: The data stored under the key. + + """ + return self.data.get(key, default)
+
[docs] def abandon(self): """ Call when quest is abandoned. """ - self.is_abandoned = True + self.add_data("status", QuestStatus.ABANDONED) + self.questhandler.clean_quest_data(self.key) self.cleanup()
[docs] def complete(self): @@ -201,7 +253,8 @@ Call this to end the quest. """ - self.is_completed = True + self.add_data("status", QuestStatus.COMPLETED) + self.questhandler.clean_quest_data(self.key) self.cleanup()
[docs] def progress(self, *args, **kwargs): @@ -214,8 +267,7 @@ *args, **kwargs: Will be passed into the step method. """ - if not (self.is_completed or self.is_abandoned): - getattr(self, f"step_{self.current_step}")(*args, **kwargs)
+ return getattr(self, f"step_{self.current_step}")(*args, **kwargs)
[docs] def help(self): """ @@ -254,8 +306,9 @@
[docs] def cleanup(self): """ This is called both when completing the quest, or when it is abandoned prematurely. - Make sure to cleanup any quest-related data stored when following the quest. + This is for cleaning up any extra state that were set during the quest (stuff in self.data + is automatically cleaned up) """ pass
@@ -277,27 +330,84 @@ quest_storage_attribute_key = "_quests" quest_storage_attribute_category = "evadventure" + quest_data_attribute_template = "_quest_data_{quest_key}" + quest_data_attribute_category = "evadventure" +
[docs] def __init__(self, obj): self.obj = obj self.do_save = False + self.quests = {} + self.quest_classes = {} self._load()
def _load(self): - self.storage = self.obj.attributes.get( + self.quest_classes = self.obj.attributes.get( self.quest_storage_attribute_key, category=self.quest_storage_attribute_category, default={}, ) + # instantiate all quests + for quest_key, quest_class in self.quest_classes.items(): + self.quests[quest_key] = quest_class(self.obj, self.load_quest_data(quest_key)) def _save(self): self.obj.attributes.add( self.quest_storage_attribute_key, - self.storage, + self.quest_classes, category=self.quest_storage_attribute_category, ) self._load() # important self.do_save = False +
[docs] def save_quest_data(self, quest_key, data): + """ + Save data for a quest. We store this on the quester as well as updating the quest itself. + + Args: + data (dict): The data to store. This is commonly flags or other data needed to track the + quest. + + """ + quest = self.get(quest_key) + if quest: + quest.data = data + self.obj.attributes.add( + self.quest_data_attribute_template.format(quest_key=quest_key), + data, + category=self.quest_data_attribute_category, + )
+ +
[docs] def load_quest_data(self, quest_key): + """ + Load data for a quest. + + Args: + quest_key (str): The quest to load data for. + + Returns: + dict: The data stored for the quest. + + """ + return self.obj.attributes.get( + self.quest_data_attribute_template.format(quest_key=quest_key), + category=self.quest_data_attribute_category, + default={}, + )
+ +
[docs] def clean_quest_data(self, quest_key): + """ + Remove data for a quest. + + Args: + quest_key (str): The quest to remove data for. + + """ + self.obj.attributes.remove( + self.quest_data_attribute_template.format(quest_key=quest_key), + category=self.quest_data_attribute_category, + )
+ +
[docs] def has(self, quest_key): """ Check if a given quest is registered with the Character. @@ -310,7 +420,7 @@ bool: If the character is following this quest or not. """ - return bool(self.storage.get(quest_key))
+ return bool(self.quests.get(quest_key))
[docs] def get(self, quest_key): """ @@ -324,17 +434,17 @@ Character is not on this quest. """ - return self.storage.get(quest_key)
+ return self.quests.get(quest_key) -
[docs] def add(self, quest): +
[docs] def add(self, quest_class): """ Add a new quest Args: - quest (EvAdventureQuest): The quest class to start. + quest_class (EvAdventureQuest): The quest class to start. """ - self.storage[quest.key] = quest(self.obj) + self.quest_classes[quest_class.key] = quest_class self._save()
[docs] def remove(self, quest_key): @@ -345,10 +455,11 @@ quest_key (str): The quest to remove. """ - quest = self.storage.pop(quest_key, None) + quest = self.quests.pop(quest_key, None) if not quest.is_completed: # make sure to cleanup quest.abandon() + self.quest_classes.pop(quest_key, None) self._save()
[docs] def get_help(self, quest_key=None): @@ -366,10 +477,10 @@ """ help_texts = [] - if quest_key in self.storage: - quests = [self.storage[quest_key]] + if quest_key in self.quests: + quests = [self.quests[quest_key]] else: - quests = self.storage.values() + quests = self.quests.values() for quest in quests: help_texts.append(f"|c{quest.key}|n\n {quest.desc}\n\n - {quest.help()}") @@ -385,10 +496,10 @@ *args, **kwargs: Will be passed into each quest's `progress` call. """ - if quest_key in self.storage: - quests = [self.storage[quest_key]] + if quest_key in self.quests: + quests = [self.quests[quest_key]] else: - quests = self.storage.values() + quests = self.quests.values() for quest in quests: quest.progress(*args, **kwargs) diff --git a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/tests/test_quests.html b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/tests/test_quests.html index f92b97e8bc..ac62ba952d 100644 --- a/docs/latest/_modules/evennia/contrib/tutorials/evadventure/tests/test_quests.html +++ b/docs/latest/_modules/evennia/contrib/tutorials/evadventure/tests/test_quests.html @@ -200,7 +200,7 @@ self.assertEqual(help_txt, ["|ctestquest|n\n A test quest!\n\n - You need to do A first."]) # help for finished quest - self._get_quest().is_completed = True + self._get_quest().complete() help_txt = self.character.quests.get_help() self.assertEqual(help_txt, ["|ctestquest|n\n A test quest!\n\n - This quest is completed!"])
diff --git a/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt b/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt index e74f1578ee..2398ff20fe 100644 --- a/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt +++ b/docs/latest/_sources/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Quests.md.txt @@ -1,5 +1,9 @@ # Game Quests -```{warning} -This part of the Beginner tutorial is still being developed. -``` \ No newline at end of file +A _quest_ is a common feature of games. From classic fetch-quests like retrieving 10 flowers to complex quest chains involving drama and intrigue, quests need to be properly tracked in our game. + +A quest follows a specific development: + +1. The quest is _started_. This normally involves the player accepting the quest, from a quest-giver, job board or other source. But the quest could also be thrust on the player ("save the family from the burning house before it collapses!") +2. A quest may consist of one or more 'steps'. Each step has its own set of finish conditions. +3. At suitable times the quest is _checked_. This could happen on a timer or when trying to 'hand in' the quest. When checking, the current 'step' is checked against its finish conditions. If ok, that step is closed and the next step is checked until it either hits a step that is not yet complete, or there are no more steps, in which case the entire quest is complete. \ No newline at end of file diff --git a/docs/latest/api/evennia.commands.default.account.html b/docs/latest/api/evennia.commands.default.account.html index 7ee8590fa2..b10f1138b3 100644 --- a/docs/latest/api/evennia.commands.default.account.html +++ b/docs/latest/api/evennia.commands.default.account.html @@ -147,7 +147,7 @@ method. Otherwise all text will be returned to all connected sessions.

-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -178,7 +178,7 @@ method. Otherwise all text will be returned to all connected sessions.

-search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look while out-of-character\n\n Usage:\n look\n\n Look in the ooc state.\n '}
diff --git a/docs/latest/api/evennia.commands.default.admin.html b/docs/latest/api/evennia.commands.default.admin.html index 1e73ac7e58..0a96bab33d 100644 --- a/docs/latest/api/evennia.commands.default.admin.html +++ b/docs/latest/api/evennia.commands.default.admin.html @@ -331,7 +331,7 @@ to accounts respectively.

-aliases = ['remit', 'pemit']
+aliases = ['pemit', 'remit']
@@ -362,7 +362,7 @@ to accounts respectively.

-search_index_entry = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}
+search_index_entry = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}
diff --git a/docs/latest/api/evennia.commands.default.batchprocess.html b/docs/latest/api/evennia.commands.default.batchprocess.html index 5a7b88c2de..9b80e97757 100644 --- a/docs/latest/api/evennia.commands.default.batchprocess.html +++ b/docs/latest/api/evennia.commands.default.batchprocess.html @@ -152,7 +152,7 @@ skipping, reloading etc.

-aliases = ['batchcmd', 'batchcommand']
+aliases = ['batchcommand', 'batchcmd']
@@ -183,7 +183,7 @@ skipping, reloading etc.

-search_index_entry = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
+search_index_entry = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}
diff --git a/docs/latest/api/evennia.commands.default.building.html b/docs/latest/api/evennia.commands.default.building.html index ea377f19df..5a9391ee3f 100644 --- a/docs/latest/api/evennia.commands.default.building.html +++ b/docs/latest/api/evennia.commands.default.building.html @@ -643,7 +643,7 @@ You can specify the /force switch to bypass this confirmation.

-aliases = ['@del', '@delete']
+aliases = ['@delete', '@del']
@@ -684,7 +684,7 @@ You can specify the /force switch to bypass this confirmation.

-search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
+search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}
@@ -1411,7 +1411,7 @@ server settings.

-aliases = ['@update', '@parent', '@type', '@typeclasses', '@swap']
+aliases = ['@parent', '@type', '@swap', '@update', '@typeclasses']
@@ -1442,7 +1442,7 @@ server settings.

-search_index_entry = {'aliases': '@update @parent @type @typeclasses @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update parent type typeclasses swap', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}
+search_index_entry = {'aliases': '@parent @type @swap @update @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass parent type swap update typeclasses', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}
diff --git a/docs/latest/api/evennia.commands.default.comms.html b/docs/latest/api/evennia.commands.default.comms.html index e1cd9627c3..0fa48db791 100644 --- a/docs/latest/api/evennia.commands.default.comms.html +++ b/docs/latest/api/evennia.commands.default.comms.html @@ -270,7 +270,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-aliases = ['@channels', '@chan']
+aliases = ['@chan', '@channels']
@@ -795,7 +795,7 @@ don’t actually sub to yet.

-search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
+search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
@@ -948,7 +948,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-aliases = ['@channels', '@chan']
+aliases = ['@chan', '@channels']
@@ -968,7 +968,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.

-search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
+search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}
diff --git a/docs/latest/api/evennia.commands.default.general.html b/docs/latest/api/evennia.commands.default.general.html index 211d23dab7..394fd17d04 100644 --- a/docs/latest/api/evennia.commands.default.general.html +++ b/docs/latest/api/evennia.commands.default.general.html @@ -189,7 +189,7 @@ look *<account&g
-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -220,7 +220,7 @@ look *<account&g
-search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
diff --git a/docs/latest/api/evennia.commands.default.system.html b/docs/latest/api/evennia.commands.default.system.html index 196b1c1736..d02b7cfcc2 100644 --- a/docs/latest/api/evennia.commands.default.system.html +++ b/docs/latest/api/evennia.commands.default.system.html @@ -697,7 +697,7 @@ See |luhttps://ww
-aliases = ['@delays', '@task']
+aliases = ['@task', '@delays']
@@ -743,7 +743,7 @@ to all the variables defined therein.

-search_index_entry = {'aliases': '@delays @task', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks delays task', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
+search_index_entry = {'aliases': '@task @delays', 'category': 'system', 'key': '@tasks', 'no_prefix': 'tasks task delays', 'tags': '', 'text': "\n Display or terminate active tasks (delays).\n\n Usage:\n tasks[/switch] [task_id or function_name]\n\n Switches:\n pause - Pause the callback of a task.\n unpause - Process all callbacks made since pause() was called.\n do_task - Execute the task (call its callback).\n call - Call the callback of this task.\n remove - Remove a task without executing it.\n cancel - Stop a task from automatically executing.\n\n Notes:\n A task is a single use method of delaying the call of a function. Calls are created\n in code, using `evennia.utils.delay`.\n See |luhttps://www.evennia.com/docs/latest/Command-Duration.html|ltthe docs|le for help.\n\n By default, tasks that are canceled and never called are cleaned up after one minute.\n\n Examples:\n - `tasks/cancel move_callback` - Cancels all movement delays from the slow_exit contrib.\n In this example slow exits creates it's tasks with\n `utils.delay(move_delay, move_callback)`\n - `tasks/cancel 2` - Cancel task id 2.\n\n "}
diff --git a/docs/latest/api/evennia.commands.default.tests.html b/docs/latest/api/evennia.commands.default.tests.html index 36107e6cb3..1e549bbfa1 100644 --- a/docs/latest/api/evennia.commands.default.tests.html +++ b/docs/latest/api/evennia.commands.default.tests.html @@ -975,7 +975,7 @@ main test suite started with

Test the batch processor.

-red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp8s81zaao/a1023ebc7ee833904bf66107a92b9c1749afaf49/evennia/contrib/tutorials/red_button/red_button.py'>
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp_f53xzjd/c05714d0d4a91a97bcd3eb11fddb9a0d1a4cac02/evennia/contrib/tutorials/red_button/red_button.py'>
diff --git a/docs/latest/api/evennia.commands.default.unloggedin.html b/docs/latest/api/evennia.commands.default.unloggedin.html index 326892e383..1a9c2c5d06 100644 --- a/docs/latest/api/evennia.commands.default.unloggedin.html +++ b/docs/latest/api/evennia.commands.default.unloggedin.html @@ -136,7 +136,7 @@ connect “account name” “pass word”

-aliases = ['conn', 'con', 'co']
+aliases = ['con', 'conn', 'co']
@@ -171,7 +171,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
@@ -195,7 +195,7 @@ create “account name” “pass word”

-aliases = ['cr', 'cre']
+aliases = ['cre', 'cr']
@@ -232,7 +232,7 @@ create “account name” “pass word”

-search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
+search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html index 38832c2498..abf0c080a8 100644 --- a/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html +++ b/docs/latest/api/evennia.contrib.base_systems.email_login.email_login.html @@ -153,7 +153,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.

-aliases = ['conn', 'con', 'co']
+aliases = ['con', 'conn', 'co']
@@ -183,7 +183,7 @@ there is no object yet before the account has logged in)

-search_index_entry = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
+search_index_entry = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}
@@ -205,7 +205,7 @@ there is no object yet before the account has logged in)

-aliases = ['cr', 'cre']
+aliases = ['cre', 'cr']
@@ -247,7 +247,7 @@ name enclosed in quotes:

-search_index_entry = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
+search_index_entry = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html b/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html index 3371789320..10d456bfec 100644 --- a/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html +++ b/docs/latest/api/evennia.contrib.base_systems.ingame_python.commands.html @@ -130,7 +130,7 @@
-aliases = ['@callback', '@calls', '@callbacks']
+aliases = ['@calls', '@callbacks', '@callback']
@@ -211,7 +211,7 @@ on user permission.

-search_index_entry = {'aliases': '@callback @calls @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback calls callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
+search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callbacks callback', 'tags': '', 'text': '\n Command to edit callbacks.\n '}
diff --git a/docs/latest/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html b/docs/latest/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html index 9cb93a4627..6f78c0d57a 100644 --- a/docs/latest/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html +++ b/docs/latest/api/evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.html @@ -231,7 +231,7 @@ for that channel.

-aliases = ['delchanalias', 'delaliaschan']
+aliases = ['delaliaschan', 'delchanalias']
@@ -262,7 +262,7 @@ for that channel.

-search_index_entry = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delchanalias delaliaschan', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
+search_index_entry = {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delaliaschan delchanalias', 'tags': '', 'text': "\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom <alias or channel>\n delcom/all <channel>\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n "}
diff --git a/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html b/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html index 0fd2cb2b3c..4196b0384c 100644 --- a/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html +++ b/docs/latest/api/evennia.contrib.full_systems.evscaperoom.commands.html @@ -225,7 +225,7 @@ the operation will be general or on the room.

-aliases = ['q', 'quit', 'abort', 'chicken out']
+aliases = ['q', 'abort', 'quit', 'chicken out']
@@ -249,7 +249,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'q quit abort chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q quit abort chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
+search_index_entry = {'aliases': 'q abort quit chicken out', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' q abort quit chicken out', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}
@@ -270,7 +270,7 @@ set in self.parse())

-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -304,7 +304,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'ls l', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'evscaperoom', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n Look at the room, an object or the currently focused object\n\n Usage:\n look [obj]\n\n '}
@@ -385,7 +385,7 @@ shout

-aliases = [';', 'shout', 'whisper']
+aliases = ['whisper', ';', 'shout']
@@ -414,7 +414,7 @@ set in self.parse())

-search_index_entry = {'aliases': '; shout whisper', 'category': 'general', 'key': 'say', 'no_prefix': ' ; shout whisper', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
+search_index_entry = {'aliases': 'whisper ; shout', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper ; shout', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}
@@ -504,7 +504,7 @@ looks and what actions is available.

-aliases = ['unfocus', 'examine', 'ex', 'e']
+aliases = ['e', 'examine', 'ex', 'unfocus']
@@ -533,7 +533,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'unfocus examine ex e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus examine ex e', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
+search_index_entry = {'aliases': 'e examine ex unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' e examine ex unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}
@@ -595,7 +595,7 @@ set in self.parse())

-aliases = ['inv', 'give', 'inventory', 'i']
+aliases = ['inventory', 'i', 'inv', 'give']
@@ -619,7 +619,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'inv give inventory i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give inventory i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
+search_index_entry = {'aliases': 'inventory i inv give', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory i inv give', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}
@@ -640,7 +640,7 @@ set in self.parse())

-aliases = ['@open', '@dig']
+aliases = ['@dig', '@open']
@@ -663,7 +663,7 @@ to all the variables defined therein.

-search_index_entry = {'aliases': '@open @dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
+search_index_entry = {'aliases': '@dig @open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n <action> [arg]\n\n '}
diff --git a/docs/latest/api/evennia.contrib.game_systems.barter.barter.html b/docs/latest/api/evennia.contrib.game_systems.barter.barter.html index 180d50f58c..995664a60e 100644 --- a/docs/latest/api/evennia.contrib.game_systems.barter.barter.html +++ b/docs/latest/api/evennia.contrib.game_systems.barter.barter.html @@ -759,7 +759,7 @@ try to influence the other part in the deal.

-aliases = ['offers', 'deal']
+aliases = ['deal', 'offers']
@@ -785,7 +785,7 @@ try to influence the other part in the deal.

-search_index_entry = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'no_prefix': ' offers deal', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
+search_index_entry = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' deal offers', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}
diff --git a/docs/latest/api/evennia.contrib.grid.extended_room.extended_room.html b/docs/latest/api/evennia.contrib.grid.extended_room.extended_room.html index c723345f26..5900224179 100644 --- a/docs/latest/api/evennia.contrib.grid.extended_room.extended_room.html +++ b/docs/latest/api/evennia.contrib.grid.extended_room.extended_room.html @@ -657,7 +657,7 @@ look *<account&g
-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -677,7 +677,7 @@ look *<account&g
-search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}
diff --git a/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html b/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html index f6516a49a8..fd3910210f 100644 --- a/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html +++ b/docs/latest/api/evennia.contrib.grid.xyzgrid.commands.html @@ -436,7 +436,7 @@ there is no room above/below you, your movement will fail.

-aliases = ['dive', 'fly']
+aliases = ['fly', 'dive']
@@ -459,7 +459,7 @@ to all the variables defined therein.

-search_index_entry = {'aliases': 'dive fly', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' dive fly', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}
+search_index_entry = {'aliases': 'fly dive', 'category': 'general', 'key': 'fly or dive', 'no_prefix': ' fly dive', 'tags': '', 'text': '\n Fly or Dive up and down.\n\n Usage:\n fly\n dive\n\n Will fly up one room or dive down one room at your current position. If\n there is no room above/below you, your movement will fail.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html index 610db7d702..ff25abe9cc 100644 --- a/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html +++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_turnbased.html @@ -480,7 +480,7 @@ turn of combat, performing everyone’s actions in random order.

-aliases = ['hit', 'turnbased combat']
+aliases = ['turnbased combat', 'hit']
@@ -526,7 +526,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'hit turnbased combat', 'category': 'general', 'key': 'attack', 'no_prefix': ' hit turnbased combat', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}
+search_index_entry = {'aliases': 'turnbased combat hit', 'category': 'general', 'key': 'attack', 'no_prefix': ' turnbased combat hit', 'tags': '', 'text': '\n Start or join combat.\n\n Usage:\n attack [<target>]\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_twitch.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_twitch.html index 83b1ca5a7f..fceb11ef73 100644 --- a/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_twitch.html +++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.combat_twitch.html @@ -395,7 +395,7 @@ look *<account&g
-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -415,7 +415,7 @@ look *<account&g
-search_index_entry = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look at location or object\n\n Usage:\n look\n look <obj>\n look *<account>\n\n Observes your location or objects in your vicinity.\n '}
@@ -491,7 +491,7 @@ boost INT Wizard Goblin

-aliases = ['foil', 'boost']
+aliases = ['boost', 'foil']
@@ -525,7 +525,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'foil boost', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' foil boost', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}
+search_index_entry = {'aliases': 'boost foil', 'category': 'combat', 'key': 'stunt', 'no_prefix': ' boost foil', 'tags': '', 'text': '\n Perform a combat stunt, that boosts an ally against a target, or\n foils an enemy, giving them disadvantage against an ally.\n\n Usage:\n boost [ability] <recipient> <target>\n foil [ability] <recipient> <target>\n boost [ability] <target> (same as boost me <target>)\n foil [ability] <target> (same as foil <target> me)\n\n Example:\n boost STR me Goblin\n boost DEX Goblin\n foil STR Goblin me\n foil INT Goblin\n boost INT Wizard Goblin\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html index 18e51861b5..c0bc2608d6 100644 --- a/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html +++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.commands.html @@ -307,7 +307,7 @@ unwear <item>

-aliases = ['unwield', 'unwear']
+aliases = ['unwear', 'unwield']
@@ -331,7 +331,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'unwield unwear', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwield unwear', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
+search_index_entry = {'aliases': 'unwear unwield', 'category': 'general', 'key': 'remove', 'no_prefix': ' unwear unwield', 'tags': '', 'text': '\n Remove a remove a weapon/shield, armor or helmet.\n\n Usage:\n remove <item>\n unwield <item>\n unwear <item>\n\n To remove an item from the backpack, use |wdrop|n instead.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.enums.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.enums.html index 6bcee466e6..87415831e5 100644 --- a/docs/latest/api/evennia.contrib.tutorials.evadventure.enums.html +++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.enums.html @@ -291,6 +291,33 @@ enum, Python will give you an error while a typo in a string may go through sile
+
+
+class evennia.contrib.tutorials.evadventure.enums.QuestStatus(value)[source]
+

Bases: enum.Enum

+

Quest status

+
+
+STARTED = 'started'
+
+ +
+
+COMPLETED = 'completed'
+
+ +
+
+ABANDONED = 'abandoned'
+
+ +
+
+FAILED = 'failed'
+
+ +
+ diff --git a/docs/latest/api/evennia.contrib.tutorials.evadventure.quests.html b/docs/latest/api/evennia.contrib.tutorials.evadventure.quests.html index 071e218212..af4f567aec 100644 --- a/docs/latest/api/evennia.contrib.tutorials.evadventure.quests.html +++ b/docs/latest/api/evennia.contrib.tutorials.evadventure.quests.html @@ -128,7 +128,7 @@ progress of their quests.

another quest.

-class evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest(quester, start_step=None)[source]
+class evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest(quester, data=None)[source]

Bases: object

This represents a single questing unit of quest.

@@ -147,11 +147,11 @@ class MyQuest(EvAdventureQuest):

‘’’A quest with two steps that ar’’’

start_step = “A”

-

help_A = “You need a ‘_quest_A_flag’ on yourself to finish this step!” +

help_A = “You need a ‘A_flag’ attribute on yourself to finish this step!” help_B = “Finally, you need more than 4 items in your inventory!”

def step_A(self, *args, **kwargs):
-
if self.quester.db._quest_A_flag == True:

self.quester.msg(“Completed the first step of the quest.”) +

if self.get_data(“A_flag”) == True:

self.quester.msg(“Completed the first step of the quest.”) self.current_step = “end” self.progress()

@@ -202,7 +202,7 @@ self.complete()

-__init__(quester, start_step=None)[source]
+__init__(quester, data=None)[source]

Initialize self. See help(type(self)) for accurate signature.

@@ -216,6 +216,68 @@ self.complete()

property current_step
+
+
+property status
+
+ +
+
+property is_completed
+
+ +
+
+property is_abandoned
+
+ +
+
+property is_failed
+
+ +
+
+add_data(key, value)[source]
+

Add data to the quest. This saves it permanently.

+
+
Parameters
+
    +
  • key (str) – The key to store the data under.

  • +
  • value (any) – The data to store.

  • +
+
+
+
+ +
+
+remove_data(key)[source]
+

Remove data from the quest permanently.

+
+
Parameters
+

key (str) – The key to remove.

+
+
+
+ +
+
+get_data(key, default=None)[source]
+

Get data from the quest.

+
+
Parameters
+
    +
  • key (str) – The key to get data for.

  • +
  • default (any, optional) – The default value to return if key is not found.

  • +
+
+
Returns
+

any – The data stored under the key.

+
+
+
+
abandon()[source]
@@ -266,8 +328,9 @@ quest-step.

cleanup()[source]
-

This is called both when completing the quest, or when it is abandoned prematurely. -Make sure to cleanup any quest-related data stored when following the quest.

+

This is called both when completing the quest, or when it is abandoned prematurely.

+

This is for cleaning up any extra state that were set during the quest (stuff in self.data +is automatically cleaned up)

@@ -293,12 +356,59 @@ def quests(self):

quest_storage_attribute_category = 'evadventure'
+
+
+quest_data_attribute_template = '_quest_data_{quest_key}'
+
+ +
+
+quest_data_attribute_category = 'evadventure'
+
+
__init__(obj)[source]

Initialize self. See help(type(self)) for accurate signature.

+
+
+save_quest_data(quest_key, data)[source]
+

Save data for a quest. We store this on the quester as well as updating the quest itself.

+
+
Parameters
+

data (dict) – The data to store. This is commonly flags or other data needed to track the +quest.

+
+
+
+ +
+
+load_quest_data(quest_key)[source]
+

Load data for a quest.

+
+
Parameters
+

quest_key (str) – The quest to load data for.

+
+
Returns
+

dict – The data stored for the quest.

+
+
+
+ +
+
+clean_quest_data(quest_key)[source]
+

Remove data for a quest.

+
+
Parameters
+

quest_key (str) – The quest to remove data for.

+
+
+
+
has(quest_key)[source]
@@ -337,11 +447,11 @@ def quests(self):

-add(quest)[source]
+add(quest_class)[source]

Add a new quest

Parameters
-

quest (EvAdventureQuest) – The quest class to start.

+

quest_class (EvAdventureQuest) – The quest class to start.

diff --git a/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html b/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html index 31e378d463..f80512394a 100644 --- a/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html +++ b/docs/latest/api/evennia.contrib.tutorials.red_button.red_button.html @@ -167,7 +167,7 @@ such as when closing the lid and un-blinding a character.

-aliases = ['press', 'press button', 'push']
+aliases = ['press button', 'press', 'push']
@@ -196,7 +196,7 @@ check if the lid is open or closed.

-search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button press push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}
@@ -266,7 +266,7 @@ check if the lid is open or closed.

-aliases = ['smash lid', 'break lid', 'smash']
+aliases = ['smash', 'break lid', 'smash lid']
@@ -293,7 +293,7 @@ break.

-search_index_entry = {'aliases': 'smash lid break lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash lid break lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
+search_index_entry = {'aliases': 'smash break lid smash lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash break lid smash lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}
@@ -393,7 +393,7 @@ be mutually exclusive.

-aliases = ['press', 'press button', 'push']
+aliases = ['press button', 'press', 'push']
@@ -422,7 +422,7 @@ set in self.parse())

-search_index_entry = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
+search_index_entry = {'aliases': 'press button press push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button press push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}
@@ -520,7 +520,7 @@ be mutually exclusive.

-aliases = ['ex', 'listen', 'examine', 'l', 'feel', 'get']
+aliases = ['ex', 'l', 'get', 'feel', 'examine', 'listen']
@@ -546,7 +546,7 @@ be mutually exclusive.

-search_index_entry = {'aliases': 'ex listen examine l feel get', 'category': 'general', 'key': 'look', 'no_prefix': ' ex listen examine l feel get', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
+search_index_entry = {'aliases': 'ex l get feel examine listen', 'category': 'general', 'key': 'look', 'no_prefix': ' ex l get feel examine listen', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}
diff --git a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html index cb92237f33..6efc7728e0 100644 --- a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html +++ b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.objects.html @@ -570,7 +570,7 @@ shift green root up/down

-aliases = ['pull', 'move', 'shiftroot', 'push']
+aliases = ['shiftroot', 'move', 'pull', 'push']
@@ -606,7 +606,7 @@ yellow/green - horizontal roots

-search_index_entry = {'aliases': 'pull move shiftroot push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull move shiftroot push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
+search_index_entry = {'aliases': 'shiftroot move pull push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' shiftroot move pull push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}
@@ -623,7 +623,7 @@ yellow/green - horizontal roots

-aliases = ['push button', 'button', 'press button']
+aliases = ['press button', 'button', 'push button']
@@ -649,7 +649,7 @@ yellow/green - horizontal roots

-search_index_entry = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button button press button', 'tags': '', 'text': '\n Presses a button.\n '}
+search_index_entry = {'aliases': 'press button button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' press button button push button', 'tags': '', 'text': '\n Presses a button.\n '}
@@ -793,7 +793,7 @@ parry - forgoes your attack but will make you harder to hit on next

-aliases = ['parry', 'chop', 'pierce', 'fight', 'slash', 'stab', 'bash', 'defend', 'thrust', 'kill', 'hit']
+aliases = ['chop', 'slash', 'parry', 'stab', 'defend', 'kill', 'fight', 'bash', 'pierce', 'hit', 'thrust']
@@ -819,7 +819,7 @@ parry - forgoes your attack but will make you harder to hit on next

-search_index_entry = {'aliases': 'parry chop pierce fight slash stab bash defend thrust kill hit', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' parry chop pierce fight slash stab bash defend thrust kill hit', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
+search_index_entry = {'aliases': 'chop slash parry stab defend kill fight bash pierce hit thrust', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' chop slash parry stab defend kill fight bash pierce hit thrust', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}
diff --git a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html index f62da79714..ce14300ff6 100644 --- a/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html +++ b/docs/latest/api/evennia.contrib.tutorials.tutorial_world.rooms.html @@ -262,7 +262,7 @@ code except for adding in the details.

-aliases = ['ls', 'l']
+aliases = ['l', 'ls']
@@ -277,7 +277,7 @@ code except for adding in the details.

-search_index_entry = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
+search_index_entry = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}
@@ -982,7 +982,7 @@ to find something.

-aliases = ['l', 'search', 'feel', 'fiddle', 'feel around']
+aliases = ['feel around', 'search', 'l', 'feel', 'fiddle']
@@ -1010,7 +1010,7 @@ random chance of eventually finding a light source.

-search_index_entry = {'aliases': 'l search feel fiddle feel around', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l search feel fiddle feel around', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
+search_index_entry = {'aliases': 'feel around search l feel fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel around search l feel fiddle', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}
diff --git a/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html b/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html index e660746e2f..873e29832f 100644 --- a/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html +++ b/docs/latest/api/evennia.contrib.utils.git_integration.git_integration.html @@ -222,7 +222,7 @@ git evennia pull - Pull the latest evennia code.

-directory = '/tmp/tmp8s81zaao/a1023ebc7ee833904bf66107a92b9c1749afaf49/evennia'
+directory = '/tmp/tmp_f53xzjd/c05714d0d4a91a97bcd3eb11fddb9a0d1a4cac02/evennia'
@@ -283,7 +283,7 @@ git pull - Pull the latest code from your current branch.

-directory = '/tmp/tmp8s81zaao/a1023ebc7ee833904bf66107a92b9c1749afaf49/evennia/game_template'
+directory = '/tmp/tmp_f53xzjd/c05714d0d4a91a97bcd3eb11fddb9a0d1a4cac02/evennia/game_template'
diff --git a/docs/latest/api/evennia.utils.eveditor.html b/docs/latest/api/evennia.utils.eveditor.html index f53c8de024..6106cf29cf 100644 --- a/docs/latest/api/evennia.utils.eveditor.html +++ b/docs/latest/api/evennia.utils.eveditor.html @@ -350,7 +350,7 @@ indentation.

-aliases = ['::', ':y', ':wq', ':r', ':f', ':A', ':::', ':h', ':!', ':u', ':fd', ':UU', ':', ':i', ':echo', ':w', ':dd', ':q!', ':s', ':x', ':>', ':j', ':q', ':uu', ':fi', ':p', ':dw', ':I', ':<', ':S', ':=', ':DD']
+aliases = [':h', ':i', ':q', ':wq', ':f', ':fd', ':x', ':DD', ':q!', ':I', ':dw', ':::', ':>', ':fi', ':r', ':S', ':w', ':echo', ':j', ':p', '::', ':UU', ':s', ':y', ':!', ':<', ':', ':uu', ':A', ':=', ':dd', ':u']
@@ -378,7 +378,7 @@ efficient presentation.

-search_index_entry = {'aliases': ':: :y :wq :r :f :A ::: :h :! :u :fd :UU : :i :echo :w :dd :q! :s :x :> :j :q :uu :fi :p :dw :I :< :S := :DD', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :: :y :wq :r :f :A ::: :h :! :u :fd :UU : :i :echo :w :dd :q! :s :x :> :j :q :uu :fi :p :dw :I :< :S := :DD', 'tags': '', 'text': '\n Commands for the editor\n '}
+search_index_entry = {'aliases': ':h :i :q :wq :f :fd :x :DD :q! :I :dw ::: :> :fi :r :S :w :echo :j :p :: :UU :s :y :! :< : :uu :A := :dd :u', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :h :i :q :wq :f :fd :x :DD :q! :I :dw ::: :> :fi :r :S :w :echo :j :p :: :UU :s :y :! :< : :uu :A := :dd :u', 'tags': '', 'text': '\n Commands for the editor\n '}
diff --git a/docs/latest/api/evennia.utils.evmenu.html b/docs/latest/api/evennia.utils.evmenu.html index 0a2a4395ff..52e2f72f0c 100644 --- a/docs/latest/api/evennia.utils.evmenu.html +++ b/docs/latest/api/evennia.utils.evmenu.html @@ -953,7 +953,7 @@ single question.

-aliases = ['n', 'y', 'no', 'yes', 'a', '__nomatch_command', 'abort']
+aliases = ['yes', 'a', 'no', '__nomatch_command', 'y', 'n', 'abort']
@@ -979,7 +979,7 @@ single question.

-search_index_entry = {'aliases': 'n y no yes a __nomatch_command abort', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' n y no yes a __nomatch_command abort', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
+search_index_entry = {'aliases': 'yes a no __nomatch_command y n abort', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' yes a no __nomatch_command y n abort', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}
diff --git a/docs/latest/api/evennia.utils.evmore.html b/docs/latest/api/evennia.utils.evmore.html index ec5d1337a9..1ba2959c6a 100644 --- a/docs/latest/api/evennia.utils.evmore.html +++ b/docs/latest/api/evennia.utils.evmore.html @@ -151,7 +151,7 @@ the caller.msg() construct every time the page is updated.

-aliases = ['n', 'next', 'previous', 'p', 'a', 'q', 'top', 'quit', 'abort', 'e', 'end', 't']
+aliases = ['next', 'quit', 'n', 'previous', 'a', 'end', 'e', 't', 'q', 'abort', 'top', 'p']
@@ -177,7 +177,7 @@ the caller.msg() construct every time the page is updated.

-search_index_entry = {'aliases': 'n next previous p a q top quit abort e end t', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' n next previous p a q top quit abort e end t', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
+search_index_entry = {'aliases': 'next quit n previous a end e t q abort top p', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' next quit n previous a end e t q abort top p', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}
diff --git a/docs/latest/genindex.html b/docs/latest/genindex.html index 04c83313ba..0d56f79899 100644 --- a/docs/latest/genindex.html +++ b/docs/latest/genindex.html @@ -448,6 +448,8 @@ - + - + - +
  • clean_attr_value() (evennia.web.admin.attributes.AttributeForm method) +
  • +
  • clean_quest_data() (evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler method)
  • clean_senddata() (evennia.server.sessionhandler.SessionHandler method)
  • @@ -4564,6 +4570,8 @@
  • complete() (evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest method)
  • complete_task() (in module evennia.contrib.base_systems.ingame_python.scripts) +
  • +
  • COMPLETED (evennia.contrib.tutorials.evadventure.enums.QuestStatus attribute)
  • completed_text (evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest attribute)
  • @@ -9387,6 +9395,8 @@
  • (evennia.accounts.bots.IRCBot attribute)
  • +
  • FAILED (evennia.contrib.tutorials.evadventure.enums.QuestStatus attribute) +
  • failure_effects (evennia.contrib.game_systems.crafting.example_recipes.FireballRecipe attribute)
  • +
  • get_data() (evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest method) +
  • get_db_prep_lookup() (evennia.utils.picklefield.PickledObjectField method)
  • get_db_prep_value() (evennia.utils.picklefield.PickledObjectField method) @@ -12333,10 +12345,10 @@
  • (evennia.web.admin.scripts.ScriptAdmin attribute)
  • -
  • query_status() (in module evennia.server.evennia_launcher)
  • -
  • save_prototype() (in module evennia.prototypes.prototypes) +
  • +
  • save_quest_data() (evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler method)
  • save_recipe() (evennia.contrib.game_systems.puzzles.puzzles.PuzzleRecipe method)
  • @@ -19764,8 +19794,6 @@
  • (evennia.web.admin.scripts.ScriptAdmin method)
  • -
    +
  • STARTED (evennia.contrib.tutorials.evadventure.enums.QuestStatus attribute) +
  • startedConnecting() (evennia.server.amp_client.AMPClientFactory method)