profectus-docs/assets/api_modules_features_achievement.md.2c24bff1.js

1 line
19 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as e,c as t,o as a,N as o}from"./chunks/framework.0799945b.js";const u=JSON.parse('{"title":"Module: features/achievements/achievement","description":"","frontmatter":{"editLink":false},"headers":[],"relativePath":"api/modules/features/achievement.md","lastUpdated":null}'),d={name:"api/modules/features/achievement.md"},c=o('<h1 id="module-features-achievements-achievement" tabindex="-1">Module: features/achievements/achievement <a class="header-anchor" href="#module-features-achievements-achievement" aria-label="Permalink to &quot;Module: features/achievements/achievement&quot;"></a></h1><h2 id="enumerations" tabindex="-1">Enumerations <a class="header-anchor" href="#enumerations" aria-label="Permalink to &quot;Enumerations&quot;"></a></h2><h3 id="achievementdisplay" tabindex="-1">AchievementDisplay <a class="header-anchor" href="#achievementdisplay" aria-label="Permalink to &quot;AchievementDisplay&quot;"></a></h3><p>• <strong>AchievementDisplay</strong>: <code>Object</code></p><p>Modes for only displaying some achievements.</p><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>All</code></td><td style="text-align:left;"><code>&quot;all&quot;</code></td></tr><tr><td style="text-align:left;"><code>Configurable</code></td><td style="text-align:left;"><code>&quot;configurable&quot;</code></td></tr><tr><td style="text-align:left;"><code>Incomplete</code></td><td style="text-align:left;"><code>&quot;incomplete&quot;</code></td></tr><tr><td style="text-align:left;"><code>None</code></td><td style="text-align:left;"><code>&quot;none&quot;</code></td></tr></tbody></table><h4 id="defined-in" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L51" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:51</a></p><h2 id="interfaces" tabindex="-1">Interfaces <a class="header-anchor" href="#interfaces" aria-label="Permalink to &quot;Interfaces&quot;"></a></h2><h3 id="achievementoptions" tabindex="-1">AchievementOptions <a class="header-anchor" href="#achievementoptions" aria-label="Permalink to &quot;AchievementOptions&quot;"></a></h3><p>• <strong>AchievementOptions</strong>: <code>Object</code></p><p>An object that configures an <a href="./achievement#achievement">Achievement</a>.</p><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>classes?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" target="_blank" rel="noreferrer"><code>Record</code></a>&lt;<code>string</code>, <code>boolean</code>&gt;&gt;</td><td style="text-align:left;">Dictionary of CSS classes to apply to this feature.</td></tr><tr><td style="text-align:left;"><code>display?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<a href="./feature#coercablecomponent"><code>CoercableComponent</code></a> | { <code>effectDisplay?</code>: <a href="./feature#coercablecomponent"><code>CoercableComponent</code></a> ; <code>optionsDisplay?</code>: <a href="./feature#coercablecomponent"><code>CoercableComponent</code></a> ; <code>requirement?</code>: <a href="./feature#coercablecomponent"><code>CoercableComponent</code></a> }&gt;</td><td style="text-align:left;">The display to use for this achievement.</td></tr><tr><td style="text-align:left;"><code>image?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<code>string</code>&gt;</td><td style="text-align:left;">An image to display as the background for this achievement.</td></tr><tr><td style="text-align:left;"><code>mark?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<code>string</code> | <code>boolean</code>&gt;</td><td style="text-align:left;">Shows a marker on the corner of the feature.</td></tr><tr><td style="text-align:left;"><code>onComplete?</code></td><td style="text-align:left;"><code>VoidFunction</code></td><td style="text-align:left;">A function that is called when the achievement is completed.</td></tr><tr><td style="text-align:left;"><code>requirements?</code></td><td style="text-align:left;"><a href="./../game/requirements#requirements"><code>Requirements</code></a></td><td style="text-align:left;">The requirement(s) to earn this achievement. Can be left null if using <a href="./achievement#complete">complete</a>.</td></tr><tr><td style="text-align:left;"><code>showPopups?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<code>boolean</code>&gt;</td><td style="text-align:left;">Whether or not to display a notification popup when this achievement is earned.</td></tr><tr><td style="text-align:left;"><code>small?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<code>boolean</code>&gt;</td><td style="text-align:left;">Toggles a smaller design for the feature.</td></tr><tr><td style="text-align:left;"><code>style?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<a href="./feature#stylevalue"><code>StyleValue</code></a>&gt;</td><td style="text-align:left;">CSS to apply to this feature.</td></tr><tr><td style="text-align:left;"><code>visibility?</code></td><td style="text-align:left;"><a href="./../util/computed#computable"><code>Computable</code></a>&lt;<code>boolean</code> | <a href="./feature#visibility"><code>Visibility</code></a>&gt;</td><td style="text-align:left;">Whether this achievement should be visible.</td></tr></tbody></table><h4 id="defined-in-1" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-1" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L62" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:62</a></p><hr><h3 id="baseachievement" tabindex="-1">BaseAchievement <a class="header-anchor" href="#baseachievement" aria-label="Permalink to &quot;BaseAchievement&quot;"></a></h3><p>• <strong>BaseAchievement</strong>: <code>Object</code></p><p>The properties that are added onto a processed <a href="./achievement#achievementoptions">AchievementOptions</a> to create an <a href="./achievement#achievement">Achievement</a>.</p><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>[Component]</code></td><td style="text-align:left;"><a href="./feature#genericcomponent"><code>GenericComponent</code></a></td><td style="text-align:left;">The Vue component used to render this feature.</td></tr><tr><td style="text-align:left;"><code>[GatherProps]</code></td><td style="text-align:left;">() =&gt; <a href="https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type" target="_blank" rel="noreferrer"><code>Record</code></a>&lt;<code>string</code>, <code>unknown</code>&gt;</td><td style="text-align:left;">A function to gather the props the vue component requires for this feature.</td></tr><tr><td style="text-align:left;"><code>complete</code></td><td style="text-align:left;"><code>VoidFunction</code></td><td style="text-align:left;">A function to complete this achievement.</td></tr><tr><td style="text-align:left;"><code>earned</code></td><td style="text-align:left;"><a href="./../game/persistence#persistent"><code>Persistent</code></a>&lt;<code>boolean</code>&gt;</td><td style="text-align:left;">Whether or not this achievement has been earned.</td></tr><tr><td style="text-align:left;"><code>id</code></td><td style="text-align:left;"><code>string</code></td><td style="text-align:left;">An auto-generated ID for identifying features that appear in the DOM. Will not persist between refreshes or updates.</td></tr><tr><td style="text-align:left;"><code>type</code></td><td style="text-align:left;">typeof <a href="./achievement#achievementtype"><code>AchievementType</code></a></td><td style="text-align:left;">A symbol that helps identify features of the same type.</td></tr></tbody></table><h4 id="defined-in-2" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-2" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L98" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:98</a></p><h2 id="type-aliases" tabindex="-1">Type Aliases <a class="header-anchor" href="#type-aliases" aria-label="Permalink to &quot;Type Aliases&quot;"></a></h2><h3 id="achievement" tabindex="-1">Achievement <a class="header-anchor" href="#achievement" aria-label="Permalink to &quot;Achievement&quot;"></a></h3><p>Ƭ <strong>Achievement</strong>&lt;<code>T</code>&gt;: <a href="./feature#replace"><code>Replace</code></a>&lt;<code>T</code> &amp; <a href="./achievement#baseachievement"><code>BaseAchievement</code></a>, { <code>classes</code>: <a href="./../util/computed#getcomputabletype"><code>GetComputableType</code></a>&lt;<code>T</code>[<code>&quot;classes&quot;</code>]&gt; ; <code>display</code>: <a href="./../util/computed#getcomputabletype"><code>GetComputableType</code></a>&lt;<code>T</code>[<code>&quot;display&quot;</code>]&gt; ; <code>image</code>: <a href="./../util/computed#getcomputabletype"><code>GetComputableType</code></a>&lt;<code>T</code>[<code>&quot;image&quot;</code>]&gt; ; <code>mark</code>: <a href="./../util/computed#getcomputabletype"><code>GetComputableType</code></a>&lt;<code>T</code>[<code>&quot;mark&quot;</code>]&gt; ; <code>showPopups</code>: <a href="./../util/computed#getcomputabletypewithdefault"><code>GetComputableTypeWithDefault</code></a>&lt;<code>T</code>[<code>&quot;showPopups&quot;</code>], <code>true</code>&gt; ; <code>style</code>: <a href="./../util/computed#getcomputabletype"><code>GetComputableType</code></a>&lt;<code>T</code>[<code>&quot;style&quot;</code>]&gt; ; <code>visibility</code>: <a href="./../util/computed#getcomputabletypewithdefault"><code>GetComputableTypeWithDefault</code></a>&lt;<code>T</code>[<code>&quot;visibility&quot;</code>], <a href="./feature#visible"><code>Visible</code></a>&gt; }&gt;</p><p>An object that represents a feature with requirements that is passively earned upon meeting certain requirements.</p><h4 id="type-parameters" tabindex="-1">Type parameters <a class="header-anchor" href="#type-parameters" aria-label="Permalink to &quot;Type parameters&quot;"></a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>T</code></td><td style="text-align:left;">extends <a href="./achievement#achievementoptions"><code>AchievementOptions</code></a></td></tr></tbody></table><h4 id="defined-in-3" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-3" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L114" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:114</a></p><hr><h3 id="genericachievement" tabindex="-1">GenericAchievement <a class="header-anchor" href="#genericachievement" aria-label="Permalink to &quot;GenericAchievement&quot;"></a></h3><p>Ƭ <strong>GenericAchievement</strong>: <a href="./feature#replace"><code>Replace</code></a>&lt;<a href="./achievement#achievement"><code>Achievement</code></a>&lt;<a href="./achievement#achievementoptions"><code>AchievementOptions</code></a>&gt;, { <code>showPopups</code>: <a href="./../util/computed#processedcomputable"><code>ProcessedComputable</code></a>&lt;<code>boolean</code>&gt; ; <code>visibility</code>: <a href="./../util/computed#processedcomputable"><code>ProcessedComputable</code></a>&lt;<a href="./feature#visibility"><code>Visibility</code></a> | <code>boolean</code>&gt; }&gt;</p><p>A type that matches any valid <a href="./achievement#achievement">Achievement</a> object.</p><h4 id="defined-in-4" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-4" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L128" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:128</a></p><h2 id="variables" tabindex="-1">Variables <a class="header-anchor" href="#variables" aria-label="Permalink to &quot;Variables&quot;"></a></h2><h3 id="achievementtype" tabindex="-1">AchievementType <a class="header-anchor" href="#achievementtype" aria-label="Permalink to &quot;AchievementType&quot;"></a></h3><p>• <code>Const</code> <strong>AchievementType</strong>: typeof <a href="./achievement#achievementtype"><code>AchievementType</code></a></p><p>A symbol used to identify <a href="./achievement#achievement">Achievement</a> features.</p><h4 id="defined-in-5" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-5" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L48" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:48</a></p><h2 id="functions" tabindex="-1">Functions <a class="header-anchor" href="#functions" aria-label="Permalink to &quot;Functions&quot;"></a></h2><h3 id="createachievement" tabindex="-1">createAchievement <a class="header-anchor" href="#createachievement" aria-label="Permalink to &quot;createAchievement&quot;"></a></h3><p>▸ <strong>createAchievement</strong>&lt;<code>T</code>&gt;(<code>optionsFunc?</code>, <code>...decorators</code>): <a href="./achievement#achievement"><code>Achievement</code></a>&lt;<code>T</code>&gt;</p><p>Lazily creates an achievement with the given options.</p><h5 id="type-parameters-1" tabindex="-1">Type parameters <a class="header-anchor" href="#type-parameters-1" aria-label="Permalink to &quot;Type parameters&quot;"></a></h5><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>T</code></td><td style="text-align:left;">extends <a href="./achievement#achievementoptions"><code>AchievementOptions</code></a></td></tr></tbody></table><h5 id="parameters" tabindex="-1">Parameters <a class="header-anchor" href="#parameters" aria-label="Permalink to &quot;Parameters&quot;"></a></h5><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>optionsFunc?</code></td><td style="text-align:left;"><a href="./feature#optionsfunc"><code>OptionsFunc</code></a>&lt;<code>T</code>, <a href="./achievement#baseachievement"><code>BaseAchievement</code></a>, <a href="./achievement#genericachievement"><code>GenericAchievement</code></a>&gt;</td><td style="text-align:left;">Achievement options.</td></tr><tr><td style="text-align:left;"><code>...decorators</code></td><td style="text-align:left;"><a href="./decorators/common#genericdecorator"><code>GenericDecorator</code></a>[]</td><td style="text-align:left;">-</td></tr></tbody></table><h5 id="returns" tabindex="-1">Returns <a class="header-anchor" href="#returns" aria-label="Permalink to &quot;Returns&quot;"></a></h5><p><a href="./achievement#achievement"><code>Achievement</code></a>&lt;<code>T</code>&gt;</p><h4 id="defined-in-6" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-6" aria-label="Permalink to &quot;Defined in&quot;"></a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/425e85a/src/features/achievements/achievement.tsx#L140" target="_blank" rel="noreferrer">profectus/src/features/achievements/achievement.tsx:140</a></p><h2 id="components" tabindex="-1">Components <a class="header-anchor" href="#components" aria-label="Permalink to &quot;Components&quot;"></a></h2><h3 id="achievement-component" tabindex="-1">Achievement Component <a class="header-anchor" href="#achievement-component" aria-label="Permalink to &quot;Achievement Component&quot;"></a></h3><h4 id="props" tabindex="-1">Props <a class="header-anchor" href="#props" aria-label="Permalink to &quot;Props&quot;"></a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>visibility</code>*</td><td style="text-align:left;"><code>processedPropType&lt;Visibility | boolean&gt;(Number, Boolean)</code></td></tr><tr><td style="text-align:left;"><code>display</code></td><td style="text-align:left;"><code>processedPropType&lt;UnwrapRef&lt;GenericAchievement[&quot;display&quot;]&gt;&gt;(Object, String, Function)</code></td></tr><tr><td style="text-align:left;"><code>earned</code>*</td><td style="text-align:left;"><code>processedPropType&lt;boolean&gt;(Boolean)</code></td></tr><tr><td style="text-align:left;"><code>requirements</code></td><td style="text-align:left;"><code>processedPropType&lt;Requirements&gt;(Object, Array)</code></td></tr><tr><td style="text-align:left;"><code>image</code></td><td style="text-align:left;"><code>processedPropType&lt;string&gt;(String)</code></td></tr><tr><td style="text-align:left;"><code>style</code></td><td style="text-align:left;"><code>processedPropType&lt;StyleValue&gt;(String, Object, Array)</code></td></tr><tr><td style="text-align:left;"><code>classes</code></td><td style="text-align:left;"><code>processedPropType&lt;Record&lt;string, boolean&gt;&gt;(Object)</code></td></tr><tr><td style="text-align:left;"><code>mark</code></td><td style="text-align:left;"><code>processedPropType&lt;boolean | string&gt;(Boolean, String)</code></td></tr><tr><td style="text-align:left;"><code>small</code></td><td style="text-align:left;"><code>processedPropType&lt;boolean&gt;(Boolean)</code></td></tr><tr><td style="text-align:left;"><code>id</code>*</td><td style="text-align:left;"><code>string</code></td></tr></tbody></table>',58),l=[c];function n(i,r,s,h,p,f){return a(),t("div",null,l)}const g=e(d,[["render",n]]);export{u as __pageData,g as default};