diff --git a/docs/1.0/.buildinfo b/docs/1.0/.buildinfo index ed8dc1fa71..91f59db8cb 100644 --- a/docs/1.0/.buildinfo +++ b/docs/1.0/.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: 34d539deb339f7d5f0e8dd55a49ee609 +config: 33d5d7a4e00ef6fc06519ed04fef2c78 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/1.0/Coding/Continuous-Integration-TeamCity.html b/docs/1.0/Coding/Continuous-Integration-TeamCity.html index 31b9223be8..26b8df8c60 100644 --- a/docs/1.0/Coding/Continuous-Integration-TeamCity.html +++ b/docs/1.0/Coding/Continuous-Integration-TeamCity.html @@ -151,34 +151,34 @@ environment unique from your development environment.

CONFIG="%system.teamcity.build.checkoutDir%/server/conf/settings.py" MYCONF="%system.teamcity.build.checkoutDir%/server/conf/my.cnf" -sed -e 's/TELNET_PORTS = [4000]/TELNET_PORTS = [%game.ports%]/g' "$CONFIG" > "$CONFIG".tmp && mv -"$CONFIG".tmp "$CONFIG" -sed -e 's/WEBSERVER_PORTS = [(4001, 4002)]/WEBSERVER_PORTS = [%game.webports%]/g' "$CONFIG" > -"$CONFIG".tmp && mv "$CONFIG".tmp "$CONFIG" +sed -e 's/TELNET_PORTS = [4000]/TELNET_PORTS = [%game.ports%]/g' "$CONFIG" > "$CONFIG".tmp && mv +"$CONFIG".tmp "$CONFIG" +sed -e 's/WEBSERVER_PORTS = [(4001, 4002)]/WEBSERVER_PORTS = [%game.webports%]/g' "$CONFIG" > +"$CONFIG".tmp && mv "$CONFIG".tmp "$CONFIG"
# settings.py MySQL DB configuration
-echo Configuring Game Database...
-echo "" >> "$CONFIG"
-echo "######################################################################" >> "$CONFIG"
-echo "# MySQL Database Configuration" >> "$CONFIG"
-echo "######################################################################" >> "$CONFIG"
+echo Configuring Game Database...
+echo "" >> "$CONFIG"
+echo "######################################################################" >> "$CONFIG"
+echo "# MySQL Database Configuration" >> "$CONFIG"
+echo "######################################################################" >> "$CONFIG"
 
-echo "DATABASES = {" >> "$CONFIG"
-echo "   'default': {" >> "$CONFIG"
-echo "       'ENGINE': 'django.db.backends.mysql'," >> "$CONFIG"
-echo "       'OPTIONS': {" >> "$CONFIG"
-echo "           'read_default_file': 'server/conf/my.cnf'," >> "$CONFIG"
-echo "       }," >> "$CONFIG"
-echo "   }" >> "$CONFIG"
-echo "}" >> "$CONFIG"
+echo "DATABASES = {" >> "$CONFIG"
+echo "   'default': {" >> "$CONFIG"
+echo "       'ENGINE': 'django.db.backends.mysql'," >> "$CONFIG"
+echo "       'OPTIONS': {" >> "$CONFIG"
+echo "           'read_default_file': 'server/conf/my.cnf'," >> "$CONFIG"
+echo "       }," >> "$CONFIG"
+echo "   }" >> "$CONFIG"
+echo "}" >> "$CONFIG"
 
 # Create the My.CNF file.
-echo "[client]" >> "$MYCONF"
-echo "database = %mysql.db%" >> "$MYCONF"
-echo "user = %mysql.user%" >> "$MYCONF"
-echo "password = %mysql.pass%" >> "$MYCONF"
-echo "default-character-set = utf8" >> "$MYCONF"
+echo "[client]" >> "$MYCONF"
+echo "database = %mysql.db%" >> "$MYCONF"
+echo "user = %mysql.user%" >> "$MYCONF"
+echo "password = %mysql.pass%" >> "$MYCONF"
+echo "default-character-set = utf8" >> "$MYCONF"
 

If you look at the parameters side of the page after saving this script, you’ll notice that some new @@ -193,15 +193,15 @@ step to your game dir.

LOGDIR="server/logs" -. %evenv.dir%/bin/activate +. %evenv.dir%/bin/activate # Check that the logs directory exists. -if [ ! -d "$LOGDIR" ]; then - # Control will enter here if $LOGDIR doesn't exist. - mkdir "$LOGDIR" +if [ ! -d "$LOGDIR" ]; then + # Control will enter here if $LOGDIR doesn't exist. + mkdir "$LOGDIR" fi -evennia makemigrations +evennia makemigrations

Create yet another build step, this time named: “Execute Database Migration”: @@ -209,18 +209,18 @@ If you’re using Sqlite3 for your game (default database), it’s prudent to ch step to your game dir.

#!/bin/bash
 # Apply the database migration.
-    
+    
 LOGDIR="server/logs"
-    
-. %evenv.dir%/bin/activate
-    
+    
+. %evenv.dir%/bin/activate
+    
 # Check that the logs directory exists.
-if [ ! -d "$LOGDIR" ]; then
-  # Control will enter here if $LOGDIR doesn't exist.
-  mkdir "$LOGDIR"
+if [ ! -d "$LOGDIR" ]; then
+  # Control will enter here if $LOGDIR doesn't exist.
+  mkdir "$LOGDIR"
 fi
-    
-evennia migrate
+    
+evennia migrate
 

Our next build step is where we actually publish our build. Up until now, all work on game has been @@ -230,18 +230,18 @@ to where our game actually exists on the local server.

the Database Migration steps. The build order will matter!

#!/bin/bash
 # Publishes the build to the proper build directory.
-    
+    
 DIRECTORY="<game_dir>"
-    
-if [ ! -d "$DIRECTORY" ]; then
-  # Control will enter here if $DIRECTORY doesn't exist.
-  mkdir "$DIRECTORY"
+    
+if [ ! -d "$DIRECTORY" ]; then
+  # Control will enter here if $DIRECTORY doesn't exist.
+  mkdir "$DIRECTORY"
 fi
-    
+    
 # Copy all the files.
