evennia/docs/latest/api/evennia.contrib.full_systems.evscaperoom.utils.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

303 lines
No EOL
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.contrib.full_systems.evscaperoom.utils &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.contrib.game_systems" href="evennia.contrib.game_systems.html" />
<link rel="prev" title="evennia.contrib.full_systems.evscaperoom.tests" href="evennia.contrib.full_systems.evscaperoom.tests.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.game_systems.html" title="evennia.contrib.game_systems"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.full_systems.evscaperoom.tests.html" title="evennia.contrib.full_systems.evscaperoom.tests"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.full_systems.html" >evennia.contrib.full_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.full_systems.evscaperoom.html" accesskey="U">evennia.contrib.full_systems.evscaperoom</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.full_systems.evscaperoom.utils</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.full_systems.evscaperoom.utils">
<span id="evennia-contrib-full-systems-evscaperoom-utils"></span><h1>evennia.contrib.full_systems.evscaperoom.utils<a class="headerlink" href="#module-evennia.contrib.full_systems.evscaperoom.utils" title="Link to this heading"></a></h1>
<p>Helper functions and classes for the evscaperoom contrib.</p>
<p>Most of these are available directly from wrappers in state/object/room classes
and does not need to be imported from here.</p>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.create_evscaperoom_object">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">create_evscaperoom_object</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'testobj'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">location</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">delete_duplicates</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#create_evscaperoom_object"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.create_evscaperoom_object" title="Link to this definition"></a></dt>
<dd><p>This is a convenience-wrapper for quickly building EvscapeRoom objects. This
is called from the helper-method create_object on states, but is also useful
for the object-create admin command.</p>
<p>Note that for the purpose of the Evscaperoom, we only allow one instance
of each <em>name</em>, deleting the old version if it already exists.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>typeclass</strong> (<em>str</em>) This can take just the class-name in the evscaperooms
objects.py module. Otherwise, a full path is needed.</p></li>
<li><p><strong>key</strong> (<em>str</em>) Name of object.</p></li>
<li><p><strong>location</strong> (<em>Object</em>) The location to create new object.</p></li>
<li><p><strong>delete_duplicates</strong> (<em>bool</em>) Delete old object with same key.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Will be passed into create_object.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>new_obj (Object)</em> The newly created object, if any.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.create_fantasy_word">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">create_fantasy_word</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">length</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">capitalize</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#create_fantasy_word"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.create_fantasy_word" title="Link to this definition"></a></dt>
<dd><p>Create a random semi-pronouncable word.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>length</strong> (<em>int</em>) The desired length of the word.</p></li>
<li><p><strong>capitalize</strong> (<em>bool</em>) If the return should be capitalized or not</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>word (str)</em> The fictous word of given length.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.parse_for_perspectives">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">parse_for_perspectives</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">you</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#parse_for_perspectives"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.parse_for_perspectives" title="Link to this definition"></a></dt>
<dd><p>Parse a string with special markers to produce versions both
intended for the person doing the action (you) and for those
seeing the person doing that action. Also marks things
according to style. See example below.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string</strong> (<em>str</em>) String on 2nd person form with ~ markers (~you ~open …’)</p></li>
<li><p><strong>you</strong> (<em>str</em>) What others should see instead of you (Bob opens)</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>second, third_person (tuple)</em> </p>
<dl class="simple">
<dt>Strings replace to be shown in 2nd and 3rd person</dt><dd><p>perspective</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Example</p>
<p>“~You ~open”
-&gt; “You open”, “Bob opens”</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.parse_for_things">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">parse_for_things</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">things_style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'|y'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#parse_for_things"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.parse_for_things" title="Link to this definition"></a></dt>
<dd><p>Parse string for special <a href="#id1"><span class="problematic" id="id2">*</span></a>thing markers and decorate
it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string</strong> (<em>str</em>) The string to parse.</p></li>
<li><p><strong>things_style</strong> (<em>int</em>) The style to handle <strong>*things</strong> marked:
0 - no marking (remove <strong>*</strong>)
1 - mark with color
2 - mark with color and [] (default)</p></li>
<li><p><strong>clr</strong> (<em>str</em>) Which color to use for marker..</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Example</p>
<p>You open <a href="#id3"><span class="problematic" id="id4">*</span></a>door -&gt; You open [door].</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.add_msg_borders">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">add_msg_borders</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#add_msg_borders"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.add_msg_borders" title="Link to this definition"></a></dt>
<dd><p>Add borders above/below text block</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.full_systems.evscaperoom.utils.msg_cinematic">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.full_systems.evscaperoom.utils.</span></span><span class="sig-name descname"><span class="pre">msg_cinematic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">borders</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/full_systems/evscaperoom/utils.html#msg_cinematic"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.utils.msg_cinematic" title="Link to this definition"></a></dt>
<dd><p>Display a text as a cinematic - centered and
surrounded by borders.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em>) Text to format.</p></li>
<li><p><strong>borders</strong> (<em>bool</em><em>, </em><em>optional</em>) Put borders above and below text.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>text (str)</em> Pretty-formatted text.</p>
</dd>
</dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.full_systems.evscaperoom.utils</a><ul>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.create_evscaperoom_object"><code class="docutils literal notranslate"><span class="pre">create_evscaperoom_object()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.create_fantasy_word"><code class="docutils literal notranslate"><span class="pre">create_fantasy_word()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.parse_for_perspectives"><code class="docutils literal notranslate"><span class="pre">parse_for_perspectives()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.parse_for_things"><code class="docutils literal notranslate"><span class="pre">parse_for_things()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.add_msg_borders"><code class="docutils literal notranslate"><span class="pre">add_msg_borders()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.full_systems.evscaperoom.utils.msg_cinematic"><code class="docutils literal notranslate"><span class="pre">msg_cinematic()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.full_systems.evscaperoom.tests.html"
title="previous chapter">evennia.contrib.full_systems.evscaperoom.tests</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.game_systems.html"
title="next chapter">evennia.contrib.game_systems</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.full_systems.evscaperoom.utils.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.game_systems.html" title="evennia.contrib.game_systems"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.full_systems.evscaperoom.tests.html" title="evennia.contrib.full_systems.evscaperoom.tests"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.full_systems.html" >evennia.contrib.full_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.full_systems.evscaperoom.html" >evennia.contrib.full_systems.evscaperoom</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.full_systems.evscaperoom.utils</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>