Updated HTML docs.

This commit is contained in:
Evennia docbuilder action 2022-12-03 11:42:03 +00:00
parent b9423169d8
commit 4cd97e630f
54 changed files with 745 additions and 587 deletions

View file

@ -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: 9f788ce2f814f82df393217eb5d928d5
config: 030a87eef1a6f87dd60b89c7f0bd5880
tags: 645f666f9bcd5a90fca523b33c5a78b7

View file

@ -164,10 +164,9 @@
<h1>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline"></a></h1>
<section id="evennia-1-0">
<h2>Evennia 1.0<a class="headerlink" href="#evennia-1-0" title="Permalink to this headline"></a></h2>
<blockquote>
<div><p>Not released yet
2019-2022 develop branch (WIP)</p>
</div></blockquote>
<p>2019-2022 develop branch</p>
<p>Changed to using <code class="docutils literal notranslate"><span class="pre">main</span></code> branch to follow github standard. Old <code class="docutils literal notranslate"><span class="pre">master</span></code> branch remains
for now but will not be used anymore, so as to not break installs during transition.</p>
<p>Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.10, 3.11. PostgreSQL 11+.</p>
<ul class="simple">
<li><p>New <code class="docutils literal notranslate"><span class="pre">drop:holds()</span></code> lock default to limit dropping nonsensical things. Access check

View file

@ -257,7 +257,7 @@ git ls # log with pretty formatting
</section>
<section id="git-branch-checkout-and-merge">
<h3><code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">branch</span></code>, <code class="docutils literal notranslate"><span class="pre">checkout</span></code> and <code class="docutils literal notranslate"><span class="pre">merge</span></code><a class="headerlink" href="#git-branch-checkout-and-merge" title="Permalink to this headline"></a></h3>
<p>Git allows you to work with <em>branches</em>. These are separate development paths your code may take, completely separate from each other. You can later <em>merge</em> the code from a branch back into another branch. Evennias <code class="docutils literal notranslate"><span class="pre">master</span></code> and <code class="docutils literal notranslate"><span class="pre">develop</span></code> branches are examples of this.</p>
<p>Git allows you to work with <em>branches</em>. These are separate development paths your code may take, completely separate from each other. You can later <em>merge</em> the code from a branch back into another branch. Evennias <code class="docutils literal notranslate"><span class="pre">main</span></code> and <code class="docutils literal notranslate"><span class="pre">develop</span></code> branches are examples of this.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git branch -b branchaname
</pre></div>
</div>
@ -351,10 +351,6 @@ lies madness and a good chance youll confuse yourself. Make one mistake or lo
<h3>Pushing your code online<a class="headerlink" href="#pushing-your-code-online" title="Permalink to this headline"></a></h3>
<p>So far your code is only located on your private machine. A good idea is to back it up online. The easiest way to do this is to <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">push</span></code> it to your own remote repository on GitHub. So for this you need a (free) Github account.</p>
<p>If you dont want your code to be publicly visible, Github also allows you set up a <em>private</em> repository, only visible to you.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Githubs defaults have changed to calling the primary branch main rather than master. While Evennia still uses master branch (and this is what we refer to below), you can use either name for your personal primary branch - they are equivalent.</p>
</div>
<p>Create a new, empty repository on Github. <a class="reference external" href="https://help.github.com/articles/create-a-repo/">Github explains how here</a> . <em>Dont</em> allow it to add a README, license etc, that will just clash with what we upload later.</p>
<aside class="sidebar">
<p class="sidebar-title">Origin</p>
@ -397,7 +393,7 @@ git checkout develop
</pre></div>
</div>
<p>Use</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout master
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout main
git checkout develop
</pre></div>
</div>
@ -413,16 +409,16 @@ git checkout develop
<section id="fixing-an-evennia-bug-or-feature">
<h3>Fixing an Evennia bug or feature<a class="headerlink" href="#fixing-an-evennia-bug-or-feature" title="Permalink to this headline"></a></h3>
<p>This should be done in your fork of Evennia. You should <em>always</em> do this in a <em>separate git branch</em> based off the Evennia branch you want to improve.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout master (or develop)
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout main (or develop)
git branch - b myfixbranch
</pre></div>
</div>
<p>Now fix whatever needs fixing. Abide by the <a class="reference internal" href="Evennia-Code-Style.html"><span class="doc std std-doc">Evennia code style</span></a>. You can <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">commit</span></code> commit your changes along the way as normal.</p>
<p>Upstream Evennia is not standing still, so you want to make sure that your work is up-to-date with upstream changes. Make sure to first commit your <code class="docutils literal notranslate"><span class="pre">myfixbranch</span></code> changes, then</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout master (or develop)
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>git checkout main (or develop)
git pull upstream
git checkout myfixbranch
git merge master (or develop)
git merge main (or develop)
</pre></div>
</div>
<p>Up to this point your <code class="docutils literal notranslate"><span class="pre">myfixbranch</span></code> branch only exists on your local computer. No

View file

