evennia/docs/latest/api/evennia.contrib.tutorials.evadventure.quests.html
Evennia docbuilder action a4d40b2ddb Updated HTML docs.
2024-03-30 22:46:30 +00:00

579 lines
No EOL
39 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>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.contrib.tutorials.evadventure.quests &#8212; Evennia latest documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut 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.tutorials.evadventure.random_tables" href="evennia.contrib.tutorials.evadventure.random_tables.html" />
<link rel="prev" title="evennia.contrib.tutorials.evadventure.objects" href="evennia.contrib.tutorials.evadventure.objects.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<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.tutorials.evadventure.random_tables.html" title="evennia.contrib.tutorials.evadventure.random_tables"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.tutorials.evadventure.objects.html" title="evennia.contrib.tutorials.evadventure.objects"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.tutorials.html" >evennia.contrib.tutorials</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" accesskey="U">evennia.contrib.tutorials.evadventure</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.quests</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div 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" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.objects.html"
title="previous chapter">evennia.contrib.tutorials.evadventure.objects</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.tutorials.evadventure.random_tables.html"
title="next chapter">evennia.contrib.tutorials.evadventure.random_tables</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.tutorials.evadventure.quests.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="evennia.contrib.tutorials.evadventure.quests.html">latest (main branch)</a></li>
<li><a href="../4.x/index.html">v4.0.0 branch (outdated)</a></li>
<li><a href="../3.x/index.html">v3.0.0 branch (outdated)</a></li>
<li><a href="../2.x/index.html">v2.0.0 branch (outdated)</a></li>
<li><a href="../1.x/index.html">v1.0.0 branch (outdated)</a></li>
<li><a href="../0.x/index.html">v0.9.5 branch (outdated)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.tutorials.evadventure.quests">
<span id="evennia-contrib-tutorials-evadventure-quests"></span><h1>evennia.contrib.tutorials.evadventure.quests<a class="headerlink" href="#module-evennia.contrib.tutorials.evadventure.quests" title="Permalink to this headline"></a></h1>
<p>A simple quest system for EvAdventure.</p>
<p>A quest is represented by a quest-handler sitting as
<strong>.quests</strong> on a Character. Individual Quests are child classes of <strong>EvAdventureQuest</strong> with
methods for each step of the quest. The quest handler can add, remove, and track the progress
by calling the <strong>progress</strong> method on the quest. Persistent changes are stored on the quester
using the <strong>add_data</strong> and <strong>get_data</strong> methods with an Attribute as storage backend.</p>
<p>A quest ending can mean a reward or the start of
another quest.</p>
<dl class="py class">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.quests.</code><code class="sig-name descname">EvAdventureQuest</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quester</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This represents a single questing unit of quest.</p>
<dl class="simple">
<dt>Properties:</dt><dd><p>name (str): Main identifier for the quest.
category (str, optional): This + name must be globally unique.</p>
</dd>
</dl>
<p>it ends - it then pauses after the last completed step.</p>
<p>Each step of the quest is represented by a <strong>.step_&lt;stepname&gt;</strong> method. This should check
the status of the quest-step and update the <strong>.current_step</strong> or call <strong>.complete()</strong>. There
are also <strong>.help_&lt;stepname&gt;</strong> which is either a class-level help string or a method
returning a help text. All properties should be stored on the quester.</p>
<p>Example:
py
class MyQuest(EvAdventureQuest):</p>
<blockquote>
<div><p>A quest with two steps that ar</p>
<p>start_step = “A”</p>
<p>help_A = “You need a A_flag attribute on yourself to finish this step!”
help_B = “Finally, you need more than 4 items in your inventory!”</p>
<dl class="simple">
<dt>def step_A(self, <a href="#id1"><span class="problematic" id="id2">*</span></a>args, <a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs):</dt><dd><dl class="simple">
<dt>if self.get_data(“A_flag”) == True:</dt><dd><p>self.quester.msg(“Completed the first step of the quest.”)
self.current_step = “end”
self.progress()</p>
</dd>
</dl>
</dd>
</dl>
<p>def step_B(self, <a href="#id5"><span class="problematic" id="id6">*</span></a>args, <a href="#id7"><span class="problematic" id="id8">**</span></a>kwargs):</p>
<dl class="simple">
<dt>def step_end(self, <a href="#id9"><span class="problematic" id="id10">*</span></a>args, <a href="#id11"><span class="problematic" id="id12">**</span></a>kwargs):</dt><dd><dl class="simple">
<dt>if len(self.quester.contents) &gt; 4:</dt><dd><p>self.quester.msg(“Quest complete!”)
self.complete()</p>
</dd>
</dl>
</dd>
</dl>
</div></blockquote>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.key">
<code class="sig-name descname">key</code><em class="property"> = 'base quest'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.desc">
<code class="sig-name descname">desc</code><em class="property"> = 'This is the base quest class'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.desc" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.start_step">
<code class="sig-name descname">start_step</code><em class="property"> = 'start'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.start_step" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help_start">
<code class="sig-name descname">help_start</code><em class="property"> = 'You need to start first'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help_start" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help_end">
<code class="sig-name descname">help_end</code><em class="property"> = 'You need to end the quest'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help_end" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quester</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.add_data">
<code class="sig-name descname">add_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">value</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.add_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.add_data" title="Permalink to this definition"></a></dt>
<dd><p>Add data to the quest. This saves it permanently.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) The key to store the data under.</p></li>
<li><p><strong>value</strong> (<em>any</em>) The data to store.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.get_data">
<code class="sig-name descname">get_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">default</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.get_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.get_data" title="Permalink to this definition"></a></dt>
<dd><p>Get data from the quest.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em>) The key to get data for.</p></li>
<li><p><strong>default</strong> (<em>any</em><em>, </em><em>optional</em>) The default value to return if key is not found.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>any</em> The data stored under the key.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.remove_data">
<code class="sig-name descname">remove_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.remove_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.remove_data" title="Permalink to this definition"></a></dt>
<dd><p>Remove data from the quest permanently.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) The key to remove.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.questhandler">
<em class="property">property </em><code class="sig-name descname">questhandler</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.questhandler" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.current_step">
<em class="property">property </em><code class="sig-name descname">current_step</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.current_step" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.status">
<em class="property">property </em><code class="sig-name descname">status</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.status" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_completed">
<em class="property">property </em><code class="sig-name descname">is_completed</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_completed" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_abandoned">
<em class="property">property </em><code class="sig-name descname">is_abandoned</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_abandoned" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_failed">
<em class="property">property </em><code class="sig-name descname">is_failed</code><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.is_failed" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.complete">
<code class="sig-name descname">complete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.complete"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.complete" title="Permalink to this definition"></a></dt>
<dd><p>Complete the quest.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.abandon">
<code class="sig-name descname">abandon</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.abandon"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.abandon" title="Permalink to this definition"></a></dt>
<dd><p>Abandon the quest.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.fail">
<code class="sig-name descname">fail</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.fail"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.fail" title="Permalink to this definition"></a></dt>
<dd><p>Fail the quest.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.progress">
<code class="sig-name descname">progress</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.progress"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.progress" title="Permalink to this definition"></a></dt>
<dd><p>This is called whenever the environment expects a quest may need stepping. This will
determine which quest-step we are on and run <strong>step_&lt;stepname&gt;</strong>, which in turn will figure
out if the step is complete or not.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>*args</strong> Will be passed into the step method.</p></li>
<li><p><strong>**kwargs</strong> <p>Will be passed into the step method.</p>
</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p><strong>self.quester</strong> is available as the character following the quest.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help">
<code class="sig-name descname">help</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.help" title="Permalink to this definition"></a></dt>
<dd><p>This is used to get help (or a reminder) of what needs to be done to complete the current
quest-step. It will look for a <strong>help_&lt;stepname&gt;</strong> method or string attribute on the quest.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>*args</strong> Will be passed into any help_* method.</p></li>
<li><p><strong>**kwargs</strong> <p>Will be passed into any help_* method.</p>
</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>str</em> The help text for the current step.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.step_start">
<code class="sig-name descname">step_start</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.step_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.step_start" title="Permalink to this definition"></a></dt>
<dd><p>Example step that completes immediately.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.cleanup">
<code class="sig-name descname">cleanup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuest.cleanup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest.cleanup" title="Permalink to this definition"></a></dt>
<dd><p>This is called both when completing the quest, or when it is abandoned prematurely.</p>
<p>This is for cleaning up any extra state that were set during the quest (stuff in self.data
is automatically cleaned up)</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.quests.</code><code class="sig-name descname">EvAdventureQuestHandler</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This sits on the Character, as <strong>.quests</strong>.</p>
<p>Its initiated using a lazy property on the Character:</p>
<p>&#64;lazy_property
def quests(self):</p>
<blockquote>
<div><p>return EvAdventureQuestHandler(self)</p>
</div></blockquote>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_storage_attribute_key">
<code class="sig-name descname">quest_storage_attribute_key</code><em class="property"> = '_quests'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_storage_attribute_key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_storage_attribute_category">
<code class="sig-name descname">quest_storage_attribute_category</code><em class="property"> = 'evadventure'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_storage_attribute_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_data_attribute_template">
<code class="sig-name descname">quest_data_attribute_template</code><em class="property"> = '_quest_data_{quest_key}'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_data_attribute_template" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_data_attribute_category">
<code class="sig-name descname">quest_data_attribute_category</code><em class="property"> = 'evadventure'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.quest_data_attribute_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.has">
<code class="sig-name descname">has</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.has"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.has" title="Permalink to this definition"></a></dt>
<dd><p>Check if a given quest is registered with the Character.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>quest_key</strong> (<em>str</em>) The name of the quest to check for.</p></li>
<li><p><strong>quest_category</strong> (<em>str</em><em>, </em><em>optional</em>) Quest category, if any.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If the character is following this quest or not.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.get">
<code class="sig-name descname">get</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.get" title="Permalink to this definition"></a></dt>
<dd><p>Get the quest stored on character, if any.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>quest_key</strong> (<em>str</em>) The name of the quest to check for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>EvAdventureQuest or None</em> </p>
<dl class="simple">
<dt>The quest stored, or None if</dt><dd><p>Character is not on this quest.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.all">
<code class="sig-name descname">all</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.all" title="Permalink to this definition"></a></dt>
<dd><p>Get all quests stored on character.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>list</em> All quests stored on character.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_class</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new quest</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>quest_class</strong> (<a class="reference internal" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest" title="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuest"><em>EvAdventureQuest</em></a>) The quest class to start.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.remove">
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.remove" title="Permalink to this definition"></a></dt>
<dd><p>Remove a quest. If not complete, it will be abandoned.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>quest_key</strong> (<em>str</em>) The quest to remove.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.save_quest_data">
<code class="sig-name descname">save_quest_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.save_quest_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.save_quest_data" title="Permalink to this definition"></a></dt>
<dd><p>Save data for a quest. We store this on the quester as well as updating the quest itself.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>quest_key</strong> (<em>str</em>) The quest to save data for. The data is assumed to be stored on the
quest as <strong>.data</strong> (a dict).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.load_quest_data">
<code class="sig-name descname">load_quest_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">quest_key</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#EvAdventureQuestHandler.load_quest_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.EvAdventureQuestHandler.load_quest_data" title="Permalink to this definition"></a></dt>
<dd><p>Load data for a quest.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>quest_key</strong> (<em>str</em>) The quest to load data for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>dict</em> The data stored for the quest.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.tutorials.evadventure.quests.</code><code class="sig-name descname">CmdQuests</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#CmdQuests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.commands.command.Command</span></code></a></p>
<p>List all quests and their statuses as well as get info about the status of
a specific quest.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>quests
quest &lt;questname&gt;</p>
</dd>
</dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.key">
<code class="sig-name descname">key</code><em class="property"> = 'quests'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.aliases">
<code class="sig-name descname">aliases</code><em class="property"> = ['quest']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.aliases" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.help_category">
<code class="sig-name descname">help_category</code><em class="property"> = 'general'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.help_category" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.lock_storage">
<code class="sig-name descname">lock_storage</code><em class="property"> = 'cmd:all();'</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.lock_storage" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.search_index_entry">
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'quest', 'category': 'general', 'key': 'quests', 'no_prefix': ' quest', 'tags': '', 'text': '\n List all quests and their statuses as well as get info about the status of\n a specific quest.\n\n Usage:\n quests\n quest &lt;questname&gt;\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.search_index_entry" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.parse">
<code class="sig-name descname">parse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#CmdQuests.parse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.parse" title="Permalink to this definition"></a></dt>
<dd><p>Once the cmdhandler has identified this as the command we
want, this function is run. If many of your commands have a
similar syntax (for example cmd arg1 = arg2) you should
simply define this once and just let other commands of the
same form inherit from this. See the docstring of this module
for which object properties are available to use (notably
self.args).</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.tutorials.evadventure.quests.CmdQuests.func">
<code class="sig-name descname">func</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/tutorials/evadventure/quests.html#CmdQuests.func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.quests.CmdQuests.func" title="Permalink to this definition"></a></dt>
<dd><p>This is the actual executing part of the command. It is
called directly after self.parse(). See the docstring of this
module for which object properties are available (beyond those
set in self.parse())</p>
</dd></dl>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<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.tutorials.evadventure.random_tables.html" title="evennia.contrib.tutorials.evadventure.random_tables"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.tutorials.evadventure.objects.html" title="evennia.contrib.tutorials.evadventure.objects"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia latest</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.tutorials.html" >evennia.contrib.tutorials</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.tutorials.evadventure.html" >evennia.contrib.tutorials.evadventure</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.tutorials.evadventure.quests</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> 3.2.1.
</div>
</body>
</html>