evennia/docs/6.x/api/evennia.contrib.rpg.buffs.buff.html
2026-02-15 19:06:04 +01:00

1250 lines
No EOL
137 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.rpg.buffs.buff &#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.rpg.buffs.samplebuffs" href="evennia.contrib.rpg.buffs.samplebuffs.html" />
<link rel="prev" title="evennia.contrib.rpg.buffs" href="evennia.contrib.rpg.buffs.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.rpg.buffs.samplebuffs.html" title="evennia.contrib.rpg.buffs.samplebuffs"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.rpg.buffs.html" title="evennia.contrib.rpg.buffs"
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.rpg.html" >evennia.contrib.rpg</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.rpg.buffs.html" accesskey="U">evennia.contrib.rpg.buffs</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpg.buffs.buff</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.rpg.buffs.buff">
<span id="evennia-contrib-rpg-buffs-buff"></span><h1>evennia.contrib.rpg.buffs.buff<a class="headerlink" href="#module-evennia.contrib.rpg.buffs.buff" title="Link to this heading"></a></h1>
<p>Buffs - Tegiminis 2022</p>
<p>A buff is a timed object, attached to a game entity, that modifies values, triggers
code, or both. It is a common design pattern in RPGs, particularly action games.</p>
<p>This contrib gives you a buff handler to apply to your objects, a buff class to extend them,
a sample property class to show how to automatically check modifiers, some sample buffs to learn from,
and a command which applies buffs.</p>
<section id="installation">
<h2>Installation<a class="headerlink" href="#installation" title="Link to this heading"></a></h2>
<p>Assign the handler to a property on the object, like so.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@lazy_property</span>
<span class="k">def</span><span class="w"> </span><span class="nf">buffs</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">BuffHandler</span><span class="p">:</span>
<span class="k">return</span> <span class="n">BuffHandler</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</pre></div>
</div>
</section>
<section id="using-the-handler">
<h2>Using the Handler<a class="headerlink" href="#using-the-handler" title="Link to this heading"></a></h2>
<p>To make use of the handler, you will need:</p>
<ul class="simple">
<li><p>Some buffs to add. You can create these by extending the <strong>BaseBuff</strong> class from this module. You can see some examples in <strong>samplebuffs.py</strong>.</p></li>
<li><p>A way to add buffs to the handler. You can see a basic example of this in the <strong>CmdBuff</strong> command in this module.</p></li>
</ul>
<section id="applying-a-buff">
<h3>Applying a Buff<a class="headerlink" href="#applying-a-buff" title="Link to this heading"></a></h3>
<p>Call the handler <strong>add(BuffClass)</strong> method. This requires a class reference, and also contains a number of
optional arguments to customize the buffs duration, stacks, and so on.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="bp">self</span><span class="o">.</span><span class="n">buffs</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">StrengthBuff</span><span class="p">)</span> <span class="c1"># A single stack of StrengthBuff with normal duration</span>
<span class="bp">self</span><span class="o">.</span><span class="n">buffs</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">DexBuff</span><span class="p">,</span> <span class="n">stacks</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">duration</span><span class="o">=</span><span class="mi">60</span><span class="p">)</span> <span class="c1"># Three stacks of DexBuff, with a duration of 60 seconds</span>
<span class="bp">self</span><span class="o">.</span><span class="n">buffs</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">ReflectBuff</span><span class="p">,</span> <span class="n">to_cache</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;reflect&#39;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">})</span> <span class="c1"># A single stack of ReflectBuff, with an extra cache value</span>
</pre></div>
</div>
</section>
<section id="modify">
<h3>Modify<a class="headerlink" href="#modify" title="Link to this heading"></a></h3>
<p>Call the handler <strong>check(value, stat)</strong> method wherever you want to see the modified value.
This will return the value, modified by and relevant buffs on the handlers owner (identified by
the <strong>stat</strong> string). For example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># The method we call to damage ourselves</span>
<span class="k">def</span><span class="w"> </span><span class="nf">take_damage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">damage</span><span class="p">):</span>
<span class="n">_damage</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">buffs</span><span class="o">.</span><span class="n">check</span><span class="p">(</span><span class="n">damage</span><span class="p">,</span> <span class="s1">&#39;taken_damage&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">health</span> <span class="o">-=</span> <span class="n">_damage</span>
</pre></div>
</div>
</section>
<section id="trigger">
<h3>Trigger<a class="headerlink" href="#trigger" title="Link to this heading"></a></h3>
<p>Call the handler <strong>trigger(triggerstring)</strong> method wherever you want an event call. This
will call the <strong>at_trigger</strong> hook method on all buffs with the relevant trigger.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">Detonate</span><span class="p">(</span><span class="n">BaseBuff</span><span class="p">):</span>
<span class="o">...</span>
<span class="n">triggers</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;take_damage&#39;</span><span class="p">]</span>
<span class="k">def</span><span class="w"> </span><span class="nf">at_trigger</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">trigger</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">owner</span><span class="o">.</span><span class="n">take_damage</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">remove</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">Character</span><span class="p">(</span><span class="n">Character</span><span class="p">):</span>
<span class="o">...</span>
<span class="k">def</span><span class="w"> </span><span class="nf">take_damage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source</span><span class="p">,</span> <span class="n">damage</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">buffs</span><span class="o">.</span><span class="n">trigger</span><span class="p">(</span><span class="s1">&#39;take_damage&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">health</span> <span class="o">-=</span> <span class="n">_damage</span>
</pre></div>
</div>
</section>
<section id="tick">
<h3>Tick<a class="headerlink" href="#tick" title="Link to this heading"></a></h3>
<p>Ticking a buff happens automatically once applied, as long as the buffs <strong>tickrate</strong> is more than 0.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">Poison</span><span class="p">(</span><span class="n">BaseBuff</span><span class="p">):</span>
<span class="o">...</span>
<span class="n">tickrate</span> <span class="o">=</span> <span class="mi">5</span>
<span class="k">def</span><span class="w"> </span><span class="nf">at_tick</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">initial</span><span class="o">=</span><span class="kc">True</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="n">_dmg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dmg</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">stacks</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">initial</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span>
<span class="s2">&quot;Poison courses through </span><span class="si">{actor}</span><span class="s2">&#39;s body, dealing </span><span class="si">{damage}</span><span class="s2"> damage.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
<span class="n">actor</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">named</span><span class="p">,</span> <span class="n">damage</span><span class="o">=</span><span class="n">_dmg</span>
<span class="p">)</span>
<span class="p">)</span>
</pre></div>
</div>
</section>
</section>
<section id="buffs">
<h2>Buffs<a class="headerlink" href="#buffs" title="Link to this heading"></a></h2>
<p>A buff is a class which contains a bunch of immutable data about itself - such as tickrate, triggers, refresh rules, and
so on - and which merges mutable data in from the cache when called.</p>
<p>Buffs are always instanced when they are called for a method. To access a buffs properties and methods, you should do so through
this instance, rather than directly manipulating the buff cache on the object. You can modify a buffs cache through various handler
methods instead.</p>
<p>You can see all the features of the <strong>BaseBuff</strong> class below, or browse <strong>samplebuffs.py</strong> to see how to create some common buffs. Buffs have
many attributes and hook methods you can overload to create complex, interrelated buffs.</p>
</section>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.random">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">random</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">x</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">interval</span> <span class="pre">[0,</span> <span class="pre">1).</span></span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.random" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">BaseBuff</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">buffkey</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cache</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BaseBuff"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'template'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.name">
<span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Template'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.flavor">
<span class="sig-name descname"><span class="pre">flavor</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Template'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.flavor" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.visible">
<span class="sig-name descname"><span class="pre">visible</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.visible" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.triggers">
<span class="sig-name descname"><span class="pre">triggers</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.triggers" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.handler">
<span class="sig-name descname"><span class="pre">handler</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.handler" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.start">
<span class="sig-name descname"><span class="pre">start</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.start" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.duration">
<span class="sig-name descname"><span class="pre">duration</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">-1</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.duration" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.playtime">
<span class="sig-name descname"><span class="pre">playtime</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.playtime" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.refresh">
<span class="sig-name descname"><span class="pre">refresh</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.refresh" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.unique">
<span class="sig-name descname"><span class="pre">unique</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.unique" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.maxstacks">
<span class="sig-name descname"><span class="pre">maxstacks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.maxstacks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.stacks">
<span class="sig-name descname"><span class="pre">stacks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.stacks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.tickrate">
<span class="sig-name descname"><span class="pre">tickrate</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.tickrate" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.mods">
<span class="sig-name descname"><span class="pre">mods</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.mods" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.cache">
<span class="sig-name descname"><span class="pre">cache</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{}</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.cache" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.ticknum">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ticknum</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.ticknum" title="Link to this definition"></a></dt>
<dd><p>Returns how many ticks this buff has gone through as an integer.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.owner">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">owner</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.owner" title="Link to this definition"></a></dt>
<dd><p>Return this buffs owner (the object its handler is attached to)</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.timeleft">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">timeleft</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.timeleft" title="Link to this definition"></a></dt>
<dd><p>Returns how much time this buff has left. If -1, it is permanent.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.ticking">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ticking</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.ticking" title="Link to this definition"></a></dt>
<dd><p>Returns if this buff ticks or not (tickrate =&gt; 1)</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.stacking">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">stacking</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.stacking" title="Link to this definition"></a></dt>
<dd><p>Returns if this buff stacks or not (maxstacks &gt; 1)</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">buffkey</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cache</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BaseBuff.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.__init__" title="Link to this definition"></a></dt>
<dd><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>handler</strong> The handler this buff is attached to</p></li>
<li><p><strong>buffkey</strong> The key this buff uses on the cache</p></li>
<li><p><strong>cache</strong> The cache dictionary (what you get if you use <strong>handler.buffcache.get(key)</strong>)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.conditional">
<span class="sig-name descname"><span class="pre">conditional</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.conditional"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.conditional" title="Link to this definition"></a></dt>
<dd><p>Hook function for conditional evaluation.</p>
<p>This must return True for a buff to apply modifiers, trigger effects, or tick.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.remove">
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BaseBuff.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.remove" title="Link to this definition"></a></dt>
<dd><p>Helper method which removes this buff from its handler. Use dispel if you are dispelling it instead.</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>loud</strong> (optional) Whether to call at_remove or not (default: True)</p></li>
<li><p><strong>expire</strong> (optional) Whether to call at_expire or not (default: False)</p></li>
<li><p><strong>delay</strong> (optional) How long you want to delay the remove call for</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.dispel">
<span class="sig-name descname"><span class="pre">dispel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">delay</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BaseBuff.dispel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.dispel" title="Link to this definition"></a></dt>
<dd><p>Helper method which dispels this buff (removes and calls at_dispel).</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>loud</strong> (optional) Whether to call at_remove or not (default: True)</p></li>
<li><p><strong>delay</strong> (optional) How long you want to delay the remove call for</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.pause">
<span class="sig-name descname"><span class="pre">pause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BaseBuff.pause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.pause" title="Link to this definition"></a></dt>
<dd><p>Helper method which pauses this buff on its handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_pause method as kwargs</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.unpause">
<span class="sig-name descname"><span class="pre">unpause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BaseBuff.unpause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.unpause" title="Link to this definition"></a></dt>
<dd><p>Helper method which unpauses this buff on its handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_unpause method as kwargs</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.reset">
<span class="sig-name descname"><span class="pre">reset</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BaseBuff.reset"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.reset" title="Link to this definition"></a></dt>
<dd><p>Resets the buff start time as though it were just applied; functionally identical to a refresh</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.update_cache">
<span class="sig-name descname"><span class="pre">update_cache</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">to_cache</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BaseBuff.update_cache"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.update_cache" title="Link to this definition"></a></dt>
<dd><p>Updates this buffs cache using the given values, both internally (this instance) and on the handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>to_cache</strong> The dictionary of values you want to add to the cache</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_init">
<span class="sig-name descname"><span class="pre">at_init</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_init" title="Link to this definition"></a></dt>
<dd><p>Hook function called when this buff object is initialized.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_apply">
<span class="sig-name descname"><span class="pre">at_apply</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_apply"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_apply" title="Link to this definition"></a></dt>
<dd><p>Hook function to run when this buff is applied to an object.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_remove">
<span class="sig-name descname"><span class="pre">at_remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_remove" title="Link to this definition"></a></dt>
<dd><p>Hook function to run when this buff is removed from an object.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_dispel">
<span class="sig-name descname"><span class="pre">at_dispel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_dispel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_dispel" title="Link to this definition"></a></dt>
<dd><p>Hook function to run when this buff is dispelled from an object (removed by someone other than the buff holder).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_expire">
<span class="sig-name descname"><span class="pre">at_expire</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_expire"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_expire" title="Link to this definition"></a></dt>
<dd><p>Hook function to run when this buff expires from an object.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_pre_check">
<span class="sig-name descname"><span class="pre">at_pre_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_pre_check"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_pre_check" title="Link to this definition"></a></dt>
<dd><p>Hook function to run before this buffs modifiers are checked.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_post_check">
<span class="sig-name descname"><span class="pre">at_post_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_post_check"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_post_check" title="Link to this definition"></a></dt>
<dd><p>Hook function to run after this buffs mods are checked.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_trigger">
<span class="sig-name descname"><span class="pre">at_trigger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">trigger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_trigger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_trigger" title="Link to this definition"></a></dt>
<dd><p>Hook for the code you want to run whenever the effect is triggered.
Passes the trigger string to the function, so you can have multiple
triggers on one buff.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_tick">
<span class="sig-name descname"><span class="pre">at_tick</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_tick"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_tick" title="Link to this definition"></a></dt>
<dd><p>Hook for actions that occur per-tick, a designer-set sub-duration.
<strong>initial</strong> tells you if its the first tick that happens (when a buff is applied).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_pause">
<span class="sig-name descname"><span class="pre">at_pause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_pause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_pause" title="Link to this definition"></a></dt>
<dd><p>Hook for when this buff is paused</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BaseBuff.at_unpause">
<span class="sig-name descname"><span class="pre">at_unpause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BaseBuff.at_unpause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_unpause" title="Link to this definition"></a></dt>
<dd><p>Hook for when this buff is unpaused.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">Mod</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stat</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">modifier</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">perstack</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#Mod"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod" title="Link 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>A single stat mod object. One buff or trait can hold multiple mods, for the same or different stats.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stat</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">modifier</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">perstack</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#Mod.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod.__init__" title="Link to this definition"></a></dt>
<dd><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>stat</strong> The stat the buff affects. Normally matches the object attribute name</p></li>
<li><p><strong>mod</strong> The modifier the buff applies. “add” for add/sub or “mult” for mult/div</p></li>
<li><p><strong>value</strong> The value of the modifier</p></li>
<li><p><strong>perstack</strong> How much is added to the base, per stack (including first).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod.stat">
<span class="sig-name descname"><span class="pre">stat</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'null'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod.stat" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod.modifier">
<span class="sig-name descname"><span class="pre">modifier</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'add'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod.modifier" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod.value">
<span class="sig-name descname"><span class="pre">value</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod.value" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.Mod.perstack">
<span class="sig-name descname"><span class="pre">perstack</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.Mod.perstack" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">BuffHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">owner</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dbkey</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'buffs'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">autopause</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">owner</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dbkey</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'buffs'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">autopause</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.__init__" title="Link to this definition"></a></dt>
<dd><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>owner</strong> The object this handler is attached to</p></li>
<li><p><strong>dbkey</strong> (optional) The string key of the db attribute to use for the buff cache</p></li>
<li><p><strong>autopause</strong> (optional) Whether this handler autopauses playtime buffs on owning objects unpuppet</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.ownerref">
<span class="sig-name descname"><span class="pre">ownerref</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.ownerref" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.dbkey">
<span class="sig-name descname"><span class="pre">dbkey</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'buffs'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.dbkey" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.autopause">
<span class="sig-name descname"><span class="pre">autopause</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.autopause" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.owner">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">owner</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.owner" title="Link to this definition"></a></dt>
<dd><p>The object this handler is attached to.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.buffcache">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">buffcache</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.buffcache" title="Link to this definition"></a></dt>
<dd><p>The object attribute we use for the buff cache. Auto-creates if not present.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.traits">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">traits</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.traits" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that modify a stat.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.effects">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">effects</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.effects" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that trigger off an event.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.playtime">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">playtime</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.playtime" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that only count down during active playtime.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.paused">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">paused</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.paused" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that are paused.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.expired">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">expired</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.expired" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that have expired (no duration or no stacks).</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.visible">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">visible</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.visible" title="Link to this definition"></a></dt>
<dd><p>All buffs on this handler that are visible.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.all">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">all</span></span><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.all" title="Link to this definition"></a></dt>
<dd><p>Returns dictionary of instanced buffs equivalent to ALL buffs on this handler,
regardless of state, type, or anything else.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.add">
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buff</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff" title="evennia.contrib.rpg.buffs.buff.BaseBuff"><span class="pre">BaseBuff</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stacks</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">duration</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">source</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">to_cache</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">context</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="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</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/rpg/buffs/buff.html#BuffHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.add" title="Link to this definition"></a></dt>
<dd><p>Add a buff to this object, respecting all stacking/refresh/reapplication rules. Takes
a number of optional parameters to allow for customization.</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>buff</strong> The buff class type you wish to add</p></li>
<li><p><strong>key</strong> (optional) The key you wish to use for this buff; overrides defaults</p></li>
<li><p><strong>stacks</strong> (optional) The number of stacks you want to add, if the buff is stacking</p></li>
<li><p><strong>duration</strong> (optional) The amount of time, in seconds, you want the buff to last; overrides defaults</p></li>
<li><p><strong>source</strong> (optional) The source of this buff. (default: None)</p></li>
<li><p><strong>to_cache</strong> (optional) A dictionary to store in the buffs cache; does not overwrite default cache keys</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_apply method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove">
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stacks</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove" title="Link to this definition"></a></dt>
<dd><p>Remove a buff or effect with matching key from this object. Normally calls at_remove,
calls at_expire if the buff expired naturally, and optionally calls at_dispel. Can also
remove stacks instead of the entire buff (still calls at_remove). Typically called via a helper method
on the buff instance, or other methods on the handler.</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>key</strong> The buff key</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_type">
<span class="sig-name descname"><span class="pre">remove_by_type</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bufftype</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff" title="evennia.contrib.rpg.buffs.buff.BaseBuff"><span class="pre">BaseBuff</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove_by_type"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_type" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs of a specified type from this object. Functionally similar to remove, but takes a type instead.</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>bufftype</strong> The buff class to remove</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_stat">
<span class="sig-name descname"><span class="pre">remove_by_stat</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stat</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove_by_stat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_stat" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs modifying the specified stat from this object.</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>stat</strong> The stat string to search for</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_trigger">
<span class="sig-name descname"><span class="pre">remove_by_trigger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">trigger</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove_by_trigger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_trigger" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs with the specified trigger from this object.</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>trigger</strong> The stat string to search for</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_source">
<span class="sig-name descname"><span class="pre">remove_by_source</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove_by_source"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_source" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs from the specified source from this object.</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>source</strong> The source to search for</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_cachevalue">
<span class="sig-name descname"><span class="pre">remove_by_cachevalue</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.remove_by_cachevalue"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_cachevalue" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs with the cachevalue from this object. Functionally similar to remove, but checks the buffs cache values instead.</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>key</strong> The key of the cache value to check</p></li>
<li><p><strong>value</strong> (optional) The value to match to. If None, merely checks to see if the value exists</p></li>
<li><p><strong>loud</strong> (optional) Calls at_remove when True. (default: True)</p></li>
<li><p><strong>dispel</strong> (optional) Calls at_dispel when True. (default: False)</p></li>
<li><p><strong>expire</strong> (optional) Calls at_expire when True. (default: False)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_remove/at_dispel/at_expire method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.clear">
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">dispel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expire</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.clear" title="Link to this definition"></a></dt>
<dd><p>Removes all buffs on this handler</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get">
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get" title="Link to this definition"></a></dt>
<dd><p>If the specified key is on this handler, return the instanced buff. Otherwise return None.
You should delete this when youre done with it, so that garbage collection doesnt have to.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>key</strong> The key for the buff you wish to get</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_all">
<span class="sig-name descname"><span class="pre">get_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.get_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_all" title="Link to this definition"></a></dt>
<dd><p>Returns a dictionary of instanced buffs (all of them) on this handler in the format {buffkey: instance}</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_type">
<span class="sig-name descname"><span class="pre">get_by_type</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buff</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff" title="evennia.contrib.rpg.buffs.buff.BaseBuff"><span class="pre">BaseBuff</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">to_filter</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/rpg/buffs/buff.html#BuffHandler.get_by_type"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_type" title="Link to this definition"></a></dt>
<dd><p>Finds all buffs matching the given type.</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>buff</strong> The buff class to search for</p></li>
<li><p><strong>to_filter</strong> (optional) A dictionary you wish to slice. If not provided, uses the whole buffcache.</p></li>
</ul>
</dd>
</dl>
<p>Returns a dictionary of instanced buffs of the specified type in the format {buffkey: instance}.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_stat">
<span class="sig-name descname"><span class="pre">get_by_stat</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stat</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">to_filter</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/rpg/buffs/buff.html#BuffHandler.get_by_stat"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_stat" title="Link to this definition"></a></dt>
<dd><p>Finds all buffs which contain a Mod object that modifies the specified stat.</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>stat</strong> The string identifier to find relevant mods</p></li>
<li><p><strong>to_filter</strong> (optional) A dictionary you wish to slice. If not provided, uses the whole buffcache.</p></li>
</ul>
</dd>
</dl>
<p>Returns a dictionary of instanced buffs which modify the specified stat in the format {buffkey: instance}.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_trigger">
<span class="sig-name descname"><span class="pre">get_by_trigger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">trigger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">to_filter</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/rpg/buffs/buff.html#BuffHandler.get_by_trigger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_trigger" title="Link to this definition"></a></dt>
<dd><p>Finds all buffs with the matching string in their triggers.</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>trigger</strong> The string identifier to find relevant buffs</p></li>
<li><p><strong>to_filter</strong> (optional) A dictionary you wish to slice. If not provided, uses the whole buffcache.</p></li>
</ul>
</dd>
</dl>
<p>Returns a dictionary of instanced buffs which fire off the designated trigger, in the format {buffkey: instance}.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_source">
<span class="sig-name descname"><span class="pre">get_by_source</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">to_filter</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/rpg/buffs/buff.html#BuffHandler.get_by_source"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_source" title="Link to this definition"></a></dt>
<dd><p>Find all buffs with the matching source.</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>source</strong> The source you want to filter buffs by</p></li>
<li><p><strong>to_filter</strong> (optional) A dictionary you wish to slice. If not provided, uses the whole buffcache.</p></li>
</ul>
</dd>
</dl>
<p>Returns a dictionary of instanced buffs which came from the provided source, in the format {buffkey: instance}.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_cachevalue">
<span class="sig-name descname"><span class="pre">get_by_cachevalue</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">to_filter</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/rpg/buffs/buff.html#BuffHandler.get_by_cachevalue"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_cachevalue" title="Link to this definition"></a></dt>
<dd><p>Find all buffs with a matching {key: value} pair in its cache. Allows you to search buffs by arbitrary cache values</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>key</strong> The key of the cache value to check</p></li>
<li><p><strong>value</strong> (optional) The value to match to. If None, merely checks to see if the value exists</p></li>
<li><p><strong>to_filter</strong> (optional) A dictionary you wish to slice. If not provided, uses the whole buffcache.</p></li>
</ul>
</dd>
</dl>
<p>Returns a dictionary of instanced buffs with cache values matching the specified value, in the format {buffkey: instance}.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.has">
<span class="sig-name descname"><span class="pre">has</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buff</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> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.has" title="Link to this definition"></a></dt>
<dd><p>Checks if the specified buff type or key exists on the handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>buff</strong> The buff to search for. This can be a string (the key) or a class reference (the buff type)</p>
</dd>
</dl>
<p>Returns a bool. If no buff and no key is specified, returns False.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.check">
<span class="sig-name descname"><span class="pre">check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stat</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loud</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="n"><span class="pre">context</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">trigger</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strongest</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.check"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.check" title="Link to this definition"></a></dt>
<dd><p>Finds all buffs and perks related to a stat and applies their effects.</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>value</strong> The value you intend to modify</p></li>
<li><p><strong>stat</strong> The string that designates which stat buffs you want</p></li>
<li><p><strong>loud</strong> (optional) Call the buffs at_post_check method after checking (default: True)</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_pre_check/at_post_check and conditional methods as kwargs</p></li>
<li><p><strong>trigger</strong> (optional) Trigger buffs with the <strong>stat</strong> string as well. (default: False)</p></li>
<li><p><strong>strongest</strong> (optional) Applies only the strongest mods of the corresponding stat value (default: False)</p></li>
</ul>
</dd>
</dl>
<p>Returns the value modified by relevant buffs.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.trigger">
<span class="sig-name descname"><span class="pre">trigger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">trigger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </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/rpg/buffs/buff.html#BuffHandler.trigger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.trigger" title="Link to this definition"></a></dt>
<dd><p>Calls the at_trigger method on all buffs with the matching trigger.</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>trigger</strong> The string identifier to find relevant buffs. Passed to the at_trigger method.</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_trigger method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.pause">
<span class="sig-name descname"><span class="pre">pause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.pause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.pause" title="Link to this definition"></a></dt>
<dd><p>Pauses the buff. This excludes it from being checked for mods, triggered, or cleaned up. Used to make buffs playtime instead of realtime.</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>key</strong> The key for the buff you wish to pause</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_pause method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.unpause">
<span class="sig-name descname"><span class="pre">unpause</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.unpause"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.unpause" title="Link to this definition"></a></dt>
<dd><p>Unpauses a buff. This makes it visible to the various buff systems again.</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>key</strong> The key for the buff you wish to pause</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_unpause method as kwargs</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.view">
<span class="sig-name descname"><span class="pre">view</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">to_filter</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> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.view"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.view" title="Link to this definition"></a></dt>
<dd><p>Returns a buff flavor text as a dictionary of tuples in the format {key: (name, flavor)}. Common use for this is a buff readout of some kind.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>to_filter</strong> (optional) The dictionary of buffs to iterate over. If none is provided, returns all buffs (default: None)</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.view_modifiers">
<span class="sig-name descname"><span class="pre">view_modifiers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stat</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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/rpg/buffs/buff.html#BuffHandler.view_modifiers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.view_modifiers" title="Link to this definition"></a></dt>
<dd><p>Checks all modifiers of the specified stat without actually applying them. Hits the conditional hook for relevant buffs.</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>stat</strong> The mod identifier string to search for</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the conditional hooks as kwargs</p></li>
</ul>
</dd>
</dl>
<p>Returns a nested dictionary. The first layers keys represent the type of modifier (add and mult),
and the second layers keys represent the type of value (total and strongest).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffHandler.cleanup">
<span class="sig-name descname"><span class="pre">cleanup</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffHandler.cleanup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.cleanup" title="Link to this definition"></a></dt>
<dd><p>Removes expired buffs, ensures pause state is respected.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffableProperty">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">BuffableProperty</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</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">category</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">strattr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lockstring</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">autocreate</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/rpg/buffs/buff.html#BuffableProperty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffableProperty" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.AttributeProperty" title="evennia.typeclasses.attributes.AttributeProperty"><code class="xref py py-class docutils literal notranslate"><span class="pre">AttributeProperty</span></code></a></p>
<p>An example of a way you can extend AttributeProperty to create properties that automatically check buffs for you.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.BuffableProperty.at_get">
<span class="sig-name descname"><span class="pre">at_get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#BuffableProperty.at_get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.BuffableProperty.at_get" title="Link to this definition"></a></dt>
<dd><p>The value returned from the Attribute is passed through this method. It can be used
to react to the retrieval or modify the result in some way.</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>value</strong> (<em>any</em>) Value returned from the Attribute.</p></li>
<li><p><strong>obj</strong> (<em>object</em>) Object the attribute is attached to</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>any</em> The value to return to the caller.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This is will only fire if you actually get the Attribute via this <strong>AttributeProperty</strong>.
That is, if you instead get it via the <strong>AttributeHandler</strong> (or via <strong>.db</strong>), you are
bypassing this <strong>AttributeProperty</strong> entirely and this method is never reached.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">CmdBuff</span></span><span class="sig-paren">(</span><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/rpg/buffs/buff.html#CmdBuff"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff" title="Link 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">Command</span></code></a></p>
<p>Buff a target.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>buff &lt;target&gt; &lt;buff&gt;</p>
</dd>
</dl>
<p>Applies the specified buff to the target. All buffs are defined in the bufflist dictionary on this command.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'buff'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all();'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'',</span> <span class="pre">'category':</span> <span class="pre">'builder',</span> <span class="pre">'key':</span> <span class="pre">'buff',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">'\nBuff</span> <span class="pre">a</span> <span class="pre">target.\n\nUsage:\n</span>&#160; <span class="pre">buff</span> <span class="pre">&lt;target&gt;</span> <span class="pre">&lt;buff&gt;\n\nApplies</span> <span class="pre">the</span> <span class="pre">specified</span> <span class="pre">buff</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">target.</span> <span class="pre">All</span> <span class="pre">buffs</span> <span class="pre">are</span> <span class="pre">defined</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">bufflist</span> <span class="pre">dictionary</span> <span class="pre">on</span> <span class="pre">this</span> <span class="pre">command.\n'}</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'builder'</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.bufflist">
<span class="sig-name descname"><span class="pre">bufflist</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'foo':</span> <span class="pre">&lt;class</span> <span class="pre">'evennia.contrib.rpg.buffs.buff.BaseBuff'&gt;}</span></em><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.bufflist" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.parse">
<span class="sig-name descname"><span class="pre">parse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#CmdBuff.parse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.parse" title="Link 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 class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.CmdBuff.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#CmdBuff.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.func" title="Link 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>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.cleanup_buffs">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">cleanup_buffs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler" title="evennia.contrib.rpg.buffs.buff.BuffHandler"><span class="pre">BuffHandler</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/rpg/buffs/buff.html#cleanup_buffs"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.cleanup_buffs" title="Link to this definition"></a></dt>
<dd><p>Cleans up all expired buffs from a handler.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.contrib.rpg.buffs.buff.tick_buff">
<span class="sig-prename descclassname"><span class="pre">evennia.contrib.rpg.buffs.buff.</span></span><span class="sig-name descname"><span class="pre">tick_buff</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler" title="evennia.contrib.rpg.buffs.buff.BuffHandler"><span class="pre">BuffHandler</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">buffkey</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</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">initial</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/rpg/buffs/buff.html#tick_buff"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.rpg.buffs.buff.tick_buff" title="Link to this definition"></a></dt>
<dd><p>Ticks a buff. If a buffs tickrate is 1 or larger, this is called when the buff is applied, and then once per tick cycle.</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>handler</strong> The handler managing the ticking buff</p></li>
<li><p><strong>buffkey</strong> The key of the ticking buff</p></li>
<li><p><strong>context</strong> (optional) A dictionary you wish to pass to the at_tick method as kwargs</p></li>
<li><p><strong>initial</strong> (optional) Whether this tick_buff call is the first one. Starts True, changes to False for future ticks</p></li>
</ul>
</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.rpg.buffs.buff</a><ul>
<li><a class="reference internal" href="#installation">Installation</a></li>
<li><a class="reference internal" href="#using-the-handler">Using the Handler</a><ul>
<li><a class="reference internal" href="#applying-a-buff">Applying a Buff</a></li>
<li><a class="reference internal" href="#modify">Modify</a></li>
<li><a class="reference internal" href="#trigger">Trigger</a></li>
<li><a class="reference internal" href="#tick">Tick</a></li>
</ul>
</li>
<li><a class="reference internal" href="#buffs">Buffs</a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.random"><code class="docutils literal notranslate"><span class="pre">random()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff"><code class="docutils literal notranslate"><span class="pre">BaseBuff</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.key"><code class="docutils literal notranslate"><span class="pre">BaseBuff.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.name"><code class="docutils literal notranslate"><span class="pre">BaseBuff.name</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.flavor"><code class="docutils literal notranslate"><span class="pre">BaseBuff.flavor</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.visible"><code class="docutils literal notranslate"><span class="pre">BaseBuff.visible</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.triggers"><code class="docutils literal notranslate"><span class="pre">BaseBuff.triggers</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.handler"><code class="docutils literal notranslate"><span class="pre">BaseBuff.handler</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.start"><code class="docutils literal notranslate"><span class="pre">BaseBuff.start</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.duration"><code class="docutils literal notranslate"><span class="pre">BaseBuff.duration</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.playtime"><code class="docutils literal notranslate"><span class="pre">BaseBuff.playtime</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.refresh"><code class="docutils literal notranslate"><span class="pre">BaseBuff.refresh</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.unique"><code class="docutils literal notranslate"><span class="pre">BaseBuff.unique</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.maxstacks"><code class="docutils literal notranslate"><span class="pre">BaseBuff.maxstacks</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.stacks"><code class="docutils literal notranslate"><span class="pre">BaseBuff.stacks</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.tickrate"><code class="docutils literal notranslate"><span class="pre">BaseBuff.tickrate</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.mods"><code class="docutils literal notranslate"><span class="pre">BaseBuff.mods</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.cache"><code class="docutils literal notranslate"><span class="pre">BaseBuff.cache</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.ticknum"><code class="docutils literal notranslate"><span class="pre">BaseBuff.ticknum</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.owner"><code class="docutils literal notranslate"><span class="pre">BaseBuff.owner</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.timeleft"><code class="docutils literal notranslate"><span class="pre">BaseBuff.timeleft</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.ticking"><code class="docutils literal notranslate"><span class="pre">BaseBuff.ticking</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.stacking"><code class="docutils literal notranslate"><span class="pre">BaseBuff.stacking</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.__init__"><code class="docutils literal notranslate"><span class="pre">BaseBuff.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.conditional"><code class="docutils literal notranslate"><span class="pre">BaseBuff.conditional()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.remove"><code class="docutils literal notranslate"><span class="pre">BaseBuff.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.dispel"><code class="docutils literal notranslate"><span class="pre">BaseBuff.dispel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.pause"><code class="docutils literal notranslate"><span class="pre">BaseBuff.pause()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.unpause"><code class="docutils literal notranslate"><span class="pre">BaseBuff.unpause()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.reset"><code class="docutils literal notranslate"><span class="pre">BaseBuff.reset()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.update_cache"><code class="docutils literal notranslate"><span class="pre">BaseBuff.update_cache()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_init"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_init()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_apply"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_apply()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_remove"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_dispel"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_dispel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_expire"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_expire()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_pre_check"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_pre_check()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_post_check"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_post_check()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_trigger"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_trigger()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_tick"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_tick()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_pause"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_pause()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BaseBuff.at_unpause"><code class="docutils literal notranslate"><span class="pre">BaseBuff.at_unpause()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod"><code class="docutils literal notranslate"><span class="pre">Mod</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod.__init__"><code class="docutils literal notranslate"><span class="pre">Mod.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod.stat"><code class="docutils literal notranslate"><span class="pre">Mod.stat</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod.modifier"><code class="docutils literal notranslate"><span class="pre">Mod.modifier</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod.value"><code class="docutils literal notranslate"><span class="pre">Mod.value</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.Mod.perstack"><code class="docutils literal notranslate"><span class="pre">Mod.perstack</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler"><code class="docutils literal notranslate"><span class="pre">BuffHandler</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.__init__"><code class="docutils literal notranslate"><span class="pre">BuffHandler.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.ownerref"><code class="docutils literal notranslate"><span class="pre">BuffHandler.ownerref</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.dbkey"><code class="docutils literal notranslate"><span class="pre">BuffHandler.dbkey</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.autopause"><code class="docutils literal notranslate"><span class="pre">BuffHandler.autopause</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.owner"><code class="docutils literal notranslate"><span class="pre">BuffHandler.owner</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.buffcache"><code class="docutils literal notranslate"><span class="pre">BuffHandler.buffcache</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.traits"><code class="docutils literal notranslate"><span class="pre">BuffHandler.traits</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.effects"><code class="docutils literal notranslate"><span class="pre">BuffHandler.effects</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.playtime"><code class="docutils literal notranslate"><span class="pre">BuffHandler.playtime</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.paused"><code class="docutils literal notranslate"><span class="pre">BuffHandler.paused</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.expired"><code class="docutils literal notranslate"><span class="pre">BuffHandler.expired</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.visible"><code class="docutils literal notranslate"><span class="pre">BuffHandler.visible</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.all"><code class="docutils literal notranslate"><span class="pre">BuffHandler.all</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.add"><code class="docutils literal notranslate"><span class="pre">BuffHandler.add()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_type"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove_by_type()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_stat"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove_by_stat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_trigger"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove_by_trigger()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_source"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove_by_source()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.remove_by_cachevalue"><code class="docutils literal notranslate"><span class="pre">BuffHandler.remove_by_cachevalue()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.clear"><code class="docutils literal notranslate"><span class="pre">BuffHandler.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_all"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_all()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_type"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_by_type()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_stat"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_by_stat()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_trigger"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_by_trigger()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_source"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_by_source()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.get_by_cachevalue"><code class="docutils literal notranslate"><span class="pre">BuffHandler.get_by_cachevalue()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.has"><code class="docutils literal notranslate"><span class="pre">BuffHandler.has()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.check"><code class="docutils literal notranslate"><span class="pre">BuffHandler.check()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.trigger"><code class="docutils literal notranslate"><span class="pre">BuffHandler.trigger()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.pause"><code class="docutils literal notranslate"><span class="pre">BuffHandler.pause()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.unpause"><code class="docutils literal notranslate"><span class="pre">BuffHandler.unpause()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.view"><code class="docutils literal notranslate"><span class="pre">BuffHandler.view()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.view_modifiers"><code class="docutils literal notranslate"><span class="pre">BuffHandler.view_modifiers()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffHandler.cleanup"><code class="docutils literal notranslate"><span class="pre">BuffHandler.cleanup()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffableProperty"><code class="docutils literal notranslate"><span class="pre">BuffableProperty</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.BuffableProperty.at_get"><code class="docutils literal notranslate"><span class="pre">BuffableProperty.at_get()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff"><code class="docutils literal notranslate"><span class="pre">CmdBuff</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.key"><code class="docutils literal notranslate"><span class="pre">CmdBuff.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.aliases"><code class="docutils literal notranslate"><span class="pre">CmdBuff.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdBuff.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdBuff.search_index_entry</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.help_category"><code class="docutils literal notranslate"><span class="pre">CmdBuff.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.bufflist"><code class="docutils literal notranslate"><span class="pre">CmdBuff.bufflist</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.parse"><code class="docutils literal notranslate"><span class="pre">CmdBuff.parse()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.CmdBuff.func"><code class="docutils literal notranslate"><span class="pre">CmdBuff.func()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.cleanup_buffs"><code class="docutils literal notranslate"><span class="pre">cleanup_buffs()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.rpg.buffs.buff.tick_buff"><code class="docutils literal notranslate"><span class="pre">tick_buff()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.rpg.buffs.html"
title="previous chapter">evennia.contrib.rpg.buffs</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.rpg.buffs.samplebuffs.html"
title="next chapter">evennia.contrib.rpg.buffs.samplebuffs</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.rpg.buffs.buff.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/6.x/index.html">v6.0.0 branch (outdated)</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.rpg.buffs.samplebuffs.html" title="evennia.contrib.rpg.buffs.samplebuffs"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.rpg.buffs.html" title="evennia.contrib.rpg.buffs"
>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.rpg.html" >evennia.contrib.rpg</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.rpg.buffs.html" >evennia.contrib.rpg.buffs</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.rpg.buffs.buff</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>