pages/public/gamedevtree/docs/buyables.html

45 lines
39 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Buyables | The Paper Pilot</title>
<meta name="description" content="The Paper Pilot's Digital Garden">
<meta name="generator" content="VitePress v1.2.2">
<link rel="preload stylesheet" href="/assets/style.BhozF2zR.css" as="style">
<script type="module" src="/assets/app.CBZemnVP.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.Mb1uu3dm.js">
<link rel="modulepreload" href="/assets/chunks/theme.B-Zmf_8l.js">
<link rel="modulepreload" href="/assets/public_gamedevtree_docs_buyables.md.dJuijyHv.lean.js">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Pacifico&amp;family=Roboto+Mono:ital,wght@0,400;0,600;1,400&amp;display=swap">
<link rel="manifest" href="/site.webmanifest">
<link rel="alternate" type="text/mf2+html" href="/changelog">
<link rel="alternate" type="application/rss+xml" title="Changelog" href="/changelog/rss">
<link rel="alternate" type="application/atom+xml" title="Changelog" href="/changelog/atom">
<link rel="alternate" type="application/json+xml" title="Changelog" href="/changelog/json">
<meta name="og:description" content="The Paper Pilot's Digital Garden">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--[--><!--]--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>The Paper Pilot</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://moddingtree.com" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Profectus</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://incremental.social" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Incremental Social</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-ccf7ddec data-v-e6aabb21><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-e6aabb21 data-v-d1f28634 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-d1f28634></span><span class="vpi-moon moon" data-v-d1f28634></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> rows</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">of</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> rows</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> cols</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: # </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">of</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> columns</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> respec</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {}, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">//**optional**, implement it to reset things and give back your currency.</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // Having this function makes a respec button appear</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> respecText</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// **optional**, text that appears on the respec button</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> showRespecButton</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(){} </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">//**optional**, a function determining whether or not to show the button. Defaults to true if absent.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> sellOneText, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">sellAllText</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// **optional**, text that appears on the &quot;sell one&quot; and &quot;sell all&quot; buttons respectively (if you are using them)</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 11</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> display</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">return</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Blah&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">},</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> etc</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> etc</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span></code></pre></div><p>Features:</p><ul><li><p>title: <strong>optional</strong>, displayed at the top in a larger font It can also be a function that returns updating text.</p></li><li><p>cost(): cost for buying the next buyable. Can have an optional argument &quot;x&quot; to calculate the cost of the x+1th object, but needs to use &quot;current amount&quot; as a default value for x. (x is a Decimal). Can return an object if there are multiple currencies.</p></li><li><p>effect(): <strong>optional</strong>, A function that calculates and returns the current values of bonuses of this buyable. Can return a value or an object containing multiple values.</p></li><li><p>display(): A function returning everything that should be displayed on the buyable after the title, likely including the description, amount bought, cost, and current effect. Can use basic HTML.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the buyable is visible or not. Default is unlocked.</p></li><li><p>canAfford(): A function returning a bool to determine if you can buy one of the buyables.</p></li><li><p>buy(): A function that implements buying one of the buyable, including spending the currency.</p></li><li><p>buyMax(): <strong>optional</strong>, A function that implements buying as many of the buyable as possible.</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this buyable, in the form of an object where the keys are CSS attributes, and the values are the values for those attributes (both as strings)</p></li><li><p>layer: <strong>Assigned automagically</strong>. It&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the buyable was stored under, for convenient access. The buyable in the example&#39;s id is 11.</p></li></ul><p>Sell One/Sell All:</p><p>Including a sellOne or sellAll function will cause an additional button to appear beneath the buyable. They are functionally identical, but &quot;sell one&quot; appears above &quot;sell all&quot;. You can also use them for other things.</p><p>sellOne/sellAll(): <strong>optional</strong>, Called when the button is pressed. The standard use would be to decrease/reset the amount of the buyable, And possibly return some currency to the player.</p><p>canSellOne/canSellAll(): <strong>optional</strong>, booleans determining whether or not to show the buttons. If &quot;canSellOne/All&quot; is absent but &quot;sellOne/All&quot; is present, the appropriate button will always show.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-d4a0bba5><!--[--><!--]--><div class="edit-info" data-v-d4a0bba5><!----><div class="last-updated" data-v-d4a0bba5><p class="VPLastUpdated" data-v-d4a0bba5 data-v-7e05ebdb>Last updated: <time datetime="2020-10-17T19:50:30.000Z" data-v-7e05ebdb></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-d4a0bba5><span class="visually-hidden" id="doc-footer-aria-label" data-v-d4a0bba5>Pager</span><div class="pager" data-v-d4a0bba5><!----></div><div class="pager" data-v-d4a0bba5><a class="VPLink link pager-link next" href="/garden/my-projects" data-v-d4a0bba5><!--[--><span class="desc" data-v-d4a0bba5>Next page</span><span class="title" data-v-d4a0bba5>My Projects</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"public_kronos_docs_achievements.md\":\"_JoNVJDr\",\"public_kronos_docs_basic-layer-breakdown.md\":\"dogVO7sT\",\"public_kronos_docs_bars.md\":\"BA8z6Evv\",\"public_kronos_docs_buyables.md\":\"DXvL6Y3s\",\"public_kronos_docs_clickables.md\":\"Cdkq5dTJ\",\"public_kronos_docs_custom-tab-layouts.md\":\"CAgoG-GT\",\"garden_fedi-v2_index.md\":\"BSF7P8W3\",\"public_kronos_docs_challenges.md\":\"DK_9KIu5\",\"public_kronos_docs_infoboxes.md\":\"DtvYVeEp\",\"garden_davey-wreden_index.md\":\"CYjb2ZL5\",\"garden_chronological_index.md\":\"DEA0bxkh\",\"garden_chat-glue_index.md\":\"C2L06eSS\",\"garden_babble-buds_index.md\":\"hJMBFEMa\",\"garden_cinny_index.md\":\"BObLuRww\",\"garden_atproto_index.md\":\"Awywf7pG\",\"garden_activitypub_index.md\":\"Dc0d99gj\",\"garden_commune_index.md\":\"BednA9l-\",\"garden_advent-incremental_index.md\":\"BbkfAQqS\",\"garden_guide-to-incrementals_index.md\":\"DT8DzNEd\",\"garden_guide-to-incrementals_navigating-criticism_index.md\":\"DV5nmpyx\",\"garden_incremental-social_index.md\":\"Co8YadBH\",\"garden_ivy-road_index.md\":\"D_CknIq8\",\"garden_kronos_index.md\":\"C0vbIqDd\",\"garden_v-ecs_index.md\":\"DUDB05dR\",\"garden_video-game-monetization_index.md\":\"CeqXo6Yj\",\"garden_vitepress_index.md\":\"CRfqwtqV\",\"garden_wanderstop_index.md\":\"vw6_Yi_B\",\"guide-to-incrementals_design_criticism_index.md\":\"BM4eDb34\",\"index.md\":\"Co5sSAZZ\",\"guide-to-incrementals_ludology_appeal-developers_index.md\":\"DHuWCjSE\",\"guide-to-incrementals_ludology_content_index.md\":\"FEQrhhXx\",\"garden_webrings_index.md\":\"Dhhw7ueE\",\"public_gamedevtree_2.0-format-changes.md\":\"Cx8d6xah\",\"guide-to-incrementals_ludology_appeal-gamers_index.md\":\"MOwOtfmH\",\"guide-to-incrementals_ludology_definition_index.md\":\"D6F4PAqO\",\"public_gamedevtree_readme.md\":\"DfcMLon9\",\"public_gamedevtree_changelog.md\":\"3VMdjBlm\",\"public_gamedevtree_docs_achievements.md\":\"lFRjwKEe\",\"public_gamedevtree_docs_!general-info.md\":\"CO1Dme13\",\"garden_weird_index.md\":\"srFBBud_\",\"public_kronos_docs_!general-info.md\":\"BC3MDkJ4\",\"public_lit_docs_buyables.md\":\"DbWllrUF\",\"public_lit_docs_challenges.md\":\"BBD7sBVX\",\"public_lit_docs_milestones.md\":\"DA6XlDhX\",\"public_kronos_docs_layer-features.md\":\"Z1rgTxyk\",\"public_lit_docs_getting-started.md\":\"Bhw_1Cf1\",\"public_kronos_docs_upgrades.md\":\"Byil39kg\",\"public_kronos_docs_updating-tmt.md\":\"Cnb4wHRO\",\"public_lit_readme.md\":\"1RS5OpHk\",\"public_lit_old things_2.0-format-changes.md\":\"CDLz9z5F\",\"public_lit_changelog.md\":\"Bau0_bWd\",\"public_lit_docs_!general-info.md\":\"D_qpUKWw\",\"public_lit_docs_bars.md\":\"Dn8PbCpo\",\"public_lit_docs_infoboxes.md\":\"C1Y-noTs\",\"public_gamedevtree_docs_milestones.md\":\"Bqa4PDXl\",\"public_gamedevtree_docs_bars.md\":\"BZHdoixV\",\"public_gamedevtree_docs_upgrades.md\":\"BeTeQq_8\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"DwR7Impf\",\"public_kronos_old things_2.0-format-changes.md\":\"CFXOiLyk\",\"public_gamedevtree_docs_updating-tmt.md\":\"BXMN1mOW\",\"public_kronos_docs_main-mod-info.md\":\"DJa4N3ai\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"D5uB64On\",\"public_kronos_docs_trees-and-tree-customization.md\":\"CpABMj_Q\",\"public_gamedevtree_docs_main-mod-info.md\":\"DJ1Tca-G\",\"public_lit_docs_main-mod-info.md\":\"RSuZ0qh9\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"DSCTtT_s\",\"public_lit_docs_updating-tmt.md\":\"gcjAPqI4\",\"public_lit_docs_clickables.md\":\"CC4aVgT5\",\"public_lit_docs_achievements.md\":\"DTYfkyu6\",\"public_kronos_docs_milestones.md\":\"D2eVmOB-\",\"public_lit_docs_basic-layer-breakdown.md\":\"DBpDfaJK\",\"public_gamedevtree_docs_getting-started.md\":\"CKycKJVu\",\"garden_artificial-intelligence_index.md\":\"BxXElDIx\",\"garden_capture-the-citadel_index.md\":\"DzQGPu6p\",\"public_kronos_docs_grids.md\":\"Beh5-E6O\",\"garden_freeform_index.md\":\"KSPHFjBD\",\"garden_fediverse_index.md\":\"CaB07bzW\",\"garden_forgejo_index.md\":\"DNK3_N8-\",\"garden_garden-rss_index.md\":\"CisAUwYr\",\"garden_dice-armo
</body>
</html>