@ -306,7 +306,7 @@ dynamically and is not part of the api docs. The closest is <code class="docutil
</pre></div>
</div>
<ul class="simple">
<li><p>By using <code class="docutils literal notranslate"><span class="pre">(github:evennia/objects/objects.py)</span></code> as link target, you can point to a place on the Evennia github page (master branch).</p></li>
<li><p>By using <code class="docutils literal notranslate"><span class="pre">(github:evennia/objects/objects.py)</span></code> as link target, you can point to a place on the Evennia github page (main branch).</p></li>
<li><p>Use <code class="docutils literal notranslate"><span class="pre">(github:develop/evennia/objects/objects.py</span></code> to target <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch.</p></li>
<li><p>Use <code class="docutils literal notranslate"><span class="pre">(github:issue)</span></code> to point to the github issue-creation page.</p></li>
</ul>

View file

@ -148,6 +148,7 @@
<li><p><a class="reference external" href="https://www.patreon.com/griatch">Become an Evennia patron</a> which donates a (usually small) sum every month to show continued support.</p></li>
<li><p><a class="reference external" href="https://www.paypal.com/paypalme/GriatchEvennia">Make a one-time donation</a> if a monthly donation is not your thing. This is a PayPal link but you dont need PayPal yourself to use it.</p></li>
</ul>
<p>[codestyle]:: Evennia-Code-Style</p>
</section>
</section>
</section>

View file

@ -226,8 +226,7 @@ The flat API is defined in <code class="docutils literal notranslate"><span clas
<section id="contributions">
<h3>Contributions<a class="headerlink" href="#contributions" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/">evennia.contrib</a> -
game-specific contributions and plugins (<a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/README.md">docs</a>)</p></li>
<li><p><a class="reference internal" href="Contribs/Contribs-Overview.html"><span class="doc std std-doc">evennia.contrib</span></a> game-specific contributions and plugins</p></li>
</ul>
<div class="toctree-wrapper compound">
</div>

View file

@ -373,9 +373,7 @@ set up your editor to always indent <em>4 spaces</em> (<strong>not</strong> a si
<li><p><code class="docutils literal notranslate"><span class="pre">def</span></code> is short for “define” and defines a <em>function</em> (or a <em>method</em>, if sitting on an object).
This is a <a class="reference external" href="https://docs.python.org/2.5/ref/keywords.html">reserved Python keyword</a>; try not to use
these words anywhere else.</p></li>
<li><p>A function name can not have spaces but otherwise we could have called it almost anything. We call
it <code class="docutils literal notranslate"><span class="pre">hello_world</span></code>. Evennia follows <a class="reference external" href="https://github.com/evennia/evennia/blob/master/CODING_STYLE.md#a-quick-list-of-code-style-points">Pythons standard naming style</a>
with lowercase letters and underscores. We recommend you do the same.</p></li>
<li><p>A function name can not have spaces but otherwise we could have called it almost anything. We call it <code class="docutils literal notranslate"><span class="pre">hello_world</span></code>. Evennia follows <span class="xref myst">Pythons standard naming style</span> with lowercase letters and underscores. We recommend you do the same.</p></li>
<li><p>The colon (<code class="docutils literal notranslate"><span class="pre">:</span></code>) at the end of line 1 indicates that the header of the function is complete.</p></li>
</ul>
<p>Line 2:</p>

View file

@ -175,7 +175,7 @@ Django parlance). You can specify such places in your settings (see the <code cl
field to figure out which page you want to go to. You tell it which patterns are relevant in the
file
<a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/game_template/web/urls.py">mygame/web/urls.py</a>.
Open it now.</p>
Open it now</p>
<p>Django looks for the variable <code class="docutils literal notranslate"><span class="pre">urlpatterns</span></code> in this file. You want to add your new pattern to the
<code class="docutils literal notranslate"><span class="pre">custom_patterns</span></code> list we have prepared - that is then merged with the default <code class="docutils literal notranslate"><span class="pre">urlpatterns</span></code>. Heres
how it could look:</p>

View file

@ -168,32 +168,21 @@ want to check. That is, you want something similar to this:</p>
</div>
</li>
</ul>
<p>You might need to make these functions more or less complex depending on your game. For example the
properties of the room might matter to the outcome of a roll (if the room is dark, burning etc).
Establishing just what you need to send into your game mechanic module is a great way to also get a
feel for what you need to add to your engine.</p>
<p>You might need to make these functions more or less complex depending on your game. For example the properties of the room might matter to the outcome of a roll (if the room is dark, burning etc). Establishing just what you need to send into your game mechanic module is a great way to also get a feel for what you need to add to your engine.</p>
</section>
<section id="coded-systems">
<h2>Coded systems<a class="headerlink" href="#coded-systems" title="Permalink to this headline"></a></h2>
<p>Inspired by tabletop role playing games, most game systems mimic some sort of die mechanic. To this
end Evennia offers a full <a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py">dice
roller</a> in its <code class="docutils literal notranslate"><span class="pre">contrib</span></code>
folder. For custom implementations, Python offers many ways to randomize a result using its in-built
<code class="docutils literal notranslate"><span class="pre">random</span></code> module. No matter how its implemented, we will in this text refer to the action of
determining an outcome as a “roll”.</p>
<p>Inspired by tabletop role playing games, most game systems mimic some sort of die mechanic. To this end Evennia offers a full <a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py">dice roller</a> in its <code class="docutils literal notranslate"><span class="pre">contrib</span></code>
folder. For custom implementations, Python offers many ways to randomize a result using its in-built <code class="docutils literal notranslate"><span class="pre">random</span></code> module. No matter how its implemented, we will in this text refer to the action of determining an outcome as a “roll”.</p>
<p>In a freeform system, the result of the roll is just compared with values and people (or the game
master) just agree on what it means. In a coded system the result now needs to be processed somehow.
There are many things that may happen as a result of rule enforcement:</p>
master) just agree on what it means. In a coded system the result now needs to be processed somehow. There are many things that may happen as a result of rule enforcement:</p>
<ul class="simple">
<li><p>Health may be added or deducted. This can effect the character in various ways.</p></li>
<li><p>Experience may need to be added, and if a level-based system is used, the player might need to be
informed they have increased a level.</p></li>
<li><p>Experience may need to be added, and if a level-based system is used, the player might need to be informed they have increased a level.</p></li>
<li><p>Room-wide effects need to be reported to the room, possibly affecting everyone in the room.</p></li>
</ul>
<p>There are also a slew of other things that fall under “Coded systems”, including things like
weather, NPC artificial intelligence and game economy. Basically everything about the world that a
Game master would control in a tabletop role playing game can be mimicked to some level by coded
systems.</p>
weather, NPC artificial intelligence and game economy. Basically everything about the world that a Game master would control in a tabletop role playing game can be mimicked to some level by coded systems.</p>
</section>
<section id="example-of-rule-module">
<h2>Example of Rule module<a class="headerlink" href="#example-of-rule-module" title="Permalink to this headline"></a></h2>
@ -202,32 +191,19 @@ systems.</p>
<li><p>Characters have only four numerical values:</p>
<ul>
<li><p>Their <code class="docutils literal notranslate"><span class="pre">level</span></code>, which starts at 1.</p></li>
<li><p>A skill <code class="docutils literal notranslate"><span class="pre">combat</span></code>, which determines how good they are at hitting things. Starts between 5 and</p></li>
</ul>
</li>
</ul>
<ol class="simple">
<li><ul class="simple">
<li><p>A skill <code class="docutils literal notranslate"><span class="pre">combat</span></code>, which determines how good they are at hitting things. Starts between 5 and 10.</p></li>
<li><p>Their Strength, <code class="docutils literal notranslate"><span class="pre">STR</span></code>, which determine how much damage they do. Starts between 1 and 10.</p></li>
<li><p>Their Health points, <code class="docutils literal notranslate"><span class="pre">HP</span></code>, which starts at 100.</p></li>
</ul>
</li>
</ol>
<ul class="simple">
<li><p>When a Character reaches <code class="docutils literal notranslate"><span class="pre">HP</span> <span class="pre">=</span> <span class="pre">0</span></code>, they are presumed “defeated”. Their HP is reset and they get a
failure message (as a stand-in for death code).</p></li>
<li><p>When a Character reaches <code class="docutils literal notranslate"><span class="pre">HP</span> <span class="pre">=</span> <span class="pre">0</span></code>, they are presumed “defeated”. Their HP is reset and they get a failure message (as a stand-in for death code).</p></li>
<li><p>Abilities are stored as simple Attributes on the Character.</p></li>
<li><p>“Rolls” are done by rolling a 100-sided die. If the result is below the <code class="docutils literal notranslate"><span class="pre">combat</span></code> value, its a
success and damage is rolled. Damage is rolled as a six-sided die + the value of <code class="docutils literal notranslate"><span class="pre">STR</span></code> (for this
example we ignore weapons and assume <code class="docutils literal notranslate"><span class="pre">STR</span></code> is all that matters).</p></li>
<li><p>Every successful <code class="docutils literal notranslate"><span class="pre">attack</span></code> roll gives 1-3 experience points (<code class="docutils literal notranslate"><span class="pre">XP</span></code>). Every time the number of <code class="docutils literal notranslate"><span class="pre">XP</span></code>
reaches <code class="docutils literal notranslate"><span class="pre">(level</span> <span class="pre">+</span> <span class="pre">1)</span> <span class="pre">**</span> <span class="pre">2</span></code>, the Character levels up. When leveling up, the Characters <code class="docutils literal notranslate"><span class="pre">combat</span></code>
value goes up by 2 points and <code class="docutils literal notranslate"><span class="pre">STR</span></code> by one (this is a stand-in for a real progression system).</p></li>
<li><p>“Rolls” are done by rolling a 100-sided die. If the result is below the <code class="docutils literal notranslate"><span class="pre">combat</span></code> value, its a success and damage is rolled. Damage is rolled as a six-sided die + the value of <code class="docutils literal notranslate"><span class="pre">STR</span></code> (for this example we ignore weapons and assume <code class="docutils literal notranslate"><span class="pre">STR</span></code> is all that matters).</p></li>
<li><p>Every successful <code class="docutils literal notranslate"><span class="pre">attack</span></code> roll gives 1-3 experience points (<code class="docutils literal notranslate"><span class="pre">XP</span></code>). Every time the number of <code class="docutils literal notranslate"><span class="pre">XP</span></code> reaches <code class="docutils literal notranslate"><span class="pre">(level</span> <span class="pre">+</span> <span class="pre">1)</span> <span class="pre">**</span> <span class="pre">2</span></code>, the Character levels up. When leveling up, the Characters <code class="docutils literal notranslate"><span class="pre">combat</span></code> value goes up by 2 points and <code class="docutils literal notranslate"><span class="pre">STR</span></code> by one (this is a stand-in for a real progression system).</p></li>
</ul>
<section id="character">
<h3>Character<a class="headerlink" href="#character" title="Permalink to this headline"></a></h3>
<p>The Character typeclass is simple. It goes in <code class="docutils literal notranslate"><span class="pre">mygame/typeclasses/characters.py</span></code>. There is already
an empty <code class="docutils literal notranslate"><span class="pre">Character</span></code> class there that Evennia will look to and use.</p>
<p>The Character typeclass is simple. It goes in <code class="docutils literal notranslate"><span class="pre">mygame/typeclasses/characters.py</span></code>. There is already an empty <code class="docutils literal notranslate"><span class="pre">Character</span></code> class there that Evennia will look to and use.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">random</span> <span class="kn">import</span> <span class="n">randint</span>
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">DefaultCharacter</span>

View file

@ -119,87 +119,40 @@ list</a>.</p>
<h2>Overview of combat system concepts<a class="headerlink" href="#overview-of-combat-system-concepts" title="Permalink to this headline"></a></h2>
<p>Most MUDs will use some sort of combat system. There are several main variations:</p>
<ul class="simple">
<li><p><em>Freeform</em> - the simplest form of combat to implement, common to MUSH-style roleplaying games.
This means the system only supplies dice rollers or maybe commands to compare skills and spit out
the result. Dice rolls are done to resolve combat according to the rules of the game and to direct
the scene. A game master may be required to resolve rule disputes.</p></li>
<li><p><em>Twitch</em> - This is the traditional MUD hack&amp;slash style combat. In a twitch system there is often
no difference between your normal “move-around-and-explore mode” and the “combat mode”. You enter an
attack command and the system will calculate if the attack hits and how much damage was caused.
Normally attack commands have some sort of timeout or notion of recovery/balance to reduce the
advantage of spamming or client scripting. Whereas the simplest systems just means entering <code class="docutils literal notranslate"><span class="pre">kill</span> <span class="pre">&lt;target&gt;</span></code> over and over, more sophisticated twitch systems include anything from defensive stances
to tactical positioning.</p></li>
<li><p><em>Turn-based</em> - a turn based system means that the system pauses to make sure all combatants can
choose their actions before continuing. In some systems, such entered actions happen immediately
(like twitch-based) whereas in others the resolution happens simultaneously at the end of the turn.
The disadvantage of a turn-based system is that the game must switch to a “combat mode” and one also
needs to take special care of how to handle new combatants and the passage of time. The advantage is
that success is not dependent on typing speed or of setting up quick client macros. This potentially
allows for emoting as part of combat which is an advantage for roleplay-heavy games.</p></li>
<li><p><em>Freeform</em> - the simplest form of combat to implement, common to MUSH-style roleplaying games. This means the system only supplies dice rollers or maybe commands to compare skills and spit out the result. Dice rolls are done to resolve combat according to the rules of the game and to direct the scene. A game master may be required to resolve rule disputes.</p></li>
<li><p><em>Twitch</em> - This is the traditional MUD hack&amp;slash style combat. In a twitch system there is often no difference between your normal “move-around-and-explore mode” and the “combat mode”. You enter an attack command and the system will calculate if the attack hits and how much damage was caused. Normally attack commands have some sort of timeout or notion of recovery/balance to reduce the advantage of spamming or client scripting. Whereas the simplest systems just means entering <code class="docutils literal notranslate"><span class="pre">kill</span> <span class="pre">&lt;target&gt;</span></code> over and over, more sophisticated twitch systems include anything from defensive stances to tactical positioning.</p></li>
<li><p><em>Turn-based</em> - a turn based system means that the system pauses to make sure all combatants can choose their actions before continuing. In some systems, such entered actions happen immediately (like twitch-based) whereas in others the resolution happens simultaneously at the end of the turn. The disadvantage of a turn-based system is that the game must switch to a “combat mode” and one also needs to take special care of how to handle new combatants and the passage of time. The advantage is that success is not dependent on typing speed or of setting up quick client macros. This potentially allows for emoting as part of combat which is an advantage for roleplay-heavy games.</p></li>
</ul>
<p>To implement a freeform combat system all you need is a dice roller and a roleplaying rulebook. See
<a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py">contrib/dice.py</a> for an
example dice roller. To implement at twitch-based system you basically need a few combat
<a class="reference internal" href="../Components/Commands.html"><span class="doc std std-doc">commands</span></a>, possibly ones with a <a class="reference internal" href="Howto-Command-Cooldown.html"><span class="doc std std-doc">cooldown</span></a>. You also need a <a class="reference internal" href="Implementing-a-game-rule-system.html"><span class="doc std std-doc">game rule
module</span></a> that makes use of it. We will focus on the turn-based
variety here.</p>
<p>To implement a freeform combat system all you need is a dice roller and a roleplaying rulebook. See <a class="reference internal" href="../Contribs/Contrib-Dice.html"><span class="doc std std-doc">contrib/dice.py</span></a> for an example dice roller. To implement at twitch-based system you basically need a few combat <a class="reference internal" href="../Components/Commands.html"><span class="doc std std-doc">commands</span></a>, possibly ones with a <a class="reference internal" href="Howto-Command-Cooldown.html"><span class="doc std std-doc">cooldown</span></a>. You also need a <a class="reference internal" href="Implementing-a-game-rule-system.html"><span class="doc std std-doc">game rule module</span></a> that makes use of it. We will focus on the turn-based variety here.</p>
</section>
<section id="tutorial-overview">
<h2>Tutorial overview<a class="headerlink" href="#tutorial-overview" title="Permalink to this headline"></a></h2>
<p>This tutorial will implement the slightly more complex turn-based combat system. Our example has the
following properties:</p>
<p>This tutorial will implement the slightly more complex turn-based combat system. Our example has the following properties:</p>
<ul class="simple">
<li><p>Combat is initiated with <code class="docutils literal notranslate"><span class="pre">attack</span> <span class="pre">&lt;target&gt;</span></code>, this initiates the combat mode.</p></li>
<li><p>Characters may join an ongoing battle using <code class="docutils literal notranslate"><span class="pre">attack</span> <span class="pre">&lt;target&gt;</span></code> against a character already in
combat.</p></li>
<li><p>Each turn every combating character will get to enter two commands, their internal order matters
and they are compared one-to-one in the order given by each combatant. Use of <code class="docutils literal notranslate"><span class="pre">say</span></code> and <code class="docutils literal notranslate"><span class="pre">pose</span></code> is
free.</p></li>
<li><p>The commands are (in our example) simple; they can either <code class="docutils literal notranslate"><span class="pre">hit</span> <span class="pre">&lt;target&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">feint</span> <span class="pre">&lt;target&gt;</span></code> or
<code class="docutils literal notranslate"><span class="pre">parry</span> <span class="pre">&lt;target&gt;</span></code>. They can also <code class="docutils literal notranslate"><span class="pre">defend</span></code>, a generic passive defense. Finally they may choose to
<code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code>.</p></li>
<li><p>When attacking we use a classic [rock-paper-scissors](<a class="reference external" href="https://en.wikipedia.org/wiki/Rock-paper-">https://en.wikipedia.org/wiki/Rock-paper-</a>
scissors) mechanic to determine success: <code class="docutils literal notranslate"><span class="pre">hit</span></code> defeats <code class="docutils literal notranslate"><span class="pre">feint</span></code>, which defeats <code class="docutils literal notranslate"><span class="pre">parry</span></code> which defeats
<code class="docutils literal notranslate"><span class="pre">hit</span></code>. <code class="docutils literal notranslate"><span class="pre">defend</span></code> is a general passive action that has a percentage chance to win against <code class="docutils literal notranslate"><span class="pre">hit</span></code>
(only).</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code> must be entered two times in a row and will only succeed if there is no <code class="docutils literal notranslate"><span class="pre">hit</span></code>
against them in that time. If so they will leave combat mode.</p></li>
<li><p>Once every player has entered two commands, all commands are resolved in order and the result is
reported. A new turn then begins.</p></li>
<li><p>Each turn every combating character will get to enter two commands, their internal order matters and they are compared one-to-one in the order given by each combatant. Use of <code class="docutils literal notranslate"><span class="pre">say</span></code> and <code class="docutils literal notranslate"><span class="pre">pose</span></code> is free.</p></li>
<li><p>The commands are (in our example) simple; they can either <code class="docutils literal notranslate"><span class="pre">hit</span> <span class="pre">&lt;target&gt;</span></code>, <code class="docutils literal notranslate"><span class="pre">feint</span> <span class="pre">&lt;target&gt;</span></code> or <code class="docutils literal notranslate"><span class="pre">parry</span> <span class="pre">&lt;target&gt;</span></code>. They can also <code class="docutils literal notranslate"><span class="pre">defend</span></code>, a generic passive defense. Finally they may choose to <code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code>.</p></li>
<li><p>When attacking we use a classic [rock-paper-scissors](<a class="reference external" href="https://en.wikipedia.org/wiki/Rock-paper-">https://en.wikipedia.org/wiki/Rock-paper-</a> scissors) mechanic to determine success: <code class="docutils literal notranslate"><span class="pre">hit</span></code> defeats <code class="docutils literal notranslate"><span class="pre">feint</span></code>, which defeats <code class="docutils literal notranslate"><span class="pre">parry</span></code> which defeats <code class="docutils literal notranslate"><span class="pre">hit</span></code>. <code class="docutils literal notranslate"><span class="pre">defend</span></code> is a general passive action that has a percentage chance to win against <code class="docutils literal notranslate"><span class="pre">hit</span></code> (only).</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code> must be entered two times in a row and will only succeed if there is no <code class="docutils literal notranslate"><span class="pre">hit</span></code> against them in that time. If so they will leave combat mode.</p></li>
<li><p>Once every player has entered two commands, all commands are resolved in order and the result is reported. A new turn then begins.</p></li>
<li><p>If players are too slow the turn will time out and any unset commands will be set to <code class="docutils literal notranslate"><span class="pre">defend</span></code>.</p></li>
</ul>
<p>For creating the combat system we will need the following components:</p>
<ul class="simple">
<li><p>A combat handler. This is the main mechanic of the system. This is a <a class="reference internal" href="../Components/Scripts.html"><span class="doc std std-doc">Script</span></a> object
created for each combat. It is not assigned to a specific object but is shared by the combating
characters and handles all the combat information. Since Scripts are database entities it also means
that the combat will not be affected by a server reload.</p></li>
<li><p>A combat <a class="reference internal" href="../Components/Command-Sets.html"><span class="doc std std-doc">command set</span></a> with the relevant commands needed for combat, such as the
various attack/defend options and the <code class="docutils literal notranslate"><span class="pre">flee/disengage</span></code> command to leave the combat mode.</p></li>
<li><p>A rule resolution system. The basics of making such a module is described in the <a class="reference internal" href="Implementing-a-game-rule-system.html"><span class="doc std std-doc">rule system
tutorial</span></a>. We will only sketch such a module here for our end-turn
combat resolution.</p></li>
<li><p>An <code class="docutils literal notranslate"><span class="pre">attack</span></code> <a class="reference internal" href="../Components/Commands.html"><span class="doc std std-doc">command</span></a> for initiating the combat mode. This is added to the default
command set. It will create the combat handler and add the character(s) to it. It will also assign
the combat command set to the characters.</p></li>
<li><p>A combat handler. This is the main mechanic of the system. This is a <a class="reference internal" href="../Components/Scripts.html"><span class="doc std std-doc">Script</span></a> object created for each combat. It is not assigned to a specific object but is shared by the combating characters and handles all the combat information. Since Scripts are database entities it also means that the combat will not be affected by a server reload.</p></li>
<li><p>A combat <a class="reference internal" href="../Components/Command-Sets.html"><span class="doc std std-doc">command set</span></a> with the relevant commands needed for combat, such as the various attack/defend options and the <code class="docutils literal notranslate"><span class="pre">flee/disengage</span></code> command to leave the combat mode.</p></li>
<li><p>A rule resolution system. The basics of making such a module is described in the <a class="reference internal" href="Implementing-a-game-rule-system.html"><span class="doc std std-doc">rule system tutorial</span></a>. We will only sketch such a module here for our end-turn combat resolution.</p></li>
<li><p>An <code class="docutils literal notranslate"><span class="pre">attack</span></code> <a class="reference internal" href="../Components/Commands.html"><span class="doc std std-doc">command</span></a> for initiating the combat mode. This is added to the default command set. It will create the combat handler and add the character(s) to it. It will also assign the combat command set to the characters.</p></li>
</ul>
</section>
<section id="the-combat-handler">
<h2>The combat handler<a class="headerlink" href="#the-combat-handler" title="Permalink to this headline"></a></h2>
<p>The <em>combat handler</em> is implemented as a stand-alone <a class="reference internal" href="../Components/Scripts.html"><span class="doc std std-doc">Script</span></a>. This Script is created when
the first Character decides to attack another and is deleted when no one is fighting any more. Each
handler represents one instance of combat and one combat only. Each instance of combat can hold any
number of characters but each character can only be part of one combat at a time (a player would
<p>The <em>combat handler</em> is implemented as a stand-alone <a class="reference internal" href="../Components/Scripts.html"><span class="doc std std-doc">Script</span></a>. This Script is created when the first Character decides to attack another and is deleted when no one is fighting any more. Each handler represents one instance of combat and one combat only. Each instance of combat can hold any number of characters but each character can only be part of one combat at a time (a player would
need to disengage from the first combat before they could join another).</p>
<p>The reason we dont store this Script “on” any specific character is because any character may leave
the combat at any time. Instead the script holds references to all characters involved in the
combat. Vice-versa, all characters holds a back-reference to the current combat handler. While we
dont use this very much here this might allow the combat commands on the characters to access and
update the combat handler state directly.</p>
<p><em>Note: Another way to implement a combat handler would be to use a normal Python object and handle
time-keeping with the <a class="reference internal" href="../Components/TickerHandler.html"><span class="doc std std-doc">TickerHandler</span></a>. This would require either adding custom hook
methods on the character or to implement a custom child of the TickerHandler class to track turns.
Whereas the TickerHandler is easy to use, a Script offers more power in this case.</em></p>
<p>The reason we dont store this Script “on” any specific character is because any character may leave the combat at any time. Instead the script holds references to all characters involved in the combat. Vice-versa, all characters holds a back-reference to the current combat handler. While we dont use this very much here this might allow the combat commands on the characters to access and update the combat handler state directly.</p>
<p><em>Note: Another way to implement a combat handler would be to use a normal Python object and handle time-keeping with the <a class="reference internal" href="../Components/TickerHandler.html"><span class="doc std std-doc">TickerHandler</span></a>. This would require either adding custom hook methods on the character or to implement a custom child of the TickerHandler class to track turns. Whereas the TickerHandler is easy to use, a Script offers more power in this case.</em></p>
<p>Here is a basic combat handler. Assuming our game folder is named <code class="docutils literal notranslate"><span class="pre">mygame</span></code>, we store it in
<code class="docutils literal notranslate"><span class="pre">mygame/typeclasses/combat_handler.py</span></code>:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/typeclasses/combat_handler.py</span>
@ -371,14 +324,11 @@ combat should be unaffected since it is saved in Attributes at every turn. An im
is the use of the Scripts standard <code class="docutils literal notranslate"><span class="pre">at_repeat</span></code> hook and the <code class="docutils literal notranslate"><span class="pre">force_repeat</span></code> method to end each turn.
This allows for everything to go through the same mechanisms with minimal repetition of code.</p>
<p>What is not present in this handler is a way for players to view the actions they set or to change
their actions once they have been added (but before the last one has added theirs). We leave this as
an exercise.</p>
their actions once they have been added (but before the last one has added theirs). We leave this as an exercise.</p>
</section>
<section id="combat-commands">
<h2>Combat commands<a class="headerlink" href="#combat-commands" title="Permalink to this headline"></a></h2>
<p>Our combat commands - the commands that are to be available to us during the combat - are (in our
example) very simple. In a full implementation the commands available might be determined by the
weapon(s) held by the player or by which skills they know.</p>
<p>Our combat commands - the commands that are to be available to us during the combat - are (in our example) very simple. In a full implementation the commands available might be determined by the weapon(s) held by the player or by which skills they know.</p>
<p>We create them in <code class="docutils literal notranslate"><span class="pre">mygame/commands/combat.py</span></code>.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/commands/combat.py</span>
@ -417,9 +367,7 @@ weapon(s) held by the player or by which skills they know.</p>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">combat_handler</span><span class="o">.</span><span class="n">check_end_turn</span><span class="p">()</span>
</pre></div>
</div>
<p>The other commands <code class="docutils literal notranslate"><span class="pre">CmdParry</span></code>, <code class="docutils literal notranslate"><span class="pre">CmdFeint</span></code>, <code class="docutils literal notranslate"><span class="pre">CmdDefend</span></code> and <code class="docutils literal notranslate"><span class="pre">CmdDisengage</span></code> look basically the same.
We should also add a custom <code class="docutils literal notranslate"><span class="pre">help</span></code> command to list all the available combat commands and what they
do.</p>
<p>The other commands <code class="docutils literal notranslate"><span class="pre">CmdParry</span></code>, <code class="docutils literal notranslate"><span class="pre">CmdFeint</span></code>, <code class="docutils literal notranslate"><span class="pre">CmdDefend</span></code> and <code class="docutils literal notranslate"><span class="pre">CmdDisengage</span></code> look basically the same. We should also add a custom <code class="docutils literal notranslate"><span class="pre">help</span></code> command to list all the available combat commands and what they do.</p>
<p>We just need to put them all in a cmdset. We do this at the end of the same module:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/commands/combat.py</span>
@ -446,18 +394,9 @@ do.</p>
</section>
<section id="rules-module">
<h2>Rules module<a class="headerlink" href="#rules-module" title="Permalink to this headline"></a></h2>
<p>A general way to implement a rule module is found in the [rule system tutorial](Implementing-a-game-
rule-system). Proper resolution would likely require us to change our Characters to store things
like strength, weapon skills and so on. So for this example we will settle for a very simplistic
rock-paper-scissors kind of setup with some randomness thrown in. We will not deal with damage here
but just announce the results of each turn. In a real system the Character objects would hold stats
to affect their skills, their chosen weapon affect the choices, they would be able to lose health
etc.</p>
<p>Within each turn, there are “sub-turns”, each consisting of one action per character. The actions
within each sub-turn happens simultaneously and only once they have all been resolved we move on to
the next sub-turn (or end the full turn).</p>
<p><em>Note: In our simple example the sub-turns dont affect each other (except for <code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code>),
nor do any effects carry over between turns. The real power of a turn-based system would be to add
<p>A general way to implement a rule module is found in the [rule system tutorial](Implementing-a-game- rule-system). Proper resolution would likely require us to change our Characters to store things like strength, weapon skills and so on. So for this example we will settle for a very simplistic rock-paper-scissors kind of setup with some randomness thrown in. We will not deal with damage here but just announce the results of each turn. In a real system the Character objects would hold stats to affect their skills, their chosen weapon affect the choices, they would be able to lose health etc.</p>
<p>Within each turn, there are “sub-turns”, each consisting of one action per character. The actions within each sub-turn happens simultaneously and only once they have all been resolved we move on to the next sub-turn (or end the full turn).</p>
<p><em>Note: In our simple example the sub-turns dont affect each other (except for <code class="docutils literal notranslate"><span class="pre">disengage/flee</span></code>), nor do any effects carry over between turns. The real power of a turn-based system would be to add
real tactical possibilities here though; For example if your hit got parried you could be out of
balance and your next action would be at a disadvantage. A successful feint would open up for a
subsequent attack and so on …</em></p>
@ -467,8 +406,7 @@ subsequent attack and so on …</em></p>
<li><p><code class="docutils literal notranslate"><span class="pre">parry</span></code> beats <code class="docutils literal notranslate"><span class="pre">hit</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">feint</span></code> beats <code class="docutils literal notranslate"><span class="pre">parry</span></code> and is then counted as a <code class="docutils literal notranslate"><span class="pre">hit</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">defend</span></code> does nothing but has a chance to beat <code class="docutils literal notranslate"><span class="pre">hit</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">flee/disengage</span></code> must succeed two times in a row (i.e. not beaten by a <code class="docutils literal notranslate"><span class="pre">hit</span></code> once during the
turn). If so the character leaves combat.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">flee/disengage</span></code> must succeed two times in a row (i.e. not beaten by a <code class="docutils literal notranslate"><span class="pre">hit</span></code> once during the turn). If so the character leaves combat.</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/world/rules.py</span>
@ -549,16 +487,11 @@ turn). If so the character leaves combat.</p></li>
<span class="n">combat_handler</span><span class="o">.</span><span class="n">remove_character</span><span class="p">(</span><span class="n">char</span><span class="p">)</span>
</pre></div>
</div>
<p>To make it simple (and to save space), this example rule module actually resolves each interchange
twice - first when it gets to each character and then again when handling the target. Also, since we
use the combat handlers <code class="docutils literal notranslate"><span class="pre">msg_all</span></code> method here, the system will get pretty spammy. To clean it up,
one could imagine tracking all the possible interactions to make sure each pair is only handled and
reported once.</p>
<p>To make it simple (and to save space), this example rule module actually resolves each interchange twice - first when it gets to each character and then again when handling the target. Also, since we use the combat handlers <code class="docutils literal notranslate"><span class="pre">msg_all</span></code> method here, the system will get pretty spammy. To clean it up, one could imagine tracking all the possible interactions to make sure each pair is only handled and reported once.</p>
</section>
<section id="combat-initiator-command">
<h2>Combat initiator command<a class="headerlink" href="#combat-initiator-command" title="Permalink to this headline"></a></h2>
<p>This is the last component we need, a command to initiate combat. This will tie everything together.
We store this with the other combat commands.</p>
<p>This is the last component we need, a command to initiate combat. This will tie everything together. We store this with the other combat commands.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># mygame/commands/combat.py</span>
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">create_script</span>
@ -598,18 +531,11 @@ We store this with the other combat commands.</p>
<span class="n">target</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="si">}</span><span class="s2"> attacks you! You are in combat.&quot;</span><span class="p">)</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">attack</span></code> command will not go into the combat cmdset but rather into the default cmdset. See e.g.
the <a class="reference internal" href="Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html"><span class="doc std std-doc">Adding Command Tutorial</span></a> if you are unsure about how to do this.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">attack</span></code> command will not go into the combat cmdset but rather into the default cmdset. See e.g. the <a class="reference internal" href="Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.html"><span class="doc std std-doc">Adding Command Tutorial</span></a> if you are unsure about how to do this.</p>
</section>
<section id="expanding-the-example">
<h2>Expanding the example<a class="headerlink" href="#expanding-the-example" title="Permalink to this headline"></a></h2>
<p>At this point you should have a simple but flexible turn-based combat system. We have taken several
shortcuts and simplifications in this example. The output to the players is likely too verbose
during combat and too limited when it comes to informing about things surrounding it. Methods for
changing your commands or list them, view who is in combat etc is likely needed - this will require
play testing for each game and style. There is also currently no information displayed for other
people happening to be in the same room as the combat - some less detailed information should
probably be echoed to the room to
<p>At this point you should have a simple but flexible turn-based combat system. We have taken several shortcuts and simplifications in this example. The output to the players is likely too verbose during combat and too limited when it comes to informing about things surrounding it. Methods for changing your commands or list them, view who is in combat etc is likely needed - this will require play testing for each game and style. There is also currently no information displayed for other people happening to be in the same room as the combat - some less detailed information should probably be echoed to the room to
show others whats going on.</p>
</section>
</section>