-cp -ruv %teamcity.build.checkoutDir%/* "$DIRECTORY"
-chmod -R 775 "$DIRECTORY"
- 
+cp -ruv %teamcity.build.checkoutDir%/* "$DIRECTORY"
+chmod -R 775 "$DIRECTORY"
+ 
 

Finally the last script will reload our game for us.

@@ -253,18 +253,18 @@ The working directory on this build step will be: LOGDIR="server/logs" PIDDIR="server/server.pid" -. %evenv.dir%/bin/activate +. %evenv.dir%/bin/activate # Check that the logs directory exists. -if [ ! -d "$LOGDIR" ]; then - # Control will enter here if $LOGDIR doesn't exist. - mkdir "$LOGDIR" +if [ ! -d "$LOGDIR" ]; then + # Control will enter here if $LOGDIR doesn't exist. + mkdir "$LOGDIR" fi # Check that the server is running. -if [ -d "$PIDDIR" ]; then - # Control will enter here if the game is running. - evennia reload +if [ -d "$PIDDIR" ]; then + # Control will enter here if the game is running. + evennia reload fi diff --git a/docs/1.0/Coding/Continuous-Integration-Travis.html b/docs/1.0/Coding/Continuous-Integration-Travis.html index 79d18c3068..eaf46705fe 100644 --- a/docs/1.0/Coding/Continuous-Integration-Travis.html +++ b/docs/1.0/Coding/Continuous-Integration-Travis.html @@ -108,17 +108,17 @@ need to set up yourself is a Travis config file named
language: python
-python:
-  - "3.10"
-install:
-  - git clone https://github.com/evennia/evennia.git
-  - cd evennia
-  - pip install -e .
-  - cd $TRAVIS_BUILD_DIR
-script:
-  - evennia migrate
-  - evennia test --settings settings.py .
+
language: python
+python:
+  - "3.10"
+install:
+  - git clone https://github.com/evennia/evennia.git
+  - cd evennia
+  - pip install -e .
+  - cd $TRAVIS_BUILD_DIR
+script:
+  - evennia migrate
+  - evennia test --settings settings.py .
 

This will tell travis how to download Evennia, install it, set up a database and then run diff --git a/docs/1.0/Coding/Debugging.html b/docs/1.0/Coding/Debugging.html index 2e01b7490b..af8a65d41b 100644 --- a/docs/1.0/Coding/Debugging.html +++ b/docs/1.0/Coding/Debugging.html @@ -151,7 +151,7 @@ default cmdset. Then restart Evennia in interactive mode with class CmdTest(Command): - """ + """ A test command just to test pdb. Usage: diff --git a/docs/1.0/Coding/Evennia-Code-Style.html b/docs/1.0/Coding/Evennia-Code-Style.html index 5b51de522b..9a3028c0c1 100644 --- a/docs/1.0/Coding/Evennia-Code-Style.html +++ b/docs/1.0/Coding/Evennia-Code-Style.html @@ -189,7 +189,7 @@ important methods, this tends to be hard to keep updated as the API develops. Don’t use section markers (#, ## etc).

Example of class docstring:

class MyClass(object):
-    """
+    """
     This class describes the creation of `Objects`. It is useful
     in many situations, such as ...
 
@@ -202,7 +202,7 @@ develops. Don’t use section markers (

 def funcname(a, b, c, d=False, **kwargs):
-    """
+    """
     This is a brief introduction to the function/class/method
 
     Args:
@@ -237,7 +237,7 @@ an indent. When you need to break a line you should start the next line
 with another indent. For consistency with the code we recommend all
 indents to be 4 spaces wide (no tabs!).

Here are all the supported block headers:

-
    """
+
    """
     Args
         argname (freeform type): Description endind with period.
     Keyword Args:
@@ -290,7 +290,7 @@ docstrings to represent the in-game help entry for that command.

formatted on a similar form. For contribs, this is loosened, but if there is no particular reason to use a different form, one should aim to use the same style for contrib-command docstrings as well.

-
      """
+
      """
       Short header
 
       Usage:
@@ -317,7 +317,7 @@ will come out as a single 

The Switches and Examples blocks are optional and based on the Command.

Here is the nick command as an example:

-
      """
+
      """
       Define a personal alias/nick
 
       Usage:
diff --git a/docs/1.0/Coding/Soft-Code.html b/docs/1.0/Coding/Soft-Code.html
index c57d5aa6d1..810ac44053 100644
--- a/docs/1.0/Coding/Soft-Code.html
+++ b/docs/1.0/Coding/Soft-Code.html
@@ -117,19 +117,19 @@ or more which is obviously not very readable nor (easily) maintainable over time
 

Examples of Softcode

Here is a simple ‘Hello World!’ command:

-
    @set me=HELLO_WORLD.C:$hello:@pemit %#=Hello World!
+
    @set me=HELLO_WORLD.C:$hello:@pemit %#=Hello World!
 

Pasting this into a MUX/MUSH and typing ‘hello’ will theoretically yield ‘Hello World!’, assuming certain flags are not set on your account object.

Setting attributes is done via @set. Softcode also allows the use of the ampersand (&) symbol. This shorter version looks like this:

-
    &HELLO_WORLD.C me=$hello:@pemit %#=Hello World!
+
    &HELLO_WORLD.C me=$hello:@pemit %#=Hello World!
 

Perhaps I want to break the Hello World into an attribute which is retrieved when emitting:

-
    &HELLO_VALUE.D me=Hello World
-    &HELLO_WORLD.C me=$hello:@pemit %#=[v(HELLO_VALUE.D)]
+
    &HELLO_VALUE.D me=Hello World
+    &HELLO_WORLD.C me=$hello:@pemit %#=[v(HELLO_VALUE.D)]
 

The v() function returns the HELLO_VALUE.D attribute on the object that the command resides diff --git a/docs/1.0/Coding/Unit-Testing.html b/docs/1.0/Coding/Unit-Testing.html index 2d7bf15d64..9d29322934 100644 --- a/docs/1.0/Coding/Unit-Testing.html +++ b/docs/1.0/Coding/Unit-Testing.html @@ -184,21 +184,21 @@ and want to test a function in "This tests a function myfunc." def setUp(self): - """done before every of the test_ * methods below""" + """done before every of the test_ * methods below""" self.obj = create_object("mytestobject") def tearDown(self): - """done after every test_* method below """ + """done after every test_* method below """ self.obj.delete() def test_return_value(self): - """test method. Makes sure return value is as expected.""" + """test method. Makes sure return value is as expected.""" actual_return = myfunc(self.obj) expected_return = "This is the good object 'mytestobject'." # test self.assertEqual(expected_return, actual_return) def test_alternative_call(self): - """test method. Calls with a keyword argument.""" + """test method. Calls with a keyword argument.""" actual_return = myfunc(self.obj, bad=True) expected_return = "This is the baaad object 'mytestobject'." # test @@ -265,13 +265,13 @@ just there for naming symmetry with < from evennia.utils.test_resources import EvenniaTest class TestObject(EvenniaTest): - """Remember that the testing class creates char1 and char2 inside room1 ...""" + """Remember that the testing class creates char1 and char2 inside room1 ...""" def test_object_search_character(self): - """Check that char1 can search for char2 by name""" + """Check that char1 can search for char2 by name""" self.assertEqual(self.char1.search(self.char2.key), self.char2) def test_location_search(self): - """Check so that char1 can find the current location by name""" + """Check so that char1 can find the current location by name""" self.assertEqual(self.char1.search(self.char1.location.key), self.char1.location) # ...

diff --git a/docs/1.0/Coding/Version-Control.html b/docs/1.0/Coding/Version-Control.html index aba0aa5902..21c7f294d5 100644 --- a/docs/1.0/Coding/Version-Control.html +++ b/docs/1.0/Coding/Version-Control.html @@ -449,9 +449,9 @@ This is a formal request for upstream Evennia to adopt and pull your code into t

Getting 403: Forbidden access

Some users have experienced this on git push to their remote repository. They are not asked for username/password (and don’t have a ssh key set up).

Some users have reported that the workaround is to create a file .netrc under your home directory and add your github credentials there:

-
machine github.com
-login <my_github_username>
-password <my_github_password>
+
machine github.com
+login <my_github_username>
+password <my_github_password>
 
diff --git a/docs/1.0/Components/Attributes.html b/docs/1.0/Components/Attributes.html index fe166280e1..e730fad3b1 100644 --- a/docs/1.0/Components/Attributes.html +++ b/docs/1.0/Components/Attributes.html @@ -497,12 +497,12 @@ serialize the db-objects you want to store.

self.mydbobj = mydbobj def __serialize_dbobjs__(self): - """This is called before serialization and allows + """This is called before serialization and allows us to custom-handle those 'hidden' dbobjs""" self.mydbobj = dbserialize.dbserialize(self.mydbobj def __deserialize_dbobjs__(self): - """This is called after deserialization and allows you to + """This is called after deserialization and allows you to restore the 'hidden' dbobjs you serialized before""" if isinstance(self.mydbobj, bytes): # make sure to check if it's bytes before trying dbunserialize diff --git a/docs/1.0/Components/Batch-Command-Processor.html b/docs/1.0/Components/Batch-Command-Processor.html index 3c88716aad..313b4bda82 100644 --- a/docs/1.0/Components/Batch-Command-Processor.html +++ b/docs/1.0/Components/Batch-Command-Processor.html @@ -143,46 +143,46 @@ them in-game, except you have more freedom with line breaks.

  • You cannot nest another batchcommand statement into your batch file. If you want to link many batch-files together, use the #INSERT batch instruction instead. You also cannot launch the batchcode command from your batch file, the two batch processors are not compatible.

  • Below is a version of the example file found in evennia/contrib/tutorial_examples/batch_cmds.ev.

    -
        #
    -    # This is an example batch build file for Evennia. 
    -    #
    -    
    -    # This creates a red button
    -    @create button:tutorial_examples.red_button.RedButton
    -    # (This comment ends input for @create)
    -    # Next command. Let's create something. 
    -    @set button/desc = 
    -      This is a large red button. Now and then 
    -      it flashes in an evil, yet strangely tantalizing way. 
    -    
    -      A big sign sits next to it. It says:
    +
        #
    +    # This is an example batch build file for Evennia. 
    +    #
    +    
    +    # This creates a red button
    +    @create button:tutorial_examples.red_button.RedButton
    +    # (This comment ends input for @create)
    +    # Next command. Let's create something. 
    +    @set button/desc = 
    +      This is a large red button. Now and then 
    +      it flashes in an evil, yet strangely tantalizing way. 
    +    
    +      A big sign sits next to it. It says:
     
    -    
    -    -----------
    -    
    -     Press me! 
    -    
    -    -----------
    +    
    +    -----------
    +    
    +     Press me! 
    +    
    +    -----------
     
    -    
    -      ... It really begs to be pressed! You 
    -    know you want to! 
    -    
    -    # This inserts the commands from another batch-cmd file named
    -    # batch_insert_file.ev.
    -    #INSERT examples.batch_insert_file
    -    
    -      
    -    # (This ends the @set command). Note that single line breaks 
    -    # and extra whitespace in the argument are ignored. Empty lines 
    -    # translate into line breaks in the output.
    -    # Now let's place the button where it belongs (let's say limbo #2 is 
    -    # the evil lair in our example)
    -    @teleport #2
    -    # (This comments ends the @teleport command.) 
    -    # Now we drop it so others can see it. 
    -    # The very last command in the file needs not be ended with #.
    -    drop button
    +    
    +      ... It really begs to be pressed! You 
    +    know you want to! 
    +    
    +    # This inserts the commands from another batch-cmd file named
    +    # batch_insert_file.ev.
    +    #INSERT examples.batch_insert_file
    +    
    +      
    +    # (This ends the @set command). Note that single line breaks 
    +    # and extra whitespace in the argument are ignored. Empty lines 
    +    # translate into line breaks in the output.
    +    # Now let's place the button where it belongs (let's say limbo #2 is 
    +    # the evil lair in our example)
    +    @teleport #2
    +    # (This comments ends the @teleport command.) 
    +    # Now we drop it so others can see it. 
    +    # The very last command in the file needs not be ended with #.
    +    drop button
     

    To test this, run @batchcommand on the file:

    diff --git a/docs/1.0/Components/Command-Sets.html b/docs/1.0/Components/Command-Sets.html index 3ba911e77b..a524157905 100644 --- a/docs/1.0/Components/Command-Sets.html +++ b/docs/1.0/Components/Command-Sets.html @@ -152,7 +152,7 @@ Sets#merge-rules) section).

    class MyCmdSet(CmdSet): def at_cmdset_creation(self): - """ + """ The only thing this method should need to do is to add commands to the set. """ @@ -450,7 +450,7 @@ it appropriately.

    key_mergetypes = {'MyOtherCmdSet':'Union'} def at_cmdset_creation(self): - """ + """ The only thing this method should need to do is to add commands to the set. """ diff --git a/docs/1.0/Components/Commands.html b/docs/1.0/Components/Commands.html index 7941e975e9..7f8505d03e 100644 --- a/docs/1.0/Components/Commands.html +++ b/docs/1.0/Components/Commands.html @@ -148,7 +148,7 @@ specifics and use the base from evennia import Command class MyCmd(Command): - """ + """ This is the help-text for the command """ key = "mycommand" @@ -270,7 +270,7 @@ truthfully report this value - that case the
    from evennia import Command
     
     class CmdSmile(Command):
    -    """
    +    """
         A smile command
     
         Usage:
    @@ -371,7 +371,7 @@ the current execution of your command and wait for more before processing.

    from evennia import Command
     
     class CmdWait(Command):
    -    """
    +    """
         A dummy command to show how to wait
     
         Usage:
    @@ -384,7 +384,7 @@ the current execution of your command and wait for more before processing.

    help_category = "General" def func(self): - """Command execution.""" + """Command execution.""" self.msg("Beginner-Tutorial to wait ...") yield 5 self.msg("... This shows after 5 seconds. Waiting ...") @@ -408,7 +408,7 @@ the current execution of your command and wait for more before processing.

    Here’s a very simple example:

    class CmdConfirm(Command):
     
    -    """
    +    """
         A dummy command to show confirmation.
     
         Usage:
    diff --git a/docs/1.0/Components/EvEditor.html b/docs/1.0/Components/EvEditor.html
    index b65f7eadea..778675bc5c 100644
    --- a/docs/1.0/Components/EvEditor.html
    +++ b/docs/1.0/Components/EvEditor.html
    @@ -145,7 +145,7 @@ It has no other mechanical function.

    from evennia.utils import eveditor class CmdSetTestAttr(Command): - """ + """ Set the "test" Attribute using the line editor. @@ -194,7 +194,7 @@ functions will be stored, Python will need to find them.

    caller.msg("Editor exited") class CmdSetTestAttr(Command): - """ + """ Set the "test" Attribute using the line editor. diff --git a/docs/1.0/Components/EvMenu.html b/docs/1.0/Components/EvMenu.html index b143246b06..9959e1a5af 100644 --- a/docs/1.0/Components/EvMenu.html +++ b/docs/1.0/Components/EvMenu.html @@ -145,16 +145,16 @@

    EvMenu

    -
    Is your answer yes or no?
    +
    Is your answer yes or no?
     _________________________________________
    -[Y]es! - Answer yes.
    -[N]o! - Answer no.
    -[A]bort - Answer neither, and abort.
    +[Y]es! - Answer yes.
    +[N]o! - Answer no.
    +[A]bort - Answer neither, and abort.
     
    -> Y
    -You chose yes!
    +> Y
    +You chose yes!
     
    -Thanks for your answer. Goodbye!
    +Thanks for your answer. Goodbye!
     

    EvMenu is used for generate branching multi-choice menus. Each menu ‘node’ can @@ -575,7 +575,7 @@ needed. Here is an example:

    class MyEvMenu(EvMenu): def nodetext_formatter(self, nodetext): - """ + """ Format the node text itself. Args: @@ -587,7 +587,7 @@ needed. Here is an example:

    """ def helptext_formatter(self, helptext): - """ + """ Format the node's help text Args: @@ -599,7 +599,7 @@ needed. Here is an example:

    """ def options_formatter(self, optionlist): - """ + """ Formats the option block. Args: @@ -613,7 +613,7 @@ needed. Here is an example:

    """ def node_formatter(self, nodetext, optionstext): - """ + """ Formats the entirety of the node. Args: @@ -835,7 +835,7 @@ enter will be sent into the callback for whatever processing you want.

    from evennia.utils.evmenu import get_input def callback(caller, prompt, user_input): - """ + """ This is a callback you define yourself. Args: @@ -965,7 +965,7 @@ helper function accessed as def define_character(caller): text = \ - """ + """ What aspect of your character do you want to change next? """ diff --git a/docs/1.0/Components/FuncParser.html b/docs/1.0/Components/FuncParser.html index f9d5681041..0ef2da1362 100644 --- a/docs/1.0/Components/FuncParser.html +++ b/docs/1.0/Components/FuncParser.html @@ -121,7 +121,7 @@
    from evennia.utils.funcparser import FuncParser
     
     def _power_callable(*args, **kwargs):
    -    """This will be callable as $pow(number, power=<num>) in string"""
    +    """This will be callable as $pow(number, power=<num>) in string"""
         pow = int(kwargs.get('power', 2))
         return float(args[0]) ** pow
     
    @@ -322,7 +322,7 @@ representation.

    from evennia.utils.utils import safe_convert_to_types
     
     def _process_callable(*args, **kwargs):
    -    """
    +    """
         $process(expression, local, extra1=34, extra2=foo)
     
         """
    diff --git a/docs/1.0/Components/Help-System.html b/docs/1.0/Components/Help-System.html
    index 84336939fd..bafe37f17a 100644
    --- a/docs/1.0/Components/Help-System.html
    +++ b/docs/1.0/Components/Help-System.html
    @@ -120,33 +120,33 @@
                 
       

    Help System

    -
    > help theatre
    +
    > help theatre
     
    ------------------------------------------------------------------------------
    -Help for The theatre (aliases: the hub, curtains)
    +Help for The theatre (aliases: the hub, curtains)
     
    -The theatre is at the centre of the city, both literally and figuratively ...
    -(A lot more text about it follows ...)
    +The theatre is at the centre of the city, both literally and figuratively ...
    +(A lot more text about it follows ...)
     
     Subtopics:
    -  theatre/lore
    -  theatre/layout
    -  theatre/dramatis personae
    +  theatre/lore
    +  theatre/layout
    +  theatre/dramatis personae
     ------------------------------------------------------------------------------
     
    -
    > help evennia
    +
    > help evennia
     
    ------------------------------------------------------------------------------
    -No help found
    +No help found
     
    -There is no help topic matching 'evennia'.
    -... But matches where found within the help texts of the suggestions below.
    +There is no help topic matching 'evennia'.
    +... But matches where found within the help texts of the suggestions below.
     
     Suggestions:
    -  grapevine2chan, about, irc2chan
    +  grapevine2chan, about, irc2chan
     -----------------------------------------------------------------------------
     
    @@ -250,7 +250,7 @@ server and the file-based help entries will be available to view.

    from evennia import Command
     
     class MyCommand(Command): 
    -    """ 
    +    """ 
         This command is great! 
     
         Usage: 
    @@ -290,7 +290,7 @@ everyone can read the help entry.

    For Commands you set the help-related locks the same way you would any lock:

    class MyCommand(Command):
    -    """
    +    """
         <docstring for command>
         """
         key = "mycommand"
    diff --git a/docs/1.0/Components/Objects.html b/docs/1.0/Components/Objects.html
    index 1d9aa5ecaa..9eb9243b17 100644
    --- a/docs/1.0/Components/Objects.html
    +++ b/docs/1.0/Components/Objects.html
    @@ -169,7 +169,7 @@ spend most time working with. Objects are from typeclasses.objects import Object
     
         class Rose(Object):
    -        """
    +        """
             This creates a simple rose object        
             """    
             def at_object_creation(self):
    diff --git a/docs/1.0/Components/Prototypes.html b/docs/1.0/Components/Prototypes.html
    index cde98c46bf..9d7ea6cce7 100644
    --- a/docs/1.0/Components/Prototypes.html
    +++ b/docs/1.0/Components/Prototypes.html
    @@ -123,9 +123,9 @@
                 
       

    Spawner and Prototypes

    -
    > spawn goblin
    +
    > spawn goblin
     
    -Spawned Goblin Grunt(#45)
    +Spawned Goblin Grunt(#45)
     

    The spawner is a system for defining and creating individual objects from a base template called a prototype. It is only designed for use with in-game Objects, not any other type of entity.

    @@ -235,7 +235,7 @@ may use the prototype to create new objects.

    Here is how a protfunc is defined (same as other funcparser functions).

    # this is a silly example, you can just color the text red with |r directly!
     def red(*args, **kwargs):
    -   """
    +   """
        Usage: $red(<text>)
        Returns the same text you entered, but red.
        """
    diff --git a/docs/1.0/Components/Scripts.html b/docs/1.0/Components/Scripts.html
    index c382a39fcc..f59d064bbb 100644
    --- a/docs/1.0/Components/Scripts.html
    +++ b/docs/1.0/Components/Scripts.html
    @@ -212,7 +212,7 @@ can use this as a base for your own scripts.

    class MyScript(Script): def at_script_creation(self): - """Called once, when script is first created""" + """Called once, when script is first created""" self.key = "myscript" self.db.foo = "bar" @@ -315,7 +315,7 @@ If so, the ‘parent object’ will be available to the script as either import random class Weather(Script): - """ + """ A timer script that displays weather info. Meant to be attached to a room. diff --git a/docs/1.0/Components/Website.html b/docs/1.0/Components/Website.html index 3b8431fb6f..554b4d1a2e 100644 --- a/docs/1.0/Components/Website.html +++ b/docs/1.0/Components/Website.html @@ -282,13 +282,13 @@ around it!

    browser without cache (Ctrl-F5 in Firefox, for example).

    As an example, add/copy custom.css to mygame/web/static/website/css/ and add the following:

    -
    .navbar {
    -  background-color: #7a3d54;
    -}
    +
    .navbar {
    +  background-color: #7a3d54;
    +}
     
    -.footer {
    -  background-color: #7a3d54;
    -}
    +.footer {
    +  background-color: #7a3d54;
    +}
     

    Reload and your website now has a red theme!

    diff --git a/docs/1.0/Concepts/Connection-Styles.html b/docs/1.0/Concepts/Connection-Styles.html index 8441763b33..081fdabd1e 100644 --- a/docs/1.0/Concepts/Connection-Styles.html +++ b/docs/1.0/Concepts/Connection-Styles.html @@ -108,7 +108,7 @@

    Character connection styles

    -
    > login Foobar password123
    +
    > login Foobar password123
     

    Evennia supports multiple ways for players to connect to the game. This allows Evennia to mimic the behavior of various other servers, or open things up for a custom solution.

    diff --git a/docs/1.0/Concepts/Messagepath.html b/docs/1.0/Concepts/Messagepath.html index 898ecf3991..18a688aa9f 100644 --- a/docs/1.0/Concepts/Messagepath.html +++ b/docs/1.0/Concepts/Messagepath.html @@ -119,14 +119,14 @@

    The Message path

    -
    > look
    +
    > look
     
    -A Meadow 
    +A Meadow 
     
    -This is a beautiful meadow. It is full of flowers.
    +This is a beautiful meadow. It is full of flowers.
     
    -You see: a flower
    -Exits: north, east
    +You see: a flower
    +Exits: north, east
     

    When you send a command like look into Evennia - what actually happens? How does that look string end up being handled by the CmdLook class? What happens when we use e.g. caller.msg() to send the message back

    diff --git a/docs/1.0/Concepts/Protocols.html b/docs/1.0/Concepts/Protocols.html index 29dae04a9a..9347e3e7a5 100644 --- a/docs/1.0/Concepts/Protocols.html +++ b/docs/1.0/Concepts/Protocols.html @@ -225,7 +225,7 @@ Evennia-specific inputs.

    # the Evennia internals. def disconnect(self, reason=None): - """ + """ Called when connection closes. This can also be called directly by Evennia when manually closing the connection. Do any cleanups here. @@ -233,12 +233,12 @@ Evennia-specific inputs.

    self.sessionhandler.disconnect(self) def at_login(self): - """ + """ Called when this session authenticates by the server (if applicable) """ def data_in(self, **kwargs): - """ + """ Data going into the server should go through this method. It should pass data into `sessionhandler.data_in`. THis will be called by the sessionhandler with the data it gets from the approrpriate @@ -247,7 +247,7 @@ Evennia-specific inputs.

    self.sessionhandler.data_in(self, text=kwargs['data']) def data_out(self, **kwargs): - """ + """ Data going out from the server should go through this method. It should hand off to the protocol's send method, whatever it's called. """ @@ -258,14 +258,14 @@ Evennia-specific inputs.

    # with `msg(outfunc_name=<data>)`. def send_text(self, txt, *args, **kwargs): - """ + """ Send text, used with e.g. `session.msg(text="foo")` """ # we make use of the self.data_out(text=txt) def send_default(self, cmdname, *args, **kwargs): - """ + """ Handles all outputfuncs without an explicit `send_*` method to handle them. """ self.data_out(**{cmdname: str(args)}) diff --git a/docs/1.0/Contribs/Contrib-Building-Menu.html b/docs/1.0/Contribs/Contrib-Building-Menu.html index 42ff4551f0..2adb7f6eab 100644 --- a/docs/1.0/Contribs/Contrib-Building-Menu.html +++ b/docs/1.0/Contribs/Contrib-Building-Menu.html @@ -259,7 +259,7 @@ here, feel free to organize the code differently):

    class EditCmd(Command): - """ + """ Editing command. Usage: @@ -336,7 +336,7 @@ at the top of the file:

    And in the class below (CharacterCmdSet), add the last line of this code:

    class CharacterCmdSet(default_cmds.CharacterCmdSet):
    -    """
    +    """
         The `CharacterCmdSet` contains general in-game commands like `look`,
         `get`, etc available on in-game Character objects. It is merged with
         the `AccountCmdSet` when an Account puppets a Character.
    @@ -344,7 +344,7 @@ at the top of the file:

    key = "DefaultCharacter" def at_cmdset_creation(self): - """ + """ Populates the cmdset """ super().at_cmdset_creation() @@ -364,7 +364,7 @@ the RoomBuildingMen class RoomBuildingMenu(BuildingMenu): - """ + """ Building menu to edit a room. For the time being, we have only one choice: key, to edit the room key. @@ -456,7 +456,7 @@ class, with a method and a single line of code within, we’ve added a menu with

    Let’s examine our code again:

    class RoomBuildingMenu(BuildingMenu):
     
    -    """
    +    """
         Building menu to edit a room.
     
         For the time being, we have only one choice: key, to edit the room key.
    @@ -523,7 +523,7 @@ can specify the title and key of this menu.  You can also call a function when t
     commands/building.py to see it):

    class RoomBuildingMenu(BuildingMenu):
     
    -    """
    +    """
         Building menu to edit a room.
         """
     
    @@ -626,7 +626,7 @@ example using some of these arguments (again, replace the commands/building.py with the following code to see it working):

    class RoomBuildingMenu(BuildingMenu):
     
    -    """
    +    """
         Building menu to edit a room.
     
         For the time being, we have only one choice: key, to edit the room key.
    @@ -720,7 +720,7 @@ great.  Perhaps even add new exits?

    it’s explained below:

    class RoomBuildingMenu(BuildingMenu):
     
    -    """
    +    """
         Building menu to edit a room.
     
         """
    @@ -741,7 +741,7 @@ it’s explained below:

    # Menu functions def glance_exits(room): - """Show the room exits.""" + """Show the room exits.""" if room.exits: glance = "" for exit in room.exits: @@ -813,7 +813,7 @@ callback. To see it in action, as usual, replace the class and functions in class RoomBuildingMenu(BuildingMenu): - """ + """ Building menu to edit a room. """ @@ -834,7 +834,7 @@ callback. To see it in action, as usual, replace the class and functions in # Menu functions def glance_exits(room): - """Show the room exits.""" + """Show the room exits.""" if room.exits: glance = "" for exit in room.exits: @@ -845,7 +845,7 @@ callback. To see it in action, as usual, replace the class and functions in return "\n |gNo exit yet|n" def text_exits(caller, room): - """Show the room exits in the choice itself.""" + """Show the room exits in the choice itself.""" text = "-" * 79 text += "\n\nRoom exits:" text += "\n Use |y@c|n to create a new exit." @@ -1014,7 +1014,7 @@ explanations next!

    class RoomBuildingMenu(BuildingMenu): - """ + """ Building menu to edit a room. For the time being, we have only one choice: key, to edit the room key. @@ -1040,7 +1040,7 @@ explanations next!

    # Menu functions def glance_exits(room): - """Show the room exits.""" + """Show the room exits.""" if room.exits: glance = "" for exit in room.exits: @@ -1051,7 +1051,7 @@ explanations next!

    return "\n |gNo exit yet|n" def text_exits(caller, room): - """Show the room exits in the choice itself.""" + """Show the room exits in the choice itself.""" text = "-" * 79 text += "\n\nRoom exits:" text += "\n Use |y@c|n to create a new exit." @@ -1071,7 +1071,7 @@ explanations next!

    return text def nomatch_exits(menu, caller, room, string): - """ + """ The user typed something in the list of exits. Maybe an exit name? """ string = string[3:] @@ -1086,7 +1086,7 @@ explanations next!

    # Exit sub-menu def text_single_exit(menu, caller): - """Show the text to edit single exits.""" + """Show the text to edit single exits.""" exit = menu.keys[1] if exit is None: return "" @@ -1100,7 +1100,7 @@ explanations next!

    """ def nomatch_single_exit(menu, caller, room, string): - """The user entered something in the exit sub-menu. Replace the exit key.""" + """The user entered something in the exit sub-menu. Replace the exit key.""" # exit is the second key element: keys should contain ['e', <Exit object>] exit = menu.keys[1] if exit is None: @@ -1163,7 +1163,7 @@ depending on what you want to achieve. So let’s build two menus:

    class RoomBuildingMenu(BuildingMenu): - """ + """ Building menu to edit a room. """ @@ -1184,7 +1184,7 @@ depending on what you want to achieve. So let’s build two menus:

    # Menu functions def glance_exits(room): - """Show the room exits.""" + """Show the room exits.""" if room.exits: glance = "" for exit in room.exits: @@ -1195,7 +1195,7 @@ depending on what you want to achieve. So let’s build two menus:

    return "\n |gNo exit yet|n" def text_exits(caller, room): - """Show the room exits in the choice itself.""" + """Show the room exits in the choice itself.""" text = "-" * 79 text += "\n\nRoom exits:" text += "\n Use |y@c|n to create a new exit." @@ -1215,7 +1215,7 @@ depending on what you want to achieve. So let’s build two menus:

    return text def nomatch_exits(menu, caller, room, string): - """ + """ The user typed something in the list of exits. Maybe an exit name? """ string = string[3:] @@ -1230,7 +1230,7 @@ depending on what you want to achieve. So let’s build two menus:

    class ExitBuildingMenu(BuildingMenu): - """ + """ Building menu to edit an exit. """ diff --git a/docs/1.0/Contribs/Contrib-Crafting.html b/docs/1.0/Contribs/Contrib-Crafting.html index b7c5087631..784ab148af 100644 --- a/docs/1.0/Contribs/Contrib-Crafting.html +++ b/docs/1.0/Contribs/Contrib-Crafting.html @@ -185,7 +185,7 @@ there:

    class RecipeBread(CraftingRecipe): - """ + """ Bread is good for making sandwitches! """ @@ -239,7 +239,7 @@ example setting:

    from evennia.contrib.game_systems.crafting import CraftingRecipe class WoodenPuppetRecipe(CraftingRecipe): - """A puppet"""" + """A puppet"""" name = "wooden puppet" # name to refer to this recipe as tool_tags = ["knife"] consumable_tags = ["wood"] @@ -283,7 +283,7 @@ know ingredients.

    recipe’s requirements. This is great for testing.

    Assuming these objects were put in our inventory, we could now craft using the in-game command:

    -
    > craft wooden puppet from wood using hobby knife
    +
    > craft wooden puppet from wood using hobby knife
     

    In code we would do

    @@ -343,12 +343,12 @@ parent class and have your recipes inherit from this.

    from evennia.contrib.game_systems.crafting import CraftingRecipe class SkillRecipe(CraftingRecipe): - """A recipe that considers skill""" + """A recipe that considers skill""" difficulty = 20 def craft(self, **kwargs): - """The input is ok. Determine if crafting succeeds""" + """The input is ok. Determine if crafting succeeds""" # this is set at initialization crafter = self.crafte diff --git a/docs/1.0/Contribs/Contrib-Ingame-Python.html b/docs/1.0/Contribs/Contrib-Ingame-Python.html index c4f49626af..a820071661 100644 --- a/docs/1.0/Contribs/Contrib-Ingame-Python.html +++ b/docs/1.0/Contribs/Contrib-Ingame-Python.html @@ -340,7 +340,7 @@ this:

    from evennia.contrib.base_systems.ingame_python.commands import CmdCallback class CharacterCmdSet(default_cmds.CharacterCmdSet): - """ + """ The `CharacterCmdSet` contains general in-game commands like `look`, `get`, etc available on in-game Character objects. It is merged with the `PlayerCmdSet` when a Player puppets a Character. @@ -348,7 +348,7 @@ this:

    key = "DefaultCharacter" def at_cmdset_creation(self): - """ + """ Populates the cmdset """ super().at_cmdset_creation() @@ -830,7 +830,7 @@ write something like:

    @register_events class Object(EventObject): - """ + """ Class representing objects. """ @@ -881,7 +881,7 @@ of an object. If this object is valid, it will call its “push” event.

    class CmdPush(Command): - """ + """ Push something. Usage: @@ -894,7 +894,7 @@ of an object. If this object is valid, it will call its “push” event.

    key = "push" def func(self): - """Called when pushing something.""" + """Called when pushing something.""" if not self.args.strip(): self.msg("Usage: push <something>") return diff --git a/docs/1.0/Contribs/Contrib-Mapbuilder-Tutorial.html b/docs/1.0/Contribs/Contrib-Mapbuilder-Tutorial.html index ff59827e70..79f915768a 100644 --- a/docs/1.0/Contribs/Contrib-Mapbuilder-Tutorial.html +++ b/docs/1.0/Contribs/Contrib-Mapbuilder-Tutorial.html @@ -354,7 +354,7 @@ of characters allowing us to pick out the characters we need.

    world_map = world_map.split('\n') def return_map(): - """ + """ This function returns the whole map """ map = "" @@ -367,7 +367,7 @@ of characters allowing us to pick out the characters we need.

    return map def return_minimap(x, y, radius = 2): - """ + """ This function returns only part of the map. Returning all chars in a 2 char radius from (x,y) """ diff --git a/docs/1.0/Contribs/Contrib-Mapbuilder.html b/docs/1.0/Contribs/Contrib-Mapbuilder.html index a895779f22..71d80d30a3 100644 --- a/docs/1.0/Contribs/Contrib-Mapbuilder.html +++ b/docs/1.0/Contribs/Contrib-Mapbuilder.html @@ -222,7 +222,7 @@ convenience The below example code should be in ''' def example1_build_forest(x, y, **kwargs): - '''A basic example of build instructions. Make sure to include **kwargs + '''A basic example of build instructions. Make sure to include **kwargs in the arguments and return an instance of the room for exit generation.''' # Create a room and provide a basic description. @@ -237,7 +237,7 @@ convenience The below example code should be in def example1_build_mountains(x, y, **kwargs): - '''A room that is a little more advanced''' + '''A room that is a little more advanced''' # Create the room. room = create_object(rooms.Room, key="mountains" + str(x) + str(y)) @@ -263,7 +263,7 @@ convenience The below example code should be in def example1_build_temple(x, y, **kwargs): - '''A unique room that does not need to be as general''' + '''A unique room that does not need to be as general''' # Create the room. room = create_object(rooms.Room, key="temple" + str(x) + str(y)) @@ -325,7 +325,7 @@ convenience The below example code should be in ''' def example2_build_forest(x, y, **kwargs): - '''A basic room''' + '''A basic room''' # If on anything other than the first iteration - Do nothing. if kwargs["iteration"] > 0: return None @@ -338,7 +338,7 @@ convenience The below example code should be in return room def example2_build_verticle_exit(x, y, **kwargs): - '''Creates two exits to and from the two rooms north and south.''' + '''Creates two exits to and from the two rooms north and south.''' # If on the first iteration - Do nothing. if kwargs["iteration"] == 0: return @@ -359,7 +359,7 @@ convenience The below example code should be in def example2_build_horizontal_exit(x, y, **kwargs): - '''Creates two exits to and from the two rooms east and west.''' + '''Creates two exits to and from the two rooms east and west.''' # If on the first iteration - Do nothing. if kwargs["iteration"] == 0: return diff --git a/docs/1.0/Contribs/Contrib-Unixcommand.html b/docs/1.0/Contribs/Contrib-Unixcommand.html index abbdd6268c..e20e76626e 100644 --- a/docs/1.0/Contribs/Contrib-Unixcommand.html +++ b/docs/1.0/Contribs/Contrib-Unixcommand.html @@ -128,7 +128,7 @@ should normally not override the normal class CmdPlant(UnixCommand): - ''' + ''' Plant a tree or plant. This command is used to plant something in the room you are in. diff --git a/docs/1.0/Contribs/Contrib-XYZGrid.html b/docs/1.0/Contribs/Contrib-XYZGrid.html index 47eec06b5b..37ab8f077b 100644 --- a/docs/1.0/Contribs/Contrib-XYZGrid.html +++ b/docs/1.0/Contribs/Contrib-XYZGrid.html @@ -1073,11 +1073,11 @@ added, with different map-legend symbols:

    """ class TransitionToMapA(xymap_legend.MapTransitionNode): - """Transition to MapA""" + """Transition to MapA""" target_map_xyz = (1, 4, "mapA") class TransitionToMapC(xymap_legend.MapTransitionNode): - """Transition to MapB""" + """Transition to MapB""" target_map_xyz = (12, 14, "mapC") LEGEND = { diff --git a/docs/1.0/Contributing-Docs.html b/docs/1.0/Contributing-Docs.html index 3c86a0c76a..f1eefb9497 100644 --- a/docs/1.0/Contributing-Docs.html +++ b/docs/1.0/Contributing-Docs.html @@ -406,7 +406,7 @@ class CmdEcho(Command):
    from evennia import Command
     class CmdEcho(Command):
    -  """
    +  """
       Usage: echo <arg>
       """
       key = "echo"
    @@ -434,9 +434,9 @@ Indent returns from the game.

    ```
    -
    > look at flower
    -  Red Flower(#34)
    -  A flower with red petals.
    +
    > look at flower
    +  Red Flower(#34)
    +  A flower with red petals.
     

    For actual shell prompts you can either use bash language type or just indent the line. @@ -449,8 +449,8 @@ evennia/ mygame/ evennia start --log

    -
    $ ls
    -evennia/ mygame/
    +
    $ ls
    +evennia/ mygame/
     
    evennia start --log
    @@ -604,7 +604,7 @@ class CmdEcho(Command):
     7
     8
    from evennia import Command
     class CmdEcho(Command):
    -    """
    +    """
         Usage: echo <arg>
         """
         key = "echo"
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html
    index 874048a917..b4feeb7093 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html
    @@ -137,7 +137,7 @@ database. They are “just” normal Python classes.

    # from evennia import default_cmds class Command(BaseCommand): - """ + """ (class docstring) """ pass @@ -234,7 +234,7 @@ current cmdset (self.cmdset): ChannelCmdSet
    # ...
     
     class CmdEcho(Command):
    -    """
    +    """
         A simple echo command
     
         Usage:
    @@ -276,7 +276,7 @@ Echo: 'Woo Tang!'
     
    # ...
     
     class CmdEcho(Command):
    -    """
    +    """
         A simple echo command
     
         Usage:
    @@ -356,7 +356,7 @@ You hit <target> with full force!
     23
    # ...
     
     class CmdHit(Command):
    -    """
    +    """
         Hit a target.
     
         Usage:
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Evennia-Library-Overview.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Evennia-Library-Overview.html
    index f1dee65b0f..4aa9d31e88 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Evennia-Library-Overview.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Evennia-Library-Overview.html
    @@ -194,7 +194,7 @@ from here to mygame
     from evennia import DefaultObject
     
     class Object(DefaultObject):
    -    """
    +    """
         class docstring
         """
         pass
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Learning-Typeclasses.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Learning-Typeclasses.html
    index 0ec22adcb2..ac405a265b 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Learning-Typeclasses.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Learning-Typeclasses.html
    @@ -132,7 +132,7 @@ and Smaug and made them fly and breathe fire. So far our dragons are short-lived
     

    This is what you should have in mygame/typeclasses/monsters.py so far:

    
     class Monster:
    -    """
    +    """
         This is a base class for Monsters.
         """
      
    @@ -144,7 +144,7 @@ and Smaug and made them fly and breathe fire. So far our dragons are short-lived
     
     
     class Dragon(Monster):
    -    """
    +    """
         This is a dragon-specific monster.
         """
     
    @@ -153,7 +153,7 @@ and Smaug and made them fly and breathe fire. So far our dragons are short-lived
             print("The world trembles.")
     
         def firebreath(self):
    -        """ 
    +        """ 
             Let our dragon breathe fire.
             """
             print(f"{self.key} breathes fire!")
    @@ -170,13 +170,13 @@ open it:

    from evennia import DefaultObject class ObjectParent: - """ + """ class docstring """ pass class Object(ObjectParent, DefaultObject): - """ + """ class docstring """ pass @@ -191,7 +191,7 @@ of your Objectsfrom typeclasses.objects import Object class Monster(Object): - """ + """ This is a base class for Monsters. """ def move_around(self): @@ -199,7 +199,7 @@ of your Objectsclass Dragon(Monster): - """ + """ This is a dragon-specific Monster. """ @@ -208,7 +208,7 @@ of your Objectsprint("The world trembles.") def firebreath(self): - """ + """ Let our dragon breathe fire. """ print(f"{self.key} breathes fire!") @@ -435,7 +435,7 @@ add your own BASE_O from evennia import DefaultCharacter class Character(DefaultCharacter): - """ + """ (class docstring) """ pass @@ -483,7 +483,7 @@ commands available to you at a given moment.

    Let’s try something simple first. Back in mygame/typeclasses/characters.py:

    
     class Character(DefaultCharacter):
    -    """
    +    """
         (class docstring)
         """
     
    @@ -492,7 +492,7 @@ commands available to you at a given moment.

    intelligence = 15 def get_stats(self): - """ + """ Get the main stats of this character """ return self.strength, self.dexterity, self.intelligence @@ -545,12 +545,12 @@ Strength is 10. mygame/typeclasses/characters.py like this:

    
     class Character(DefaultCharacter):
    -    """
    +    """
         (class docstring)
         """
     
         def get_stats(self):
    -        """
    +        """
             Get the main stats of this character
             """
             return self.db.strength, self.db.dexterity, self.db.intelligence
    @@ -602,7 +602,7 @@ AttributeError: 'Character' object has no attribute 'strength'
     import random 
     
     class Character(DefaultCharacter):
    -    """
    +    """
         (class docstring)
         """
     
    @@ -612,7 +612,7 @@ AttributeError: 'Character' object has no attribute 'strength'
             self.db.intelligence = random.randint(3, 18)
         
         def get_stats(self):
    -        """
    +        """
             Get the main stats of this character
             """
             return self.db.strength, self.db.dexterity, self.db.intelligence
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Making-A-Sittable-Object.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Making-A-Sittable-Object.html
    index 940034f0bd..160a1d17fd 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Making-A-Sittable-Object.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Making-A-Sittable-Object.html
    @@ -140,7 +140,7 @@ This requires a change to our Character typeclass. Open # ...
     
         def at_pre_move(self, destination):
    -       """
    +       """
            Called by self.move_to when trying to move somewhere. If this returns
            False, the move is immediately cancelled.
            """
    @@ -189,7 +189,7 @@ will call character
     class Sittable(Object):
     
         def do_sit(self, sitter):
    -        """
    +        """
             Called when trying to sit on/in this object.
     
             Args:
    @@ -239,7 +239,7 @@ will call character
     17
    # add this right after the `do_sit method` in the same class 
     
         def do_stand(self, stander):
    -        """
    +        """
             Called when trying to stand from this object.
     
             Args:
    @@ -323,7 +323,7 @@ will call character
     class Sittable(DefaultObject):
     
         def do_sit(self, sitter):
    -        """
    +        """
             Called when trying to sit on/in this object.
     
             Args:
    @@ -345,7 +345,7 @@ will call character
             sitter.msg(f"You sit {adjective} {self.key}")
     
         def do_stand(self, stander):
    -        """
    +        """
             Called when trying to stand from this object.
     
             Args:
    @@ -459,7 +459,7 @@ As you sit down in armchair, life feels easier.
     from evennia import Command, CmdSet
     
     class CmdSit(Command):
    -    """
    +    """
         Sit down.
         """
         key = "sit"
    @@ -467,7 +467,7 @@ As you sit down in armchair, life feels easier.
             self.obj.do_sit(self.caller)
     
     class CmdStand(Command):
    -     """
    +     """
          Stand up.
          """
          key = "stand"
    @@ -505,7 +505,7 @@ As you sit down in armchair, life feels easier.
     from commands.sittables import CmdSetSit 
     
     class Sittable(DefaultObject):
    -    """
    +    """
         (docstring)
         """
         def at_object_creation(self):
    @@ -564,7 +564,7 @@ of mygame/commands/
     # ...
     
     class CmdNoSitStand(Command):
    -    """
    +    """
         Sit down or Stand up
         """
         key = "sit"
    @@ -588,7 +588,7 @@ of mygame/commands/
     from commands import sittables
     
     class CharacterCmdSet(CmdSet):
    -    """
    +    """
         (docstring)
         """
         def at_cmdset_creation(self):
    @@ -648,7 +648,7 @@ More than one match for 'stand' (please narrow target):
     # ...
     
     class CmdStand(Command):
    -     """
    +     """
          Stand up.
          """
          key = "stand"
    @@ -672,7 +672,7 @@ What will be checked is the # ...
     
     def sitsonthis(accessing_obj, accessed_obj, *args, **kwargs):
    -    """
    +    """
         True if accessing_obj is sitting on/in the accessed_obj.
         """
         return accessed_obj.db.sitting == accessing_obj
    @@ -775,7 +775,7 @@ You stand up from chair.
     # new from here
     
     class CmdSit2(Command):
    -    """
    +    """
         Sit down.
     
         Usage:
    @@ -836,7 +836,7 @@ You stand up from chair.
     21
    # end of mygame/commands/sittables.py
     
     class CmdStand2(Command):
    -    """
    +    """
         Stand up.
     
         Usage:
    @@ -867,7 +867,7 @@ You stand up from chair.
     from commands import sittables
     
     class CharacterCmdSet(CmdSet):
    -    """
    +    """
         (docstring)
         """
         def at_cmdset_creation(self):
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-More-on-Commands.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-More-on-Commands.html
    index c7e0e40c01..f827553e53 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-More-on-Commands.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-More-on-Commands.html
    @@ -180,7 +180,7 @@ you are in a hurry. Time to modify 43
    #...
     
     class CmdHit(Command):
    -    """
    +    """
         Hit a target.
     
         Usage:
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-classes-and-objects.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-classes-and-objects.html
    index 12a3061855..e3ff36bd17 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-classes-and-objects.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-classes-and-objects.html
    @@ -232,13 +232,13 @@ imports at the top, resources that are then used by all code in that module.

    from evennia import DefaultObject class ObjectParent: - """ + """ class docstring """ pass class Object(DefaultObject): - """ + """ class docstring """ pass @@ -389,7 +389,7 @@ objects in turn. Some examples:

    Let’s expand mygame/typeclasses/monsters.py with another class:

    
     class Monster:
    -    """
    +    """
         This is a base class for Monster.
         """
     
    @@ -401,7 +401,7 @@ objects in turn. Some examples:

    class Dragon(Monster): - """ + """ This is a dragon monster. """ @@ -409,7 +409,7 @@ objects in turn. Some examples:

    print(f"{self.key} flies through the air high above!") def firebreath(self): - """ + """ Let our dragon breathe fire. """ print(f"{self.key} breathes fire!") diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Searching-Things.html b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Searching-Things.html index e8930a6000..1505f77bdb 100644 --- a/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Searching-Things.html +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Searching-Things.html @@ -171,7 +171,7 @@ What is returned from the main search functions is actually a `queryset`. They c
    from evennia import Command
     
     class CmdQuickFind(Command):
    -	""" 
    +	""" 
     	Find an item in your current location.
     
     	Usage: 
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Characters.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Characters.html
    index 2e332a4339..a844bcff1e 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Characters.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Characters.html
    @@ -212,7 +212,7 @@ since it can also get confusing to follow the code.

    is_pc = False def heal(self, hp): - """ + """ Heal hp amount of health, not allowing to exceed our max hp """ @@ -223,30 +223,30 @@ since it can also get confusing to follow the code.

    self.msg(f"You heal for {healed} HP.") def at_pay(self, amount): - """When paying coins, make sure to never detract more than we have""" + """When paying coins, make sure to never detract more than we have""" amount = min(amount, self.coins) self.coins -= amount return amount def at_damage(self, damage, attacker=None): - """Called when attacked and taking damage.""" + """Called when attacked and taking damage.""" self.hp -= damage def at_defeat(self): - """Called when defeated. By default this means death.""" + """Called when defeated. By default this means death.""" self.at_death() def at_death(self): - """Called when this thing dies.""" + """Called when this thing dies.""" # this will mean different things for different living things pass def at_do_loot(self, looted): - """Called when looting another entity""" + """Called when looting another entity""" looted.at_looted(self) def at_looted(self, looter): - """Called when looted by another entity""" + """Called when looted by another entity""" # default to stealing some coins max_steal = dice.roll("1d10") @@ -271,7 +271,7 @@ in the mixin means we can expect these methods to be available for all living th class EvAdventureCharacter(LivingMixin, DefaultCharacter): - """ + """ A character to use for EvAdventure. """ is_pc = True @@ -291,7 +291,7 @@ in the mixin means we can expect these methods to be available for all living th coins = AttributeProperty(0) def at_defeat(self): - """Characters roll on the death table""" + """Characters roll on the death table""" if self.location.allow_death: # this allow rooms to have non-lethal battles dice.roll_death(self) @@ -302,7 +302,7 @@ in the mixin means we can expect these methods to be available for all living th self.heal(self.hp_max) def at_death(self): - """We rolled 'dead' on the death table.""" + """We rolled 'dead' on the death table.""" self.location.msg_contents( "$You() collapse in a heap, embraced by death.", from_obj=self) diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Chargen.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Chargen.html index 5e1ed4e09d..9611402dbc 100644 --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Chargen.html +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Chargen.html @@ -321,19 +321,19 @@ Abilities once. We will use this to know if it has been done or not.

    # in mygame/evadventure/chargen.py 
     
     _TEMP_SHEET = """
    -{name}
    +{name}
     
    -STR +{strength}
    -DEX +{dexterity}
    -CON +{constitution}
    -INT +{intelligence}
    -WIS +{wisdom}
    -CHA +{charisma}
    +STR +{strength}
    +DEX +{dexterity}
    +CON +{constitution}
    +INT +{intelligence}
    +WIS +{wisdom}
    +CHA +{charisma}
     
    -{description}
    +{description}
         
     Your belongings:
    -{equipment}
    +{equipment}
     """
     
     class TemporaryCharacterSheet: 
    @@ -451,7 +451,7 @@ created in the # this goes to the bottom of the module
     
     def start_chargen(caller, session=None):
    -    """
    +    """
         This is a start point for spinning up the chargen from a command later.
     
         """
    @@ -558,7 +558,7 @@ know this, we check the # after previous node 
     
     def _update_name(caller, raw_string, **kwargs):
    -    """
    +    """
         Used by node_change_name below to check what user 
         entered and update the name if appropriate.
     
    @@ -571,7 +571,7 @@ know this, we check the def node_change_name(caller, raw_string, **kwargs):
    -    """
    +    """
         Change the random name of the character.
     
         """
    @@ -632,7 +632,7 @@ were at.

    def _swap_abilities(caller, raw_string, **kwargs): - """ + """ Used by node_swap_abilities to parse the user's input and swap ability values. @@ -664,7 +664,7 @@ were at.

    def node_swap_abilities(caller, raw_string, **kwargs): - """ + """ One is allowed to swap the values of two abilities around, once. """ @@ -673,12 +673,12 @@ were at.

    text = f""" Your current abilities: -STR +{tmp_character.strength} -DEX +{tmp_character.dexterity} -CON +{tmp_character.constitution} -INT +{tmp_character.intelligence} -WIS +{tmp_character.wisdom} -CHA +{tmp_character.charisma} +STR +{tmp_character.strength} +DEX +{tmp_character.dexterity} +CON +{tmp_character.constitution} +INT +{tmp_character.intelligence} +WIS +{tmp_character.wisdom} +CHA +{tmp_character.charisma} You can swap the values of two abilities around. You can only do this once, so choose carefully! @@ -710,7 +710,7 @@ node.

    6.8. Node: Creating the Character

    We get here from the main node by opting to finish chargen.

    node_apply_character(caller, raw_string, **kwargs):
    -    """                              
    +    """                              
         End chargen and create the character. We will also puppet it.
                                          
         """                              
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Equipment.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Equipment.html
    index c06435b315..5f5bb95abe 100644
    --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Equipment.html
    +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Equipment.html
    @@ -173,7 +173,7 @@ for doing one specific thing (managing equipment, in our case).

    self._load() def _load(self): - """Load our data from an Attribute on `self.obj`""" + """Load our data from an Attribute on `self.obj`""" self.slots = self.obj.attributes.get( self.save_attribute, category="inventory", @@ -188,7 +188,7 @@ for doing one specific thing (managing equipment, in our case).

    ) def _save(self): - """Save our data back to the same Attribute""" + """Save our data back to the same Attribute""" self.obj.attributes.add(self.save_attribute, self.slots, category="inventory")
    @@ -270,21 +270,21 @@ we will skip that for this tutorial.

    # ... def at_pre_object_receive(self, moved_object, source_location, **kwargs): - """Called by Evennia before object arrives 'in' this character (that is, + """Called by Evennia before object arrives 'in' this character (that is, if they pick up something). If it returns False, move is aborted. """ return self.equipment.validate_slot_usage(moved_object) def at_object_receive(self, moved_object, source_location, **kwargs): - """ + """ Called by Evennia when an object arrives 'in' the character. """ self.equipment.add(moved_object) def at_object_leave(self, moved_object, destination, **kwargs): - """ + """ Called by Evennia when object leaves the Character. """ @@ -306,7 +306,7 @@ we can use this, we need to go actually adding those methods.

    from .enums import WieldLocation, Ability class EquipmentError(TypeError): - """All types of equipment-errors""" + """All types of equipment-errors""" pass class EquipmentHandler: @@ -315,11 +315,11 @@ we can use this, we need to go actually adding those methods.

    @property def max_slots(self): - """Max amount of slots, based on CON defense (CON + 10)""" + """Max amount of slots, based on CON defense (CON + 10)""" return getattr(self.obj, Ability.CON.value, 1) + 10 def count_slots(self): - """Count current slot usage""" + """Count current slot usage""" slots = self.slots wield_usage = sum( getattr(slotobj, "size", 0) or 0 @@ -332,7 +332,7 @@ we can use this, we need to go actually adding those methods.

    return wield_usage + backpack_usage def validate_slot_usage(self, obj): - """ + """ Check if obj can fit in equipment, based on its size. """ @@ -436,7 +436,7 @@ it is (even if it was in your hands).

    # ... def add(self, obj): - """ + """ Put something in the backpack. """ self.validate_slot_usage(obj) @@ -444,7 +444,7 @@ it is (even if it was in your hands).

    self._save() def remove(self, slot): - """ + """ Remove contents of a particular slot, for example `equipment.remove(WieldLocation.SHIELD_HAND)` """ @@ -486,7 +486,7 @@ on the EquipmentHan # ... def move(self, obj): - """Move object from backpack to its intended `inventory_use_slot`.""" + """Move object from backpack to its intended `inventory_use_slot`.""" # make sure to remove from equipment/backpack first, to avoid double-adding self.remove(obj) @@ -539,7 +539,7 @@ from before. Anything we replace goes back to the backpack.

    # ... def all(self): - """ + """ Get all objects in inventory, regardless of location. """ slots = self.slots diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Objects.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Objects.html index 8193375fcc..f81a2b8c87 100644 --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Objects.html +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Objects.html @@ -183,7 +183,7 @@ child classes to represent the relevant types:

    class EvAdventureObject(DefaultObject): - """ + """ Base for all evadventure objects. """ @@ -196,14 +196,14 @@ child classes to represent the relevant types:

    obj_type = ObjType.GEAR def at_object_creation(self): - """Called when this object is first created. We convert the .obj_type + """Called when this object is first created. We convert the .obj_type property to a database tag.""" for obj_type in make_iter(self.obj_type): self.tags.add(self.obj_type.value, category="obj_type") def get_help(self): - """Get any help text for this item""" + """Get any help text for this item""" return "No help for this item"
    @@ -267,11 +267,11 @@ is also Magical, for example.

    class EvAdventureQuestObject(EvAdventureObject): - """Quest objects should usually not be possible to sell or trade.""" + """Quest objects should usually not be possible to sell or trade.""" obj_type = ObjType.QUEST class EvAdventureTreasure(EvAdventureObject): - """Treasure is usually just for selling for coin""" + """Treasure is usually just for selling for coin""" obj_type = ObjType.TREASURE value = AttributeProperty(100, autocreate=False) @@ -287,22 +287,22 @@ anymore. An example would be a health potion.

    # ... class EvAdventureConsumable(EvAdventureObject): - """An item that can be used up""" + """An item that can be used up""" obj_type = ObjType.CONSUMABLE value = AttributeProperty(0.25, autocreate=False) uses = AttributeProperty(1, autocreate=False) def at_pre_use(self, user, *args, **kwargs): - """Called before using. If returning False, abort use.""" + """Called before using. If returning False, abort use.""" return uses > 0 def at_use(self, user, *args, **kwargs): - """Called when using the item""" + """Called when using the item""" pass def at_post_use(self. user, *args, **kwargs): - """Called after using the item""" + """Called after using the item""" # detract a usage, deleting the item if used up. self.uses -= 1 if self.uses <= 0: @@ -323,7 +323,7 @@ later, overriding a # ... class EvAdventureWeapon(EvAdventureObject): - """Base class for all weapons""" + """Base class for all weapons""" obj_type = ObjType.WEAPON inventory_use_slot = AttributeProperty(WieldLocation.WEAPON_HAND, autocreate=False) @@ -354,7 +354,7 @@ that is also a ‘consumable’ of sorts.

    # ... class EvAdventureRuneStone(EvAdventureWeapon, EvAdventureConsumable): - """Base for all magical rune stones""" + """Base for all magical rune stones""" obj_type = (ObjType.WEAPON, ObjType.MAGIC) inventory_use_slot = WieldLocation.TWO_HANDS # always two hands for magic @@ -366,13 +366,13 @@ that is also a ‘consumable’ of sorts.

    damage_roll = AttibuteProperty("1d8", autocreate=False) def at_post_use(self, user, *args, **kwargs): - """Called after usage/spell was cast""" + """Called after usage/spell was cast""" self.uses -= 1 # we don't delete the rune stone here, but # it must be reset on next rest. def refresh(self): - """Refresh the rune stone (normally after rest)""" + """Refresh the rune stone (normally after rest)""" self.uses = 1
    diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Rules.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Rules.html index 0f061e0ef3..f1d8333c3c 100644 --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Rules.html +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Rules.html @@ -239,7 +239,7 @@ modules:

    class EvAdventureRollEngine: def roll(self, roll_string): - """ + """ Roll XdY dice, where X is the number of dice and Y the number of sides per die. @@ -358,7 +358,7 @@ Attribute is available as def saving_throw(self, character, bonus_type=Ability.STR, target=15, advantage=False, disadvantage=False): - """ + """ Do a saving throw, trying to beat a target. Args: @@ -461,7 +461,7 @@ health on game entities. We will need # ... def heal_from_rest(self, character): - """ + """ A night's rest retains 1d8 + CON HP """ @@ -540,7 +540,7 @@ early table results, for example).

    # ... def roll_random_table(self, dieroll, table_choices): - """ + """ Args: dieroll (str): A die roll string, like "1d20". table_choices (iterable): A list of either single elements or @@ -707,7 +707,7 @@ character!

    class TestEvAdventureRuleEngine(BaseEvenniaTest): def setUp(self): - """Called before every test method""" + """Called before every test method""" super().setUp() self.roll_engine = rules.EvAdventureRollEngine() diff --git a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Utilities.html b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Utilities.html index ebc8fbda51..f3ed212cc9 100644 --- a/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Utilities.html +++ b/docs/1.0/Howtos/Beginner-Tutorial/Part3/Beginner-Tutorial-Utilities.html @@ -198,7 +198,7 @@ likely gradually expand on your enums as you figure out what you’ll need).

    # mygame/evadventure/enums.py
     
     class Ability(Enum):
    -    """
    +    """
         The six base ability-bonuses and other 
         abilities
     
    @@ -254,9 +254,9 @@ a function that produces a pretty display of any object we pass to it.

    _OBJ_STATS = """ |c{key}|n -Value: ~|y{value}|n coins{carried} +Value: ~|y{value}|n coins{carried} -{desc} +{desc} Slots: |w{size}|n, Used from: |w{use_slot_name}|n Quality: |w{quality}|n, Uses: |wuses|n @@ -266,7 +266,7 @@ a function that produces a pretty display of any object we pass to it.

    def get_obj_stats(obj, owner=None): - """ + """ Get a string of stats about the object. Args: @@ -349,7 +349,7 @@ testing get_obj_sta # check that the result is what we expected self.assertEqual( result, - """ + """ |ctestobj|n Value: ~|y10|n coins diff --git a/docs/1.0/Howtos/Evennia-for-Diku-Users.html b/docs/1.0/Howtos/Evennia-for-Diku-Users.html index cc0d792686..7b36f854a4 100644 --- a/docs/1.0/Howtos/Evennia-for-Diku-Users.html +++ b/docs/1.0/Howtos/Evennia-for-Diku-Users.html @@ -141,15 +141,15 @@ are also highly optimized for querying large data sets efficiently.

    pay attention to what object you are using, and when you are accessing another through back- handling, that you are accessing the right object. In Diku C, accessing character object is normally done by:

    -
    /* creating pointer of both character and room struct */
    +
    /* creating pointer of both character and room struct */
     
    -void(struct char ch*, struct room room*){
    -    int dam;
    -    if (ROOM_FLAGGED(room, ROOM_LAVA)){
    -        dam = 100;
    -        ch->damage_taken = dam;
    -    }
    -}
    +void(struct char ch*, struct room room*){
    +    int dam;
    +    if (ROOM_FLAGGED(room, ROOM_LAVA)){
    +        dam = 100;
    +        ch->damage_taken = dam;
    +    }
    +}
     

    As an example for creating Commands in Evennia via the from evennia import Command the character @@ -161,7 +161,7 @@ Account object. For a more familiar Diku feel, create a variable that becomes th from evennia import Command class CmdMyCmd(Command): - """ + """ This is a Command Evennia Object """ diff --git a/docs/1.0/Howtos/Evennia-for-MUSH-Users.html b/docs/1.0/Howtos/Evennia-for-MUSH-Users.html index 56c085cb49..4dfa344a55 100644 --- a/docs/1.0/Howtos/Evennia-for-MUSH-Users.html +++ b/docs/1.0/Howtos/Evennia-for-MUSH-Users.html @@ -214,7 +214,7 @@ commands) are available to the player from moment to moment depending on circums from evennia.contrib import multidescer # <- added now class CharacterCmdSet(default_cmds.CharacterCmdSet): - """ + """ The CharacterCmdSet contains general in-game commands like look, get etc available on in-game Character objects. It is merged with the AccountCmdSet when an Account puppets a Character. @@ -222,7 +222,7 @@ commands) are available to the player from moment to moment depending on circums key = "DefaultCharacter" def at_cmdset_creation(self): - """ + """ Populates the cmdset """ super().at_cmdset_creation() diff --git a/docs/1.0/Howtos/Evennia-for-roleplaying-sessions.html b/docs/1.0/Howtos/Evennia-for-roleplaying-sessions.html index 396227d19a..1bac21dd53 100644 --- a/docs/1.0/Howtos/Evennia-for-roleplaying-sessions.html +++ b/docs/1.0/Howtos/Evennia-for-roleplaying-sessions.html @@ -228,7 +228,7 @@ access) and the IC “Character objects”.

    class Character(DefaultCharacter): # [...] def get_display_name(self, looker, **kwargs): - """ + """ This method customizes how character names are displayed. We assume only permissions of types "Developers" and "Admins" require special attention. @@ -277,7 +277,7 @@ Evennia’s default “mux-like” commands here.

    import evennia class CmdMakeGM(default_cmds.MuxCommand): - """ + """ Change an account's GM status Usage: @@ -535,7 +535,7 @@ example.

    self.update_charsheet() def update_charsheet(self): - """ + """ Call this to update the sheet after any of the ingoing data has changed. """ @@ -584,7 +584,7 @@ The easiest to force an existing Character to re-fire its return True class CmdSheet(MuxCommand): - """ + """ Edit a field on the character sheet Usage: @@ -647,7 +647,7 @@ The easiest to force an existing Character to re-fire its
    # continuing in mygame/commands/command.py
     
     class CmdGMsheet(MuxCommand):
    -    """
    +    """
         GM-modification of char sheets
     
         Usage:
    diff --git a/docs/1.0/Howtos/Howto-Command-Cooldown.html b/docs/1.0/Howtos/Howto-Command-Cooldown.html
    index fb83b50d9e..904d3aaf03 100644
    --- a/docs/1.0/Howtos/Howto-Command-Cooldown.html
    +++ b/docs/1.0/Howtos/Howto-Command-Cooldown.html
    @@ -138,7 +138,7 @@ a while.

    from evennia import default_cmds class CmdSpellFirestorm(default_cmds.MuxCommand): - """ + """ Spell - Firestorm Usage: diff --git a/docs/1.0/Howtos/Howto-Command-Duration.html b/docs/1.0/Howtos/Howto-Command-Duration.html index eddc7ec08a..de995c6076 100644 --- a/docs/1.0/Howtos/Howto-Command-Duration.html +++ b/docs/1.0/Howtos/Howto-Command-Duration.html @@ -153,7 +153,7 @@ Commands. It works because Evennia has especially catered for it as a convenient 15 16
    class CmdTest(Command):
     
    -    """
    +    """
         A test command just to test waiting.
     
         Usage:
    @@ -218,7 +218,7 @@ can be made persistent and also works outside of 31
    from evennia import default_cmds, utils
         
     class CmdEcho(default_cmds.MuxCommand):
    -    """
    +    """
         Wait for an echo
         
         Usage: 
    @@ -239,7 +239,7 @@ can be made persistent and also works outside of )
         
         def func(self):
    -        """
    +        """
              This is called at the initial shout.            
             """
             self.caller.msg(f"You shout '{self.args}' and wait for an echo ...")
    @@ -307,7 +307,7 @@ asynchronous systems. You can also link such calls together:

    36
    from evennia import default_cmds, utils
         
     class CmdEcho(default_cmds.MuxCommand):
    -    """
    +    """
         waits for an echo
         
         Usage: 
    @@ -375,7 +375,7 @@ delay.

    from evennia import utils, default_cmds
         
     class CmdBigSwing(default_cmds.MuxCommand):
    -    """
    +    """
         swing your weapon in a big way
     
         Usage:
    @@ -426,7 +426,7 @@ Below is an example of a crafting command that can be aborted by starting a figh
     
    from evennia import utils, default_cmds
         
     class CmdCraftArmour(default_cmds.MuxCommand):
    -    """
    +    """
         Craft armour
         
         Usage:
    @@ -492,7 +492,7 @@ Below is an example of a crafting command that can be aborted by starting a figh
     # example of a command that aborts crafting
         
     class CmdAttack(default_cmds.MuxCommand):
    -    """
    +    """
         attack someone
         
         Usage:
    diff --git a/docs/1.0/Howtos/Howto-Command-Prompt.html b/docs/1.0/Howtos/Howto-Command-Prompt.html
    index 9b94a5c633..6672dffb62 100644
    --- a/docs/1.0/Howtos/Howto-Command-Prompt.html
    +++ b/docs/1.0/Howtos/Howto-Command-Prompt.html
    @@ -134,7 +134,7 @@ the prompt when they cause a change in health, for example.

        from evennia import Command
     
         class CmdDiagnose(Command):
    -        """
    +        """
             see how hurt your are
     
             Usage: 
    diff --git a/docs/1.0/Howtos/Howto-Default-Exit-Errors.html b/docs/1.0/Howtos/Howto-Default-Exit-Errors.html
    index 3739aaeff6..b605779615 100644
    --- a/docs/1.0/Howtos/Howto-Default-Exit-Errors.html
    +++ b/docs/1.0/Howtos/Howto-Default-Exit-Errors.html
    @@ -136,12 +136,12 @@ exit-object, which is why you can see the exit in the room and just write its na
     from evennia import default_cmds, CmdSet
     
     class CmdExitError(default_cmds.MuxCommand):
    -    """Parent class for all exit-errors."""
    +    """Parent class for all exit-errors."""
         locks = "cmd:all()"
         arg_regex = r"\s|$"
         auto_help = False
         def func(self):
    -        """Returns error based on key"""
    +        """Returns error based on key"""
             self.caller.msg(f"You cannot move {self.key}.")
     
     class CmdExitErrorNorth(CmdExitError):
    diff --git a/docs/1.0/Howtos/Howto-Game-Time.html b/docs/1.0/Howtos/Howto-Game-Time.html
    index abd0fd9f86..fb9c6eb154 100644
    --- a/docs/1.0/Howtos/Howto-Game-Time.html
    +++ b/docs/1.0/Howtos/Howto-Game-Time.html
    @@ -202,13 +202,13 @@ time updated correctly… and going (by default) twice as fast as the real time.
     from typeclasses.rooms import Room
     
     def at_sunrise():
    -    """When the sun rises, display a message in every room."""
    +    """When the sun rises, display a message in every room."""
         # Browse all rooms
         for room in Room.objects.all():
             room.msg_contents("The sun rises from the eastern horizon.")
     
     def start_sunrise_event():
    -    """Schedule an sunrise event to happen every day at 6 AM."""
    +    """Schedule an sunrise event to happen every day at 6 AM."""
         script = gametime.schedule(at_sunrise, repeat=True, hour=6, min=0, sec=0)
         script.key = "at sunrise"
     
    @@ -292,7 +292,7 @@ on other MU*. Here’s an example of how we could write it (for the example, yo class CmdTime(Command): - """ + """ Display the time. Syntax: @@ -304,7 +304,7 @@ on other MU*. Here’s an example of how we could write it (for the example, yo locks = "cmd:all()" def func(self): - """Execute the time command.""" + """Execute the time command.""" # Get the absolute game time year, month, day, hour, mins, secs = custom_gametime.custom_gametime(absolute=True) time_string = f"We are in year {year}, day {day}, month {month}." @@ -320,7 +320,7 @@ on other MU*. Here’s an example of how we could write it (for the example, yo # ... class CharacterCmdSet(default_cmds.CharacterCmdSet): - """ + """ The `CharacterCmdSet` contains general in-game commands like `look`, `get`, etc available on in-game Character objects. It is merged with the `AccountCmdSet` when an Account puppets a Character. @@ -328,7 +328,7 @@ on other MU*. Here’s an example of how we could write it (for the example, yo key = "DefaultCharacter" def at_cmdset_creation(self): - """ + """ Populates the cmdset """ super().at_cmdset_creation() diff --git a/docs/1.0/Howtos/Implementing-a-game-rule-system.html b/docs/1.0/Howtos/Implementing-a-game-rule-system.html index bd19e4663a..a170fa8fad 100644 --- a/docs/1.0/Howtos/Implementing-a-game-rule-system.html +++ b/docs/1.0/Howtos/Implementing-a-game-rule-system.html @@ -199,7 +199,7 @@ weather, NPC artificial intelligence and game economy. Basically everything abou from evennia import DefaultCharacter class Character(DefaultCharacter): - """ + """ Custom rule-restricted character. We randomize the initial skill and ability values bettween 1-10. """ @@ -250,7 +250,7 @@ the following command:

    character.msg(f"You are now level {character.db.level}!") def skill_combat(*args): - """ + """ This determines outcome of combat. The one who rolls under their combat skill AND higher than their opponent's roll hits. @@ -285,7 +285,7 @@ the following command:

    SKILLS = {"combat": skill_combat} def roll_challenge(character1, character2, skillname): - """ + """ Determine the outcome of a skill challenge between two characters based on the skillname given. """ @@ -307,7 +307,7 @@ everyone of their results via from world import rules class CmdAttack(Command): - """ + """ attack an opponent Usage: diff --git a/docs/1.0/Howtos/Turn-based-Combat-System.html b/docs/1.0/Howtos/Turn-based-Combat-System.html index 74e7785f12..6c66323198 100644 --- a/docs/1.0/Howtos/Turn-based-Combat-System.html +++ b/docs/1.0/Howtos/Turn-based-Combat-System.html @@ -161,7 +161,7 @@ need to disengage from the first combat before they could join another).

    from world.rules import resolve_combat class CombatHandler(DefaultScript): - """ + """ This implements the combat handler. """ @@ -170,7 +170,7 @@ need to disengage from the first combat before they could join another).

    def at_script_creation(self): "Called when script is first created" - self.key = f"combat_handler_{random.randint(1, 1000)}" + self.key = f"combat_handler_{random.randint(1, 1000)}" self.desc = "handles combat" self.interval = 60 * 2 # two minute timeout self.start_delay = True @@ -184,7 +184,7 @@ need to disengage from the first combat before they could join another).

    self.db.action_count = {} def _init_character(self, character): - """ + """ This initializes handler back-reference and combat cmdset on a character """ @@ -192,7 +192,7 @@ need to disengage from the first combat before they could join another).

    character.cmdset.add("commands.combat.CombatCmdSet") def _cleanup_character(self, character): - """ + """ Remove character from handler and clean it of the back-reference and cmdset """ @@ -204,7 +204,7 @@ need to disengage from the first combat before they could join another).

    character.cmdset.delete("commands.combat.CombatCmdSet") def at_start(self): - """ + """ This is called on first start but also when the script is restarted after a server reboot. We need to re-assign this combat handler to all characters as well as re-assign the cmdset. @@ -219,7 +219,7 @@ need to disengage from the first combat before they could join another).

    self._cleanup_character(character) def at_repeat(self): - """ + """ This is called every self.interval seconds (turn timeout) or when force_repeat is called (because everyone has entered their commands). We know this by checking the existence of the @@ -262,7 +262,7 @@ need to disengage from the first combat before they could join another).

    character.msg(message) def add_action(self, action, character, target): - """ + """ Called by combat commands to register an action with the handler. action - string identifying the action, like "hit" or "parry" @@ -284,7 +284,7 @@ need to disengage from the first combat before they could join another).

    return True def check_end_turn(self): - """ + """ Called by the command to eventually trigger the resolution of the turn. We check if everyone has added all their actions; if so we call force the @@ -296,7 +296,7 @@ need to disengage from the first combat before they could join another).

    self.force_repeat() def end_turn(self): - """ + """ This resolves all actions by calling the rules module. It then resets everything and starts the next turn. It is called by at_repeat(). @@ -334,7 +334,7 @@ their actions once they have been added (but before the last one has added their from evennia import Command class CmdHit(Command): - """ + """ hit an enemy Usage: @@ -414,7 +414,7 @@ subsequent attack and so on …

    # messages def resolve_combat(combat_handler, actiondict): - """ + """ This is called by the combat handler actiondict is a dictionary with a list of two actions for each character: @@ -496,7 +496,7 @@ subsequent attack and so on …

    from evennia import create_script class CmdAttack(Command): - """ + """ initiates combat Usage: diff --git a/docs/1.0/Howtos/Tutorial-Building-a-Mech.html b/docs/1.0/Howtos/Tutorial-Building-a-Mech.html index d1884d6f30..152a3de214 100644 --- a/docs/1.0/Howtos/Tutorial-Building-a-Mech.html +++ b/docs/1.0/Howtos/Tutorial-Building-a-Mech.html @@ -163,7 +163,7 @@ mech-suitable commands. In Evennia, commands are defined as Python classes.

    from evennia import Command class CmdShoot(Command): - """ + """ Firing the mech’s gun Usage: @@ -210,7 +210,7 @@ damage to the target, but this is enough for now.

    from evennia import default_cmds class MechCmdSet(CmdSet): - """ + """ This allows mechs to do do mech stuff. """ key = "mechcmdset" @@ -254,7 +254,7 @@ behind the scenes. A Typeclass is created in a normal Python source file:

    from evennia import default_cmds class Mech(Object): - """ + """ This typeclass describes an armed Mech. """ def at_object_creation(self): diff --git a/docs/1.0/Howtos/Tutorial-Building-a-Train.html b/docs/1.0/Howtos/Tutorial-Building-a-Train.html index 80676a34aa..ff8af0794f 100644 --- a/docs/1.0/Howtos/Tutorial-Building-a-Train.html +++ b/docs/1.0/Howtos/Tutorial-Building-a-Train.html @@ -159,7 +159,7 @@ available to whomever is either inside it or in the same room as the train.

    from evennia import Command, CmdSet class CmdEnterTrain(Command): - """ + """ entering the train Usage: @@ -178,7 +178,7 @@ available to whomever is either inside it or in the same room as the train.

    class CmdLeaveTrain(Command): - """ + """ leaving the train Usage: @@ -244,7 +244,7 @@ already, but none that we can use for locking a command in this particular case. # file mygame/server/conf/lockfuncs.py def cmdinside(accessing_obj, accessed_obj, *args, **kwargs): - """ + """ Usage: cmdinside() Used to lock commands and only allows access if the command is defined on an object which accessing_obj is inside of. diff --git a/docs/1.0/Howtos/Tutorial-Coordinates.html b/docs/1.0/Howtos/Tutorial-Coordinates.html index c050c98685..e2f263cb39 100644 --- a/docs/1.0/Howtos/Tutorial-Coordinates.html +++ b/docs/1.0/Howtos/Tutorial-Coordinates.html @@ -140,7 +140,7 @@ properties to easily access and update coordinates. This is a Pythonic approach from evennia import DefaultRoom class Room(DefaultRoom): - """ + """ Rooms are like any Object, except their location is None (which is default). They also use basetype_setup() to add locks so they cannot be puppeted or picked up. @@ -152,13 +152,13 @@ properties to easily access and update coordinates. This is a Pythonic approach @property def x(self): - """Return the X coordinate or None.""" + """Return the X coordinate or None.""" x = self.tags.get(category="coordx") return int(x) if isinstance(x, str) else None @x.setter def x(self, x): - """Change the X coordinate.""" + """Change the X coordinate.""" old = self.tags.get(category="coordx") if old is not None: self.tags.remove(old, category="coordx") @@ -167,13 +167,13 @@ properties to easily access and update coordinates. This is a Pythonic approach @property def y(self): - """Return the Y coordinate or None.""" + """Return the Y coordinate or None.""" y = self.tags.get(category="coordy") return int(y) if isinstance(y, str) else None @y.setter def y(self, y): - """Change the Y coordinate.""" + """Change the Y coordinate.""" old = self.tags.get(category="coordy") if old is not None: self.tags.remove(old, category="coordy") @@ -182,13 +182,13 @@ properties to easily access and update coordinates. This is a Pythonic approach @property def z(self): - """Return the Z coordinate or None.""" + """Return the Z coordinate or None.""" z = self.tags.get(category="coordz") return int(z) if isinstance(z, str) else None @z.setter def z(self, z): - """Change the Z coordinate.""" + """Change the Z coordinate.""" old = self.tags.get(category="coordz") if old is not None: self.tags.remove(old, category="coordz") @@ -203,7 +203,7 @@ is well-explained and should help you understand the idea.

    Let’s look at our properties for x. First of all is the read property.

        @property
         def x(self):
    -        """Return the X coordinate or None."""
    +        """Return the X coordinate or None."""
             x = self.tags.get(category="coordx")
             return int(x) if isinstance(x, str) else None
     
    @@ -219,7 +219,7 @@ so we’ll need to convert it.

    Now, let’s look at the method that will be called when we wish to set x in our room:

        @x.setter
         def x(self, x):
    -        """Change the X coordinate."""
    +        """Change the X coordinate."""
             old = self.tags.get(category="coordx")
             if old is not None:
                 self.tags.remove(old, category="coordx")
    @@ -262,7 +262,7 @@ Z=0?

    # ... @classmethod def get_room_at(cls, x, y, z): - """ + """ Return the room at the given location or None if not found. Args: @@ -305,7 +305,7 @@ lost.

    @classmethod def get_rooms_around(cls, x, y, z, distance): - """ + """ Return the list of rooms around the given coordinates. This method returns a list of tuples (distance, room) that diff --git a/docs/1.0/Howtos/Tutorial-NPC-Listening.html b/docs/1.0/Howtos/Tutorial-NPC-Listening.html index 6c4eb561cc..b914f1875b 100644 --- a/docs/1.0/Howtos/Tutorial-NPC-Listening.html +++ b/docs/1.0/Howtos/Tutorial-NPC-Listening.html @@ -116,11 +116,11 @@ The troll under the bridge answers, "well, well. Hello." from characters import Character class Npc(Character): - """ + """ A NPC typeclass which extends the character class. """ def at_heard_say(self, message, from_obj): - """ + """ A simple listener and response. This makes it easy to change for subclasses of NPCs reacting differently to says. diff --git a/docs/1.0/Howtos/Tutorial-NPC-Merchants.html b/docs/1.0/Howtos/Tutorial-NPC-Merchants.html index f3f1825709..d15e57e1e8 100644 --- a/docs/1.0/Howtos/Tutorial-NPC-Merchants.html +++ b/docs/1.0/Howtos/Tutorial-NPC-Merchants.html @@ -127,7 +127,7 @@ To enter the shop, you’ll just need to stand in the same room and use the from evennia import Command, CmdSet, EvMenu class CmdOpenShop(Command): - """ + """ Open the shop! Usage: diff --git a/docs/1.0/Howtos/Tutorial-NPC-Reacting.html b/docs/1.0/Howtos/Tutorial-NPC-Reacting.html index fe145c2428..dd667e0074 100644 --- a/docs/1.0/Howtos/Tutorial-NPC-Reacting.html +++ b/docs/1.0/Howtos/Tutorial-NPC-Reacting.html @@ -119,11 +119,11 @@ location.

    from typeclasses.characters import Character class NPC(Character): - """ + """ A NPC typeclass which extends the character class. """ def at_char_entered(self, character): - """ + """ A simple is_aggressive check. Can be expanded upon later. """ diff --git a/docs/1.0/Howtos/Tutorial-Parsing-Commands.html b/docs/1.0/Howtos/Tutorial-Parsing-Commands.html index 1d6312e441..74e493033f 100644 --- a/docs/1.0/Howtos/Tutorial-Parsing-Commands.html +++ b/docs/1.0/Howtos/Tutorial-Parsing-Commands.html @@ -173,7 +173,7 @@ access the command arguments in To begin with, look at this example:

    class CmdTest(Command):
     
    -    """
    +    """
         Test command.
     
         Syntax:
    @@ -212,7 +212,7 @@ in self.args
     force Python to display the command arguments as a debug string using a little shortcut.

    class CmdTest(Command):
     
    -    """
    +    """
         Test command.
     
         Syntax:
    @@ -280,7 +280,7 @@ string.

    separator, we call lstrip on the command arguments:

    class CmdTest(Command):
     
    -    """
    +    """
         Test command.
     
         Syntax:
    @@ -293,7 +293,7 @@ separator, we call 
         key = "test"
     
         def parse(self):
    -        """Parse arguments, just strip them."""
    +        """Parse arguments, just strip them."""
             self.args = self.args.lstrip()
     
         def func(self):
    @@ -350,7 +350,7 @@ won’t work as is, I warn you:

    class CmdRoll(Command): - """ + """ Play random, enter a number and try your luck. Usage: @@ -367,7 +367,7 @@ won’t work as is, I warn you:

    key = "roll" def parse(self): - """Convert the argument to a number.""" + """Convert the argument to a number.""" self.args = self.args.lstrip() def func(self): @@ -399,7 +399,7 @@ converting:

    class CmdRoll(Command): - """ + """ Play random, enter a number and try your luck. Usage: @@ -416,7 +416,7 @@ converting:

    key = "roll" def parse(self): - """Convert the argument to number if possible.""" + """Convert the argument to number if possible.""" args = self.args.lstrip() # Convert to int if possible @@ -459,7 +459,7 @@ by grouping:

    class CmdRoll(Command): - """ + """ Play random, enter a number and try your luck. Usage: @@ -476,7 +476,7 @@ by grouping:

    key = "roll" def parse(self): - """Convert the argument to number if possible.""" + """Convert the argument to number if possible.""" args = self.args.lstrip() # Convert to int if possible @@ -586,7 +586,7 @@ the number of dice to roll.

    class CmdRoll(Command): - """ + """ Play random, enter a number and try your luck. Specify two numbers separated by a space. The first number is the @@ -606,7 +606,7 @@ the number of dice to roll.

    key = "roll" def parse(self): - """Split the arguments and convert them.""" + """Split the arguments and convert them.""" args = self.args.lstrip() # Split: we expect two arguments separated by a space diff --git a/docs/1.0/Howtos/Tutorial-for-basic-MUSH-like-game.html b/docs/1.0/Howtos/Tutorial-for-basic-MUSH-like-game.html index 5c4387e204..5abd3719a6 100644 --- a/docs/1.0/Howtos/Tutorial-for-basic-MUSH-like-game.html +++ b/docs/1.0/Howtos/Tutorial-for-basic-MUSH-like-game.html @@ -168,7 +168,7 @@ SQLite3 database.

    from evennia import DefaultCharacter class Character(DefaultCharacter): - """ + """ [...] """ def at_object_creation(self): @@ -230,7 +230,7 @@ just import from that instead.

    from evennia import Command # just for clarity; already imported above class CmdSetPower(Command): - """ + """ set the power of a character Usage: @@ -278,7 +278,7 @@ the end of this file, to hold only our chargen-specific command(s):

    # end of default_cmdsets.py
     
     class ChargenCmdset(CmdSet):
    -    """
    +    """
         This cmdset it used in character generation areas.
         """
         key = "Chargen"
    @@ -302,7 +302,7 @@ It’s cleaner to put it on a room, so it’s only available when players are in
     # down at the end of rooms.py
     
     class ChargenRoom(Room):
    -    """
    +    """
         This room class is used by character-generation rooms. It makes
         the ChargenCmdset available.
         """
    @@ -368,7 +368,7 @@ You +attack with a combat score of 12!
     # ...
     
     class CmdAttack(Command):
    -    """
    +    """
         issues an attack
     
         Usage:
    @@ -438,7 +438,7 @@ comes into play for real).

    implementation of return appearance is found in evennia.DefaultCharacter.

    If you want to make bigger changes you could copy & paste the whole default thing into our overloading method. In our case the change is small though:

    class Character(DefaultCharacter):
    -    """
    +    """
          [...]
         """
         def at_object_creation(self):
    @@ -447,7 +447,7 @@ implementation of r
             self.db.combat_score = 1
     
         def return_appearance(self, looker):
    -        """
    +        """
             The return from this method is what
             looker sees when looking at this object.
             """
    @@ -496,7 +496,7 @@ You created the NPC 'Anna'.
     
    from evennia import create_object
     
     class CmdCreateNPC(Command):
    -    """
    +    """
         create a new npc
     
         Usage:
    @@ -571,7 +571,7 @@ Set Anna's property 'power' to 10.
     

    This is a slightly more complex command. It goes at the end of your command.py file as before.

    class CmdEditNPC(Command):
    -    """
    +    """
         edit an existing NPC
     
         Usage:
    @@ -669,7 +669,7 @@ Anna says, 'Hello!'
     

    Again, add to the end of your command.py module:

    class CmdNPC(Command):
    -    """
    +    """
         controls an NPC
     
         Usage:
    diff --git a/docs/1.0/Howtos/Web-Add-a-wiki.html b/docs/1.0/Howtos/Web-Add-a-wiki.html
    index be0c821997..b926f5862f 100644
    --- a/docs/1.0/Howtos/Web-Add-a-wiki.html
    +++ b/docs/1.0/Howtos/Web-Add-a-wiki.html
    @@ -266,15 +266,15 @@ solution for connecting the Evennia permission levels to wiki access, this is th
     
     # Custom methods to link wiki permissions to game perms
     def is_superuser(article, user):
    -    """Return True if user is a superuser, False otherwise."""
    +    """Return True if user is a superuser, False otherwise."""
         return not user.is_anonymous() and user.is_superuser
     
     def is_builder(article, user):
    -    """Return True if user is a builder, False otherwise."""
    +    """Return True if user is a builder, False otherwise."""
         return not user.is_anonymous() and user.locks.check_lockstring(user, "perm(Builders)")
     
     def is_player(article, user):
    -    """Return True if user is a builder, False otherwise."""
    +    """Return True if user is a builder, False otherwise."""
         return not user.is_anonymous() and user.locks.check_lockstring(user, "perm(Players)")
     
     # Create new users
    diff --git a/docs/1.0/Howtos/Web-Character-Generation.html b/docs/1.0/Howtos/Web-Character-Generation.html
    index 0ec42cda69..9f5af01097 100644
    --- a/docs/1.0/Howtos/Web-Character-Generation.html
    +++ b/docs/1.0/Howtos/Web-Character-Generation.html
    @@ -632,8 +632,8 @@ mygame/web/chargen/templates/chargen/detail.html
     

    Once you have all these files stand in your mygame/folder and run:

    -
    evennia makemigrations
    -evennia migrate
    +
    evennia makemigrations
    +evennia migrate
     

    This will create and update the models. If you see any errors at this stage, read the traceback diff --git a/docs/1.0/Howtos/Web-Extending-the-REST-API.html b/docs/1.0/Howtos/Web-Extending-the-REST-API.html index 8e80b79bb1..80ae7eb570 100644 --- a/docs/1.0/Howtos/Web-Extending-the-REST-API.html +++ b/docs/1.0/Howtos/Web-Extending-the-REST-API.html @@ -140,7 +140,7 @@ # our own custom view class CharacterViewSet(ObjectDBViewSet): - """ + """ A customized Character view that adds an inventory detail """ queryset = DefaultCharacter.objects.all_family() @@ -261,7 +261,7 @@ # our own custom view class CharacterViewSet(ObjectDBViewSet): - """ + """ A customized Character view that adds an inventory detail """ queryset = DefaultCharacter.objects.all_family() @@ -295,7 +295,7 @@

    Next, we’ll be defining our own serializer class. Since it’s for retrieving inventory data, we’ll name it appropriately.

    class InventorySerializer(TypeclassSerializerMixin, serializers.ModelSerializer):
    -    """
    +    """
         Serializing an inventory
         """
         
    @@ -318,14 +318,14 @@
     

    Which is why our next step is to add those methods! We defined the properties worn and carried, so the methods we’ll add are get_worn and get_carried. They’ll be static methods - that is, they don’t include self - since they don’t need to reference the serializer class itself.

        # these methods filter the character's contents based on the `worn` attribute
         def get_worn(character):
    -        """
    +        """
             Serializes only worn objects in the target's inventory.
             """
             worn = [obj for obj in character.contents if obj.db.worn]
             return SimpleObjectDBSerializer(worn, many=True).data
         
         def get_carried(character):
    -        """
    +        """
             Serializes only non-worn objects in the target's inventory.
             """
             carried = [obj for obj in character.contents if not obj.db.worn]
    @@ -350,7 +350,7 @@
     from evennia.objects.objects import DefaultObject
     
     class InventorySerializer(TypeclassSerializerMixin, serializers.ModelSerializer):
    -    """
    +    """
         Serializing an inventory
         """
         
    @@ -370,14 +370,14 @@
     
         # these methods filter the character's contents based on the `worn` attribute
         def get_worn(character):
    -        """
    +        """
             Serializes only worn objects in the target's inventory.
             """
             worn = [obj for obj in character.contents if obj.db.worn]
             return SimpleObjectDBSerializer(worn, many=True).data
         
         def get_carried(character):
    -        """
    +        """
             Serializes only non-worn objects in the target's inventory.
             """
             carried = [obj for obj in character.contents if not obj.db.worn]
    @@ -419,7 +419,7 @@
     
     # our own custom view
     class CharacterViewSet(ObjectDBViewSet):
    -    """
    +    """
         A customized Character view that adds an inventory detail
         """
         queryset = DefaultCharacter.objects.all_family()
    @@ -444,7 +444,7 @@
     class CharacterPermission(EvenniaPermission):
         
         def has_object_permission(self, request, view, obj):
    -        """
    +        """
             Checks object-level permissions after has_permission
             """
             # our new permission check
    @@ -478,7 +478,7 @@
     
     # our own custom view
     class CharacterViewSet(ObjectDBViewSet):
    -    """
    +    """
         A customized Character view that adds an inventory detail
         """
         permission_classes = [CharacterPermission] # <--- NEW
    diff --git a/docs/1.0/Howtos/Web-Help-System-Tutorial.html b/docs/1.0/Howtos/Web-Help-System-Tutorial.html
    index 5f0c48d8a6..f77ecccd35 100644
    --- a/docs/1.0/Howtos/Web-Help-System-Tutorial.html
    +++ b/docs/1.0/Howtos/Web-Help-System-Tutorial.html
    @@ -196,7 +196,7 @@ lines:

    from django.shortcuts import render
     
     def index(request):
    -    """The 'index' view."""
    +    """The 'index' view."""
         return render(request, "help_system/index.html")
     
    @@ -342,7 +342,7 @@ in or not. Last gift by Evennia, if the user is logged in,