pages/public/kronos/docs/layer-features/index.html

37 lines
41 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Layer Features | The Paper Pilot</title>
<meta name="description" content="The Paper Pilot portfolio site">
<link rel="stylesheet" href="/assets/style.1dbbf581.css">
<link rel="modulepreload" href="/assets/app.1a35c4a8.js">
<link rel="modulepreload" href="/assets/public_kronos_docs_layer-features.md.de49a34b.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">
<script defer="true" data-domain="thepaperpilot.org" src="https://plausible.io/js/plausible.js"></script>
<meta name="og:description" content="The Paper Pilot portfolio site">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-f44a984a><!--[--><!--]--><!--[--><span tabindex="-1" data-v-151f2593></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-151f2593> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-f44a984a data-v-a50780ff><div class="VPNavBar" data-v-a50780ff data-v-6f1d18b5><div class="container" data-v-6f1d18b5><div class="VPNavBarTitle" data-v-6f1d18b5 data-v-d5925166><a class="title" href="/" data-v-d5925166><!--[--><!--]--><!----><!--[-->The Paper Pilot<!--]--><!--[--><!--]--></a></div><div class="content" data-v-6f1d18b5><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6f1d18b5 data-v-f83db6ba><span id="main-nav-aria-label" class="visually-hidden" data-v-f83db6ba>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide-to-incrementals/" data-v-f83db6ba data-v-47a2263e data-v-3c355974><!--[-->Guide to Incrementals<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/projects/" data-v-f83db6ba data-v-47a2263e data-v-3c355974><!--[-->Projects<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="https://moddingtree.com" target="_blank" rel="noreferrer" data-v-f83db6ba data-v-47a2263e data-v-3c355974><!--[-->Profectus<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6f1d18b5 data-v-a3e7452b><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-a3e7452b data-v-481098f9 data-v-eba7420e><span class="check" data-v-eba7420e><span class="icon" data-v-eba7420e><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-481098f9><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-481098f9><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6f1d18b5 data-v-738bef5a data-v-f6988cfb><!--[--><a class="VPSocialLink" href="https://github.com/thepaperpilot" target="_blank" rel="noopener" data-v-f6988cfb data-v-e57698f6><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.2
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">key</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">p</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// What the hotkey button is. Use uppercase if it&#39;s combined with shift, or &quot;ctrl+x&quot; for holding down ctrl.</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">description</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">p: reset your points for prestige points</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The description of the hotkey that is displayed in the game&#39;s How To Play tab</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">onPress</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">if</span><span style="color:#F07178;"> (</span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">p</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">unlocked</span><span style="color:#F07178;">) </span><span style="color:#82AAFF;">doReset</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">p</span><span style="color:#89DDFF;">&quot;</span><span style="color:#F07178;">) </span><span style="color:#89DDFF;">},</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">unlocked</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">hasMilestone</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">p</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">3</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// Determines if you can use the hotkey, optional</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
<span class="line"><span style="color:#A6ACCD;">]</span></span>
<span class="line"></span></code></pre></div></li><li><p>style: <strong>optional</strong>. a &quot;CSS object&quot; where the keys are CSS attributes, containing any CSS that should affect this layer&#39;s entire tab.</p></li><li><p>tabFormat: <strong>optional</strong>. use this if you want to add extra things to your tab or change the layout. <a href="./custom-tab-layouts">See here for more info.</a></p></li><li><p>midsection: <strong>optional</strong>, an alternative to <code>tabFormat</code>, which is inserted in between Milestones and Buyables in the standard tab layout. (cannot do subtabs)</p></li></ul><h2 id="big-features-all-optional" tabindex="-1">Big features (all optional) <a class="header-anchor" href="#big-features-all-optional" aria-hidden="true">#</a></h2><ul><li><p>upgrades: A set of one-time purchases which can have unique upgrade conditions, currency costs, and bonuses. <a href="./upgrades">See here for more info.</a></p></li><li><p>milestones: A list of bonuses gained upon reaching certain thresholds of a resource. Often used for automation/QOL. <a href="./milestones">See here for more info.</a></p></li><li><p>challenges: The player can enter challenges, which make the game harder. If they reach a goal and beat the challenge, they recieve a bonus. <a href="./challenges">See here for more info.</a></p></li><li><p>buyables: Effectively upgrades that can be bought multiple times, and are optionally respeccable. Many uses. <a href="./buyables">See here for more info.</a></p></li><li><p>clickables: Extremely versatile and generalized buttons which can only be clicked sometimes. <a href="./clickables">See here for more info.</a></p></li><li><p>microtabs: An area that functions like a set of subtabs, with buttons at the top changing the content within. (Advanced) <a href="./subtabs-and-microtabs">See here for more info.</a></p></li><li><p>bars: Display some information as a progress bar, gague, or similar. They are highly customizable, and can be vertical as well. <a href="./bars">See here for more info.</a></p></li><li><p>achievements: Kind of like milestones, but with a different display style and some other differences. Extra features are on the way at a later date! <a href="./achievements">See here for more info.</a></p></li><li><p>achievementPopups, milestonePopups: <strong>optional</strong>, If false, disables popup message when you get the achievement/milestone. True by default.</p></li><li><p>infoboxes: Displays some text in a box that can be shown or hidden. <a href="./infoboxes">See here for more info.</a></p></li><li><p>grid: A grid of buttons that behave the same, but have their own data.<a href="./grids">See here for more info.</a></p></li></ul><h2 id="prestige-formula-features" tabindex="-1">Prestige formula features <a class="header-anchor" href="#prestige-formula-features" aria-hidden="true">#</a></h2><ul><li><p>type: <strong>optional</strong>. Determines which prestige formula you use. Defaults to &quot;none&quot;.</p><ul><li>&quot;normal&quot;: The amount of currency you gain is independent of its current amount (like Prestige). The formula before bonuses is based on <code>baseResource^exponent</code></li><li>&quot;static&quot;: The cost is dependent on your total after reset. The formula before bonuses is based on <code>base^(x^exponent)</code></li><li>&quot;custom&quot;: You can define everything, from the calculations to the text on the button, yourself. (See more at the bottom)</li><li>&quot;none&quot;: This layer does not prestige, and therefore does not need any of the other features in this section.</li></ul></li><li><p>baseResource: The name of the resource that determines how much of the main currency you gain on reset.</p></li><li><p>baseAmount(): A function that gets the current value of the base resource.</p></li><li><p>requires: A Decimal, the amount of the base needed to gain 1 of the prestige currency. Also the amount required to unlock the layer. You can instead make this a function, to make it harder if another layer was unlocked first (based on unlockOrder).</p></li><li><p>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">challenge</span><span style="color:#89DDFF;">&quot;</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">&#39;</span><span style="color:#F07178;">height</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">200px</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">}</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">prestige-button</span><span style="color:#89DDFF;">&quot;</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">&#39;</span><span style="color:#F07178;">color</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">#AA66AA</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">}</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
<span class="line"><span style="color:#89DDFF;">}</span></span>
<span class="line"></span></code></pre></div><ul><li>deactivated: <strong>optional</strong>, if this is true, hasUpgrade, hasChallenge, hasAchievement, and hasMilestone will return false for things in the layer, and you will be unable to buy or click things on the layer. You will have to disable effects of buyables, the innate layer effect, and possibly other things yourself.</li></ul><h2 id="custom-prestige-type" tabindex="-1">Custom Prestige type <a class="header-anchor" href="#custom-prestige-type" aria-hidden="true">#</a></h2><p>(All of these can also be used by other prestige types)</p><ul><li><p>getResetGain(): <strong>mostly for custom prestige type</strong>. Returns how many points you should get if you reset now. You can call <code>getResetGain(this.layer, useType = &quot;static&quot;)</code> or similar to calculate what your gain would be under another prestige type (provided you have all of the required features in the layer).</p></li><li><p>getNextAt(canMax=false): <strong>mostly for custom prestige type</strong>. Returns how many of the base currency you need to get to the next point. <code>canMax</code> is an optional variable used with Static-ish layers to differentiate between if it&#39;s looking for the first point you can reset at, or the requirement for any gain at all (Supporting both is good). You can also call <code>getNextAt(this.layer, canMax=false, useType = &quot;static&quot;)</code> or similar to calculate what your next at would be under another prestige type (provided you have all of the required features in the layer).</p></li><li><p>canReset(): <strong>mostly for custom prestige type</strong>. Return true only if you have the resources required to do a prestige here.</p></li><li><p>prestigeNotify(): <strong>mostly for custom prestige types</strong>, returns true if this layer should be subtly highlighted to indicate you can prestige for a meaningful gain.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"2f51d736\",\"guide-to-incrementals_index.md\":\"df34be4d\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"896f4b78\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"47d7a85e\",\"guide-to-incrementals_ludology_content.md\":\"aa7d5f86\",\"guide-to-incrementals_ludology_definition.md\":\"dc0f7a47\",\"index.md\":\"fc44bc4e\",\"projects_babble_index.md\":\"baa1b8f3\",\"projects_citadel_index.md\":\"cd9bbb3c\",\"projects_dice_index.md\":\"ff7a70b1\",\"projects_index.md\":\"46458d59\",\"projects_optispeech_index.md\":\"f90baa38\",\"projects_vecs_index.md\":\"af5d38ca\",\"public_gamedevtree_2.0-format-changes.md\":\"6b37551b\",\"public_gamedevtree_readme.md\":\"031977b1\",\"public_gamedevtree_changelog.md\":\"1dcc9c4e\",\"public_gamedevtree_docs_!general-info.md\":\"fa5bfa7c\",\"public_gamedevtree_docs_achievements.md\":\"d16e1607\",\"public_gamedevtree_docs_bars.md\":\"23eaab75\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"1ec628e2\",\"public_gamedevtree_docs_buyables.md\":\"45a34590\",\"public_gamedevtree_docs_challenges.md\":\"d18169fe\",\"public_gamedevtree_docs_clickables.md\":\"a31a81eb\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"de1198ee\",\"public_gamedevtree_docs_getting-started.md\":\"4d9a75f1\",\"public_gamedevtree_docs_infoboxes.md\":\"690a6730\",\"public_gamedevtree_docs_layer-features.md\":\"aac7e152\",\"public_gamedevtree_docs_main-mod-info.md\":\"aa2106cb\",\"public_gamedevtree_docs_milestones.md\":\"7bf051ca\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"22b38e59\",\"public_gamedevtree_docs_updating-tmt.md\":\"a7d82720\",\"public_gamedevtree_docs_upgrades.md\":\"2a845b0f\",\"public_kronos_old things_2.0-format-changes.md\":\"5520ab5c\",\"public_kronos_readme.md\":\"b2b4d8cf\",\"public_kronos_changelog.md\":\"c7f44ec1\",\"public_kronos_docs_!general-info.md\":\"62750f8e\",\"public_kronos_docs_achievements.md\":\"e9c2ce2f\",\"public_kronos_docs_bars.md\":\"d71bdca3\",\"public_kronos_docs_basic-layer-breakdown.md\":\"80f1b08a\",\"public_kronos_docs_buyables.md\":\"74cd8a4a\",\"public_kronos_docs_challenges.md\":\"8c7da751\",\"public_kronos_docs_clickables.md\":\"4df1202e\",\"public_kronos_docs_custom-tab-layouts.md\":\"25e881df\",\"public_kronos_docs_getting-started.md\":\"a8baefa4\",\"public_kronos_docs_grids.md\":\"4289b312\",\"public_kronos_docs_infoboxes.md\":\"6f6bd09b\",\"public_kronos_docs_layer-features.md\":\"de49a34b\",\"public_kronos_docs_main-mod-info.md\":\"f3439ec3\",\"public_kronos_docs_milestones.md\":\"439f386c\",\"public_kronos_docs_particles.md\":\"f1968b5f\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"fdf68a9a\",\"public_kronos_docs_trees-and-tree-customization.md\":\"4781b276\",\"public_kronos_docs_updating-tmt.md\":\"efa30493\",\"public_kronos_docs_upgrades.md\":\"ca9311b8\",\"public_lit_old things_2.0-format-changes.md\":\"891d3f39\",\"public_lit_readme.md\":\"698deacc\",\"public_lit_changelog.md\":\"6be26adb\",\"public_lit_docs_!general-info.md\":\"eec18530\",\"public_lit_docs_achievements.md\":\"0a41810b\",\"public_lit_docs_bars.md\":\"37f8f4a5\",\"public_lit_docs_basic-layer-breakdown.md\":\"5e9197ab\",\"public_lit_docs_buyables.md\":\"aa7296bf\",\"public_lit_docs_challenges.md\":\"b575d248\",\"public_lit_docs_clickables.md\":\"ffb22331\",\"public_lit_docs_custom-tab-layouts.md\":\"2dc52263\",\"public_lit_docs_getting-started.md\":\"3f6ffdd7\",\"public_lit_docs_infoboxes.md\":\"9447f55b\",\"public_lit_docs_layer-features.md\":\"4c0707b5\",\"public_lit_docs_main-mod-info.md\":\"87a083ac\",\"public_lit_docs_milestones.md\":\"a913058f\",\"public_lit_docs_subtabs-and-microtabs.md\":\"5a4bf12f\",\"public_lit_docs_trees-and-tree-customization.md\":\"12e1dc05\",\"public_lit_docs_updating-tmt.md\":\"1810fc71\",\"public_lit_docs_upgrades.md\":\"4d64b658\"}")</script>
<script type="module" async src="/assets/app.1a35c4a8.js"></script>
</body>
</html>