View file

@ -97,10 +97,7 @@
<section class="tex2jax_ignore mathjax_ignore" id="licensing-q-a">
<h1>Licensing Q&amp;A<a class="headerlink" href="#licensing-q-a" title="Permalink to this headline"></a></h1>
<p>Evennia is licensed under the very friendly <a class="reference external" href="https://en.wikipedia.org/wiki/BSD_license">BSD</a>
(3-clause) license. You can find the license as
<a class="reference external" href="https://github.com/evennia/evennia/blob/master/LICENSE.txt">LICENSE.txt</a> in the Evennia
repositorys root.</p>
<p>Evennia is licensed under the very friendly <a class="reference external" href="https://en.wikipedia.org/wiki/BSD_license">BSD</a> (3-clause) license. You can find the license as <a class="reference external" href="https://github.com/evennia/evennia/blob/master/LICENSE.txt">LICENSE.txt</a> in the Evennia repositorys root.</p>
<p><strong>Q: When creating a game using Evennia, what does the license permit me to do with it?</strong></p>
<p><strong>A:</strong> Its your own game world to do with as you please! Keep it to yourself or re-distribute it
under another license of your choice - or sell it and become filthy rich for all we care.</p>

View file

@ -110,12 +110,7 @@
<p><a class="reference external" href="https://en.wikipedia.org/wiki/RSS">RSS</a> is a format for easily tracking updates on websites. The
principle is simple - whenever a site is updated, a small text file is updated. An RSS reader can
then regularly go online, check this file for updates and let the user know whats new.</p>
<p>Evennia allows for connecting any number of RSS feeds to any number of in-game channels. Updates to
the feed will be conveniently echoed to the channel. There are many potential uses for this: For
example the MUD might use a separate website to host its forums. Through RSS, the players can then
be notified when new posts are made. Another example is to let everyone know you updated your dev
blog. Admins might also want to track the latest Evennia updates through our own RSS feed
<a class="reference external" href="https://code.google.com/feeds/p/evennia/updates/basic">here</a>.</p>
<p>Evennia allows for connecting any number of RSS feeds to any number of in-game channels. Updates to the feed will be conveniently echoed to the channel. There are many potential uses for this: For example the MUD might use a separate website to host its forums. Through RSS, the players can then be notified when new posts are made. Another example is to let everyone know you updated your dev blog. Admins might also want to track the latest Evennia updates through our own RSS feed <a class="reference external" href="https://code.google.com/feeds/p/evennia/updates/basic">here</a>.</p>
<section id="configuring-rss">
<h2>Configuring RSS<a class="headerlink" href="#configuring-rss" title="Permalink to this headline"></a></h2>
<p>To use RSS, you first need to install the <a class="reference external" href="https://code.google.com/p/feedparser/">feedparser</a> python

View file

@ -133,7 +133,7 @@
<section id="if-you-installed-with-git">
<h2>If you installed with <code class="docutils literal notranslate"><span class="pre">git</span></code><a class="headerlink" href="#if-you-installed-with-git" title="Permalink to this headline"></a></h2>
<p>This applies if you followed the <a class="reference internal" href="Installation-Git.html"><span class="doc std std-doc">git-install instructions</span></a>. Before Evennia 1.0, this was the only way to install Evennia.</p>
<p>At any time, development is either happening in the <code class="docutils literal notranslate"><span class="pre">master</span></code> branch (latest stable) or <code class="docutils literal notranslate"><span class="pre">develop</span></code> (experimental). Which one is active and latest at a given time depends - after a release, <code class="docutils literal notranslate"><span class="pre">master</span></code> will see most updates, close to a new release, <code class="docutils literal notranslate"><span class="pre">develop</span></code> will usually be the fastest changing.</p>
<p>At any time, development is either happening in the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch (latest stable) or <code class="docutils literal notranslate"><span class="pre">develop</span></code> (experimental). Which one is active and latest at a given time depends - after a release, <code class="docutils literal notranslate"><span class="pre">main</span></code> will see most updates, close to a new release, <code class="docutils literal notranslate"><span class="pre">develop</span></code> will usually be the fastest changing.</p>
<ol class="simple">
<li><p>Read the <a class="reference internal" href="../Coding/Changelog.html"><span class="doc std std-doc">changelog</span></a> to see what changed and if it means you need to make any changes to your game code.</p></li>
<li><p>If you use a <span class="xref myst">virtualenv</span>, make sure its active.</p></li>
@ -151,7 +151,7 @@
<h2>If you installed with <code class="docutils literal notranslate"><span class="pre">docker</span></code><a class="headerlink" href="#if-you-installed-with-docker" title="Permalink to this headline"></a></h2>
<p>If you followed the [docker installation instructions] you need to pull the latest docker image for the branch you want:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">pull</span> <span class="pre">evennia/evennia</span></code> (master branch)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">pull</span> <span class="pre">evennia/evennia</span></code> (<code class="docutils literal notranslate"><span class="pre">main</span></code> branch)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">pull</span> <span class="pre">evennia/evennia:develop</span></code> (experimental <code class="docutils literal notranslate"><span class="pre">develop</span></code> branch)</p></li>
</ul>
<p>Then restart your containers.</p>

View file

@ -86,6 +86,7 @@
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
<span class="kn">from</span> <span class="nn">django.utils.translation</span> <span class="kn">import</span> <span class="n">gettext</span> <span class="k">as</span> <span class="n">_</span>
<span class="kn">from</span> <span class="nn">evennia.accounts.accounts</span> <span class="kn">import</span> <span class="n">DefaultAccount</span>
<span class="kn">from</span> <span class="nn">evennia.scripts.scripts</span> <span class="kn">import</span> <span class="n">DefaultScript</span>
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">logger</span><span class="p">,</span> <span class="n">search</span><span class="p">,</span> <span class="n">utils</span>

View file

@ -90,17 +90,17 @@
<span class="n">parser</span> <span class="o">=</span> <span class="n">text2bbcode</span><span class="o">.</span><span class="n">BBCODE_PARSER</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;[color=#800000]red[/color]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;[color=#800000]red[/color]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span>
<span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_UNHILITE</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_RED</span> <span class="o">+</span> <span class="s2">&quot;red&quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;foo&quot;</span>
<span class="p">),</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;[bgcolor=#800000]red[/bgcolor]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;[bgcolor=#800000]red[/bgcolor]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span><span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_BACK_RED</span> <span class="o">+</span> <span class="s2">&quot;red&quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;foo&quot;</span><span class="p">),</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;[bgcolor=#800000][color=#008000]red[/color][/bgcolor]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;[bgcolor=#800000][color=#008000]red[/color][/bgcolor]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span>
<span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_BACK_RED</span>
<span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_UNHILITE</span>
@ -111,15 +111,15 @@
<span class="p">),</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;a [u]red[/u]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;a [u]red[/u]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span><span class="s2">&quot;a &quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_UNDERLINE</span> <span class="o">+</span> <span class="s2">&quot;red&quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;foo&quot;</span><span class="p">),</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;a [blink]red[/blink]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;a [blink]red[/blink]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span><span class="s2">&quot;a &quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_BLINK</span> <span class="o">+</span> <span class="s2">&quot;red&quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;foo&quot;</span><span class="p">),</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;a [bgcolor=#c0c0c0][color=#000000]red[/color][/bgcolor]foo&#39;</span><span class="p">,</span>
<span class="s2">&quot;a [bgcolor=#c0c0c0][color=#000000]red[/color][/bgcolor]foo&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">format_styles</span><span class="p">(</span><span class="s2">&quot;a &quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_INVERSE</span> <span class="o">+</span> <span class="s2">&quot;red&quot;</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">ANSI_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;foo&quot;</span><span class="p">),</span>
<span class="p">)</span></div>
@ -127,7 +127,7 @@
<span class="n">parser</span> <span class="o">=</span> <span class="n">text2bbcode</span><span class="o">.</span><span class="n">BBCODE_PARSER</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">convert_urls</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="s1">&#39;a [url=http://redfoo]http://redfoo[/url] runs&#39;</span><span class="p">,</span>
<span class="s2">&quot;a [url=http://redfoo]http://redfoo[/url] runs&quot;</span><span class="p">,</span>
<span class="n">parser</span><span class="o">.</span><span class="n">convert_urls</span><span class="p">(</span><span class="s2">&quot;a http://redfoo runs&quot;</span><span class="p">),</span>
<span class="p">)</span></div>
@ -146,20 +146,19 @@
<span class="n">mocked_match</span><span class="o">.</span><span class="n">groupdict</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;lineend&quot;</span><span class="p">:</span> <span class="s2">&quot;foo&quot;</span><span class="p">}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">sub_text</span><span class="p">(</span><span class="n">mocked_match</span><span class="p">))</span></div>
<div class="viewcode-block" id="TestText2Bbcode.test_parse_bbcode"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.test_text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.test_text2bbcode.TestText2Bbcode.test_parse_bbcode">[docs]</a> <span class="k">def</span> <span class="nf">test_parse_bbcode</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="n">text2bbcode</span><span class="o">.</span><span class="n">parse_to_bbcode</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">maxDiff</span> <span class="o">=</span> <span class="kc">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="n">text2bbcode</span><span class="o">.</span><span class="n">parse_to_bbcode</span><span class="p">(</span><span class="s2">&quot;|^|[CHello|n|u|rW|go|yr|bl|md|c!|[G!&quot;</span><span class="p">),</span>
<span class="s1">&#39;[blink][bgcolor=#008080]Hello[/bgcolor][/blink]&#39;</span>
<span class="s1">&#39;[u][color=#ff0000]W[/color][/u]&#39;</span>
<span class="s1">&#39;[u][color=#00ff00]o[/color][/u]&#39;</span>
<span class="s1">&#39;[u][color=#ffff00]r[/color][/u]&#39;</span>
<span class="s1">&#39;[u][color=#0000ff]l[/color][/u]&#39;</span>
<span class="s1">&#39;[u][color=#ff00ff]d[/color][/u]&#39;</span>
<span class="s1">&#39;[u][color=#00ffff]![/color][/u]&#39;</span>
<span class="s1">&#39;[u][bgcolor=#008000][color=#00ffff]![/color][/bgcolor][/u]&#39;</span><span class="p">,</span>
<span class="s2">&quot;[blink][bgcolor=#008080]Hello[/bgcolor][/blink]&quot;</span>
<span class="s2">&quot;[u][color=#ff0000]W[/color][/u]&quot;</span>
<span class="s2">&quot;[u][color=#00ff00]o[/color][/u]&quot;</span>
<span class="s2">&quot;[u][color=#ffff00]r[/color][/u]&quot;</span>
<span class="s2">&quot;[u][color=#0000ff]l[/color][/u]&quot;</span>
<span class="s2">&quot;[u][color=#ff00ff]d[/color][/u]&quot;</span>
<span class="s2">&quot;[u][color=#00ffff]![/color][/u]&quot;</span>
<span class="s2">&quot;[u][bgcolor=#008000][color=#00ffff]![/color][/bgcolor][/u]&quot;</span><span class="p">,</span>
<span class="p">)</span></div></div>
</pre></div>

View file

@ -90,156 +90,518 @@
<span class="n">XTERM256_BG</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[48;5;</span><span class="si">{}</span><span class="s2">m&quot;</span>
<span class="n">COLOR_INDICE_TO_HEX</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">&#39;color-000&#39;</span><span class="p">:</span> <span class="s1">&#39;#000000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-001&#39;</span><span class="p">:</span> <span class="s1">&#39;#800000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-002&#39;</span><span class="p">:</span> <span class="s1">&#39;#008000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-003&#39;</span><span class="p">:</span> <span class="s1">&#39;#808000&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-004&#39;</span><span class="p">:</span> <span class="s1">&#39;#000080&#39;</span><span class="p">,</span> <span class="s1">&#39;color-005&#39;</span><span class="p">:</span> <span class="s1">&#39;#800080&#39;</span><span class="p">,</span> <span class="s1">&#39;color-006&#39;</span><span class="p">:</span> <span class="s1">&#39;#008080&#39;</span><span class="p">,</span> <span class="s1">&#39;color-007&#39;</span><span class="p">:</span> <span class="s1">&#39;#c0c0c0&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-008&#39;</span><span class="p">:</span> <span class="s1">&#39;#808080&#39;</span><span class="p">,</span> <span class="s1">&#39;color-009&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-010&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-011&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff00&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-012&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-013&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-014&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-015&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-016&#39;</span><span class="p">:</span> <span class="s1">&#39;#000000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-017&#39;</span><span class="p">:</span> <span class="s1">&#39;#00005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-018&#39;</span><span class="p">:</span> <span class="s1">&#39;#000087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-019&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-020&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-021&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-022&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-023&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-024&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-025&#39;</span><span class="p">:</span> <span class="s1">&#39;#005faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-026&#39;</span><span class="p">:</span> <span class="s1">&#39;#005fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-027&#39;</span><span class="p">:</span> <span class="s1">&#39;#005fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-028&#39;</span><span class="p">:</span> <span class="s1">&#39;#008700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-029&#39;</span><span class="p">:</span> <span class="s1">&#39;#00875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-030&#39;</span><span class="p">:</span> <span class="s1">&#39;#008787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-031&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-032&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-033&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-034&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-035&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-036&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-037&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-038&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-039&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-040&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-041&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-042&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-043&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-044&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-045&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-046&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-047&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-048&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-049&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-050&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-051&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-052&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f0000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-053&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-054&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f0087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-055&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-056&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-057&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-058&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-059&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-060&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-061&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-062&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-063&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-064&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f8700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-065&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-066&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f8787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-067&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-068&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-069&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-070&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-071&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-072&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-073&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-074&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-075&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-076&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-077&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-078&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-079&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-080&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-081&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-082&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-083&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-084&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-085&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-086&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-087&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-088&#39;</span><span class="p">:</span> <span class="s1">&#39;#870000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-089&#39;</span><span class="p">:</span> <span class="s1">&#39;#87005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-090&#39;</span><span class="p">:</span> <span class="s1">&#39;#870087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-091&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-092&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-093&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-094&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-095&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-096&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-097&#39;</span><span class="p">:</span> <span class="s1">&#39;#875faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-098&#39;</span><span class="p">:</span> <span class="s1">&#39;#875fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-099&#39;</span><span class="p">:</span> <span class="s1">&#39;#875fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-100&#39;</span><span class="p">:</span> <span class="s1">&#39;#878700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-101&#39;</span><span class="p">:</span> <span class="s1">&#39;#87875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-102&#39;</span><span class="p">:</span> <span class="s1">&#39;#878787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-103&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-104&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-105&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-106&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-107&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-108&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-109&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-110&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-111&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-112&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-113&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-114&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-115&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-116&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-117&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-118&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-119&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-120&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-121&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-122&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-123&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-124&#39;</span><span class="p">:</span> <span class="s1">&#39;#af0000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-125&#39;</span><span class="p">:</span> <span class="s1">&#39;#af005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-126&#39;</span><span class="p">:</span> <span class="s1">&#39;#af0087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-127&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-128&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-129&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-130&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-131&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-132&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-133&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-134&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-135&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-136&#39;</span><span class="p">:</span> <span class="s1">&#39;#af8700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-137&#39;</span><span class="p">:</span> <span class="s1">&#39;#af875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-138&#39;</span><span class="p">:</span> <span class="s1">&#39;#af8787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-139&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-140&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-141&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-142&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-143&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-144&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-145&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-146&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-147&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-148&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-149&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-150&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-151&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-152&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-153&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-154&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-155&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-156&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-157&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-158&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-159&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-160&#39;</span><span class="p">:</span> <span class="s1">&#39;#df0000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-161&#39;</span><span class="p">:</span> <span class="s1">&#39;#df005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-162&#39;</span><span class="p">:</span> <span class="s1">&#39;#df0087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-163&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-164&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-165&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-166&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-167&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-168&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-169&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-170&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-171&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-172&#39;</span><span class="p">:</span> <span class="s1">&#39;#df8700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-173&#39;</span><span class="p">:</span> <span class="s1">&#39;#df875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-174&#39;</span><span class="p">:</span> <span class="s1">&#39;#df8787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-175&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-176&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-177&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-178&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-179&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-180&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-181&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-182&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-183&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-184&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-185&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-186&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-187&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-188&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-189&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-190&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-191&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-192&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-193&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-194&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-195&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-196&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0000&#39;</span><span class="p">,</span> <span class="s1">&#39;color-197&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff005f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-198&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0087&#39;</span><span class="p">,</span> <span class="s1">&#39;color-199&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-200&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-201&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-202&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-203&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-204&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-205&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-206&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5fdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-207&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5fff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-208&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff8700&#39;</span><span class="p">,</span> <span class="s1">&#39;color-209&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff875f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-210&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff8787&#39;</span><span class="p">,</span> <span class="s1">&#39;color-211&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87af&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-212&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87df&#39;</span><span class="p">,</span> <span class="s1">&#39;color-213&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-214&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-215&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-216&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-217&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-218&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-219&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-220&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-221&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf5f&#39;</span><span class="p">,</span> <span class="s1">&#39;color-222&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-223&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfaf&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-224&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-225&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;color-226&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff00&#39;</span><span class="p">,</span> <span class="s1">&#39;color-227&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-228&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff87&#39;</span><span class="p">,</span> <span class="s1">&#39;color-229&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-230&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffdf&#39;</span><span class="p">,</span> <span class="s1">&#39;color-231&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-232&#39;</span><span class="p">:</span> <span class="s1">&#39;#080808&#39;</span><span class="p">,</span> <span class="s1">&#39;color-233&#39;</span><span class="p">:</span> <span class="s1">&#39;#121212&#39;</span><span class="p">,</span> <span class="s1">&#39;color-234&#39;</span><span class="p">:</span> <span class="s1">&#39;#1c1c1c&#39;</span><span class="p">,</span> <span class="s1">&#39;color-235&#39;</span><span class="p">:</span> <span class="s1">&#39;#262626&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-236&#39;</span><span class="p">:</span> <span class="s1">&#39;#303030&#39;</span><span class="p">,</span> <span class="s1">&#39;color-237&#39;</span><span class="p">:</span> <span class="s1">&#39;#3a3a3a&#39;</span><span class="p">,</span> <span class="s1">&#39;color-238&#39;</span><span class="p">:</span> <span class="s1">&#39;#444444&#39;</span><span class="p">,</span> <span class="s1">&#39;color-239&#39;</span><span class="p">:</span> <span class="s1">&#39;#4e4e4e&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-240&#39;</span><span class="p">:</span> <span class="s1">&#39;#585858&#39;</span><span class="p">,</span> <span class="s1">&#39;color-241&#39;</span><span class="p">:</span> <span class="s1">&#39;#606060&#39;</span><span class="p">,</span> <span class="s1">&#39;color-242&#39;</span><span class="p">:</span> <span class="s1">&#39;#666666&#39;</span><span class="p">,</span> <span class="s1">&#39;color-243&#39;</span><span class="p">:</span> <span class="s1">&#39;#767676&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-244&#39;</span><span class="p">:</span> <span class="s1">&#39;#808080&#39;</span><span class="p">,</span> <span class="s1">&#39;color-245&#39;</span><span class="p">:</span> <span class="s1">&#39;#8a8a8a&#39;</span><span class="p">,</span> <span class="s1">&#39;color-246&#39;</span><span class="p">:</span> <span class="s1">&#39;#949494&#39;</span><span class="p">,</span> <span class="s1">&#39;color-247&#39;</span><span class="p">:</span> <span class="s1">&#39;#9e9e9e&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-248&#39;</span><span class="p">:</span> <span class="s1">&#39;#a8a8a8&#39;</span><span class="p">,</span> <span class="s1">&#39;color-249&#39;</span><span class="p">:</span> <span class="s1">&#39;#b2b2b2&#39;</span><span class="p">,</span> <span class="s1">&#39;color-250&#39;</span><span class="p">:</span> <span class="s1">&#39;#bcbcbc&#39;</span><span class="p">,</span> <span class="s1">&#39;color-251&#39;</span><span class="p">:</span> <span class="s1">&#39;#c6c6c6&#39;</span><span class="p">,</span>
<span class="s1">&#39;color-252&#39;</span><span class="p">:</span> <span class="s1">&#39;#d0d0d0&#39;</span><span class="p">,</span> <span class="s1">&#39;color-253&#39;</span><span class="p">:</span> <span class="s1">&#39;#dadada&#39;</span><span class="p">,</span> <span class="s1">&#39;color-254&#39;</span><span class="p">:</span> <span class="s1">&#39;#e4e4e4&#39;</span><span class="p">,</span> <span class="s1">&#39;color-255&#39;</span><span class="p">:</span> <span class="s1">&#39;#eeeeee&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-000&#39;</span><span class="p">:</span> <span class="s1">&#39;#000000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-001&#39;</span><span class="p">:</span> <span class="s1">&#39;#800000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-002&#39;</span><span class="p">:</span> <span class="s1">&#39;#008000&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-003&#39;</span><span class="p">:</span> <span class="s1">&#39;#808000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-004&#39;</span><span class="p">:</span> <span class="s1">&#39;#000080&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-005&#39;</span><span class="p">:</span> <span class="s1">&#39;#800080&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-006&#39;</span><span class="p">:</span> <span class="s1">&#39;#008080&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-007&#39;</span><span class="p">:</span> <span class="s1">&#39;#c0c0c0&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-008&#39;</span><span class="p">:</span> <span class="s1">&#39;#808080&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-009&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-010&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-011&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff00&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-012&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-013&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-014&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffff&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-015&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-016&#39;</span><span class="p">:</span> <span class="s1">&#39;#000000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-017&#39;</span><span class="p">:</span> <span class="s1">&#39;#00005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-018&#39;</span><span class="p">:</span> <span class="s1">&#39;#000087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-019&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-020&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-021&#39;</span><span class="p">:</span> <span class="s1">&#39;#0000ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-022&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-023&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-024&#39;</span><span class="p">:</span> <span class="s1">&#39;#005f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-025&#39;</span><span class="p">:</span> <span class="s1">&#39;#005faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-026&#39;</span><span class="p">:</span> <span class="s1">&#39;#005fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-027&#39;</span><span class="p">:</span> <span class="s1">&#39;#005fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-028&#39;</span><span class="p">:</span> <span class="s1">&#39;#008700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-029&#39;</span><span class="p">:</span> <span class="s1">&#39;#00875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-030&#39;</span><span class="p">:</span> <span class="s1">&#39;#008787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-031&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-032&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-033&#39;</span><span class="p">:</span> <span class="s1">&#39;#0087ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-034&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-035&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-036&#39;</span><span class="p">:</span> <span class="s1">&#39;#00af87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-037&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-038&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-039&#39;</span><span class="p">:</span> <span class="s1">&#39;#00afff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-040&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-041&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-042&#39;</span><span class="p">:</span> <span class="s1">&#39;#00df87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-043&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-044&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-045&#39;</span><span class="p">:</span> <span class="s1">&#39;#00dfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-046&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-047&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-048&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-049&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-050&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-051&#39;</span><span class="p">:</span> <span class="s1">&#39;#00ffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-052&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f0000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-053&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-054&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f0087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-055&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-056&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-057&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-058&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-059&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-060&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-061&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-062&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-063&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f5fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-064&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f8700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-065&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-066&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f8787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-067&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-068&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-069&#39;</span><span class="p">:</span> <span class="s1">&#39;#5f87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-070&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-071&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-072&#39;</span><span class="p">:</span> <span class="s1">&#39;#5faf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-073&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-074&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-075&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fafff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-076&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-077&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-078&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-079&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-080&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-081&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-082&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-083&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-084&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-085&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-086&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-087&#39;</span><span class="p">:</span> <span class="s1">&#39;#5fffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-088&#39;</span><span class="p">:</span> <span class="s1">&#39;#870000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-089&#39;</span><span class="p">:</span> <span class="s1">&#39;#87005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-090&#39;</span><span class="p">:</span> <span class="s1">&#39;#870087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-091&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-092&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-093&#39;</span><span class="p">:</span> <span class="s1">&#39;#8700ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-094&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-095&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-096&#39;</span><span class="p">:</span> <span class="s1">&#39;#875f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-097&#39;</span><span class="p">:</span> <span class="s1">&#39;#875faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-098&#39;</span><span class="p">:</span> <span class="s1">&#39;#875fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-099&#39;</span><span class="p">:</span> <span class="s1">&#39;#875fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-100&#39;</span><span class="p">:</span> <span class="s1">&#39;#878700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-101&#39;</span><span class="p">:</span> <span class="s1">&#39;#87875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-102&#39;</span><span class="p">:</span> <span class="s1">&#39;#878787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-103&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-104&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-105&#39;</span><span class="p">:</span> <span class="s1">&#39;#8787ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-106&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-107&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-108&#39;</span><span class="p">:</span> <span class="s1">&#39;#87af87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-109&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-110&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-111&#39;</span><span class="p">:</span> <span class="s1">&#39;#87afff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-112&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-113&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-114&#39;</span><span class="p">:</span> <span class="s1">&#39;#87df87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-115&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-116&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-117&#39;</span><span class="p">:</span> <span class="s1">&#39;#87dfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-118&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-119&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-120&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-121&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-122&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-123&#39;</span><span class="p">:</span> <span class="s1">&#39;#87ffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-124&#39;</span><span class="p">:</span> <span class="s1">&#39;#af0000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-125&#39;</span><span class="p">:</span> <span class="s1">&#39;#af005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-126&#39;</span><span class="p">:</span> <span class="s1">&#39;#af0087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-127&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-128&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-129&#39;</span><span class="p">:</span> <span class="s1">&#39;#af00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-130&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-131&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-132&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-133&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-134&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-135&#39;</span><span class="p">:</span> <span class="s1">&#39;#af5fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-136&#39;</span><span class="p">:</span> <span class="s1">&#39;#af8700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-137&#39;</span><span class="p">:</span> <span class="s1">&#39;#af875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-138&#39;</span><span class="p">:</span> <span class="s1">&#39;#af8787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-139&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-140&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-141&#39;</span><span class="p">:</span> <span class="s1">&#39;#af87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-142&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-143&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-144&#39;</span><span class="p">:</span> <span class="s1">&#39;#afaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-145&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-146&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-147&#39;</span><span class="p">:</span> <span class="s1">&#39;#afafff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-148&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-149&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-150&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-151&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-152&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-153&#39;</span><span class="p">:</span> <span class="s1">&#39;#afdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-154&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-155&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-156&#39;</span><span class="p">:</span> <span class="s1">&#39;#afff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-157&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-158&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-159&#39;</span><span class="p">:</span> <span class="s1">&#39;#afffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-160&#39;</span><span class="p">:</span> <span class="s1">&#39;#df0000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-161&#39;</span><span class="p">:</span> <span class="s1">&#39;#df005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-162&#39;</span><span class="p">:</span> <span class="s1">&#39;#df0087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-163&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-164&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-165&#39;</span><span class="p">:</span> <span class="s1">&#39;#df00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-166&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-167&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-168&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-169&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-170&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-171&#39;</span><span class="p">:</span> <span class="s1">&#39;#df5fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-172&#39;</span><span class="p">:</span> <span class="s1">&#39;#df8700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-173&#39;</span><span class="p">:</span> <span class="s1">&#39;#df875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-174&#39;</span><span class="p">:</span> <span class="s1">&#39;#df8787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-175&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-176&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-177&#39;</span><span class="p">:</span> <span class="s1">&#39;#df87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-178&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-179&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-180&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-181&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-182&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-183&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfafff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-184&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-185&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-186&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-187&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-188&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-189&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-190&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-191&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-192&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-193&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-194&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-195&#39;</span><span class="p">:</span> <span class="s1">&#39;#dfffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-196&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0000&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-197&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff005f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-198&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff0087&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-199&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-200&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-201&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff00ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-202&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-203&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-204&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5f87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-205&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5faf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-206&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5fdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-207&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff5fff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-208&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff8700&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-209&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff875f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-210&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff8787&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-211&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87af&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-212&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87df&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-213&#39;</span><span class="p">:</span> <span class="s1">&#39;#ff87ff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-214&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-215&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-216&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffaf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-217&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-218&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-219&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffafff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-220&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-221&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-222&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdf87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-223&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-224&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-225&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffdfff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-226&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff00&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-227&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff5f&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-228&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffff87&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-229&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffaf&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-230&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffdf&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-231&#39;</span><span class="p">:</span> <span class="s1">&#39;#ffffff&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-232&#39;</span><span class="p">:</span> <span class="s1">&#39;#080808&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-233&#39;</span><span class="p">:</span> <span class="s1">&#39;#121212&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-234&#39;</span><span class="p">:</span> <span class="s1">&#39;#1c1c1c&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-235&#39;</span><span class="p">:</span> <span class="s1">&#39;#262626&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-236&#39;</span><span class="p">:</span> <span class="s1">&#39;#303030&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-237&#39;</span><span class="p">:</span> <span class="s1">&#39;#3a3a3a&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-238&#39;</span><span class="p">:</span> <span class="s1">&#39;#444444&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-239&#39;</span><span class="p">:</span> <span class="s1">&#39;#4e4e4e&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-240&#39;</span><span class="p">:</span> <span class="s1">&#39;#585858&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-241&#39;</span><span class="p">:</span> <span class="s1">&#39;#606060&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-242&#39;</span><span class="p">:</span> <span class="s1">&#39;#666666&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-243&#39;</span><span class="p">:</span> <span class="s1">&#39;#767676&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-244&#39;</span><span class="p">:</span> <span class="s1">&#39;#808080&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-245&#39;</span><span class="p">:</span> <span class="s1">&#39;#8a8a8a&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-246&#39;</span><span class="p">:</span> <span class="s1">&#39;#949494&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-247&#39;</span><span class="p">:</span> <span class="s1">&#39;#9e9e9e&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-248&#39;</span><span class="p">:</span> <span class="s1">&#39;#a8a8a8&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-249&#39;</span><span class="p">:</span> <span class="s1">&#39;#b2b2b2&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-250&#39;</span><span class="p">:</span> <span class="s1">&#39;#bcbcbc&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-251&#39;</span><span class="p">:</span> <span class="s1">&#39;#c6c6c6&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-252&#39;</span><span class="p">:</span> <span class="s1">&#39;#d0d0d0&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-253&#39;</span><span class="p">:</span> <span class="s1">&#39;#dadada&#39;</span><span class="p">,</span> <span class="s1">&#39;bgcolor-254&#39;</span><span class="p">:</span> <span class="s1">&#39;#e4e4e4&#39;</span><span class="p">,</span>
<span class="s1">&#39;bgcolor-255&#39;</span><span class="p">:</span> <span class="s1">&#39;#eeeeee&#39;</span>
<span class="s2">&quot;color-000&quot;</span><span class="p">:</span> <span class="s2">&quot;#000000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-001&quot;</span><span class="p">:</span> <span class="s2">&quot;#800000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-002&quot;</span><span class="p">:</span> <span class="s2">&quot;#008000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-003&quot;</span><span class="p">:</span> <span class="s2">&quot;#808000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-004&quot;</span><span class="p">:</span> <span class="s2">&quot;#000080&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-005&quot;</span><span class="p">:</span> <span class="s2">&quot;#800080&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-006&quot;</span><span class="p">:</span> <span class="s2">&quot;#008080&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-007&quot;</span><span class="p">:</span> <span class="s2">&quot;#c0c0c0&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-008&quot;</span><span class="p">:</span> <span class="s2">&quot;#808080&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-009&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-010&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-011&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-012&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-013&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-014&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-015&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-016&quot;</span><span class="p">:</span> <span class="s2">&quot;#000000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-017&quot;</span><span class="p">:</span> <span class="s2">&quot;#00005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-018&quot;</span><span class="p">:</span> <span class="s2">&quot;#000087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-019&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-020&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-021&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-022&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-023&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-024&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-025&quot;</span><span class="p">:</span> <span class="s2">&quot;#005faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-026&quot;</span><span class="p">:</span> <span class="s2">&quot;#005fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-027&quot;</span><span class="p">:</span> <span class="s2">&quot;#005fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-028&quot;</span><span class="p">:</span> <span class="s2">&quot;#008700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-029&quot;</span><span class="p">:</span> <span class="s2">&quot;#00875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-030&quot;</span><span class="p">:</span> <span class="s2">&quot;#008787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-031&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-032&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-033&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-034&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-035&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-036&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-037&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-038&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-039&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-040&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-041&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-042&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-043&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-044&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-045&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-046&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-047&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-048&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-049&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-050&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-051&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-052&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-053&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-054&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-055&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-056&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-057&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-058&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-059&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-060&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-061&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-062&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-063&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-064&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-065&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-066&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-067&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-068&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-069&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-070&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-071&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-072&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-073&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-074&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-075&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-076&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-077&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-078&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-079&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-080&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-081&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-082&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-083&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-084&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-085&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-086&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-087&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-088&quot;</span><span class="p">:</span> <span class="s2">&quot;#870000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-089&quot;</span><span class="p">:</span> <span class="s2">&quot;#87005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-090&quot;</span><span class="p">:</span> <span class="s2">&quot;#870087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-091&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-092&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-093&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-094&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-095&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-096&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-097&quot;</span><span class="p">:</span> <span class="s2">&quot;#875faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-098&quot;</span><span class="p">:</span> <span class="s2">&quot;#875fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-099&quot;</span><span class="p">:</span> <span class="s2">&quot;#875fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-100&quot;</span><span class="p">:</span> <span class="s2">&quot;#878700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-101&quot;</span><span class="p">:</span> <span class="s2">&quot;#87875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-102&quot;</span><span class="p">:</span> <span class="s2">&quot;#878787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-103&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-104&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-105&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-106&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-107&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-108&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-109&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-110&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-111&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-112&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-113&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-114&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-115&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-116&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-117&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-118&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-119&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-120&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-121&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-122&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-123&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-124&quot;</span><span class="p">:</span> <span class="s2">&quot;#af0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-125&quot;</span><span class="p">:</span> <span class="s2">&quot;#af005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-126&quot;</span><span class="p">:</span> <span class="s2">&quot;#af0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-127&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-128&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-129&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-130&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-131&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-132&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-133&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-134&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-135&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-136&quot;</span><span class="p">:</span> <span class="s2">&quot;#af8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-137&quot;</span><span class="p">:</span> <span class="s2">&quot;#af875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-138&quot;</span><span class="p">:</span> <span class="s2">&quot;#af8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-139&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-140&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-141&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-142&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-143&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-144&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-145&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-146&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-147&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-148&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-149&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-150&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-151&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-152&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-153&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-154&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-155&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-156&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-157&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-158&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-159&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-160&quot;</span><span class="p">:</span> <span class="s2">&quot;#df0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-161&quot;</span><span class="p">:</span> <span class="s2">&quot;#df005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-162&quot;</span><span class="p">:</span> <span class="s2">&quot;#df0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-163&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-164&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-165&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-166&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-167&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-168&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-169&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-170&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-171&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-172&quot;</span><span class="p">:</span> <span class="s2">&quot;#df8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-173&quot;</span><span class="p">:</span> <span class="s2">&quot;#df875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-174&quot;</span><span class="p">:</span> <span class="s2">&quot;#df8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-175&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-176&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-177&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-178&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-179&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-180&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-181&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-182&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-183&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-184&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-185&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-186&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-187&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-188&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-189&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-190&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-191&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-192&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-193&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-194&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-195&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-196&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-197&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-198&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-199&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-200&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-201&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-202&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-203&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-204&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-205&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-206&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-207&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-208&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-209&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-210&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-211&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-212&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-213&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-214&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-215&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-216&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-217&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-218&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-219&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-220&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-221&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-222&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-223&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-224&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-225&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-226&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-227&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-228&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-229&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-230&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-231&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-232&quot;</span><span class="p">:</span> <span class="s2">&quot;#080808&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-233&quot;</span><span class="p">:</span> <span class="s2">&quot;#121212&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-234&quot;</span><span class="p">:</span> <span class="s2">&quot;#1c1c1c&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-235&quot;</span><span class="p">:</span> <span class="s2">&quot;#262626&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-236&quot;</span><span class="p">:</span> <span class="s2">&quot;#303030&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-237&quot;</span><span class="p">:</span> <span class="s2">&quot;#3a3a3a&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-238&quot;</span><span class="p">:</span> <span class="s2">&quot;#444444&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-239&quot;</span><span class="p">:</span> <span class="s2">&quot;#4e4e4e&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-240&quot;</span><span class="p">:</span> <span class="s2">&quot;#585858&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-241&quot;</span><span class="p">:</span> <span class="s2">&quot;#606060&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-242&quot;</span><span class="p">:</span> <span class="s2">&quot;#666666&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-243&quot;</span><span class="p">:</span> <span class="s2">&quot;#767676&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-244&quot;</span><span class="p">:</span> <span class="s2">&quot;#808080&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-245&quot;</span><span class="p">:</span> <span class="s2">&quot;#8a8a8a&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-246&quot;</span><span class="p">:</span> <span class="s2">&quot;#949494&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-247&quot;</span><span class="p">:</span> <span class="s2">&quot;#9e9e9e&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-248&quot;</span><span class="p">:</span> <span class="s2">&quot;#a8a8a8&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-249&quot;</span><span class="p">:</span> <span class="s2">&quot;#b2b2b2&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-250&quot;</span><span class="p">:</span> <span class="s2">&quot;#bcbcbc&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-251&quot;</span><span class="p">:</span> <span class="s2">&quot;#c6c6c6&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-252&quot;</span><span class="p">:</span> <span class="s2">&quot;#d0d0d0&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-253&quot;</span><span class="p">:</span> <span class="s2">&quot;#dadada&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-254&quot;</span><span class="p">:</span> <span class="s2">&quot;#e4e4e4&quot;</span><span class="p">,</span>
<span class="s2">&quot;color-255&quot;</span><span class="p">:</span> <span class="s2">&quot;#eeeeee&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-000&quot;</span><span class="p">:</span> <span class="s2">&quot;#000000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-001&quot;</span><span class="p">:</span> <span class="s2">&quot;#800000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-002&quot;</span><span class="p">:</span> <span class="s2">&quot;#008000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-003&quot;</span><span class="p">:</span> <span class="s2">&quot;#808000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-004&quot;</span><span class="p">:</span> <span class="s2">&quot;#000080&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-005&quot;</span><span class="p">:</span> <span class="s2">&quot;#800080&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-006&quot;</span><span class="p">:</span> <span class="s2">&quot;#008080&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-007&quot;</span><span class="p">:</span> <span class="s2">&quot;#c0c0c0&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-008&quot;</span><span class="p">:</span> <span class="s2">&quot;#808080&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-009&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-010&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-011&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-012&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-013&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-014&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-015&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-016&quot;</span><span class="p">:</span> <span class="s2">&quot;#000000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-017&quot;</span><span class="p">:</span> <span class="s2">&quot;#00005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-018&quot;</span><span class="p">:</span> <span class="s2">&quot;#000087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-019&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-020&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-021&quot;</span><span class="p">:</span> <span class="s2">&quot;#0000ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-022&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-023&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-024&quot;</span><span class="p">:</span> <span class="s2">&quot;#005f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-025&quot;</span><span class="p">:</span> <span class="s2">&quot;#005faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-026&quot;</span><span class="p">:</span> <span class="s2">&quot;#005fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-027&quot;</span><span class="p">:</span> <span class="s2">&quot;#005fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-028&quot;</span><span class="p">:</span> <span class="s2">&quot;#008700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-029&quot;</span><span class="p">:</span> <span class="s2">&quot;#00875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-030&quot;</span><span class="p">:</span> <span class="s2">&quot;#008787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-031&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-032&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-033&quot;</span><span class="p">:</span> <span class="s2">&quot;#0087ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-034&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-035&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-036&quot;</span><span class="p">:</span> <span class="s2">&quot;#00af87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-037&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-038&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-039&quot;</span><span class="p">:</span> <span class="s2">&quot;#00afff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-040&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-041&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-042&quot;</span><span class="p">:</span> <span class="s2">&quot;#00df87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-043&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-044&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-045&quot;</span><span class="p">:</span> <span class="s2">&quot;#00dfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-046&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-047&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-048&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-049&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-050&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-051&quot;</span><span class="p">:</span> <span class="s2">&quot;#00ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-052&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-053&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-054&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-055&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-056&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-057&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-058&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-059&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-060&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-061&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-062&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-063&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-064&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-065&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-066&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-067&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-068&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-069&quot;</span><span class="p">:</span> <span class="s2">&quot;#5f87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-070&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-071&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-072&quot;</span><span class="p">:</span> <span class="s2">&quot;#5faf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-073&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-074&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-075&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-076&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-077&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-078&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-079&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-080&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-081&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-082&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-083&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-084&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-085&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-086&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-087&quot;</span><span class="p">:</span> <span class="s2">&quot;#5fffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-088&quot;</span><span class="p">:</span> <span class="s2">&quot;#870000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-089&quot;</span><span class="p">:</span> <span class="s2">&quot;#87005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-090&quot;</span><span class="p">:</span> <span class="s2">&quot;#870087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-091&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-092&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-093&quot;</span><span class="p">:</span> <span class="s2">&quot;#8700ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-094&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-095&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-096&quot;</span><span class="p">:</span> <span class="s2">&quot;#875f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-097&quot;</span><span class="p">:</span> <span class="s2">&quot;#875faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-098&quot;</span><span class="p">:</span> <span class="s2">&quot;#875fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-099&quot;</span><span class="p">:</span> <span class="s2">&quot;#875fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-100&quot;</span><span class="p">:</span> <span class="s2">&quot;#878700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-101&quot;</span><span class="p">:</span> <span class="s2">&quot;#87875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-102&quot;</span><span class="p">:</span> <span class="s2">&quot;#878787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-103&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-104&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-105&quot;</span><span class="p">:</span> <span class="s2">&quot;#8787ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-106&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-107&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-108&quot;</span><span class="p">:</span> <span class="s2">&quot;#87af87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-109&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-110&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-111&quot;</span><span class="p">:</span> <span class="s2">&quot;#87afff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-112&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-113&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-114&quot;</span><span class="p">:</span> <span class="s2">&quot;#87df87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-115&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-116&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-117&quot;</span><span class="p">:</span> <span class="s2">&quot;#87dfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-118&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-119&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-120&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-121&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-122&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-123&quot;</span><span class="p">:</span> <span class="s2">&quot;#87ffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-124&quot;</span><span class="p">:</span> <span class="s2">&quot;#af0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-125&quot;</span><span class="p">:</span> <span class="s2">&quot;#af005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-126&quot;</span><span class="p">:</span> <span class="s2">&quot;#af0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-127&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-128&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-129&quot;</span><span class="p">:</span> <span class="s2">&quot;#af00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-130&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-131&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-132&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-133&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-134&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-135&quot;</span><span class="p">:</span> <span class="s2">&quot;#af5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-136&quot;</span><span class="p">:</span> <span class="s2">&quot;#af8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-137&quot;</span><span class="p">:</span> <span class="s2">&quot;#af875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-138&quot;</span><span class="p">:</span> <span class="s2">&quot;#af8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-139&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-140&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-141&quot;</span><span class="p">:</span> <span class="s2">&quot;#af87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-142&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-143&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-144&quot;</span><span class="p">:</span> <span class="s2">&quot;#afaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-145&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-146&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-147&quot;</span><span class="p">:</span> <span class="s2">&quot;#afafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-148&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-149&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-150&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-151&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-152&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-153&quot;</span><span class="p">:</span> <span class="s2">&quot;#afdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-154&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-155&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-156&quot;</span><span class="p">:</span> <span class="s2">&quot;#afff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-157&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-158&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-159&quot;</span><span class="p">:</span> <span class="s2">&quot;#afffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-160&quot;</span><span class="p">:</span> <span class="s2">&quot;#df0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-161&quot;</span><span class="p">:</span> <span class="s2">&quot;#df005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-162&quot;</span><span class="p">:</span> <span class="s2">&quot;#df0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-163&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-164&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-165&quot;</span><span class="p">:</span> <span class="s2">&quot;#df00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-166&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-167&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-168&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-169&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-170&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-171&quot;</span><span class="p">:</span> <span class="s2">&quot;#df5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-172&quot;</span><span class="p">:</span> <span class="s2">&quot;#df8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-173&quot;</span><span class="p">:</span> <span class="s2">&quot;#df875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-174&quot;</span><span class="p">:</span> <span class="s2">&quot;#df8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-175&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-176&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-177&quot;</span><span class="p">:</span> <span class="s2">&quot;#df87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-178&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-179&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-180&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-181&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-182&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-183&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-184&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-185&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-186&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-187&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-188&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-189&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-190&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-191&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-192&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-193&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-194&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-195&quot;</span><span class="p">:</span> <span class="s2">&quot;#dfffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-196&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0000&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-197&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff005f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-198&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff0087&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-199&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-200&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-201&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff00ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-202&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-203&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-204&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5f87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-205&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5faf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-206&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5fdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-207&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff5fff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-208&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff8700&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-209&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff875f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-210&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff8787&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-211&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87af&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-212&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87df&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-213&quot;</span><span class="p">:</span> <span class="s2">&quot;#ff87ff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-214&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-215&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-216&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffaf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-217&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-218&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-219&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffafff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-220&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-221&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-222&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdf87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-223&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-224&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-225&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffdfff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-226&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff00&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-227&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff5f&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-228&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffff87&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-229&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffaf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-230&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffdf&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-231&quot;</span><span class="p">:</span> <span class="s2">&quot;#ffffff&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-232&quot;</span><span class="p">:</span> <span class="s2">&quot;#080808&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-233&quot;</span><span class="p">:</span> <span class="s2">&quot;#121212&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-234&quot;</span><span class="p">:</span> <span class="s2">&quot;#1c1c1c&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-235&quot;</span><span class="p">:</span> <span class="s2">&quot;#262626&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-236&quot;</span><span class="p">:</span> <span class="s2">&quot;#303030&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-237&quot;</span><span class="p">:</span> <span class="s2">&quot;#3a3a3a&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-238&quot;</span><span class="p">:</span> <span class="s2">&quot;#444444&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-239&quot;</span><span class="p">:</span> <span class="s2">&quot;#4e4e4e&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-240&quot;</span><span class="p">:</span> <span class="s2">&quot;#585858&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-241&quot;</span><span class="p">:</span> <span class="s2">&quot;#606060&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-242&quot;</span><span class="p">:</span> <span class="s2">&quot;#666666&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-243&quot;</span><span class="p">:</span> <span class="s2">&quot;#767676&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-244&quot;</span><span class="p">:</span> <span class="s2">&quot;#808080&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-245&quot;</span><span class="p">:</span> <span class="s2">&quot;#8a8a8a&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-246&quot;</span><span class="p">:</span> <span class="s2">&quot;#949494&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-247&quot;</span><span class="p">:</span> <span class="s2">&quot;#9e9e9e&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-248&quot;</span><span class="p">:</span> <span class="s2">&quot;#a8a8a8&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-249&quot;</span><span class="p">:</span> <span class="s2">&quot;#b2b2b2&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-250&quot;</span><span class="p">:</span> <span class="s2">&quot;#bcbcbc&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-251&quot;</span><span class="p">:</span> <span class="s2">&quot;#c6c6c6&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-252&quot;</span><span class="p">:</span> <span class="s2">&quot;#d0d0d0&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-253&quot;</span><span class="p">:</span> <span class="s2">&quot;#dadada&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-254&quot;</span><span class="p">:</span> <span class="s2">&quot;#e4e4e4&quot;</span><span class="p">,</span>
<span class="s2">&quot;bgcolor-255&quot;</span><span class="p">:</span> <span class="s2">&quot;#eeeeee&quot;</span><span class="p">,</span>
<span class="p">}</span>
@ -254,7 +616,7 @@
<span class="sd"> The Root tag class made to contain other tags.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;child&#39;</span><span class="p">,)</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;child&quot;</span><span class="p">,)</span>
<div class="viewcode-block" id="RootTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.RootTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">child</span> <span class="o">=</span> <span class="kc">None</span></div>
@ -285,7 +647,7 @@
<span class="sd"> Output: SomeText</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;parent&#39;</span><span class="p">,</span> <span class="s1">&#39;child&#39;</span><span class="p">,</span> <span class="s1">&#39;text&#39;</span><span class="p">)</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;child&quot;</span><span class="p">,</span> <span class="s2">&quot;text&quot;</span><span class="p">)</span>
<div class="viewcode-block" id="TextTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.TextTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
@ -301,9 +663,12 @@
<span class="sd"> Base BBCodeTag node to encapsulate and be encapsulated.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;parent&#39;</span><span class="p">,</span> <span class="s1">&#39;child&#39;</span><span class="p">,)</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
<span class="s2">&quot;parent&quot;</span><span class="p">,</span>
<span class="s2">&quot;child&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
<div class="viewcode-block" id="BBCodeTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.BBCodeTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
@ -319,7 +684,7 @@
<span class="sd"> Output: [u]Underlined Text[/u]</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;u&#39;</span></div>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;u&quot;</span></div>
<div class="viewcode-block" id="BlinkTag"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.BlinkTag">[docs]</a><span class="k">class</span> <span class="nc">BlinkTag</span><span class="p">(</span><span class="n">BBCodeTag</span><span class="p">):</span>
@ -328,7 +693,7 @@
<span class="sd"> Output: [blink]Blinking Text[/blink]</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;blink&#39;</span></div>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;blink&quot;</span></div>
<div class="viewcode-block" id="ColorTag"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.ColorTag">[docs]</a><span class="k">class</span> <span class="nc">ColorTag</span><span class="p">(</span><span class="n">BBCodeTag</span><span class="p">):</span>
@ -337,9 +702,13 @@
<span class="sd"> Output: [fgcolor=#000000]Colorized Text[/fgcolor]</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;parent&#39;</span><span class="p">,</span> <span class="s1">&#39;child&#39;</span><span class="p">,</span> <span class="s1">&#39;color_hex&#39;</span><span class="p">,)</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
<span class="s2">&quot;parent&quot;</span><span class="p">,</span>
<span class="s2">&quot;child&quot;</span><span class="p">,</span>
<span class="s2">&quot;color_hex&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;color&#39;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;color&quot;</span>
<div class="viewcode-block" id="ColorTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.ColorTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">color_hex</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
@ -355,7 +724,7 @@
<span class="sd"> Output: [bgcolor=#000000]Colorized Text[/bgcolor]</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;bgcolor&#39;</span></div>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;bgcolor&quot;</span></div>
<div class="viewcode-block" id="UrlTag"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.UrlTag">[docs]</a><span class="k">class</span> <span class="nc">UrlTag</span><span class="p">(</span><span class="n">BBCodeTag</span><span class="p">):</span>
@ -365,11 +734,15 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;parent&#39;</span><span class="p">,</span> <span class="s1">&#39;child&#39;</span><span class="p">,</span> <span class="s1">&#39;url_data&#39;</span><span class="p">,)</span>
<span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span>
<span class="s2">&quot;parent&quot;</span><span class="p">,</span>
<span class="s2">&quot;child&quot;</span><span class="p">,</span>
<span class="s2">&quot;url_data&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">code</span> <span class="o">=</span> <span class="s1">&#39;url&#39;</span>
<span class="n">code</span> <span class="o">=</span> <span class="s2">&quot;url&quot;</span>
<div class="viewcode-block" id="UrlTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.UrlTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">url_data</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">):</span>
<div class="viewcode-block" id="UrlTag.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.UrlTag.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">url_data</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">parent</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">url_data</span> <span class="o">=</span> <span class="n">url_data</span></div>
@ -394,7 +767,7 @@
<span class="sd"> text (str): Processed text</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Converts to bbcode styled urls</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">re_url</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;[url=\1]\1[/url]\2&#39;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span></div>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">re_url</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;[url=\1]\1[/url]\2&quot;</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span></div>
<div class="viewcode-block" id="TextToBBCODEparser.sub_mxp_links"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.text2bbcode.html#evennia.contrib.base_systems.godotwebsocket.text2bbcode.TextToBBCODEparser.sub_mxp_links">[docs]</a> <span class="k">def</span> <span class="nf">sub_mxp_links</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">match</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
@ -520,10 +893,7 @@
<span class="n">inverse</span> <span class="o">=</span> <span class="kc">True</span>
<span class="c1"># blink codes</span>
<span class="k">if</span> <span class="p">(</span>
<span class="n">substr</span> <span class="ow">in</span> <span class="p">(</span><span class="n">ANSI_BLINK</span><span class="p">,</span> <span class="n">ANSI_BLINK_HILITE</span><span class="p">,</span> <span class="n">ANSI_INV_BLINK_HILITE</span><span class="p">)</span>
<span class="ow">and</span> <span class="ow">not</span> <span class="n">blink</span>
<span class="p">):</span>
<span class="k">if</span> <span class="n">substr</span> <span class="ow">in</span> <span class="p">(</span><span class="n">ANSI_BLINK</span><span class="p">,</span> <span class="n">ANSI_BLINK_HILITE</span><span class="p">,</span> <span class="n">ANSI_INV_BLINK_HILITE</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">blink</span><span class="p">:</span>
<span class="n">blink</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">current_tag</span> <span class="o">=</span> <span class="n">BlinkTag</span><span class="p">(</span><span class="n">current_tag</span><span class="p">)</span>

View file

@ -100,6 +100,7 @@
<span class="sd"> It inherits from the basic Websocket implementation and changes only what is necessary.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="GodotWebSocketClient.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.base_systems.godotwebsocket.webclient.html#evennia.contrib.base_systems.godotwebsocket.webclient.GodotWebSocketClient.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">protocol_key</span> <span class="o">=</span> <span class="s2">&quot;godotclient/websocket&quot;</span></div>

View file

@ -105,7 +105,6 @@
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">class_from_module</span><span class="p">,</span> <span class="n">get_evennia_version</span><span class="p">,</span> <span class="n">logger</span>
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">delay</span>
<span class="n">_BASE_SESSION_CLASS</span> <span class="o">=</span> <span class="n">class_from_module</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">BASE_SESSION_CLASS</span><span class="p">)</span>
<span class="n">DISCORD_API_VERSION</span> <span class="o">=</span> <span class="mi">10</span>

View file

@ -294,8 +294,10 @@
<span class="s2">&quot;typeclass&quot;</span><span class="p">,</span>
<span class="n">max_length</span><span class="o">=</span><span class="mi">255</span><span class="p">,</span>
<span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="s2">&quot;this defines what &#39;type&#39; of entity this is. This variable holds &quot;</span>
<span class="s2">&quot;a Python path to a module with a valid Evennia Typeclass.&quot;</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="p">(</span>
<span class="s2">&quot;this defines what &#39;type&#39; of entity this is. This variable holds &quot;</span>
<span class="s2">&quot;a Python path to a module with a valid Evennia Typeclass.&quot;</span>
<span class="p">),</span>
<span class="n">db_index</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Creation date. This is not changed once the object is created.</span>
@ -304,20 +306,26 @@
<span class="n">db_lock_storage</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span>
<span class="s2">&quot;locks&quot;</span><span class="p">,</span>
<span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="s2">&quot;locks limit access to an entity. A lock is defined as a &#39;lock string&#39; &quot;</span>
<span class="s2">&quot;on the form &#39;type:lockfunctions&#39;, defining what functionality is locked and &quot;</span>
<span class="s2">&quot;how to determine access. Not defining a lock means no access is granted.&quot;</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="p">(</span>
<span class="s2">&quot;locks limit access to an entity. A lock is defined as a &#39;lock string&#39; &quot;</span>
<span class="s2">&quot;on the form &#39;type:lockfunctions&#39;, defining what functionality is locked and &quot;</span>
<span class="s2">&quot;how to determine access. Not defining a lock means no access is granted.&quot;</span>
<span class="p">),</span>
<span class="p">)</span>
<span class="c1"># many2many relationships</span>
<span class="n">db_attributes</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span>
<span class="n">Attribute</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="s2">&quot;attributes on this object. An attribute can hold any pickle-able &quot;</span>
<span class="s2">&quot;python object (see docs for special cases).&quot;</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="p">(</span>
<span class="s2">&quot;attributes on this object. An attribute can hold any pickle-able &quot;</span>
<span class="s2">&quot;python object (see docs for special cases).&quot;</span>
<span class="p">),</span>
<span class="p">)</span>
<span class="n">db_tags</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span>
<span class="n">Tag</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="s2">&quot;tags on this object. Tags are simple string markers to identify, &quot;</span>
<span class="s2">&quot;group and alias objects.&quot;</span><span class="p">,</span>
<span class="n">help_text</span><span class="o">=</span><span class="p">(</span>
<span class="s2">&quot;tags on this object. Tags are simple string markers to identify, &quot;</span>
<span class="s2">&quot;group and alias objects.&quot;</span>
<span class="p">),</span>
<span class="p">)</span>
<span class="c1"># Database manager</span>
@ -368,8 +376,8 @@
<span class="bp">self</span><span class="o">.</span><span class="n">__dbclass__</span> <span class="o">=</span> <span class="n">class_from_module</span><span class="p">(</span><span class="s2">&quot;evennia.objects.models.ObjectDB&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">db_typeclass_path</span> <span class="o">=</span> <span class="s2">&quot;evennia.objects.objects.DefaultObject&quot;</span>
<span class="n">log_trace</span><span class="p">(</span>
<span class="s2">&quot;Critical: Class </span><span class="si">%s</span><span class="s2"> of </span><span class="si">%s</span><span class="s2"> is not a valid typeclass!</span><span class="se">\n</span><span class="s2">Temporarily falling back to </span><span class="si">%s</span><span class="s2">.&quot;</span>
<span class="o">%</span> <span class="p">(</span><span class="n">err_class</span><span class="p">,</span> <span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span>
<span class="s2">&quot;Critical: Class </span><span class="si">%s</span><span class="s2"> of </span><span class="si">%s</span><span class="s2"> is not a valid typeclass!</span><span class="se">\n</span><span class="s2">Temporarily falling back&quot;</span>
<span class="s2">&quot; to </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">err_class</span><span class="p">,</span> <span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="TypedObject.__init__"><a class="viewcode-back" href="../../../api/evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>

View file

@ -2,8 +2,10 @@
### Evennia 1.0
> Not released yet
> 2019-2022 develop branch (WIP)
2019-2022 develop branch
Changed to using `main` branch to follow github standard. Old `master` branch remains
for now but will not be used anymore, so as to not break installs during transition.
Increase requirements: Django 4.1+, Twisted 22.10+ Python 3.10, 3.11. PostgreSQL 11+.

View file

@ -126,7 +126,7 @@ for these useful functions.
### `git branch`, `checkout` and `merge`
Git allows you to work with _branches_. These are separate development paths your code may take, completely separate from each other. You can later _merge_ the code from a branch back into another branch. Evennia's `master` and `develop` branches are examples of this.
Git allows you to work with _branches_. These are separate development paths your code may take, completely separate from each other. You can later _merge_ the code from a branch back into another branch. Evennia's `main` and `develop` branches are examples of this.
git branch -b branchaname
@ -225,11 +225,6 @@ So far your code is only located on your private machine. A good idea is to back
If you don't want your code to be publicly visible, Github also allows you set up a _private_ repository, only visible to you.
```{note}
Github's defaults have changed to calling the primary branch 'main' rather than 'master'. While Evennia still uses 'master' branch (and this is what we refer to below), you can use either name for your personal primary branch - they are equivalent.
```
Create a new, empty repository on Github. [Github explains how here](https://help.github.com/articles/create-a-repo/) . _Don't_ allow it to add a README, license etc, that will just clash with what we upload later.
```{sidebar} Origin
@ -282,7 +277,7 @@ If you also want to access Evennia's `develop` branch (the bleeding edge develop
Use
git checkout master
git checkout main
git checkout develop
to switch between the branches.
@ -299,17 +294,17 @@ You can't do `git push upstream` unless you have write-access to the upstream Ev
This should be done in your fork of Evennia. You should _always_ do this in a _separate git branch_ based off the Evennia branch you want to improve.
git checkout master (or develop)
git checkout main (or develop)
git branch - b myfixbranch
Now fix whatever needs fixing. Abide by the [Evennia code style](./Evennia-Code-Style.md). You can `git commit` commit your changes along the way as normal.
Upstream Evennia is not standing still, so you want to make sure that your work is up-to-date with upstream changes. Make sure to first commit your `myfixbranch` changes, then
git checkout master (or develop)
git checkout main (or develop)
git pull upstream
git checkout myfixbranch
git merge master (or develop)
git merge main (or develop)
Up to this point your `myfixbranch` branch only exists on your local computer. No
one else can see it.

View file

@ -156,7 +156,7 @@ These are links to resources outside of the documentation. We also provide some
[evennia.com](https://evennia.com) - link to an external website.
```
- By using `(github:evennia/objects/objects.py)` as link target, you can point to a place on the Evennia github page (master branch).
- By using `(github:evennia/objects/objects.py)` as link target, you can point to a place on the Evennia github page (main branch).
- Use `(github:develop/evennia/objects/objects.py` to target `develop` branch.
- Use `(github:issue)` to point to the github issue-creation page.

View file

@ -43,7 +43,7 @@ Evennia is a free and open-source project. Any monetary donations you want to of
[pullrequest]: https://github.com/evennia/evennia/pulls
[issues]: https://github.com/evennia/evennia/issues
[patch]: https://secure.wikimedia.org/wikipedia/en/wiki/Patch_%28computing%29
[codestyle]: https://github.com/evennia/evennia/blob/master/CODING_STYLE.md
[codestyle]:: Evennia-Code-Style
[forum]:https://github.com/evennia/evennia/discussions
[issues]:https://github.com/evennia/evennia/issues/choose

View file

@ -96,8 +96,7 @@ The flat API is defined in `__init__.py` [viewable here](github:evennia/__init__
### Contributions
- [evennia.contrib](https://github.com/evennia/evennia/blob/master/evennia/contrib/) -
game-specific contributions and plugins ([docs](https://github.com/evennia/evennia/blob/master/evennia/contrib/README.md))
- [evennia.contrib](Contribs/Contribs-Overview.md) game-specific contributions and plugins
```{toctree}
:hidden:

View file

@ -264,9 +264,7 @@ So about that function. Line 1:
- `def` is short for "define" and defines a *function* (or a *method*, if sitting on an object).
This is a [reserved Python keyword](https://docs.python.org/2.5/ref/keywords.html); try not to use
these words anywhere else.
- A function name can not have spaces but otherwise we could have called it almost anything. We call
it `hello_world`. Evennia follows [Python's standard naming style](https://github.com/evennia/evennia/blob/master/CODING_STYLE.md#a-quick-list-of-code-style-points)
with lowercase letters and underscores. We recommend you do the same.
- A function name can not have spaces but otherwise we could have called it almost anything. We call it `hello_world`. Evennia follows [Python's standard naming style](iEvennia-Code-Style) with lowercase letters and underscores. We recommend you do the same.
- The colon (`:`) at the end of line 1 indicates that the header of the function is complete.
Line 2:

View file

@ -76,7 +76,7 @@ When you enter the address `http://localhost:4001/story` in your web browser, Dj
field to figure out which page you want to go to. You tell it which patterns are relevant in the
file
[mygame/web/urls.py](https://github.com/evennia/evennia/blob/master/evennia/game_template/web/urls.py).
Open it now.
Open it now
Django looks for the variable `urlpatterns` in this file. You want to add your new pattern to the
`custom_patterns` list we have prepared - that is then merged with the default `urlpatterns`. Here's

View file

@ -62,33 +62,22 @@ want to check. That is, you want something similar to this:
result = rules.roll_challenge(character1, character2, "swords")
```
You might need to make these functions more or less complex depending on your game. For example the
properties of the room might matter to the outcome of a roll (if the room is dark, burning etc).
Establishing just what you need to send into your game mechanic module is a great way to also get a
feel for what you need to add to your engine.
You might need to make these functions more or less complex depending on your game. For example the properties of the room might matter to the outcome of a roll (if the room is dark, burning etc). Establishing just what you need to send into your game mechanic module is a great way to also get a feel for what you need to add to your engine.
## Coded systems
Inspired by tabletop role playing games, most game systems mimic some sort of die mechanic. To this
end Evennia offers a full [dice
roller](https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py) in its `contrib`
folder. For custom implementations, Python offers many ways to randomize a result using its in-built
`random` module. No matter how it's implemented, we will in this text refer to the action of
determining an outcome as a "roll".
Inspired by tabletop role playing games, most game systems mimic some sort of die mechanic. To this end Evennia offers a full [dice roller](https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py) in its `contrib`
folder. For custom implementations, Python offers many ways to randomize a result using its in-built `random` module. No matter how it's implemented, we will in this text refer to the action of determining an outcome as a "roll".
In a freeform system, the result of the roll is just compared with values and people (or the game
master) just agree on what it means. In a coded system the result now needs to be processed somehow.
There are many things that may happen as a result of rule enforcement:
master) just agree on what it means. In a coded system the result now needs to be processed somehow. There are many things that may happen as a result of rule enforcement:
- Health may be added or deducted. This can effect the character in various ways.
- Experience may need to be added, and if a level-based system is used, the player might need to be
informed they have increased a level.
- Experience may need to be added, and if a level-based system is used, the player might need to be informed they have increased a level.
- Room-wide effects need to be reported to the room, possibly affecting everyone in the room.
There are also a slew of other things that fall under "Coded systems", including things like
weather, NPC artificial intelligence and game economy. Basically everything about the world that a
Game master would control in a tabletop role playing game can be mimicked to some level by coded
systems.
weather, NPC artificial intelligence and game economy. Basically everything about the world that a Game master would control in a tabletop role playing game can be mimicked to some level by coded systems.
## Example of Rule module
@ -96,24 +85,17 @@ systems.
Here is a simple example of a rule module. This is what we assume about our simple example game:
- Characters have only four numerical values:
- Their `level`, which starts at 1.
- A skill `combat`, which determines how good they are at hitting things. Starts between 5 and
10.
- A skill `combat`, which determines how good they are at hitting things. Starts between 5 and 10.
- Their Strength, `STR`, which determine how much damage they do. Starts between 1 and 10.
- Their Health points, `HP`, which starts at 100.
- When a Character reaches `HP = 0`, they are presumed "defeated". Their HP is reset and they get a
failure message (as a stand-in for death code).
- When a Character reaches `HP = 0`, they are presumed "defeated". Their HP is reset and they get a failure message (as a stand-in for death code).
- Abilities are stored as simple Attributes on the Character.
- "Rolls" are done by rolling a 100-sided die. If the result is below the `combat` value, it's a
success and damage is rolled. Damage is rolled as a six-sided die + the value of `STR` (for this
example we ignore weapons and assume `STR` is all that matters).
- Every successful `attack` roll gives 1-3 experience points (`XP`). Every time the number of `XP`
reaches `(level + 1) ** 2`, the Character levels up. When leveling up, the Character's `combat`
value goes up by 2 points and `STR` by one (this is a stand-in for a real progression system).
- "Rolls" are done by rolling a 100-sided die. If the result is below the `combat` value, it's a success and damage is rolled. Damage is rolled as a six-sided die + the value of `STR` (for this example we ignore weapons and assume `STR` is all that matters).
- Every successful `attack` roll gives 1-3 experience points (`XP`). Every time the number of `XP` reaches `(level + 1) ** 2`, the Character levels up. When leveling up, the Character's `combat` value goes up by 2 points and `STR` by one (this is a stand-in for a real progression system).
### Character
The Character typeclass is simple. It goes in `mygame/typeclasses/characters.py`. There is already
an empty `Character` class there that Evennia will look to and use.
The Character typeclass is simple. It goes in `mygame/typeclasses/characters.py`. There is already an empty `Character` class there that Evennia will look to and use.
```python
from random import randint

View file

@ -9,89 +9,41 @@ list](https://groups.google.com/forum/#!msg/evennia/wnJNM2sXSfs/-dbLRrgWnYMJ).
Most MUDs will use some sort of combat system. There are several main variations:
- _Freeform_ - the simplest form of combat to implement, common to MUSH-style roleplaying games.
This means the system only supplies dice rollers or maybe commands to compare skills and spit out
the result. Dice rolls are done to resolve combat according to the rules of the game and to direct
the scene. A game master may be required to resolve rule disputes.
- _Twitch_ - This is the traditional MUD hack&slash style combat. In a twitch system there is often
no difference between your normal "move-around-and-explore mode" and the "combat mode". You enter an
attack command and the system will calculate if the attack hits and how much damage was caused.
Normally attack commands have some sort of timeout or notion of recovery/balance to reduce the
advantage of spamming or client scripting. Whereas the simplest systems just means entering `kill
<target>` over and over, more sophisticated twitch systems include anything from defensive stances
to tactical positioning.
- _Turn-based_ - a turn based system means that the system pauses to make sure all combatants can
choose their actions before continuing. In some systems, such entered actions happen immediately
(like twitch-based) whereas in others the resolution happens simultaneously at the end of the turn.
The disadvantage of a turn-based system is that the game must switch to a "combat mode" and one also
needs to take special care of how to handle new combatants and the passage of time. The advantage is
that success is not dependent on typing speed or of setting up quick client macros. This potentially
allows for emoting as part of combat which is an advantage for roleplay-heavy games.
- _Freeform_ - the simplest form of combat to implement, common to MUSH-style roleplaying games. This means the system only supplies dice rollers or maybe commands to compare skills and spit out the result. Dice rolls are done to resolve combat according to the rules of the game and to direct the scene. A game master may be required to resolve rule disputes.
- _Twitch_ - This is the traditional MUD hack&slash style combat. In a twitch system there is often no difference between your normal "move-around-and-explore mode" and the "combat mode". You enter an attack command and the system will calculate if the attack hits and how much damage was caused. Normally attack commands have some sort of timeout or notion of recovery/balance to reduce the advantage of spamming or client scripting. Whereas the simplest systems just means entering `kill <target>` over and over, more sophisticated twitch systems include anything from defensive stances to tactical positioning.
- _Turn-based_ - a turn based system means that the system pauses to make sure all combatants can choose their actions before continuing. In some systems, such entered actions happen immediately (like twitch-based) whereas in others the resolution happens simultaneously at the end of the turn. The disadvantage of a turn-based system is that the game must switch to a "combat mode" and one also needs to take special care of how to handle new combatants and the passage of time. The advantage is that success is not dependent on typing speed or of setting up quick client macros. This potentially allows for emoting as part of combat which is an advantage for roleplay-heavy games.
To implement a freeform combat system all you need is a dice roller and a roleplaying rulebook. See
[contrib/dice.py](https://github.com/evennia/evennia/blob/master/evennia/contrib/dice.py) for an
example dice roller. To implement at twitch-based system you basically need a few combat
[commands](../Components/Commands.md), possibly ones with a [cooldown](./Howto-Command-Cooldown.md). You also need a [game rule
module](./Implementing-a-game-rule-system.md) that makes use of it. We will focus on the turn-based
variety here.
To implement a freeform combat system all you need is a dice roller and a roleplaying rulebook. See [contrib/dice.py](../Contribs/Contrib-Dice.md) for an example dice roller. To implement at twitch-based system you basically need a few combat [commands](../Components/Commands.md), possibly ones with a [cooldown](./Howto-Command-Cooldown.md). You also need a [game rule module](./Implementing-a-game-rule-system.md) that makes use of it. We will focus on the turn-based variety here.
## Tutorial overview
This tutorial will implement the slightly more complex turn-based combat system. Our example has the
following properties:
This tutorial will implement the slightly more complex turn-based combat system. Our example has the following properties:
- Combat is initiated with `attack <target>`, this initiates the combat mode.
- Characters may join an ongoing battle using `attack <target>` against a character already in
combat.
- Each turn every combating character will get to enter two commands, their internal order matters
and they are compared one-to-one in the order given by each combatant. Use of `say` and `pose` is
free.
- The commands are (in our example) simple; they can either `hit <target>`, `feint <target>` or
`parry <target>`. They can also `defend`, a generic passive defense. Finally they may choose to
`disengage/flee`.
- When attacking we use a classic [rock-paper-scissors](https://en.wikipedia.org/wiki/Rock-paper-
scissors) mechanic to determine success: `hit` defeats `feint`, which defeats `parry` which defeats
`hit`. `defend` is a general passive action that has a percentage chance to win against `hit`
(only).
- `disengage/flee` must be entered two times in a row and will only succeed if there is no `hit`
against them in that time. If so they will leave combat mode.
- Once every player has entered two commands, all commands are resolved in order and the result is
reported. A new turn then begins.
- Each turn every combating character will get to enter two commands, their internal order matters and they are compared one-to-one in the order given by each combatant. Use of `say` and `pose` is free.
- The commands are (in our example) simple; they can either `hit <target>`, `feint <target>` or `parry <target>`. They can also `defend`, a generic passive defense. Finally they may choose to `disengage/flee`.
- When attacking we use a classic [rock-paper-scissors](https://en.wikipedia.org/wiki/Rock-paper- scissors) mechanic to determine success: `hit` defeats `feint`, which defeats `parry` which defeats `hit`. `defend` is a general passive action that has a percentage chance to win against `hit` (only).
- `disengage/flee` must be entered two times in a row and will only succeed if there is no `hit` against them in that time. If so they will leave combat mode.
- Once every player has entered two commands, all commands are resolved in order and the result is reported. A new turn then begins.
- If players are too slow the turn will time out and any unset commands will be set to `defend`.
For creating the combat system we will need the following components:
- A combat handler. This is the main mechanic of the system. This is a [Script](../Components/Scripts.md) object
created for each combat. It is not assigned to a specific object but is shared by the combating
characters and handles all the combat information. Since Scripts are database entities it also means
that the combat will not be affected by a server reload.
- A combat [command set](../Components/Command-Sets.md) with the relevant commands needed for combat, such as the
various attack/defend options and the `flee/disengage` command to leave the combat mode.
- A rule resolution system. The basics of making such a module is described in the [rule system
tutorial](./Implementing-a-game-rule-system.md). We will only sketch such a module here for our end-turn
combat resolution.
- An `attack` [command](../Components/Commands.md) for initiating the combat mode. This is added to the default
command set. It will create the combat handler and add the character(s) to it. It will also assign
the combat command set to the characters.
- A combat handler. This is the main mechanic of the system. This is a [Script](../Components/Scripts.md) object created for each combat. It is not assigned to a specific object but is shared by the combating characters and handles all the combat information. Since Scripts are database entities it also means that the combat will not be affected by a server reload.
- A combat [command set](../Components/Command-Sets.md) with the relevant commands needed for combat, such as the various attack/defend options and the `flee/disengage` command to leave the combat mode.
- A rule resolution system. The basics of making such a module is described in the [rule system tutorial](./Implementing-a-game-rule-system.md). We will only sketch such a module here for our end-turn combat resolution.
- An `attack` [command](../Components/Commands.md) for initiating the combat mode. This is added to the default command set. It will create the combat handler and add the character(s) to it. It will also assign the combat command set to the characters.
## The combat handler
The _combat handler_ is implemented as a stand-alone [Script](../Components/Scripts.md). This Script is created when
the first Character decides to attack another and is deleted when no one is fighting any more. Each
handler represents one instance of combat and one combat only. Each instance of combat can hold any
number of characters but each character can only be part of one combat at a time (a player would
The _combat handler_ is implemented as a stand-alone [Script](../Components/Scripts.md). This Script is created when the first Character decides to attack another and is deleted when no one is fighting any more. Each handler represents one instance of combat and one combat only. Each instance of combat can hold any number of characters but each character can only be part of one combat at a time (a player would
need to disengage from the first combat before they could join another).
The reason we don't store this Script "on" any specific character is because any character may leave
the combat at any time. Instead the script holds references to all characters involved in the
combat. Vice-versa, all characters holds a back-reference to the current combat handler. While we
don't use this very much here this might allow the combat commands on the characters to access and
update the combat handler state directly.
The reason we don't store this Script "on" any specific character is because any character may leave the combat at any time. Instead the script holds references to all characters involved in the combat. Vice-versa, all characters holds a back-reference to the current combat handler. While we don't use this very much here this might allow the combat commands on the characters to access and update the combat handler state directly.
_Note: Another way to implement a combat handler would be to use a normal Python object and handle
time-keeping with the [TickerHandler](../Components/TickerHandler.md). This would require either adding custom hook
methods on the character or to implement a custom child of the TickerHandler class to track turns.
Whereas the TickerHandler is easy to use, a Script offers more power in this case._
_Note: Another way to implement a combat handler would be to use a normal Python object and handle time-keeping with the [TickerHandler](../Components/TickerHandler.md). This would require either adding custom hook methods on the character or to implement a custom child of the TickerHandler class to track turns. Whereas the TickerHandler is easy to use, a Script offers more power in this case._
Here is a basic combat handler. Assuming our game folder is named `mygame`, we store it in
`mygame/typeclasses/combat_handler.py`:
@ -267,14 +219,11 @@ is the use of the Script's standard `at_repeat` hook and the `force_repeat` meth
This allows for everything to go through the same mechanisms with minimal repetition of code.
What is not present in this handler is a way for players to view the actions they set or to change
their actions once they have been added (but before the last one has added theirs). We leave this as
an exercise.
their actions once they have been added (but before the last one has added theirs). We leave this as an exercise.
## Combat commands
Our combat commands - the commands that are to be available to us during the combat - are (in our
example) very simple. In a full implementation the commands available might be determined by the
weapon(s) held by the player or by which skills they know.
Our combat commands - the commands that are to be available to us during the combat - are (in our example) very simple. In a full implementation the commands available might be determined by the weapon(s) held by the player or by which skills they know.
We create them in `mygame/commands/combat.py`.
@ -316,9 +265,7 @@ class CmdHit(Command):
self.caller.ndb.combat_handler.check_end_turn()
```
The other commands `CmdParry`, `CmdFeint`, `CmdDefend` and `CmdDisengage` look basically the same.
We should also add a custom `help` command to list all the available combat commands and what they
do.
The other commands `CmdParry`, `CmdFeint`, `CmdDefend` and `CmdDisengage` look basically the same. We should also add a custom `help` command to list all the available combat commands and what they do.
We just need to put them all in a cmdset. We do this at the end of the same module:
@ -347,20 +294,11 @@ class CombatCmdSet(CmdSet):
## Rules module
A general way to implement a rule module is found in the [rule system tutorial](Implementing-a-game-
rule-system). Proper resolution would likely require us to change our Characters to store things
like strength, weapon skills and so on. So for this example we will settle for a very simplistic
rock-paper-scissors kind of setup with some randomness thrown in. We will not deal with damage here
but just announce the results of each turn. In a real system the Character objects would hold stats
to affect their skills, their chosen weapon affect the choices, they would be able to lose health
etc.
A general way to implement a rule module is found in the [rule system tutorial](Implementing-a-game- rule-system). Proper resolution would likely require us to change our Characters to store things like strength, weapon skills and so on. So for this example we will settle for a very simplistic rock-paper-scissors kind of setup with some randomness thrown in. We will not deal with damage here but just announce the results of each turn. In a real system the Character objects would hold stats to affect their skills, their chosen weapon affect the choices, they would be able to lose health etc.
Within each turn, there are "sub-turns", each consisting of one action per character. The actions
within each sub-turn happens simultaneously and only once they have all been resolved we move on to
the next sub-turn (or end the full turn).
Within each turn, there are "sub-turns", each consisting of one action per character. The actions within each sub-turn happens simultaneously and only once they have all been resolved we move on to the next sub-turn (or end the full turn).
*Note: In our simple example the sub-turns don't affect each other (except for `disengage/flee`),
nor do any effects carry over between turns. The real power of a turn-based system would be to add
*Note: In our simple example the sub-turns don't affect each other (except for `disengage/flee`), nor do any effects carry over between turns. The real power of a turn-based system would be to add
real tactical possibilities here though; For example if your hit got parried you could be out of
balance and your next action would be at a disadvantage. A successful feint would open up for a
subsequent attack and so on ...*
@ -371,8 +309,7 @@ Our rock-paper-scissor setup works like this:
- `parry` beats `hit`.
- `feint` beats `parry` and is then counted as a `hit`.
- `defend` does nothing but has a chance to beat `hit`.
- `flee/disengage` must succeed two times in a row (i.e. not beaten by a `hit` once during the
turn). If so the character leaves combat.
- `flee/disengage` must succeed two times in a row (i.e. not beaten by a `hit` once during the turn). If so the character leaves combat.
```python
@ -455,16 +392,11 @@ def resolve_combat(combat_handler, actiondict):
combat_handler.remove_character(char)
```
To make it simple (and to save space), this example rule module actually resolves each interchange
twice - first when it gets to each character and then again when handling the target. Also, since we
use the combat handler's `msg_all` method here, the system will get pretty spammy. To clean it up,
one could imagine tracking all the possible interactions to make sure each pair is only handled and
reported once.
To make it simple (and to save space), this example rule module actually resolves each interchange twice - first when it gets to each character and then again when handling the target. Also, since we use the combat handler's `msg_all` method here, the system will get pretty spammy. To clean it up, one could imagine tracking all the possible interactions to make sure each pair is only handled and reported once.
## Combat initiator command
This is the last component we need, a command to initiate combat. This will tie everything together.
We store this with the other combat commands.
This is the last component we need, a command to initiate combat. This will tie everything together. We store this with the other combat commands.
```python
# mygame/commands/combat.py
@ -506,16 +438,9 @@ class CmdAttack(Command):
target.msg(f"{self.caller} attacks you! You are in combat.")
```
The `attack` command will not go into the combat cmdset but rather into the default cmdset. See e.g.
the [Adding Command Tutorial](Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.md) if you are unsure about how to do this.
The `attack` command will not go into the combat cmdset but rather into the default cmdset. See e.g. the [Adding Command Tutorial](Beginner-Tutorial/Part1/Beginner-Tutorial-Adding-Commands.md) if you are unsure about how to do this.
## Expanding the example
At this point you should have a simple but flexible turn-based combat system. We have taken several
shortcuts and simplifications in this example. The output to the players is likely too verbose
during combat and too limited when it comes to informing about things surrounding it. Methods for
changing your commands or list them, view who is in combat etc is likely needed - this will require
play testing for each game and style. There is also currently no information displayed for other
people happening to be in the same room as the combat - some less detailed information should
probably be echoed to the room to
At this point you should have a simple but flexible turn-based combat system. We have taken several shortcuts and simplifications in this example. The output to the players is likely too verbose during combat and too limited when it comes to informing about things surrounding it. Methods for changing your commands or list them, view who is in combat etc is likely needed - this will require play testing for each game and style. There is also currently no information displayed for other people happening to be in the same room as the combat - some less detailed information should probably be echoed to the room to
show others what's going on.

View file

@ -1,10 +1,7 @@
# Licensing Q&A
Evennia is licensed under the very friendly [BSD](https://en.wikipedia.org/wiki/BSD_license)
(3-clause) license. You can find the license as
[LICENSE.txt](https://github.com/evennia/evennia/blob/master/LICENSE.txt) in the Evennia
repository's root.
Evennia is licensed under the very friendly [BSD](https://en.wikipedia.org/wiki/BSD_license) (3-clause) license. You can find the license as [LICENSE.txt](https://github.com/evennia/evennia/blob/master/LICENSE.txt) in the Evennia repository's root.
**Q: When creating a game using Evennia, what does the license permit me to do with it?**

View file

@ -5,12 +5,7 @@
principle is simple - whenever a site is updated, a small text file is updated. An RSS reader can
then regularly go online, check this file for updates and let the user know what's new.
Evennia allows for connecting any number of RSS feeds to any number of in-game channels. Updates to
the feed will be conveniently echoed to the channel. There are many potential uses for this: For
example the MUD might use a separate website to host its forums. Through RSS, the players can then
be notified when new posts are made. Another example is to let everyone know you updated your dev
blog. Admins might also want to track the latest Evennia updates through our own RSS feed
[here](https://code.google.com/feeds/p/evennia/updates/basic).
Evennia allows for connecting any number of RSS feeds to any number of in-game channels. Updates to the feed will be conveniently echoed to the channel. There are many potential uses for this: For example the MUD might use a separate website to host its forums. Through RSS, the players can then be notified when new posts are made. Another example is to let everyone know you updated your dev blog. Admins might also want to track the latest Evennia updates through our own RSS feed [here](https://code.google.com/feeds/p/evennia/updates/basic).
## Configuring RSS

View file

@ -22,7 +22,7 @@ If the upstream changes are large, you may also need to go into your gamedoor
This applies if you followed the [git-install instructions](./Installation-Git.md). Before Evennia 1.0, this was the only way to install Evennia.
At any time, development is either happening in the `master` branch (latest stable) or `develop` (experimental). Which one is active and 'latest' at a given time depends - after a release, `master` will see most updates, close to a new release, `develop` will usually be the fastest changing.
At any time, development is either happening in the `main` branch (latest stable) or `develop` (experimental). Which one is active and 'latest' at a given time depends - after a release, `main` will see most updates, close to a new release, `develop` will usually be the fastest changing.
1. Read the [changelog](../Coding/Changelog.md) to see what changed and if it means you need to make any changes to your game code.
2. If you use a [virtualenv](#Installation-Git#virtualenv), make sure it's active.
@ -39,7 +39,7 @@ At any time, development is either happening in the `master` branch (latest stab
If you followed the [docker installation instructions] you need to pull the latest docker image for the branch you want:
- `docker pull evennia/evennia` (master branch)
- `docker pull evennia/evennia` (`main` branch)
- `docker pull evennia/evennia:develop` (experimental `develop` branch)
Then restart your containers.

View file

@ -317,7 +317,7 @@ to accounts respectively.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdEmit.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['pemit', 'remit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['remit', 'pemit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -348,7 +348,7 @@ to accounts respectively.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.admin.CmdEmit.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n remit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n pemit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n remit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n pemit [&lt;obj&gt;, &lt;obj&gt;, ... =] &lt;message&gt;\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -138,7 +138,7 @@ skipping, reloading etc.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.batchprocess.CmdBatchCommands.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['batchcommand', 'batchcmd']</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['batchcmd', 'batchcommand']</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -169,7 +169,7 @@ skipping, reloading etc.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] &lt;python.path.to.file&gt;\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] &lt;python.path.to.file&gt;\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -1345,7 +1345,7 @@ server settings.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTypeclass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;update', '&#64;type', '&#64;swap', '&#64;typeclasses', '&#64;parent']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;typeclasses', '&#64;swap', '&#64;update', '&#64;type', '&#64;parent']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -1376,7 +1376,7 @@ server settings.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.building.CmdTypeclass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;update &#64;type &#64;swap &#64;typeclasses &#64;parent', 'category': 'building', 'key': '&#64;typeclass', 'no_prefix': 'typeclass update type swap typeclasses parent', 'tags': '', 'text': &quot;\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] &lt;object&gt; [= typeclass.path]\n typeclass/prototype &lt;object&gt; = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;typeclasses &#64;swap &#64;update &#64;type &#64;parent', 'category': 'building', 'key': '&#64;typeclass', 'no_prefix': 'typeclass typeclasses swap update type parent', 'tags': '', 'text': &quot;\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] &lt;object&gt; [= typeclass.path]\n typeclass/prototype &lt;object&gt; = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n &quot;}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -268,7 +268,7 @@ for everyone to use, you need build privileges and the alias command.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdNick.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['nicks', 'nickname']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['nickname', 'nicks']</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -300,7 +300,7 @@ for everyone to use, you need build privileges and the alias command.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdNick.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'nicks nickname', 'category': 'general', 'key': 'nick', 'no_prefix': ' nicks nickname', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] &lt;string&gt; [= [replacement_string]]\n nick[/switches] &lt;template&gt; = &lt;replacement_template&gt;\n nick/delete &lt;string&gt; or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also &quot;nicks&quot; works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side &lt;string&gt;:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your &lt;string&gt;\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'nickname nicks', 'category': 'general', 'key': 'nick', 'no_prefix': ' nickname nicks', 'tags': '', 'text': '\n define a personal alias/nick by defining a string to\n match and replace it with another on the fly\n\n Usage:\n nick[/switches] &lt;string&gt; [= [replacement_string]]\n nick[/switches] &lt;template&gt; = &lt;replacement_template&gt;\n nick/delete &lt;string&gt; or number\n nicks\n\n Switches:\n inputline - replace on the inputline (default)\n object - replace on object-lookup\n account - replace on account-lookup\n list - show all defined aliases (also &quot;nicks&quot; works)\n delete - remove nick by index in /list\n clearall - clear all nicks\n\n Examples:\n nick hi = say Hello, I\'m Sarah!\n nick/object tom = the tall man\n nick build $1 $2 = create/drop $1;$2\n nick tell $1 $2=page $1=$2\n nick tm?$1=page tallman=$1\n nick tm\\=$1=page tallman=$1\n\n A \'nick\' is a personal string replacement. Use $1, $2, ... to catch arguments.\n Put the last $-marker without an ending space to catch all remaining text. You\n can also use unix-glob matching for the left-hand side &lt;string&gt;:\n\n * - matches everything\n ? - matches 0 or 1 single characters\n [abcd] - matches these chars in any order\n [!abcd] - matches everything not among these chars\n \\= - escape literal \'=\' you want in your &lt;string&gt;\n\n Note that no objects are actually renamed or changed by this command - your nicks\n are only available to you. If you want to permanently add keywords to an object\n for everyone to use, you need build privileges and the alias command.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdNick.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -598,7 +598,7 @@ placing it in their inventory.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdSay.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&quot;', &quot;'&quot;]</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = [&quot;'&quot;, '&quot;']</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -629,7 +629,7 @@ placing it in their inventory.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.general.CmdSay.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&quot; \'', 'category': 'general', 'key': 'say', 'no_prefix': ' &quot; \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' &quot;', 'category': 'general', 'key': 'say', 'no_prefix': ' \' &quot;', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -955,7 +955,7 @@ main test suite started with</p>
<p>Test the batch processor.</p>
<dl class="py attribute">
<dt id="evennia.commands.default.tests.TestBatchProcess.red_button">
<code class="sig-name descname">red_button</code><em class="property"> = &lt;module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpauqbzk0x/5f6e17d634ebcb7fa6648a4ce077e7442a19cba2/evennia/contrib/tutorials/red_button/red_button.py'&gt;</em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">red_button</code><em class="property"> = &lt;module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmppr9eph2t/d22ba40b8aed73620055e5fd619bf54f7d9ec470/evennia/contrib/tutorials/red_button/red_button.py'&gt;</em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">

View file

@ -116,7 +116,7 @@
<dl class="py attribute">
<dt id="evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;callback', '&#64;calls', '&#64;callbacks']</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;calls', '&#64;callback', '&#64;callbacks']</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -197,7 +197,7 @@ on user permission.</p>
<dl class="py attribute">
<dt id="evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;callback &#64;calls &#64;callbacks', 'category': 'building', 'key': '&#64;call', 'no_prefix': 'call callback calls callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;calls &#64;callback &#64;callbacks', 'category': 'building', 'key': '&#64;call', 'no_prefix': 'call calls callback callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -217,7 +217,7 @@ for that channel.</p>
<dl class="py attribute">
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['delaliaschan', 'delchanalias']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['delchanalias', 'delaliaschan']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -248,7 +248,7 @@ for that channel.</p>
<dl class="py attribute">
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'delaliaschan delchanalias', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delaliaschan delchanalias', 'tags': '', 'text': &quot;\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom &lt;alias or channel&gt;\n delcom/all &lt;channel&gt;\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n &quot;}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'delchanalias delaliaschan', 'category': 'comms', 'key': 'delcom', 'no_prefix': ' delchanalias delaliaschan', 'tags': '', 'text': &quot;\n remove a channel alias and/or unsubscribe from channel\n\n Usage:\n delcom &lt;alias or channel&gt;\n delcom/all &lt;channel&gt;\n\n If the full channel name is given, unsubscribe from the\n channel. If an alias is given, remove the alias but don't\n unsubscribe. If the 'all' switch is used, remove all aliases\n for that channel.\n &quot;}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdDelCom.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -211,7 +211,7 @@ the operation will be general or on the room.</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['abort', 'chicken out', 'quit', 'q']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['chicken out', 'quit', 'q', 'abort']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -235,7 +235,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'abort chicken out quit q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' abort chicken out quit q', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'chicken out quit q abort', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out quit q abort', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -490,7 +490,7 @@ looks and what actions is available.</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['examine', 'e', 'unfocus', 'ex']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['ex', 'unfocus', 'examine', 'e']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -519,7 +519,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'examine e unfocus ex', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine e unfocus ex', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus &lt;obj&gt;\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ex unfocus examine e', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' ex unfocus examine e', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus &lt;obj&gt;\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -581,7 +581,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'give', 'inventory', 'i']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['inventory', 'inv', 'give', 'i']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -605,7 +605,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv give inventory i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv give inventory i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inventory inv give i', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inventory inv give i', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -626,7 +626,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;open', '&#64;dig']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;dig', '&#64;open']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
@ -649,7 +649,7 @@ to all the variables defined therein.</p>
<dl class="py attribute">
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;open &#64;dig', 'category': 'general', 'key': 'open', 'no_prefix': ' open dig', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n &lt;action&gt; [arg]\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;dig &#64;open', 'category': 'general', 'key': 'open', 'no_prefix': ' dig open', 'tags': '', 'text': '\n Interact with an object in focus.\n\n Usage:\n &lt;action&gt; [arg]\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdRerouter.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -672,7 +672,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -698,7 +698,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_basic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -567,7 +567,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -587,7 +587,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_equip.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -690,7 +690,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -710,7 +710,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_items.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -469,7 +469,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -489,7 +489,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_magic.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -929,7 +929,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['wait', 'hold']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['hold', 'wait']</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -949,7 +949,7 @@ if there are still any actions you can take.</p>
<dl class="py attribute">
<dt id="evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'wait hold', 'category': 'combat', 'key': 'pass', 'no_prefix': ' wait hold', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hold wait', 'category': 'combat', 'key': 'pass', 'no_prefix': ' hold wait', 'tags': '', 'text': '\n Passes on your turn.\n\n Usage:\n pass\n\n When in a fight, you can use this command to end your turn early, even\n if there are still any actions you can take.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.turnbattle.tb_range.CmdPass.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -305,7 +305,7 @@ everyone but the person rolling.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpg.dice.dice.CmdDice.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&#64;dice', 'roll']</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['roll', '&#64;dice']</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -331,7 +331,7 @@ everyone but the person rolling.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&#64;dice roll', 'category': 'general', 'key': 'dice', 'no_prefix': ' dice roll', 'tags': '', 'text': &quot;\n roll dice\n\n Usage:\n dice[/switch] &lt;nr&gt;d&lt;sides&gt; [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 &lt; 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (&lt;,&gt;,&lt;=,&gt;=,==,!=). So e.g. 2d6 + 3 &gt; 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n &quot;}</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'roll &#64;dice', 'category': 'general', 'key': 'dice', 'no_prefix': ' roll dice', 'tags': '', 'text': &quot;\n roll dice\n\n Usage:\n dice[/switch] &lt;nr&gt;d&lt;sides&gt; [modifier] [success condition]\n\n Switch:\n hidden - tell the room the roll is being done, but don't show the result\n secret - don't inform the room about neither roll nor result\n\n Examples:\n dice 3d6 + 4\n dice 1d100 - 2 &lt; 50\n\n This will roll the given number of dice with given sides and modifiers.\n So e.g. 2d6 + 3 means to 'roll a 6-sided die 2 times and add the result,\n then add 3 to the total'.\n Accepted modifiers are +, -, * and /.\n A success condition is given as normal Python conditionals\n (&lt;,&gt;,&lt;=,&gt;=,==,!=). So e.g. 2d6 + 3 &gt; 10 means that the roll will succeed\n only if the final result is above 8. If a success condition is given, the\n outcome (pass/fail) will be echoed along with how much it succeeded/failed\n with. The hidden/secret switches will hide all or parts of the roll from\n everyone but the person rolling.\n &quot;}</em><a class="headerlink" href="#evennia.contrib.rpg.dice.dice.CmdDice.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -695,7 +695,7 @@ a different language.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['&quot;', &quot;'&quot;]</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = [&quot;'&quot;, '&quot;']</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -726,7 +726,7 @@ a different language.</p>
<dl class="py attribute">
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '&quot; \'', 'category': 'general', 'key': 'say', 'no_prefix': ' &quot; \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' &quot;', 'category': 'general', 'key': 'say', 'no_prefix': ' \' &quot;', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say &lt;message&gt;\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -153,7 +153,7 @@ such as when closing the lid and un-blinding a character.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['push', 'press', 'press button']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['press', 'press button', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -182,7 +182,7 @@ check if the lid is open or closed.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -379,7 +379,7 @@ be mutually exclusive.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['push', 'press', 'press button']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['press', 'press button', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -408,7 +408,7 @@ set in self.parse())</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'push press press button', 'category': 'general', 'key': 'push button', 'no_prefix': ' push press press button', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -506,7 +506,7 @@ be mutually exclusive.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'get', 'listen', 'ex', 'feel', 'examine']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['examine', 'feel', 'get', 'l', 'listen', 'ex']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -532,7 +532,7 @@ be mutually exclusive.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l get listen ex feel examine', 'category': 'general', 'key': 'look', 'no_prefix': ' l get listen ex feel examine', 'tags': '', 'text': &quot;\n Looking around in darkness\n\n Usage:\n look &lt;obj&gt;\n\n ... not that there's much to see in the dark.\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'examine feel get l listen ex', 'category': 'general', 'key': 'look', 'no_prefix': ' examine feel get l listen ex', 'tags': '', 'text': &quot;\n Looking around in darkness\n\n Usage:\n look &lt;obj&gt;\n\n ... not that there's much to see in the dark.\n\n &quot;}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -609,7 +609,7 @@ yellow/green - horizontal roots</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['button', 'press button', 'push button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['push button', 'press button', 'button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -635,7 +635,7 @@ yellow/green - horizontal roots</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'button press button push button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' button press button push button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'push button press button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button press button button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -779,7 +779,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['fight', 'stab', 'parry', 'kill', 'hit', 'thrust', 'slash', 'bash', 'pierce', 'defend', 'chop']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['slash', 'chop', 'hit', 'kill', 'pierce', 'fight', 'bash', 'parry', 'defend', 'thrust', 'stab']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -805,7 +805,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'fight stab parry kill hit thrust slash bash pierce defend chop', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' fight stab parry kill hit thrust slash bash pierce defend chop', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab &lt;enemy&gt;\n slash &lt;enemy&gt;\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'slash chop hit kill pierce fight bash parry defend thrust stab', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' slash chop hit kill pierce fight bash parry defend thrust stab', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab &lt;enemy&gt;\n slash &lt;enemy&gt;\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -968,7 +968,7 @@ to find something.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'feel around', 'fiddle', 'feel', 'search']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['feel', 'search', 'l', 'feel around', 'fiddle']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -996,7 +996,7 @@ random chance of eventually finding a light source.</p>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l feel around fiddle feel search', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l feel around fiddle feel search', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'feel search l feel around fiddle', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel search l feel around fiddle', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -208,7 +208,7 @@ git evennia pull - Pull the latest evennia code.</p>
<dl class="py attribute">
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory">
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmpauqbzk0x/5f6e17d634ebcb7fa6648a4ce077e7442a19cba2/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmppr9eph2t/d22ba40b8aed73620055e5fd619bf54f7d9ec470/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -269,7 +269,7 @@ git pull - Pull the latest code from your current branch.</p>
<dl class="py attribute">
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGit.directory">
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmpauqbzk0x/5f6e17d634ebcb7fa6648a4ce077e7442a19cba2/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmppr9eph2t/d22ba40b8aed73620055e5fd619bf54f7d9ec470/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">

View file

@ -336,7 +336,7 @@ indentation.</p>
<dl class="py attribute">
<dt id="evennia.utils.eveditor.CmdEditorGroup.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = [':wq', ':s', ':echo', ':dd', '::', ':=', ':y', ':uu', ':A', ':fd', ':&gt;', ':f', ':x', ':h', ':UU', ':j', ':::', ':u', ':q', ':&lt;', ':I', ':DD', ':i', ':dw', ':!', ':S', ':p', ':', ':fi', ':w', ':q!', ':r']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = [':p', ':wq', ':=', ':i', ':fi', ':f', ':', ':DD', ':uu', ':j', ':A', '::', ':dd', ':r', ':q!', ':y', ':dw', ':q', ':!', ':s', ':fd', ':u', ':w', ':echo', ':I', ':::', ':S', ':UU', ':h', ':&gt;', ':x', ':&lt;']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -364,7 +364,7 @@ efficient presentation.</p>
<dl class="py attribute">
<dt id="evennia.utils.eveditor.CmdEditorGroup.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': ':wq :s :echo :dd :: := :y :uu :A :fd :&gt; :f :x :h :UU :j ::: :u :q :&lt; :I :DD :i :dw :! :S :p : :fi :w :q! :r', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :wq :s :echo :dd :: := :y :uu :A :fd :&gt; :f :x :h :UU :j ::: :u :q :&lt; :I :DD :i :dw :! :S :p : :fi :w :q! :r', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': ':p :wq := :i :fi :f : :DD :uu :j :A :: :dd :r :q! :y :dw :q :! :s :fd :u :w :echo :I ::: :S :UU :h :&gt; :x :&lt;', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :p :wq := :i :fi :f : :DD :uu :j :A :: :dd :r :q! :y :dw :q :! :s :fd :u :w :echo :I ::: :S :UU :h :&gt; :x :&lt;', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -931,7 +931,7 @@ single question.</p>
<dl class="py attribute">
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['no', 'y', 'yes', 'a', 'n', '__nomatch_command', 'abort']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['a', '__nomatch_command', 'abort', 'yes', 'y', 'no', 'n']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -957,7 +957,7 @@ single question.</p>
<dl class="py attribute">
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'no y yes a n __nomatch_command abort', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' no y yes a n __nomatch_command abort', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'a __nomatch_command abort yes y no n', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a __nomatch_command abort yes y no n', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

View file

@ -137,7 +137,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
<dl class="py attribute">
<dt id="evennia.utils.evmore.CmdMore.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['top', 't', 'n', 'p', 'next', 'e', 'quit', 'previous', 'a', 'abort', 'end', 'q']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">aliases</code><em class="property"> = ['a', 'p', 'previous', 'next', 't', 'e', 'quit', 'q', 'abort', 'top', 'end', 'n']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
@ -163,7 +163,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
<dl class="py attribute">
<dt id="evennia.utils.evmore.CmdMore.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'top t n p next e quit previous a abort end q', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' top t n p next e quit previous a abort end q', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition"></a></dt>
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'a p previous next t e quit q abort top end n', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a p previous next t e quit q abort top end n', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>

File diff suppressed because one or more lines are too long