Deploying to gh-pages from @ thepaperpilot/thepaperpilot.github.io@2ae18cd4da 🚀
This commit is contained in:
parent
b6d3405506
commit
0c62426490
530 changed files with 48502 additions and 0 deletions
23
404.html
Normal file
23
404.html
Normal file
File diff suppressed because one or more lines are too long
1
CNAME
Normal file
1
CNAME
Normal file
|
@ -0,0 +1 @@
|
|||
www.thepaperpilot.org
|
1
assets/app.e9531dc8.js
Normal file
1
assets/app.e9531dc8.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/guide-to-incrementals_index.md.28c9718d.js
Normal file
1
assets/guide-to-incrementals_index.md.28c9718d.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as n}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"title":"Introduction"},"headers":[{"level":2,"title":"Who am I?","slug":"who-am-i","link":"#who-am-i","children":[]}],"relativePath":"guide-to-incrementals/index.md","lastUpdated":null}'),o={name:"guide-to-incrementals/index.md"},i=n('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-hidden="true">#</a></h1><p>This is a comprehensive guide to Incremental Games, a genre of video games. It will explore defining the genre, why it's appealing, and how to design and build your own incremental game. Along the way will be interactive examples, snippets from other creators, and relevant material to contextualize everything.</p><blockquote><p>Note: This is an incomplete document. I want to keep adding opinions and opposing views from other incremental games developers, and add interactive examples to illustrate various points regarding game design and balancing. Consider this a living document - and see the changelog at the end.</p></blockquote><h2 id="who-am-i" tabindex="-1">Who am I? <a class="header-anchor" href="#who-am-i" aria-hidden="true">#</a></h2><p>That's a good question! What authority do I have to be making this site? I haven't made the best incremental games, nor the most incremental games, certainly not the most popular ones either. I do have some formal education in game development, know a lot of incremental game devs, as well as other game devs, and an interest in ludology, classifying genres, etc. I've also made <a href="https://thepaperpilot.org" target="_blank" rel="noreferrer">a couple incremental games</a> myself.</p><p>If you have any additional questions about my credentials or anything on this site, feel free to contact me: I'm "The Paper Pilot" on most social media. You'll probably get a response fastest via <a href="https://discord.gg/F3xveHV" target="_blank" rel="noreferrer">my discord server</a>, or if you just want to suggest changes to the website you can click the "Edit this page" link present on every single page.</p>',6),r=[i];function s(l,d,c,h,m,p){return a(),t("div",null,r)}const _=e(o,[["render",s]]);export{u as __pageData,_ as default};
|
1
assets/guide-to-incrementals_index.md.28c9718d.lean.js
Normal file
1
assets/guide-to-incrementals_index.md.28c9718d.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as n}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"Introduction","description":"","frontmatter":{"title":"Introduction"},"headers":[{"level":2,"title":"Who am I?","slug":"who-am-i","link":"#who-am-i","children":[]}],"relativePath":"guide-to-incrementals/index.md","lastUpdated":null}'),o={name:"guide-to-incrementals/index.md"},i=n("",6),r=[i];function s(l,d,c,h,m,p){return a(),t("div",null,r)}const _=e(o,[["render",s]]);export{u as __pageData,_ as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a}from"./app.e9531dc8.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/appeal-developers.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/appeal-developers.md"};function r(s,l,p,n,c,d){return a(),t("div")}const m=e(o,[["render",r]]);export{_ as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a}from"./app.e9531dc8.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/appeal-developers.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/appeal-developers.md"};function r(s,l,p,n,c,d){return a(),t("div")}const m=e(o,[["render",r]]);export{_ as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/appeal-gamers.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/appeal-gamers.md"};function r(s,n,l,p,c,d){return t(),a("div")}const _=e(o,[["render",r]]);export{m as __pageData,_ as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/appeal-gamers.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/appeal-gamers.md"};function r(s,n,l,p,c,d){return t(),a("div")}const _=e(o,[["render",r]]);export{m as __pageData,_ as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as t,c as e,o as n}from"./app.e9531dc8.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/content.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/content.md"};function a(c,r,s,d,l,i){return n(),e("div")}const m=t(o,[["render",a]]);export{_ as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as t,c as e,o as n}from"./app.e9531dc8.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide-to-incrementals/ludology/content.md","lastUpdated":null}'),o={name:"guide-to-incrementals/ludology/content.md"};function a(c,r,s,d,l,i){return n(),e("div")}const m=t(o,[["render",a]]);export{_ as __pageData,m as default};
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as r}from"./app.e9531dc8.js";const p=JSON.parse('{"title":"Defining the Genre","description":"","frontmatter":{"title":"Defining the Genre"},"headers":[{"level":2,"title":"Incrementals vs Idlers vs Clickers","slug":"incrementals-vs-idlers-vs-clickers","link":"#incrementals-vs-idlers-vs-clickers","children":[]},{"level":2,"title":"Incrementals as Parodies","slug":"incrementals-as-parodies","link":"#incrementals-as-parodies","children":[]},{"level":2,"title":"Incrementals as NGU","slug":"incrementals-as-ngu","link":"#incrementals-as-ngu","children":[]},{"level":2,"title":"Incrementals as Strategies","slug":"incrementals-as-strategies","link":"#incrementals-as-strategies","children":[]},{"level":2,"title":"Roguelites as Incrementals?","slug":"roguelites-as-incrementals","link":"#roguelites-as-incrementals","children":[{"level":3,"title":"The Berlin Interpretation","slug":"the-berlin-interpretation","link":"#the-berlin-interpretation","children":[]},{"level":3,"title":"The Incremental Games Canon","slug":"the-incremental-games-canon","link":"#the-incremental-games-canon","children":[]},{"level":3,"title":"The Paradigm Shift","slug":"the-paradigm-shift","link":"#the-paradigm-shift","children":[]},{"level":3,"title":"High-Value Factors","slug":"high-value-factors","link":"#high-value-factors","children":[]},{"level":3,"title":"Low-Value Factors","slug":"low-value-factors","link":"#low-value-factors","children":[]},{"level":3,"title":"Are Roguelites Incrementals?","slug":"are-roguelites-incrementals","link":"#are-roguelites-incrementals","children":[]}]},{"level":2,"title":"Sub-Genres","slug":"sub-genres","link":"#sub-genres","children":[]},{"level":2,"title":"Other Related Genres","slug":"other-related-genres","link":"#other-related-genres","children":[]}],"relativePath":"guide-to-incrementals/ludology/definition.md","lastUpdated":null}'),n={name:"guide-to-incrementals/ludology/definition.md"},i=r("",60),o=[i];function s(l,h,m,c,g,d){return a(),t("div",null,o)}const f=e(n,[["render",s]]);export{p as __pageData,f as default};
|
1
assets/index.md.c73bfda3.js
Normal file
1
assets/index.md.c73bfda3.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a}from"./app.e9531dc8.js";const m=JSON.parse(`{"title":"The Paper Pilot","description":"","frontmatter":{"title":"The Paper Pilot","layout":"home","hero":{"name":"The Paper Pilot","tagline":"I'm Anthony, or The Paper Pilot, and I make fun games and tools using code!"}},"headers":[],"relativePath":"index.md","lastUpdated":1664930858000}`),o={name:"index.md"};function n(r,s,i,d,c,p){return a(),t("div")}const _=e(o,[["render",n]]);export{m as __pageData,_ as default};
|
1
assets/index.md.c73bfda3.lean.js
Normal file
1
assets/index.md.c73bfda3.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a}from"./app.e9531dc8.js";const m=JSON.parse(`{"title":"The Paper Pilot","description":"","frontmatter":{"title":"The Paper Pilot","layout":"home","hero":{"name":"The Paper Pilot","tagline":"I'm Anthony, or The Paper Pilot, and I make fun games and tools using code!"}},"headers":[],"relativePath":"index.md","lastUpdated":1664930858000}`),o={name:"index.md"};function n(r,s,i,d,c,p){return a(),t("div")}const _=e(o,[["render",n]]);export{m as __pageData,_ as default};
|
BIN
assets/inter-cyrillic-ext.0877b0d9.woff2
Normal file
BIN
assets/inter-cyrillic-ext.0877b0d9.woff2
Normal file
Binary file not shown.
BIN
assets/inter-cyrillic.f8750142.woff2
Normal file
BIN
assets/inter-cyrillic.f8750142.woff2
Normal file
Binary file not shown.
BIN
assets/inter-greek-ext.3e6f6728.woff2
Normal file
BIN
assets/inter-greek-ext.3e6f6728.woff2
Normal file
Binary file not shown.
BIN
assets/inter-greek.117e1956.woff2
Normal file
BIN
assets/inter-greek.117e1956.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-cyrillic-ext.33bd5a8e.woff2
Normal file
BIN
assets/inter-italic-cyrillic-ext.33bd5a8e.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-cyrillic.ea42a392.woff2
Normal file
BIN
assets/inter-italic-cyrillic.ea42a392.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-greek-ext.4fbe9427.woff2
Normal file
BIN
assets/inter-italic-greek-ext.4fbe9427.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-greek.8f4463c4.woff2
Normal file
BIN
assets/inter-italic-greek.8f4463c4.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-latin-ext.bd8920cc.woff2
Normal file
BIN
assets/inter-italic-latin-ext.bd8920cc.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-latin.bd3b6f56.woff2
Normal file
BIN
assets/inter-italic-latin.bd3b6f56.woff2
Normal file
Binary file not shown.
BIN
assets/inter-italic-vietnamese.6ce511fb.woff2
Normal file
BIN
assets/inter-italic-vietnamese.6ce511fb.woff2
Normal file
Binary file not shown.
BIN
assets/inter-latin-ext.7cc429bc.woff2
Normal file
BIN
assets/inter-latin-ext.7cc429bc.woff2
Normal file
Binary file not shown.
BIN
assets/inter-latin.4fe6132f.woff2
Normal file
BIN
assets/inter-latin.4fe6132f.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-cyrillic-ext.e75737ce.woff2
Normal file
BIN
assets/inter-roman-cyrillic-ext.e75737ce.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-cyrillic.5f2c6c8c.woff2
Normal file
BIN
assets/inter-roman-cyrillic.5f2c6c8c.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-greek-ext.ab0619bc.woff2
Normal file
BIN
assets/inter-roman-greek-ext.ab0619bc.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-greek.d5a6d92a.woff2
Normal file
BIN
assets/inter-roman-greek.d5a6d92a.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-latin-ext.0030eebd.woff2
Normal file
BIN
assets/inter-roman-latin-ext.0030eebd.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-latin.2ed14f66.woff2
Normal file
BIN
assets/inter-roman-latin.2ed14f66.woff2
Normal file
Binary file not shown.
BIN
assets/inter-roman-vietnamese.14ce25a6.woff2
Normal file
BIN
assets/inter-roman-vietnamese.14ce25a6.woff2
Normal file
Binary file not shown.
BIN
assets/inter-vietnamese.2c644a25.woff2
Normal file
BIN
assets/inter-vietnamese.2c644a25.woff2
Normal file
Binary file not shown.
1
assets/projects_index.md.731b42a4.js
Normal file
1
assets/projects_index.md.731b42a4.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as r}from"./app.e9531dc8.js";const l=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects"},"headers":[],"relativePath":"projects/index.md","lastUpdated":1664930858000}'),a={name:"projects/index.md"};function o(s,c,n,d,p,i){return r(),t("div")}const m=e(a,[["render",o]]);export{l as __pageData,m as default};
|
1
assets/projects_index.md.731b42a4.lean.js
Normal file
1
assets/projects_index.md.731b42a4.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as r}from"./app.e9531dc8.js";const l=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects"},"headers":[],"relativePath":"projects/index.md","lastUpdated":1664930858000}'),a={name:"projects/index.md"};function o(s,c,n,d,p,i){return r(),t("div")}const m=e(a,[["render",o]]);export{l as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as i}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"2.0 format changes","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/2.0-format-changes.md","lastUpdated":null}'),n={name:"public/gamedevtree/2.0-format-changes.md"},l=i('<h1 id="_2-0-format-changes" tabindex="-1">2.0 format changes <a class="header-anchor" href="#_2-0-format-changes" aria-hidden="true">#</a></h1><ul><li>Temp format is changed from <code>temp.something[layer]</code> to <code>temp[layer].something</code>, for consistency</li><li>Challenges are now saved as an object with the amount of completions in each spot. (This will break saves.)</li><li><code>effectDisplay</code> in Challenges and Upgrades no longer takes an argument, and neither does <code>effect</code> for Buyables</li><li>Buyable cost can take an argument for amount of buyables, but it needs to function if no argument is supplied (it should do the cost for the next purchase).</li><li>Generation of Points now happens in the main game loop (not in a layer update function), enabled by <code>canGenPoints</code> in <a href="js/game.js">game.js</a>.</li><li>Changed <code>fullLayerReset</code> to <code>layerDataReset</code>, which takes an array of names of values to keep</li></ul><p>In addition, many names were changed, mostly expanding abbreviations:</p><p>All instances of:</p><ul><li>chall -> challenge</li><li>unl -> unlocked</li><li>upg -> upgrade (besides CSS)</li><li>amt -> amount</li><li>desc -> description</li><li>resCeil -> roundUpCost</li><li>order -> unlockOrder</li><li>incr_order -> increaseUnlockOrder</li></ul><p>Challenges:</p><ul><li>desc -> challengeDescription</li><li>reward -> rewardDescription</li><li>effect -> rewardEffect</li><li>effectDisplay -> rewardDisplay</li><li>active -> challengeActive</li></ul>',7),o=[l];function s(r,c,d,g,h,p){return t(),a("div",null,o)}const u=e(n,[["render",s]]);export{m as __pageData,u as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as i}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"2.0 format changes","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/2.0-format-changes.md","lastUpdated":null}'),n={name:"public/gamedevtree/2.0-format-changes.md"},l=i("",7),o=[l];function s(r,c,d,g,h,p){return t(),a("div",null,o)}const u=e(n,[["render",s]]);export{m as __pageData,u as default};
|
1
assets/public_gamedevtree_README.md.78107550.js
Normal file
1
assets/public_gamedevtree_README.md.78107550.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as o,c as a,o as r,b as e,d as t}from"./app.e9531dc8.js";const T=JSON.parse('{"title":"The-Modding-Tree","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/README.md","lastUpdated":null}'),n={name:"public/gamedevtree/README.md"},s=e("h1",{id:"the-modding-tree",tabindex:"-1"},[t("The-Modding-Tree "),e("a",{class:"header-anchor",href:"#the-modding-tree","aria-hidden":"true"},"#")],-1),i=e("p",null,"A modified version of The Prestige Tree that is much easier to mod. It still requires programming knowledge, but it's mostly pretty easy things and copy/pasting.",-1),d=e("p",null,[e("a",{href:"./docs/getting-started"},"Look here for a tutorial on getting started with modding with TMT")],-1),l=e("p",null,[t("You can look in the "),e("a",{href:"./docs/!general-info"},"documentation"),t(" for more information on how it all works, or look at the code in layers.js to see what it all looks like.")],-1),c=[s,i,d,l];function h(m,p,_,g,u,f){return r(),a("div",null,c)}const E=o(n,[["render",h]]);export{T as __pageData,E as default};
|
1
assets/public_gamedevtree_README.md.78107550.lean.js
Normal file
1
assets/public_gamedevtree_README.md.78107550.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as o,c as a,o as r,b as e,d as t}from"./app.e9531dc8.js";const T=JSON.parse('{"title":"The-Modding-Tree","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/README.md","lastUpdated":null}'),n={name:"public/gamedevtree/README.md"},s=e("h1",{id:"the-modding-tree",tabindex:"-1"},[t("The-Modding-Tree "),e("a",{class:"header-anchor",href:"#the-modding-tree","aria-hidden":"true"},"#")],-1),i=e("p",null,"A modified version of The Prestige Tree that is much easier to mod. It still requires programming knowledge, but it's mostly pretty easy things and copy/pasting.",-1),d=e("p",null,[e("a",{href:"./docs/getting-started"},"Look here for a tutorial on getting started with modding with TMT")],-1),l=e("p",null,[t("You can look in the "),e("a",{href:"./docs/!general-info"},"documentation"),t(" for more information on how it all works, or look at the code in layers.js to see what it all looks like.")],-1),c=[s,i,d,l];function h(m,p,_,g,u,f){return r(),a("div",null,c)}const E=o(n,[["render",h]]);export{T as __pageData,E as default};
|
1
assets/public_gamedevtree_changelog.md.f2587796.js
Normal file
1
assets/public_gamedevtree_changelog.md.f2587796.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/public_gamedevtree_changelog.md.f2587796.lean.js
Normal file
1
assets/public_gamedevtree_changelog.md.f2587796.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as i,o as l,a}from"./app.e9531dc8.js";const g=JSON.parse('{"title":"The Game Dev Tree changelog:","description":"","frontmatter":{},"headers":[{"level":3,"title":"v1.0.4 Version Bump [rebalanced,debuggedx3] - 2020-11-09","slug":"v1-0-4-version-bump-rebalanced-debuggedx3-2020-11-09","link":"#v1-0-4-version-bump-rebalanced-debuggedx3-2020-11-09","children":[]},{"level":3,"title":"v1.0.3 Version Bump [rebalanced,debuggedx2] - 2020-11-08","slug":"v1-0-3-version-bump-rebalanced-debuggedx2-2020-11-08","link":"#v1-0-3-version-bump-rebalanced-debuggedx2-2020-11-08","children":[]},{"level":3,"title":"v1.0.2 Version Bump [rebalanced,debugged] - 2020-11-08","slug":"v1-0-2-version-bump-rebalanced-debugged-2020-11-08","link":"#v1-0-2-version-bump-rebalanced-debugged-2020-11-08","children":[]},{"level":3,"title":"v1.0.1 Version Bump [rebalanced] - 2020-11-08","slug":"v1-0-1-version-bump-rebalanced-2020-11-08","link":"#v1-0-1-version-bump-rebalanced-2020-11-08","children":[]},{"level":3,"title":"v1.0 Version Bump - 2020-11-08","slug":"v1-0-version-bump-2020-11-08","link":"#v1-0-version-bump-2020-11-08","children":[]},{"level":3,"title":"v0.2.3 Stylish - 2020-10-30","slug":"v0-2-3-stylish-2020-10-30","link":"#v0-2-3-stylish-2020-10-30","children":[]},{"level":3,"title":"v0.2.2 Row 3 - 2020-10-22","slug":"v0-2-2-row-3-2020-10-22","link":"#v0-2-2-row-3-2020-10-22","children":[]},{"level":3,"title":"v0.2.1 Row 3 - 2020-10-21","slug":"v0-2-1-row-3-2020-10-21","link":"#v0-2-1-row-3-2020-10-21","children":[]},{"level":3,"title":"v0.2 Row 3 - 2020-10-21","slug":"v0-2-row-3-2020-10-21","link":"#v0-2-row-3-2020-10-21","children":[]},{"level":3,"title":"v0.1.1 Cash Influx [rebalanced] - 2020-10-19","slug":"v0-1-1-cash-influx-rebalanced-2020-10-19","link":"#v0-1-1-cash-influx-rebalanced-2020-10-19","children":[]},{"level":3,"title":"v0.1 Cash Influx - 2020-10-19","slug":"v0-1-cash-influx-2020-10-19","link":"#v0-1-cash-influx-2020-10-19","children":[]},{"level":3,"title":"v0.0 Initial Commit - 2020-10-18","slug":"v0-0-initial-commit-2020-10-18","link":"#v0-0-initial-commit-2020-10-18","children":[]}],"relativePath":"public/gamedevtree/changelog.md","lastUpdated":null}'),r={name:"public/gamedevtree/changelog.md"},n=a("",25),d=[n];function t(s,h,o,u,c,v){return l(),i("div",null,d)}const m=e(r,[["render",t]]);export{g as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as o}from"./app.e9531dc8.js";const p=JSON.parse('{"title":"The-Modding-Tree","description":"","frontmatter":{},"headers":[{"level":2,"title":"General:","slug":"general","link":"#general","children":[]},{"level":2,"title":"Common components","slug":"common-components","link":"#common-components","children":[]},{"level":2,"title":"Other components","slug":"other-components","link":"#other-components","children":[]}],"relativePath":"public/gamedevtree/docs/!general-info.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/!general-info.md"},r=o('<h1 id="the-modding-tree" tabindex="-1">The-Modding-Tree <a class="header-anchor" href="#the-modding-tree" aria-hidden="true">#</a></h1><p>The main way to add content is through creating layers. You can either add a layer directly in the layers object in layersSupportjs, or declare it in another file and then do "<code>addLayer(layername, layerdata)</code>" (good for breaking things up into smaller files). The existing layers are just examples and can be freely deleted. You can also use them as references and a base for your own layers.</p><p>The first thing you need to do is to edit the modInfo at the top of game.js to set your modID (a string). A unique modId will prevent your mod's saves from conflicting with other mods.</p><p>Most of the time, you won't need to dive deep into the code to create things, but you still can if you really want to.</p><p>The Modding Tree uses break_eternity.js to store large values. This means that many numbers are Decimal objects, and must be treated differently. For example, you have to use <code>new Decimal(x)</code> to create a Decimal value instead of a plain number, and perform operations on them by calling functions. e.g, instead of <code>x = x + y</code>, use <code>x = x.add(y)</code>.</p><p>Almost all values can be either a constant value, or a dynamic value. Dynamic values are defined by putting a function that returns what the value should be at any given time.</p><p>All display text can be basic HTML instead (But you can't use most Vue features there).</p><h1 id="table-of-contents" tabindex="-1">Table of Contents: <a class="header-anchor" href="#table-of-contents" aria-hidden="true">#</a></h1><h2 id="general" tabindex="-1">General: <a class="header-anchor" href="#general" aria-hidden="true">#</a></h2><ul><li><a href="./getting-started">Getting Started</a>: Getting your own copy of the code set up with Github Desktop.</li><li><a href="./main-mod-info">Main mod info</a>: How to set up general things for your mod in mod.js.</li><li><a href="./basic-layer-breakdown">Basic layer breakdown</a>: Breaking down the components of a layer with minimal features.</li><li><a href="./layer-features">Layer features</a>: Explanations of all of the different properties that you can give a layer.</li><li><a href="./custom-tab-layouts">Custom Tab Layouts</a>: An optional way to give your tabs a different layout. You can even create entirely new components to use.</li><li><a href="./updating-tmt">Updating TMT</a>: Using Github Desktop to update your mod's version of TMT.</li></ul><h2 id="common-components" tabindex="-1">Common components <a class="header-anchor" href="#common-components" aria-hidden="true">#</a></h2><ul><li><a href="./upgrades">Upgrades</a>: How to create upgrades for a layer.</li><li><a href="./milestones">Milestones</a>: How to create milestones for a layer.</li><li><a href="./buyables">Buyables</a>: Create rebuyable upgrades for your layer (with the option to make them respec-able). Can be used to make Enhancers or Space Buildings.</li><li><a href="./clickables">Clickables</a>: A more generalized variant of buyables, for any kind of thing that is sometimes clickable. Between these and Buyables, you can do just about anything.</li></ul><h2 id="other-components" tabindex="-1">Other components <a class="header-anchor" href="#other-components" aria-hidden="true">#</a></h2><ul><li><a href="./challenges">Challenges</a>: How to create challenges for a layer.</li><li><a href="./bars">Bars</a>: Display some information as a progress bar, gague, or similar. They are highly customizable, and can be horizontal and vertical as well.</li><li><a href="./subtabs-and-microtabs">Subtabs and Microtabs</a>: Create subtabs for your tabs, as well as "microtab" components that you can put inside the tabs.</li><li><a href="./milestones">Achievements</a>: How to create achievements for a layer (or for the whole game).</li><li><a href="./infoboxes">Infoboxes</a>: Boxes containing text that can be shown or hidden.</li></ul>',14),i=[r];function s(l,d,c,h,u,m){return t(),a("div",null,i)}const y=e(n,[["render",s]]);export{p as __pageData,y as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as o}from"./app.e9531dc8.js";const p=JSON.parse('{"title":"The-Modding-Tree","description":"","frontmatter":{},"headers":[{"level":2,"title":"General:","slug":"general","link":"#general","children":[]},{"level":2,"title":"Common components","slug":"common-components","link":"#common-components","children":[]},{"level":2,"title":"Other components","slug":"other-components","link":"#other-components","children":[]}],"relativePath":"public/gamedevtree/docs/!general-info.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/!general-info.md"},r=o("",14),i=[r];function s(l,d,c,h,u,m){return t(),a("div",null,i)}const y=e(n,[["render",s]]);export{p as __pageData,y as default};
|
10
assets/public_gamedevtree_docs_achievements.md.1bc072a9.js
Normal file
10
assets/public_gamedevtree_docs_achievements.md.1bc072a9.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
import{_ as e,c as a,o as s,a as t}from"./app.e9531dc8.js";const y=JSON.parse('{"title":"Achievements","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/achievements.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/achievements.md"},o=t(`<h1 id="achievements" tabindex="-1">Achievements <a class="header-anchor" href="#achievements" aria-hidden="true">#</a></h1><p>Achievements are awarded to the player when they meet a certain goal, and give some benefit. Currently, they are pretty basic, but additional features will be added later to help.</p><p>You can make global achievements by putting them in a side layer (make its row "side" instead of a number)</p><p>Useful functions for dealing with achievements and implementing their effects:</p><ul><li>hasAchievement(layer, id): determine if the player has the Achievement</li><li>achievementEffect(layer, id): Returns the current effects of the achievement, if any</li></ul><p>Achievements should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">achievements</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">rows</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">rows</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">cols</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">columns</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> name</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> more </span><span style="color:#A6ACCD;">features</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Each achievement should have an id where the first digit is the row and the second digit is the column. Individual achievement can have these features:</p><ul><li><p>name: <strong>optional</strong>, displayed at the top of the achievement. The only visible text. It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>done(): A function returning a boolean to determine if the achievement should be awarded.</p></li><li><p>tooltip: Default tooltip for the achievement, appears when it is hovered over. Should convey the goal and any reward for completing the achievement. It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>effect(): <strong>optional</strong>, A function that calculates and returns the current values of any bonuses from the achievement. Can return a value or an object containing multiple values.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the achievement is visible or not. Default is unlocked.</p></li><li><p>onComplete() - <strong>optional</strong>, this function will be called when the achievement is completed.</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this achievement, 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'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's the "key" which the achievement was stored under, for convenient access. The achievement in the example's id is 11.</p></li><li><p>goalTooltip: <strong>optional, depracated</strong> Appears when the achievement is hovered over and locked, overrides the basic tooltip. This is to display the goal (or a hint). It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>doneTooltip: <strong>optional, depracated</strong> Appears when the achievement is hovered over and completed, overrides the basic tooltip. This can display what the player achieved (the goal), and the rewards, if any. It can also be a function that returns updating text. Can use basic HTML.</p></li></ul>`,9),l=[o];function i(p,r,c,h,d,u){return s(),a("div",null,l)}const v=e(n,[["render",i]]);export{y as __pageData,v as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as s,a as t}from"./app.e9531dc8.js";const y=JSON.parse('{"title":"Achievements","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/achievements.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/achievements.md"},o=t("",9),l=[o];function i(p,r,c,h,d,u){return s(),a("div",null,l)}const v=e(n,[["render",i]]);export{y as __pageData,v as default};
|
8
assets/public_gamedevtree_docs_bars.md.716526e0.js
Normal file
8
assets/public_gamedevtree_docs_bars.md.716526e0.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import{_ as s,c as a,o as e,a as t}from"./app.e9531dc8.js";const b=JSON.parse('{"title":"Bars","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/bars.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/bars.md"},o=t(`<h1 id="bars" tabindex="-1">Bars <a class="header-anchor" href="#bars" aria-hidden="true">#</a></h1><p>Bars let you display information in a more direct way. It can be a progress bar, health bar, capacity gague, or anything else.</p><p>Bars are defined like other Big Features:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bars</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">bigBar</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:#82AAFF;">display</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Features:</p><ul><li><p>direction: UP, DOWN, LEFT, or RIGHT (not Strings). Determines the direction that the bar is filled as it progresses. RIGHT means from left to right.</p></li><li><p>width, height: The size in pixels of the bar, but as Numbers (no "px" at the end)</p></li><li><p>progress(): A function that returns the portion of the bar that is filled, from "empty" at 0 to "full" at 1. (Nothing bad happens if the value goes out of these bounds, and it can be a number or Decimal).</p></li><li><p>display(): <strong>optional</strong>, A function that returns text to be displayed on top of the bar, can use HTML.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the bar is visible or not. Default is unlocked.</p></li><li><p>baseStyle, fillStyle, borderStyle, textStyle: <strong>Optional</strong>, Apply CSS to the unfilled portion, filled portion, border, and display text on the bar, 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'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's the "key" which the bar was stored under, for convenient access. The bar in the example's id is "bigBar".</p></li></ul>`,6),l=[o];function r(p,i,c,d,u,h){return e(),a("div",null,l)}const F=s(n,[["render",r]]);export{b as __pageData,F as default};
|
1
assets/public_gamedevtree_docs_bars.md.716526e0.lean.js
Normal file
1
assets/public_gamedevtree_docs_bars.md.716526e0.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o as e,a as t}from"./app.e9531dc8.js";const b=JSON.parse('{"title":"Bars","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/bars.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/bars.md"},o=t("",6),l=[o];function r(p,i,c,d,u,h){return e(),a("div",null,l)}const F=s(n,[["render",r]]);export{b as __pageData,F as default};
|
|
@ -0,0 +1,29 @@
|
|||
import{_ as s,c as n,o as a,a as l}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Basic layer breakdown","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/basic-layer-breakdown.md","lastUpdated":null}'),o={name:"public/gamedevtree/docs/basic-layer-breakdown.md"},p=l(`<h1 id="basic-layer-breakdown" tabindex="-1">Basic layer breakdown <a class="header-anchor" href="#basic-layer-breakdown" aria-hidden="true">#</a></h1><p>This is a very minimal layer with minimal features. Most things will require additional features.</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">p</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">startData</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:#F07178;"> </span><span style="color:#676E95;">// startData is a function that returns default data for a layer. </span></span>
|
||||
<span class="line"><span style="color:#F07178;"> unlocked</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#FF9CAC;">false</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// You can add more variables here to add them to your layer.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> points</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">0</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// "points" is the internal name for the main resource of the layer.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">color</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#FE0102</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// The color for this layer, which affects many elements</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">resource</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">prestige points</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// The name of this layer's main prestige resource</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">row</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// The row this layer is on (0 is the first row)</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">baseResource</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">points</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// The name of the resource your prestige gain is based on</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">baseAmount</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#89DDFF;">},</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// A function to return the current value of that resource</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">requires</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">200</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// The amount of the base needed to gain 1 of the prestige currency.</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;">// Also the amount required to unlock the layer.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">type</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">normal</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Determines the formula used for calculating prestige currency.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">exponent</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">0.5</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// "normal" prestige gain is (currency^exponent)</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">gainMult</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Returns your multiplier to your gain of the prestige resource</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">) </span><span style="color:#676E95;">// Factor in any bonuses multiplying gain here</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">gainExp</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Returns your exponent to your gain of the prestige resource</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">)</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">layerShown</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#FF9CAC;">true</span><span style="color:#89DDFF;">},</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Returns a bool for if this layer's node should be visible in the tree.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span></code></pre></div>`,3),e=[p];function r(t,c,F,y,i,D){return a(),n("div",null,e)}const h=s(o,[["render",r]]);export{d as __pageData,h as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as n,o as a,a as l}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Basic layer breakdown","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/basic-layer-breakdown.md","lastUpdated":null}'),o={name:"public/gamedevtree/docs/basic-layer-breakdown.md"},p=l("",3),e=[p];function r(t,c,F,y,i,D){return a(),n("div",null,e)}const h=s(o,[["render",r]]);export{d as __pageData,h as default};
|
15
assets/public_gamedevtree_docs_buyables.md.5f1f2288.js
Normal file
15
assets/public_gamedevtree_docs_buyables.md.5f1f2288.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import{_ as s,c as e,o as a,a as n}from"./app.e9531dc8.js";const F=JSON.parse('{"title":"Buyables","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/buyables.md","lastUpdated":null}'),t={name:"public/gamedevtree/docs/buyables.md"},l=n(`<h1 id="buyables" tabindex="-1">Buyables <a class="header-anchor" href="#buyables" aria-hidden="true">#</a></h1><p>Buyables are usually things that can be bought multiple times with scaling costs. If you set a respec function, the player can reset the purchases to get their currency back.</p><p>The amount of a buyable owned is a Decimal. You can get or set the amount of a buyable with getBuyableAmt(layer, id) and setBuyableAmt(layer, id, amt). You can use buyableEffect(layer, id) to get the current effects of a buyable.</p><p>Buyables should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">buyables</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">rows</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">rows</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">cols</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">columns</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">respec</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{},</span><span style="color:#F07178;"> </span><span style="color:#676E95;">//**optional**, implement it to reset things and give back your currency.</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;">// Having this function makes a respec button appear</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">respecText</span><span style="color:#89DDFF;">:</span><span style="color:#676E95;">// **optional**, text that appears on the respec button</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">showRespecButton</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">{}</span><span style="color:#F07178;"> </span><span style="color:#676E95;">//**optional**, a function determining whether or not to show the button. Defaults to true if absent.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">sellOneText</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">sellAllText</span><span style="color:#89DDFF;">:</span><span style="color:#676E95;">// **optional**, text that appears on the "sell one" and "sell all" buttons respectively (if you are using them)</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> display</span><span style="color:#89DDFF;">()</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></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 "x" to calculate the cost of the x+1th object, but needs to use "current amount" 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'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's the "key" which the buyable was stored under, for convenient access. The buyable in the example'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 "sell one" appears above "sell all". 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 "canSellOne/All" is absent but "sellOne/All" is present, the appropriate button will always show.</p>`,11),o=[l];function p(r,c,i,u,y,b){return a(),e("div",null,o)}const d=s(t,[["render",p]]);export{F as __pageData,d as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as e,o as a,a as n}from"./app.e9531dc8.js";const F=JSON.parse('{"title":"Buyables","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/buyables.md","lastUpdated":null}'),t={name:"public/gamedevtree/docs/buyables.md"},l=n("",11),o=[l];function p(r,c,i,u,y,b){return a(),e("div",null,o)}const d=s(t,[["render",p]]);export{F as __pageData,d as default};
|
10
assets/public_gamedevtree_docs_challenges.md.3e8887e1.js
Normal file
10
assets/public_gamedevtree_docs_challenges.md.3e8887e1.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
import{_ as e,c as a,o as n,a as s}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Challenges","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/challenges.md","lastUpdated":null}'),l={name:"public/gamedevtree/docs/challenges.md"},t=s(`<h1 id="challenges" tabindex="-1">Challenges <a class="header-anchor" href="#challenges" aria-hidden="true">#</a></h1><p>Useful functions for dealing with Challenges and implementing their effects:</p><ul><li>inChallenge(layer, id): determine if the player is in a given challenge (or another challenge on the same layer that counts as this one)</li><li>hasChallenge(layer, id): determine if the player has completed the challenge</li><li>challengeCompletions(layer, id): determine how many times the player completed the challenge</li><li>challEffect(layer, id): Returns the current effects of the challenge, if any</li></ul><p>Challenges are stored in the following format:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">challenges</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">rows</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">rows</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">cols</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">columns</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> name</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Ouch</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Each challenge should have an id where the first digit is the row and the second digit is the column. Individual Challenges can have these features:</p><ul><li><p>name: Name of the challenge, can be a string or a function. Can use basic HTML.</p></li><li><p>challengeDescription: A description of what makes the challenge a challenge. <em>You will need to implement these elsewhere</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>rewardDescription: A description of the reward's effect. <em>You will also have to implement the effect where it is applied.</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>rewardEffect(): <strong>optional</strong>, A function that calculates and returns the current values of any bonuses from the reward. Can return a value or an object containing multiple values. Can use basic HTML.</p></li><li><p>rewardDisplay(): <strong>optional</strong>, A function that returns a display of the current effects of the reward with formatting. Default behavior is to just display the a number appropriately formatted.</p></li><li><p>goal: A Decimal for the amount of currency required to beat the challenge. By default, the goal is in basic Points. The goal can also be a function if its value changes.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the challenge is visible or not. Default is unlocked.</p></li><li><p>onComplete() - <strong>optional</strong>, this function will be called when the challenge is completed when previously incomplete.</p></li><li><p>countsAs: <strong>optional</strong>, If a challenge combines the effects of other challenges in this layer, you can use this. An array of challenge ids. The player is effectively in all of those challenges when in the current one.</p></li></ul><p>By default, challenges use basic Points for the goal. You can change that using these features.</p><ul><li><p>currencyDisplayName: <strong>optional</strong>, the name to display for the currency for the goal</p></li><li><p>currencyInternalName: <strong>optional</strong>, the internal name for that currency</p></li><li><p>currencyLayer: <strong>optional</strong>, the internal name of the layer that currency is stored in. If it's not in a layer, omit. If it's not stored directly in a layer, instead use the next feature.</p></li><li><p>currencyLocation: <strong>optional</strong>, if your currency is stored in something inside a layer (e.g. a buyable's amount), you can access it this way. This is a function returning the object in "player" that contains the value (like player[this.layer].buyables)</p></li><li><p>completionLimit: <strong>optional</strong>, the amount of times you can complete this challenge. Default is 1 completion.</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this challenge, 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'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's the "key" which the challenge was stored under, for convenient access. The challenge in the example's id is 11.</p></li></ul>`,9),o=[t];function i(r,c,p,h,u,y){return n(),a("div",null,o)}const f=e(l,[["render",i]]);export{d as __pageData,f as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as n,a as s}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Challenges","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/challenges.md","lastUpdated":null}'),l={name:"public/gamedevtree/docs/challenges.md"},t=s("",9),o=[t];function i(r,c,p,h,u,y){return n(),a("div",null,o)}const f=e(l,[["render",i]]);export{d as __pageData,f as default};
|
14
assets/public_gamedevtree_docs_clickables.md.0ba251c8.js
Normal file
14
assets/public_gamedevtree_docs_clickables.md.0ba251c8.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
import{_ as s,c as a,o as e,a as n}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Clickables","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/clickables.md","lastUpdated":null}'),l={name:"public/gamedevtree/docs/clickables.md"},t=n(`<h1 id="clickables" tabindex="-1">Clickables <a class="header-anchor" href="#clickables" aria-hidden="true">#</a></h1><p>Clickables are any kind of thing that you can click for an effect. They're a more generalized version of Buyables.</p><p>DO NOT USE THESE TO MAKE THINGS THAT YOU CLICK REPEATEDLY FOR A BONUS BECAUSE THOSE ARE AWFUL.</p><p>There are several differences between the two. One is that a buyable's saved data is its amount as a Decimal, while Clickables store a "state" which can be a number or string, but not Decimal, array, or object). Buyables have a number of extra features which you can see on their page. Clickables also have a smaller default size.</p><p>You can get and set a clickable's state with getClickableState(layer, id) and setClickableState(layer, id, state). You can use clickableEffect(layer, id) to get the current effects of a clickable.</p><p>Clickables should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">clickables</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">rows</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">rows</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">cols</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">columns</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">masterButtonPress</span><span style="color:#F07178;">() </span><span style="color:#676E95;">// **optional** If this is present, an additional button will appear above the clickables.</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;">// pressing it will call the function.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">masterButtonText</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Press me!</span><span style="color:#89DDFF;">"</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// **optional** text to display on the Master Button</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">showMasterButton</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">{}</span><span style="color:#F07178;"> </span><span style="color:#676E95;">//**optional**, a function determining whether or not to show the button. Defaults to true if absent.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> display</span><span style="color:#89DDFF;">()</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></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>effect(): <strong>optional</strong>, A function that calculates and returns the current values of bonuses of this clickable. 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 clickable after the title, likely changing based on its state. Can use basic HTML.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the clickable is visible or not. Default is unlocked.</p></li><li><p>canClick(): A function returning a bool to determine if you can click the clickable.</p></li><li><p>onClick(): A function that implements clicking one of the clickable.</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this clickable, 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'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's the "key" which the clickable was stored under, for convenient access. The clickable in the example's id is 11.</p></li></ul>`,9),o=[t];function p(c,r,i,y,u,F){return e(),a("div",null,o)}const b=s(l,[["render",p]]);export{d as __pageData,b as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o as e,a as n}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Clickables","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/clickables.md","lastUpdated":null}'),l={name:"public/gamedevtree/docs/clickables.md"},t=n("",9),o=[t];function p(c,r,i,y,u,F){return e(),a("div",null,o)}const b=s(l,[["render",p]]);export{d as __pageData,b as default};
|
|
@ -0,0 +1,10 @@
|
|||
import{_ as s,c as a,o,a as t}from"./app.e9531dc8.js";const h=JSON.parse('{"title":"Custom tab layouts","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/custom-tab-layouts.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/custom-tab-layouts.md"},e=t(`<h1 id="custom-tab-layouts" tabindex="-1">Custom tab layouts <a class="header-anchor" href="#custom-tab-layouts" aria-hidden="true">#</a></h1><p>Note: If you are using subtabs, tabFormat is used differently, but you still use the same format within each subtabs. <a href="./subtabs-and-microtabs">See here for more on subtabs</a></p><p>Custom tab layouts can be used to do basically anything in a tab window, especially combined with the "style" layer feature. The tabFormat feature is an array of things, like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">tabFormat</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">main-display</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">prestige-button</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">function</span><span style="color:#89DDFF;">(){</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Melt your points into </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">display-text</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">function</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:#89DDFF;">'</span><span style="color:#C3E88D;">I have </span><span style="color:#89DDFF;">'</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">+</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">format</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#F07178;">) </span><span style="color:#89DDFF;">+</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;"> pointy points!</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">color</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">red</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">font-size</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">32px</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">font-family</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Comic Sans MS</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">toggle</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">c</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">beep</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">]]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">milestones</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">upgrades</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">]</span></span>
|
||||
<span class="line"></span></code></pre></div><p>It is a list of components, which can be either just a name, or an array with arguments. If it's an array, the first item is the name of the component, the second is the data passed into it, and the third (optional) applies a CSS style to it with a "CSS object", where the keys are CSS attributes.</p><p>These are the existing components, but you can create more in v.js:</p><ul><li><p>display-text: Displays some text (can use basic HTML). The argument is the text to display. It can also be a function that returns updating text.</p></li><li><p>raw-html: Displays some basic HTML, can also be a function.</p></li><li><p>blank: Adds empty space. The default dimensions are 8px x 17px. The argument changes the dimensions. If it's a single value (e.g. "20px"), that determines the height. If you have a pair of arguments, the first is width and the second is height.</p></li><li><p>row: Display a list of components horizontally. The argument is an array of components in the tab layout format.</p></li><li><p>column: Display a list of components vertically. The argument is an array of components in the tab layout format. This is useful to display columns within a row.</p></li><li><p>main-display: The text that displays the main currency for the layer and its effects.</p></li><li><p>resource-display: The text that displays the currency that this layer is based on, as well as the best and/or total values for this layer's prestige currency (if they are put in startData for this layer)</p></li><li><p>prestige-button: The argument is a string that the prestige button should say before the amount of currency you will gain. It can also be a function that returns updating text.</p></li><li><p>upgrades, milestones, challs, achievements: Display the upgrades, milestones, and challenges for a layer, as appropriate.</p></li><li><p>buyables, clickables: Display all of the buyables/clickables for this layer, as appropriate. The argument optional, and is the size of the boxes in pixels.</p></li><li><p>microtabs: Display a set of subtabs for an area. The argument is the name of the set of microtabs in the "microtabs" feature.</p></li><li><p>bar: Display a bar. The argument is the id of the bar to display.</p></li><li><p>infobox: Display an infobox. The argument is the id of the infobox to display.</p></li><li><p>toggle: A toggle button that toggles a bool value. The data is a pair that identifies what bool to toggle, [layer, id]</p></li></ul><p>The rest of the components are sub-components. They can be used just like other components, but are typically part of another component.</p><ul><li><p>upgrade, milestone, chall, buyable, clickable, achievement: An individual upgrade, challenge, etc. The argument is the id. This can be used if you want to have upgrades split up across multiple subtabs, for example.</p></li><li><p>respec-button, master-button: The respec and master buttons for buyables and clickables, respectively.</p></li><li><p>sell-one, sell-all: The "sell one" and "sell all" for buyables, respectively. The argument is the id of the buyable.</p></li></ul>`,9),l=[e];function p(r,c,i,y,D,u){return o(),a("div",null,l)}const b=s(n,[["render",p]]);export{h as __pageData,b as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o,a as t}from"./app.e9531dc8.js";const h=JSON.parse('{"title":"Custom tab layouts","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/custom-tab-layouts.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/custom-tab-layouts.md"},e=t("",9),l=[e];function p(r,c,i,y,D,u){return o(),a("div",null,l)}const b=s(n,[["render",p]]);export{h as __pageData,b as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o,a as i}from"./app.e9531dc8.js";const y=JSON.parse('{"title":"Getting started","description":"","frontmatter":{},"headers":[{"level":2,"title":"Getting set up with Github and The Modding Tree:","slug":"getting-set-up-with-github-and-the-modding-tree","link":"#getting-set-up-with-github-and-the-modding-tree","children":[]},{"level":2,"title":"Using your repository","slug":"using-your-repository","link":"#using-your-repository","children":[]}],"relativePath":"public/gamedevtree/docs/getting-started.md","lastUpdated":null}'),a={name:"public/gamedevtree/docs/getting-started.md"},n=i('<h1 id="getting-started" tabindex="-1">Getting started <a class="header-anchor" href="#getting-started" aria-hidden="true">#</a></h1><p>Welcome to The Modding Tree!</p><p>Using the Modding Tree, at its simplest level, just requires getting a copy of it onto your computer. However, if you do it the right way, it will help in many ways.</p><p>Don't let the word "Github" scare you away. It's actually much easier to use than most people think, especially because most people use it the hard way. The key is Github Desktop, which lets you do everything you need to, without even touching the command line.</p><p>The benefits of using Github:</p><ul><li>It makes it much, much easier to update The Modding Tree.</li><li>You can share your work without any extra effort using githack, or with a bit more effort, set up a <a href="http://github.io" target="_blank" rel="noreferrer">github.io</a> site.</li><li>It lets you undo changes to your code, and to have multiple versions of it.</li><li>It lets you collaborate with other people, if you want to.</li></ul><h2 id="getting-set-up-with-github-and-the-modding-tree" tabindex="-1">Getting set up with Github and The Modding Tree: <a class="header-anchor" href="#getting-set-up-with-github-and-the-modding-tree" aria-hidden="true">#</a></h2><ol><li><p>Install <a href="https://desktop.github.com/" target="_blank" rel="noreferrer">Github Desktop</a> and <a href="https://code.visualstudio.com/" target="_blank" rel="noreferrer">Visual Studio Code</a>.</p></li><li><p>Make a Github account. You can handle this on your own.</p></li><li><p>Log in on your browser, and go back to <a href="https://github.com/Acamaeda/The-Modding-Tree" target="_blank" rel="noreferrer">The Modding Tree page</a>. At the top right, there should be a button that says "fork". Click on it, and then on your username. You now have your own fork, or copy, of The Modding Tree.</p></li><li><p>Open Github Desktop and log in. Ignore everything else and choose "clone a repository". A "repository" is basically a "Github project", like The Modding Tree. "Cloning" is downloading a copy of the repository to your computer.</p></li><li><p>Look for The Modding Tree in the list of repositiories (it should be the only one) and click "clone".</p></li><li><p>Select that you're using it for your own purposes, and click continue. It will download the files and handle everything.</p></li></ol><h2 id="using-your-repository" tabindex="-1">Using your repository <a class="header-anchor" href="#using-your-repository" aria-hidden="true">#</a></h2><ol><li><p>Click on "show in finder" to the right, and then open index.html. This will let you view and test your project!</p></li><li><p>To edit your project, click "open in VSCode" in Github Desktop.</p></li><li><p>Open mod.js in VSCode, and look at the top part where it says "modInfo". On the lines below that, change the mod's name to whatever you want, and change the id as well. (It can be any string value, and it's used to determine where the savefile is. Make it something that's probably unique, and don't change it again later.)</p></li><li><p>Save game.js, and then reload index.html. The title on the tab, as well as on the info page, will now be the new ones!</p></li><li><p>Go back to Github Desktop. It's time to save your changes into the git system by making a "commit".</p></li><li><p>At the bottom right corner, add a summary of your changes, and then click "commit to master".</p></li><li><p>Finally, at the top middle, click "push origin" to push your changes out onto the online repository.</p></li><li><p>You can view your project on line, or share it with others, by going to <a href="https://raw.githack.com/%5BYOUR-GITHUB-USERNAME%5D/The-Modding-Tree/master/index.html" target="_blank" rel="noreferrer">https://raw.githack.com/[YOUR-GITHUB-USERNAME]/The-Modding-Tree/master/index.html</a></p></li></ol><p>And now, you have successfully used Github! You can look at the <a href="./!general-info">documentation</a> to see how The Modding Tree's system works and to make your mod a reality.</p>',11),r=[n];function h(s,l,u,d,p,g){return o(),t("div",null,r)}const m=e(a,[["render",h]]);export{y as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o,a as i}from"./app.e9531dc8.js";const y=JSON.parse('{"title":"Getting started","description":"","frontmatter":{},"headers":[{"level":2,"title":"Getting set up with Github and The Modding Tree:","slug":"getting-set-up-with-github-and-the-modding-tree","link":"#getting-set-up-with-github-and-the-modding-tree","children":[]},{"level":2,"title":"Using your repository","slug":"using-your-repository","link":"#using-your-repository","children":[]}],"relativePath":"public/gamedevtree/docs/getting-started.md","lastUpdated":null}'),a={name:"public/gamedevtree/docs/getting-started.md"},n=i("",11),r=[n];function h(s,l,u,d,p,g){return o(),t("div",null,r)}const m=e(a,[["render",h]]);export{y as __pageData,m as default};
|
8
assets/public_gamedevtree_docs_infoboxes.md.bb5781a4.js
Normal file
8
assets/public_gamedevtree_docs_infoboxes.md.bb5781a4.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import{_ as s,c as e,o as a,a as o}from"./app.e9531dc8.js";const h=JSON.parse('{"title":"Infoboxes","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/infoboxes.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/infoboxes.md"},t=o(`<h1 id="infoboxes" tabindex="-1">Infoboxes <a class="header-anchor" href="#infoboxes" aria-hidden="true">#</a></h1><p>Infoboxes are good for displaying "lore", or story elements, as well as for explaining complicated things.</p><p>In the default tab layout, the first infobox will be displayed at the very top of the tab.</p><p>Infoboxes are defined like other Big Features:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">infoboxes</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">infobox</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:#82AAFF;">display</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Features:</p><ul><li><p>title: The text displayed above the main box. Can be a function to be dynamic, and can use basic HTML.</p></li><li><p>body: The text displayed inside the box. Can be a function to be dynamic, and can use basic HTML.</p></li><li><p>style, titleStyle, bodyStyle: <strong>Optional</strong>, Apply CSS to the infobox, or to the title button or body of the infobox, 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>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the infobox is visible or not. Default is unlocked.</p></li><li><p>layer: <strong>Assigned automagically</strong>. It'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's the "key" which the bar was stored under, for convenient access. The bar in the example's id is "bigBar".</p></li></ul>`,7),l=[t];function p(i,r,c,d,y,u){return a(),e("div",null,l)}const f=s(n,[["render",p]]);export{h as __pageData,f as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as e,o as a,a as o}from"./app.e9531dc8.js";const h=JSON.parse('{"title":"Infoboxes","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/infoboxes.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/infoboxes.md"},t=o("",7),l=[t];function p(i,r,c,d,y,u){return a(),e("div",null,l)}const f=s(n,[["render",p]]);export{h as __pageData,f as default};
|
18
assets/public_gamedevtree_docs_layer-features.md.a52f61c7.js
Normal file
18
assets/public_gamedevtree_docs_layer-features.md.a52f61c7.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as s}from"./app.e9531dc8.js";const f=JSON.parse('{"title":"Layer Features","description":"","frontmatter":{},"headers":[{"level":2,"title":"Layer Definition features","slug":"layer-definition-features","link":"#layer-definition-features","children":[]},{"level":2,"title":"Big features (all optional)","slug":"big-features-all-optional","link":"#big-features-all-optional","children":[]},{"level":2,"title":"Prestige formula features","slug":"prestige-formula-features","link":"#prestige-formula-features","children":[]},{"level":2,"title":"Tree/node features","slug":"tree-node-features","link":"#tree-node-features","children":[]},{"level":2,"title":"Other features","slug":"other-features","link":"#other-features","children":[]},{"level":2,"title":"Custom Prestige type","slug":"custom-prestige-type","link":"#custom-prestige-type","children":[]}],"relativePath":"public/gamedevtree/docs/layer-features.md","lastUpdated":null}'),o={name:"public/gamedevtree/docs/layer-features.md"},n=s("",18),r=[n];function l(i,p,c,u,h,y){return a(),t("div",null,r)}const g=e(o,[["render",l]]);export{f as __pageData,g as default};
|
|
@ -0,0 +1,7 @@
|
|||
import{_ as e,c as s,o as a,a as n}from"./app.e9531dc8.js";const f=JSON.parse('{"title":"mod.js","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/main-mod-info.md","lastUpdated":null}'),t={name:"public/gamedevtree/docs/main-mod-info.md"},o=n(`<h1 id="mod-js" tabindex="-1">mod.js <a class="header-anchor" href="#mod-js" aria-hidden="true">#</a></h1><p>All of the code and data that you're likely to edit is here in mod.js! Everything in mod.js will not be altered by updates, besides the addition of new things.</p><p>Here's a breakdown of what's in it:</p><ul><li><p>modInfo is where most of the basic configuration for the mod is. It contains:</p><ul><li>name: The name of your mod. (a string)</li><li>id: The id for your mod, a unique string that is used to determine savefile location. Setting it is important!</li><li>author: The name of the author, displayed in the info tab.</li><li>pointsName: This changes what is displayed instead of "points" for the main currency. (It does not affect it in the code.)</li><li>discordName, discordLink: If you have a Discord server or other discussion place, you can add a link to it. "discordName" is the text on the link, and "discordLink" is the url of an invite. If you're using a Discord invite, please make sure it's set to never expire.</li><li>changelogLink: You can use this to set a link to a page where your changelog for the game is displayed.</li><li>offlineLimit: The maximum amount of offline time that the player can accumulate, in hours. Any extra time is lost. (a number) This is useful because most of these mods are fast-paced enough that too much offline time ruins the balance, such as the time in between updates. That is why I suggest developers disable offline time on their own savefile.</li><li>initialStartPoints: A Decimal for the amount of points a new player should start with.</li></ul></li><li><p>VERSION is used to describe the current version of your mod. It contains: num: The mod's version number, displayed at the top right of the tree tab. name: The version's name, displayed alongside the number in the info tab.</p></li><li><p>doNotCallTheseFunctionsEveryTick is very important. TMT calls every function anywhere in "layers" every tick to store the result, unless specifically told not to. Functions that have are used to do an action need to be identified. "Official" functions (those in the documentation) are all fine, but if you make any new ones, add their names to this array.</p></li></ul><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#676E95;">// (The ones here are examples, all official functions are already taken care of)</span></span>
|
||||
<span class="line"><span style="color:#C792EA;">var</span><span style="color:#A6ACCD;"> doNotCallTheseFunctionsEveryTick </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">doReset</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">buy</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">onPurchase</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blowUpEverything</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">]</span></span>
|
||||
<span class="line"></span></code></pre></div><ul><li><p>getStartPoints(): A function to determine the amount of points the player starts with after a reset. (returns a Decimal value)</p></li><li><p>canGenPoints(): A function returning a boolean for if points should be generated. Use this if you want an upgrade to unlock generating points.</p></li><li><p>getPointGen(): A function that calculates your points per second. Anything that affects your point gain should go into the calculation here.</p></li><li><p>addedPlayerData(): A function that returns any non-layer-related data that you want to be added to the save data and "player" object.</p></li></ul><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#C792EA;">function</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">addedPlayerData</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;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> weather</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Yes</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> happiness</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">72</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><p>displayThings: An array of functions used to display extra things at the top of the tree tab. Each function returns a string, which is a line to display (with basic HTML support). If a function returns nothing, nothing is displayed (and it doesn't take up a line).</p></li><li><p>isEndgame(): A function to determine if the player has reached the end of the game, at which point the "you win!" screen appears.</p></li></ul><p>Less important things beyond this point!</p><ul><li>maxTickLength(): Returns the maximum tick length, in milliseconds. Only really useful if you have something that reduces over time, which long ticks mess up (usually a challenge).</li></ul>`,10),l=[o];function i(p,r,c,u,d,h){return a(),s("div",null,l)}const m=e(t,[["render",i]]);export{f as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as s,o as a,a as n}from"./app.e9531dc8.js";const f=JSON.parse('{"title":"mod.js","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/main-mod-info.md","lastUpdated":null}'),t={name:"public/gamedevtree/docs/main-mod-info.md"},o=n("",10),l=[o];function i(p,r,c,u,d,h){return a(),s("div",null,l)}const m=e(t,[["render",i]]);export{f as __pageData,m as default};
|
8
assets/public_gamedevtree_docs_milestones.md.1635038d.js
Normal file
8
assets/public_gamedevtree_docs_milestones.md.1635038d.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import{_ as e,c as s,o as t,a as n}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Milestones","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/milestones.md","lastUpdated":null}'),a={name:"public/gamedevtree/docs/milestones.md"},o=n(`<h1 id="milestones" tabindex="-1">Milestones <a class="header-anchor" href="#milestones" aria-hidden="true">#</a></h1><p>Milestones are awarded to the player when they meet a certain goal, and give some benefit. Milestones should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">milestones</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">0</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> requirementDesc</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">123 waffles</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>You can use hasMilestone(layer, id) to determine if the player has a given milestone</p><p>Milestone features:</p><ul><li><p>requirementDesc: A string describing the requirement for unlocking this milestone. Suggestion: Use a "total". It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>effectDesc: A string describing the reward for having the milestone. <em>You will have to implement the reward elsewhere.</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>done(): A function returning a boolean to determine if the milestone should be awarded.</p></li><li><p>toggles: <em>optional</em>, Creates toggle buttons that appear on the milestone when it is unlocked. The toggles can toggle a given boolean value in a layer. It is defined as an array of paired items, one pair per toggle. The first is the internal name of the layer the value being toggled is stored in, and the second is the internal name of the variable to toggle. (e.g. [["b", "auto"], ["g", "auto"])</p><pre><code> **Tip:** Toggles are not de-set if the milestone becomes locked! In this case, you should also check if the player has the milestone.
|
||||
</code></pre></li><li><p>style: <strong>Optional</strong>, Applies CSS to this milestone, 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>unlocked(): <strong>Optional</strong> A function returning a boolean to determine if the milestone should be shown. If absent, it is always shown.</p></li><li><p>layer: <strong>Assigned automagically</strong>. It'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's the "key" which the milestone was stored under, for convenient access. The milestone in the example's id is 0.</p></li></ul>`,6),l=[o];function i(r,p,c,h,u,d){return t(),s("div",null,l)}const y=e(a,[["render",i]]);export{m as __pageData,y as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as s,o as t,a as n}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Milestones","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/milestones.md","lastUpdated":null}'),a={name:"public/gamedevtree/docs/milestones.md"},o=n("",6),l=[o];function i(r,p,c,h,u,d){return t(),s("div",null,l)}const y=e(a,[["render",i]]);export{m as __pageData,y as default};
|
|
@ -0,0 +1,25 @@
|
|||
import{_ as s,c as a,o as n,a as t}from"./app.e9531dc8.js";const D=JSON.parse('{"title":"Subtabs and Microtabs","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/subtabs-and-microtabs.md","lastUpdated":null}'),e={name:"public/gamedevtree/docs/subtabs-and-microtabs.md"},o=t(`<h1 id="subtabs-and-microtabs" tabindex="-1">Subtabs and Microtabs <a class="header-anchor" href="#subtabs-and-microtabs" aria-hidden="true">#</a></h1><p>Subtabs are separate sections of a tab that you can view by selecting one at the top of the tab. Microtabs are smaller areas that function in much the same way.</p><p>Subtabs are defined by using the tab format like this, where each element of tabFormat is given the name of that subtab:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">tabFormat</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Main tab</span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> *subtab features*</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Other tab</span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> *subtab features*</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Microtabs are defined similarly, and use the same features, but are defined in the "microtabs" feature. Each entry is a group of tabs which will appear in a microtabs component. The first set, "stuff", has 2 tabs, and the second, "otherStuff", has none.</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">microtabs</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">stuff</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:#FFCB6B;">first</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;">*</span><span style="color:#A6ACCD;">subtab</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">features</span><span style="color:#89DDFF;">*</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">second</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;">*</span><span style="color:#A6ACCD;">subtab</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">features</span><span style="color:#89DDFF;">*</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">otherStuff</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 style="color:#676E95;">// There could be another set of microtabs here</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Normal subtabs and microtab subtabs both use the same features:</p><h1 id="features" tabindex="-1">Features: <a class="header-anchor" href="#features" aria-hidden="true">#</a></h1><ul><li><p>content: The tab layout code for the subtab, in <a href="./custom-tab-layouts">the tab layout format</a></p></li><li><p>style: <strong>Optional</strong>, Applies CSS to the whole subtab when switched to, in the form of an "CSS Object", where the keys are CSS attributes, and the values are the values for those attributes (both as strings)</p></li><li><p>buttonStyle: <strong>Optional</strong>, A CSS object, which affects the appearance of the button for that subtab.</p></li><li><p>unlocked(): <strong>Optional</strong>, a function to determine if the button for this subtab should be visible. By default, a subtab is always unlocked. (You can't use the "this" keyword in this function.)</p></li></ul>`,9),l=[o];function p(c,r,i,F,u,y){return n(),a("div",null,l)}const h=s(e,[["render",p]]);export{D as __pageData,h as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o as n,a as t}from"./app.e9531dc8.js";const D=JSON.parse('{"title":"Subtabs and Microtabs","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/subtabs-and-microtabs.md","lastUpdated":null}'),e={name:"public/gamedevtree/docs/subtabs-and-microtabs.md"},o=t("",9),l=[o];function p(c,r,i,F,u,y){return n(),a("div",null,l)}const h=s(e,[["render",p]]);export{D as __pageData,h as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as o}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Updating The Modding Tree","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/updating-tmt.md","lastUpdated":null}'),i={name:"public/gamedevtree/docs/updating-tmt.md"},n=o('<h1 id="updating-the-modding-tree" tabindex="-1">Updating The Modding Tree <a class="header-anchor" href="#updating-the-modding-tree" aria-hidden="true">#</a></h1><p>This tutorial assumes that you have used <a href="./getting-started">the Getting Started Tutorial</a>, and are using Github Desktop and VSCode for your mod.</p><p>Here's what you have to do when there's a TMT update:</p><ol><li><p>Look at the changelog. It will warn you if the update will break anything or require any changes. Decide if you want to try to update.</p></li><li><p>Open Github Desktop, and at the top middle, click "fetch origin". This will make Github Desktop get information about the update.</p></li><li><p>Click where it says "current branch: master" at the top middle, and at the bottom of the thing that appears, click "choose a branch to merge into master.</p></li><li><p>Select upstream/master. It will likely say there are conflicts, but you have tools to resolve them. Click "Merge upstream/master into master".</p></li><li><p>A conflict happens when the things you're trying to merge have both made changes in the same place. Click "open in Visual Studio Code" next to the first file.</p></li><li><p>Scroll down through the file, and look for the parts highlighted in red and green. One of these is your code, and the other is some code that will be modified by the update. Do your best to try to edit things to keep the updated changes, but keep your content.</p></li><li><p>Continue to do this for all remaining challenges.</p></li><li><p>Do any other changes required by the update, run the game, fix issues, etc.</p></li></ol>',4),r=[n];function h(d,s,l,p,u,c){return a(),t("div",null,r)}const _=e(i,[["render",h]]);export{m as __pageData,_ as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as o}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Updating The Modding Tree","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/updating-tmt.md","lastUpdated":null}'),i={name:"public/gamedevtree/docs/updating-tmt.md"},n=o("",4),r=[n];function h(d,s,l,p,u,c){return a(),t("div",null,r)}const _=e(i,[["render",h]]);export{m as __pageData,_ as default};
|
10
assets/public_gamedevtree_docs_upgrades.md.a39aa163.js
Normal file
10
assets/public_gamedevtree_docs_upgrades.md.a39aa163.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
import{_ as e,c as s,o as a,a as t}from"./app.e9531dc8.js";const g=JSON.parse('{"title":"Upgrades","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/upgrades.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/upgrades.md"},o=t(`<h1 id="upgrades" tabindex="-1">Upgrades <a class="header-anchor" href="#upgrades" aria-hidden="true">#</a></h1><p>Useful functions for dealing with Upgrades and implementing their effects:</p><ul><li>hasUpgrade(layer, id): determine if the player has the upgrade</li><li>upgradeEffect(layer, id): Returns the current effects of the upgrade, if any</li><li>buyUpgrade(layer, id): Buys an upgrade directly (if affordable)</li></ul><p>Hint: Basic point gain is calculated in mod.js's "getPointGen".</p><p>Upgrades are stored in the following format:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">upgrades</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">rows</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">rows</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">cols</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> # </span><span style="color:#89DDFF;">of</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">columns</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> description</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> more </span><span style="color:#A6ACCD;">features</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Each upgrade should have an id where the first digit is the row and the second digit is the column. Individual upgrades can have these 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. Can use basic HTML.</p></li><li><p>description: A description of the upgrade's effect. <em>You will also have to implement the effect where it is applied.</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>effect(): <strong>optional</strong>, A function that calculates and returns the current values of any bonuses from the upgrade. Can return a value or an object containing multiple values.</p></li><li><p>effectDisplay(): <strong>optional</strong>, A function that returns a display of the current effects of the upgrade with formatting. Default behavior is to just display the a number appropriately formatted. Can use basic HTML.</p></li><li><p>cost: A Decimal for the cost of the upgrade. By default, upgrades cost the main prestige currency for the layer.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the upgrade is visible or not. Default is unlocked.</p></li><li><p>onPurchase() - <strong>optional</strong>, this function will be called when the upgrade is purchased. Good for upgrades like "makes this layer act like it was unlocked first".</p></li></ul><p>By default, upgrades use the main prestige currency for the layer. You can include these to change them (but it needs to be a Decimal):</p><ul><li><p>currencyDisplayName: <strong>optional</strong>, the name to display for the currency for the upgrade</p></li><li><p>currencyInternalName: <strong>optional</strong>, the internal name for that currency</p></li><li><p>currencyLayer: <strong>optional</strong>, the internal name of the layer that currency is stored in. If it's not in a layer (like Points), omit. If it's not stored directly in a layer, instead use the next feature.</p></li><li><p>currencyLocation: <strong>optional</strong>, if your currency is stored in something inside a layer (e.g. a buyable's amount), you can access it this way. This is a function returning the object in "player" that contains the value (like player[this.layer].buyables)</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this upgrade, 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'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's the "key" which the upgrade was stored under, for convenient access. The upgrade in the example's id is 11.</p></li></ul>`,10),l=[o];function r(p,i,c,u,d,h){return a(),s("div",null,l)}const f=e(n,[["render",r]]);export{g as __pageData,f as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as s,o as a,a as t}from"./app.e9531dc8.js";const g=JSON.parse('{"title":"Upgrades","description":"","frontmatter":{},"headers":[],"relativePath":"public/gamedevtree/docs/upgrades.md","lastUpdated":null}'),n={name:"public/gamedevtree/docs/upgrades.md"},o=t("",10),l=[o];function r(p,i,c,u,d,h){return a(),s("div",null,l)}const f=e(n,[["render",r]]);export{g as __pageData,f as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as n}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"2.0 format changes","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/Old Things/2.0-format-changes.md","lastUpdated":null}'),i={name:"public/kronos/Old Things/2.0-format-changes.md"},o=n('<h1 id="_2-0-format-changes" tabindex="-1">2.0 format changes <a class="header-anchor" href="#_2-0-format-changes" aria-hidden="true">#</a></h1><ul><li>Temp format is changed from <code>temp.something[layer]</code> to <code>temp[layer].something</code>, for consistency</li><li>Challenges are now saved as an object with the amount of completions in each spot. (This will break saves.)</li><li><code>effectDisplay</code> in Challenges and Upgrades no longer takes an argument, and neither does <code>effect</code> for Buyables</li><li>Buyable cost can take an argument for amount of buyables, but it needs to function if no argument is supplied (it should do the cost for the next purchase).</li><li>Generation of Points now happens in the main game loop (not in a layer update function), enabled by <code>canGenPoints</code> in <a href="js/game.js">game.js</a>.</li><li>Changed <code>fullLayerReset</code> to <code>layerDataReset</code>, which takes an array of names of values to keep</li></ul><p>In addition, many names were changed, mostly expanding abbreviations:</p><p>All instances of:</p><ul><li>chall -> challenge</li><li>unl -> unlocked</li><li>upg -> upgrade (besides CSS)</li><li>amt -> amount</li><li>desc -> description</li><li>resCeil -> roundUpCost</li><li>order -> unlockOrder</li><li>incr_order -> increaseUnlockOrder</li></ul><p>Challenges:</p><ul><li>desc -> challengeDescription</li><li>reward -> rewardDescription</li><li>effect -> rewardEffect</li><li>effectDisplay -> rewardDisplay</li><li>active -> challengeActive</li></ul>',7),l=[o];function s(r,c,d,h,g,p){return t(),a("div",null,l)}const m=e(i,[["render",s]]);export{u as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as n}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"2.0 format changes","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/Old Things/2.0-format-changes.md","lastUpdated":null}'),i={name:"public/kronos/Old Things/2.0-format-changes.md"},o=n("",7),l=[o];function s(r,c,d,h,g,p){return t(),a("div",null,l)}const m=e(i,[["render",s]]);export{u as __pageData,m as default};
|
1
assets/public_kronos_README.md.17bf9897.js
Normal file
1
assets/public_kronos_README.md.17bf9897.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as o,o as t,a}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Kronos","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/README.md","lastUpdated":null}'),r={name:"public/kronos/README.md"},s=a('<h1 id="kronos" tabindex="-1">Kronos <a class="header-anchor" href="#kronos" aria-hidden="true">#</a></h1><p>Play <a href="https://thepaperpilot.org/kronos" target="_blank" rel="noreferrer">here</a>.</p><p>Updating the website:</p><ul><li><code>git submodule update --remote</code></li><li><code>git add -A</code></li><li><code>git commit -m "Updated kronos"</code></li><li><code>git push</code></li></ul>',4),d=[s];function i(n,c,l,_,p,h){return t(),o("div",null,d)}const f=e(r,[["render",i]]);export{m as __pageData,f as default};
|
1
assets/public_kronos_README.md.17bf9897.lean.js
Normal file
1
assets/public_kronos_README.md.17bf9897.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as o,o as t,a}from"./app.e9531dc8.js";const m=JSON.parse('{"title":"Kronos","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/README.md","lastUpdated":null}'),r={name:"public/kronos/README.md"},s=a("",4),d=[s];function i(n,c,l,_,p,h){return t(),o("div",null,d)}const f=e(r,[["render",i]]);export{m as __pageData,f as default};
|
1
assets/public_kronos_changelog.md.e4951500.js
Normal file
1
assets/public_kronos_changelog.md.e4951500.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/public_kronos_changelog.md.e4951500.lean.js
Normal file
1
assets/public_kronos_changelog.md.e4951500.lean.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/public_kronos_docs_!general-info.md.c586db5a.js
Normal file
1
assets/public_kronos_docs_!general-info.md.c586db5a.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a as o}from"./app.e9531dc8.js";const g=JSON.parse('{"title":"The-Modding-Tree","description":"","frontmatter":{},"headers":[{"level":2,"title":"Table of Contents","slug":"table-of-contents","link":"#table-of-contents","children":[{"level":3,"title":"General","slug":"general","link":"#general","children":[]},{"level":3,"title":"Common components","slug":"common-components","link":"#common-components","children":[]},{"level":3,"title":"Other components and features","slug":"other-components-and-features","link":"#other-components-and-features","children":[]}]}],"relativePath":"public/kronos/docs/!general-info.md","lastUpdated":null}'),n={name:"public/kronos/docs/!general-info.md"},r=o("",16),s=[r];function i(l,d,c,h,u,m){return t(),a("div",null,s)}const b=e(n,[["render",i]]);export{g as __pageData,b as default};
|
8
assets/public_kronos_docs_achievements.md.f7a44809.js
Normal file
8
assets/public_kronos_docs_achievements.md.f7a44809.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import{_ as e,c as t,o as a,a as n}from"./app.e9531dc8.js";const v=JSON.parse('{"title":"Achievements","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/achievements.md","lastUpdated":null}'),s={name:"public/kronos/docs/achievements.md"},o=n(`<h1 id="achievements" tabindex="-1">Achievements <a class="header-anchor" href="#achievements" aria-hidden="true">#</a></h1><p>Achievements are awarded to the player when they meet a certain goal, and optionally give some benefit.</p><p>You can make global achievements by putting them in a side layer by making its row equal to "side" instead of a number.</p><p>Useful functions for dealing with achievements and implementing their effects:</p><ul><li>hasAchievement(layer, id): determine if the player has the Achievement.</li><li>achievementEffect(layer, id): Returns the current effects of the achievement, if any.</li></ul><p>Achievements should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">achievements</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> name</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> more </span><span style="color:#A6ACCD;">features</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Usually, each achievement should have an id where the first digit is the row and the second digit is the column.</p><p>Individual achievement can have these features:</p><ul><li><p>name: <strong>optional</strong>. displayed at the top of the achievement. The only visible text. It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>done(): A function returning a boolean to determine if the achievement should be awarded.</p></li><li><p>tooltip: Default tooltip for the achievement, appears when it is hovered over. Should convey the goal and any reward for completing the achievement. It can also be a function that returns updating text. Can use basic HTML. Setting this to "" disables the tooltip.</p></li><li><p>effect(): <strong>optional</strong>. A function that calculates and returns the current values of any bonuses from the achievement. Can return a value or an object containing multiple values.</p></li><li><p>unlocked(): <strong>optional</strong>. A function returning a bool to determine if the achievement is visible or not. Default is unlocked.</p></li><li><p>onComplete() - <strong>optional</strong>. this function will be called when the achievement is completed.</p></li><li><p>image: <strong>optional</strong>, puts the image from the given URL (relative or absolute) in the achievement</p></li><li><p>style: <strong>optional</strong>. Applies CSS to this achievement, 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>textStyle: <strong>optional</strong>. Applies CSS to the text, 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's the same value as the name of this layer, so you can do <code>player[this.layer].points</code> or similar.</p></li><li><p>id: <strong>assigned automagically</strong>. It's the "key" which the achievement was stored under, for convenient access. The achievement in the example's id is 11.</p></li><li><p>goalTooltip: <strong>optional, deprecated</strong>. Appears when the achievement is hovered over and locked, overrides the basic tooltip. This is to display the goal (or a hint). It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>doneTooltip: <strong>optional, deprecated</strong>. Appears when the achievement is hovered over and completed, overrides the basic tooltip. This can display what the player achieved (the goal), and the rewards, if any. It can also be a function that returns updating text. Can use basic HTML.</p></li></ul><p>Disable achievement popups by adding <code>achievementsPopups: false</code> to the layer.</p>`,11),i=[o];function l(p,r,c,h,d,u){return a(),t("div",null,i)}const g=e(s,[["render",l]]);export{v as __pageData,g as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as n}from"./app.e9531dc8.js";const v=JSON.parse('{"title":"Achievements","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/achievements.md","lastUpdated":null}'),s={name:"public/kronos/docs/achievements.md"},o=n("",11),i=[o];function l(p,r,c,h,d,u){return a(),t("div",null,i)}const g=e(s,[["render",l]]);export{v as __pageData,g as default};
|
11
assets/public_kronos_docs_bars.md.71b8cc8a.js
Normal file
11
assets/public_kronos_docs_bars.md.71b8cc8a.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
import{_ as s,c as a,o as n,a as e}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"Bars","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/bars.md","lastUpdated":null}'),o={name:"public/kronos/docs/bars.md"},t=e(`<h1 id="bars" tabindex="-1">Bars <a class="header-anchor" href="#bars" aria-hidden="true">#</a></h1><p>Bars let you display information in a more direct way. It can be a progress bar, health bar, capacity gauge, or anything else.</p><p>Bars are defined like other Big Features:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">bars</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">bigBar</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:#FFCB6B;">direction</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">RIGHT</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">width</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">200</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">height</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">50</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">progress</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:#F78C6C;">0</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Features:</p><ul><li><p>direction: UP, DOWN, LEFT, or RIGHT (not strings). Determines the direction that the bar is filled as it progresses. RIGHT means from left to right.</p></li><li><p>width, height: The size in pixels of the bar, but as numbers (no "px" at the end).</p></li><li><p>progress(): A function that returns the portion of the bar that is filled, from "empty" at 0 to "full" at 1, updating automatically. (Nothing bad happens if the value goes out of these bounds, and it can be a number or <code>Decimal</code>)</p></li><li><p>display(): <strong>optional</strong>. A function that returns text to be displayed on top of the bar, can use HTML.</p></li><li><p>unlocked(): <strong>optional</strong>. A function returning a bool to determine if the bar is visible or not. Default is unlocked.</p></li><li><p>baseStyle, fillStyle, borderStyle, textStyle: <strong>Optional</strong>, Apply CSS to the unfilled portion, filled portion, border, and display text on the bar, 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's the same value as the name of this layer, so you can do <code>player[this.layer].points</code> or similar.</p></li><li><p>id: <strong>assigned automagically</strong>. It's the "key" which the bar was stored under, for convenient access. The bar in the example's id is "bigBar".</p></li></ul>`,6),l=[t];function p(r,i,c,y,d,F){return n(),a("div",null,l)}const b=s(o,[["render",p]]);export{u as __pageData,b as default};
|
1
assets/public_kronos_docs_bars.md.71b8cc8a.lean.js
Normal file
1
assets/public_kronos_docs_bars.md.71b8cc8a.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o as n,a as e}from"./app.e9531dc8.js";const u=JSON.parse('{"title":"Bars","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/bars.md","lastUpdated":null}'),o={name:"public/kronos/docs/bars.md"},t=e("",6),l=[t];function p(r,i,c,y,d,F){return n(),a("div",null,l)}const b=s(o,[["render",p]]);export{u as __pageData,b as default};
|
|
@ -0,0 +1,33 @@
|
|||
import{_ as s,c as n,o as a,a as o}from"./app.e9531dc8.js";const A=JSON.parse('{"title":"Basic layer breakdown","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/basic-layer-breakdown.md","lastUpdated":null}'),l={name:"public/kronos/docs/basic-layer-breakdown.md"},p=o(`<h1 id="basic-layer-breakdown" tabindex="-1">Basic layer breakdown <a class="header-anchor" href="#basic-layer-breakdown" aria-hidden="true">#</a></h1><p>This is a very minimal layer with minimal features. Most things will require additional features.</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#82AAFF;">addLayer</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">p</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">startData</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;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// startData is a function that returns default data for a layer. </span></span>
|
||||
<span class="line"><span style="color:#F07178;"> unlocked</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#FF9CAC;">true</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// You can add more variables here to add them to your layer.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> points</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">0</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// "points" is the internal name for the main resource of the layer.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">color</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#4BDC13</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The color for this layer, which affects many elements.</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">resource</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">prestige points</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The name of this layer's main prestige resource.</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">row</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The row this layer is on (0 is the first row).</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">baseResource</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">points</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The name of the resource your prestige gain is based on.</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">baseAmount</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;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// A function to return the current amount of baseResource.</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">requires</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">new</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">10</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// The amount of the base needed to gain 1 of the prestige currency.</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;">// Also the amount required to unlock the layer.</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">type</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">normal</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// Determines the formula used for calculating prestige currency.</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">exponent</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">0.5</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// "normal" prestige gain is (currency^exponent).</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">gainMult</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Returns your multiplier to your gain of the prestige resource.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">) </span><span style="color:#676E95;">// Factor in any bonuses multiplying gain here.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">gainExp</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#676E95;">// Returns your exponent to your gain of the prestige resource.</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">)</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">layerShown</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;">return</span><span style="color:#F07178;"> </span><span style="color:#FF9CAC;">true</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">// Returns a bool for if this layer's node should be visible in the tree.</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">upgrades</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;">// Look in the upgrades docs to see what goes here!</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span></span>
|
||||
<span class="line"></span></code></pre></div>`,3),e=[p];function r(t,c,y,F,D,i){return a(),n("div",null,e)}const u=s(l,[["render",r]]);export{A as __pageData,u as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as n,o as a,a as o}from"./app.e9531dc8.js";const A=JSON.parse('{"title":"Basic layer breakdown","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/basic-layer-breakdown.md","lastUpdated":null}'),l={name:"public/kronos/docs/basic-layer-breakdown.md"},p=o("",3),e=[p];function r(t,c,y,F,D,i){return a(),n("div",null,e)}const u=s(l,[["render",r]]);export{A as __pageData,u as default};
|
14
assets/public_kronos_docs_buyables.md.8a7e4758.js
Normal file
14
assets/public_kronos_docs_buyables.md.8a7e4758.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
import{_ as s,c as a,o as n,a as e}from"./app.e9531dc8.js";const b=JSON.parse('{"title":"Buyables","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/buyables.md","lastUpdated":null}'),l={name:"public/kronos/docs/buyables.md"},o=e(`<h1 id="buyables" tabindex="-1">Buyables <a class="header-anchor" href="#buyables" aria-hidden="true">#</a></h1><p>Buyables are usually things that can be bought multiple times with scaling costs. They come with optional buttons that can be used for respeccing or selling buyables, among other things.</p><p>The amount of a buyable owned is a <code>Decimal</code>.</p><p>Useful functions for dealing with buyables and implementing their effects:</p><ul><li>getBuyableAmount(layer, id): get the amount of the buyable the player has</li><li>setBuyableAmount(layer, id, amount): set the amount of the buyable the player has</li><li>buyableEffect(layer, id): Returns the current effects of the buyable, if any.</li></ul><p>Buyables should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">buyables</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> cost</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">x</span><span style="color:#89DDFF;">)</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;">new</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">Decimal</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">mul</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">x</span><span style="color:#F07178;">) </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> display</span><span style="color:#89DDFF;">()</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:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> canAfford</span><span style="color:#89DDFF;">()</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:#A6ACCD;">player</span><span style="color:#F07178;">[</span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">layer</span><span style="color:#F07178;">]</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">gte</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">this.</span><span style="color:#82AAFF;">cost</span><span style="color:#F07178;">()) </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> buy</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:#A6ACCD;">player</span><span style="color:#F07178;">[</span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">layer</span><span style="color:#F07178;">]</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">player</span><span style="color:#F07178;">[</span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">layer</span><span style="color:#F07178;">]</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">sub</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">this.</span><span style="color:#82AAFF;">cost</span><span style="color:#F07178;">())</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">setBuyableAmount</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">layer</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">id</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">getBuyableAmount</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">layer</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">this.</span><span style="color:#A6ACCD;">id</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">add</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">1</span><span style="color:#F07178;">))</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></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 "x" to calculate the cost of the x+1th purchase. (x is a <code>Decimal</code>). 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 have an optional argument "x" to calculate the effect of having x of the 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>purchaseLimit: <strong>optional</strong>. The limit on how many of the buyable can be bought. The default is no limit.</p></li><li><p>marked: <strong>optional</strong> Adds a mark to the corner of the buyable. If it's "true" it will be a star, but it can also be an image URL.</p></li><li><p>layer: <strong>assigned automagically</strong>. It's the same value as the name of this layer, so you can do <code>player[this.layer].points</code> or similar.</p></li><li><p>id: <strong>assigned automagically</strong>. It's the "key" which the buyable was stored under, for convenient access. The buyable in the example's id is 11.</p></li></ul><p>Sell One/Sell All:</p><p>Including a <code>sellOne</code> or <code>sellAll</code> function will cause an additional button to appear beneath the buyable. They are functionally identical, but "sell one" appears above "sell all". You can also use them for other things.</p><ul><li><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></li><li><p>canSellOne/canSellAll(): <strong>optional</strong>. booleans determining whether or not to show the buttons. If "canSellOne/All" is absent but "sellOne/All" is present, the appropriate button will always show.</p></li></ul><p>To add a respec button, or something similar, add the respecBuyables function to the main buyables object (not individual buyables). You can use these features along with it:</p><ul><li><p>respec(): <strong>optional</strong>. This is called when the button is pressed (after a toggleable confirmation message).</p></li><li><p>respecText: <strong>optional</strong>. Text to display on the respec Button.</p></li><li><p>showRespec(): <strong>optional</strong>. A function determining whether or not to show the button, if respecBuyables is defined. Defaults to true if absent.</p></li><li><p>respecMessage: <strong>optional</strong>. A custom confirmation message on respec, in place of the default one.</p></li></ul>`,14),t=[o];function p(r,c,i,y,u,F){return n(),a("div",null,t)}const D=s(l,[["render",p]]);export{b as __pageData,D as default};
|
1
assets/public_kronos_docs_buyables.md.8a7e4758.lean.js
Normal file
1
assets/public_kronos_docs_buyables.md.8a7e4758.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o as n,a as e}from"./app.e9531dc8.js";const b=JSON.parse('{"title":"Buyables","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/buyables.md","lastUpdated":null}'),l={name:"public/kronos/docs/buyables.md"},o=e("",14),t=[o];function p(r,c,i,y,u,F){return n(),a("div",null,t)}const D=s(l,[["render",p]]);export{b as __pageData,D as default};
|
10
assets/public_kronos_docs_challenges.md.a51d59ed.js
Normal file
10
assets/public_kronos_docs_challenges.md.a51d59ed.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
import{_ as e,c as n,o as a,a as l}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Challenges","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/challenges.md","lastUpdated":null}'),s={name:"public/kronos/docs/challenges.md"},t=l(`<h1 id="challenges" tabindex="-1">Challenges <a class="header-anchor" href="#challenges" aria-hidden="true">#</a></h1><p>Challenges can have fully customizable win conditions. Useful functions for dealing with Challenges and implementing their effects:</p><ul><li>inChallenge(layer, id): determine if the player is in a given challenge (or another challenge on the same layer that counts as this one).</li><li>hasChallenge(layer, id): determine if the player has completed the challenge.</li><li>challengeCompletions(layer, id): determine how many times the player completed the challenge.</li><li>maxedChallenge(layer, id): determines if the player has reached the maximum completions.</li><li>challengeEffect(layer, id): Returns the current effects of the challenge, if any.</li></ul><p>Challenges are stored in the following format:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">challenges</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> name</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Ouch</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> challengeDescription</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">description of ouchie</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">canComplete</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#C792EA;">function</span><span style="color:#89DDFF;">()</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">gte</span><span style="color:#F07178;">(</span><span style="color:#F78C6C;">100</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></span></code></pre></div><p>Usually, each challenge should have an id where the first digit is the row and the second digit is the column.</p><p>Individual Challenges can have these features:</p><ul><li><p>name: Name of the challenge, can be a string or a function. Can use basic HTML.</p></li><li><p>challengeDescription: A description of what makes the challenge a challenge. <em>You will need to implement these elsewhere.</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>goalDescription: A description of the win condition for the challenge. It can also be a function that returns updating text. Can use basic HTML. (Optional if using the old goal system)</p></li><li><p>canComplete(): A function that returns true if you meet the win condition for the challenge. Returning a number will allow bulk completing the challenge. (Optional if using the old goal system)</p></li><li><p>rewardDescription: A description of the reward's effect. <em>You will also have to implement the effect where it is applied.</em> It can also be a function that returns updating text. Can use basic HTML.</p></li><li><p>rewardEffect(): <strong>optional</strong>. A function that calculates and returns the current values of any bonuses from the reward. Can return a value or an object containing multiple values. Can use basic HTML.</p></li><li><p>rewardDisplay(): <strong>optional</strong>. A function that returns a display of the current effects of the reward with formatting. Default behavior is to just display the a number appropriately formatted.</p></li><li><p>fullDisplay(): <strong>OVERRIDE</strong>. Overrides the other displays and descriptions, and lets you set the full text for the challenge. Can use basic HTML.</p></li><li><p>unlocked(): <strong>optional</strong>. A function returning a bool to determine if the challenge is visible or not. Default is unlocked.</p></li><li><p>onComplete() - <strong>optional</strong>. this function will be called when the challenge is completed when previously incomplete.</p></li><li><p>onEnter() - <strong>optional</strong>. this function will be called when entering the challenge</p></li><li><p>onExit() - <strong>optional</strong>. this function will be called when exiting the challenge in any way</p></li><li><p>countsAs: <strong>optional</strong>. If a challenge combines the effects of other challenges in this layer, you can use this. An array of challenge ids. The player is effectively in all of those challenges when in the current one.</p></li><li><p>completionLimit: <strong>optional</strong>. the amount of times you can complete this challenge. Default is 1 completion.</p></li><li><p>style: <strong>optional</strong>. Applies CSS to this challenge, 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>marked: <strong>optional</strong> Adds a mark to the corner of the challenge. If it's "true" it will be a star, but it can also be an image URL. By default, if the challenge has multiple completions, it will be starred at max completions.</p></li><li><p>layer: <strong>assigned automagically</strong>. It'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's the "key" which the challenge was stored under, for convenient access. The challenge in the example's id is 11.</p></li></ul><p>The old goal system uses these features:</p><ul><li><p>goal: <strong>deprecated</strong>, A Decimal for the amount of currency required to beat the challenge. By default, the goal is in basic Points. The goal can also be a function if its value changes.</p></li><li><p>currencyDisplayName: <strong>deprecated</strong>. the name to display for the currency for the goal</p></li><li><p>currencyInternalName: <strong>deprecated</strong>. the internal name for that currency</p></li><li><p>currencyLayer: <strong>deprecated</strong>. the internal name of the layer that currency is stored in. If it's not in a layer, omit. If it's not stored directly in a layer, instead use the next feature.</p></li><li><p>currencyLocation(): <strong>deprecated</strong>. if your currency is stored in something inside a layer (e.g. a buyable's amount), you can access it this way. This is a function returning the object in "player" that contains the value (like <code>player[this.layer].buyables</code>)</p></li></ul>`,10),o=[t];function i(r,p,c,h,u,g){return a(),n("div",null,o)}const f=e(s,[["render",i]]);export{d as __pageData,f as default};
|
1
assets/public_kronos_docs_challenges.md.a51d59ed.lean.js
Normal file
1
assets/public_kronos_docs_challenges.md.a51d59ed.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as n,o as a,a as l}from"./app.e9531dc8.js";const d=JSON.parse('{"title":"Challenges","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/challenges.md","lastUpdated":null}'),s={name:"public/kronos/docs/challenges.md"},t=l("",10),o=[t];function i(r,p,c,h,u,g){return a(),n("div",null,o)}const f=e(s,[["render",i]]);export{d as __pageData,f as default};
|
8
assets/public_kronos_docs_clickables.md.d8e0c110.js
Normal file
8
assets/public_kronos_docs_clickables.md.d8e0c110.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import{_ as e,c as t,o as a,a as s}from"./app.e9531dc8.js";const f=JSON.parse('{"title":"Clickables","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/clickables.md","lastUpdated":null}'),l={name:"public/kronos/docs/clickables.md"},n=s(`<h1 id="clickables" tabindex="-1">Clickables <a class="header-anchor" href="#clickables" aria-hidden="true">#</a></h1><p>Clickables are any kind of thing that you can click for an effect. They're a more generalized version of Buyables.</p><p>DO NOT USE THESE TO MAKE THINGS THAT YOU CLICK REPEATEDLY FOR A BONUS BECAUSE THOSE ARE AWFUL.</p><p>There are several differences between the two. One is that a buyable's saved data is its amount as a <code>Decimal</code>, while Clickables store a "state" which can be a number or string, but not <code>Decimal</code>, array, or object). Buyables have a number of extra features which you can see on their page. Clickables also have a smaller default size.</p><p>Useful functions for dealing with clickables and implementing their effects:</p><ul><li>getClickableState(layer, id): get the state of the clickable the player has</li><li>setClickableState(layer, id, state): set the state of the clickable the player has</li><li>clickableEffect(layer, id): Returns the current effects of the clickable, if any.</li></ul><p>Clickables should be formatted like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">clickables</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#F78C6C;">11</span><span style="color:#F07178;">: </span><span style="color:#89DDFF;">{</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> display</span><span style="color:#89DDFF;">()</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Blah</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">etc</span></span>
|
||||
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
||||
<span class="line"></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>effect(): <strong>optional</strong>. A function that calculates and returns the current values of bonuses of this clickable. 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 clickable after the title, likely changing based on its state. Can use basic HTML.</p></li><li><p>unlocked(): <strong>optional</strong>. A function returning a bool to determine if the clickable is visible or not. Default is unlocked.</p></li><li><p>canClick(): A function returning a bool to determine if you can click the clickable.</p></li><li><p>onClick(): A function that implements clicking the clickable.</p></li><li><p>onHold(): <strong>optional</strong> A function that is called 20x/sec when the button is held for at least 0.25 seconds.</p></li><li><p>style: <strong>optional</strong>. Applies CSS to this clickable, 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>marked: <strong>optional</strong> Adds a mark to the corner of the clickable. If it's "true" it will be a star, but it can also be an image URL.</p></li><li><p>layer: <strong>assigned automagically</strong>. It's the same value as the name of this layer, so you can do <code>player[this.layer].points</code> or similar.</p></li><li><p>id: <strong>assigned automagically</strong>. It's the "key" which the clickable was stored under, for convenient access. The clickable in the example's id is 11.</p></li></ul><p>You can also use these features on the clickables object to add a button above all the clickables, for implementing a respec button or similar.</p><ul><li><p>masterButtonPress(): <strong>optional</strong>. If present, an additional button will appear above the clickables. Pressing it will call this function.</p></li><li><p>masterButtonText: <strong>optional</strong>. Text to display on the Master Button.</p></li><li><p>showMasterButton(): <strong>optional</strong>. A function determining whether or not to show the button, if masterButtonPress is defined. Defaults to true if absent.</p></li></ul>`,12),o=[n];function i(c,r,p,u,h,d){return a(),t("div",null,o)}const y=e(l,[["render",i]]);export{f as __pageData,y as default};
|
1
assets/public_kronos_docs_clickables.md.d8e0c110.lean.js
Normal file
1
assets/public_kronos_docs_clickables.md.d8e0c110.lean.js
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a as s}from"./app.e9531dc8.js";const f=JSON.parse('{"title":"Clickables","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/clickables.md","lastUpdated":null}'),l={name:"public/kronos/docs/clickables.md"},n=s("",12),o=[n];function i(c,r,p,u,h,d){return a(),t("div",null,o)}const y=e(l,[["render",i]]);export{f as __pageData,y as default};
|
15
assets/public_kronos_docs_custom-tab-layouts.md.264b2f40.js
Normal file
15
assets/public_kronos_docs_custom-tab-layouts.md.264b2f40.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import{_ as s,c as a,o,a as e}from"./app.e9531dc8.js";const F=JSON.parse('{"title":"Custom tab layouts","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/custom-tab-layouts.md","lastUpdated":null}'),t={name:"public/kronos/docs/custom-tab-layouts.md"},n=e(`<h1 id="custom-tab-layouts" tabindex="-1">Custom tab layouts <a class="header-anchor" href="#custom-tab-layouts" aria-hidden="true">#</a></h1><p>Note: If you are using subtabs, <code>tabFormat</code> is used differently, but the same format is used for defining their layouts. <a href="./subtabs-and-microtabs">See here for more on subtabs</a>.</p><p>Custom tab layouts can be used to do basically anything in a tab window, especially combined with the "style" layer feature. The <code>tabFormat</code> feature is an array of things, like this:</p><div class="language-js"><button class="copy"></button><span class="lang">js</span><pre><code><span class="line"><span style="color:#FFCB6B;">tabFormat</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> [</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">main-display</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">prestige-button</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">function</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;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Melt your points into </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">display-text</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">function</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;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">I have </span><span style="color:#89DDFF;">'</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">+</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">format</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">player</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">points</span><span style="color:#F07178;">) </span><span style="color:#89DDFF;">+</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;"> pointy points!</span><span style="color:#89DDFF;">'</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">color</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">red</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">font-size</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">32px</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">font-family</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Comic Sans MS</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">toggle</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">c</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">beep</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">]]</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">milestones</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">upgrades</span><span style="color:#89DDFF;">"</span></span>
|
||||
<span class="line"><span style="color:#A6ACCD;">]</span></span>
|
||||
<span class="line"></span></code></pre></div><p>It is a list of components, which can be either just a name, or an array with arguments. If it's an array, the first item is the name of the component, the second is the data passed into it, and the third (optional) applies a CSS style to it with a "CSS object", where the keys are CSS attributes.</p><p>These are the existing components, but you can create more in <a href="/js/components.js">components.js</a>:</p><ul><li><p>display-text: Displays some text (can use basic HTML). The argument is the text to display. It can also be a function that returns updating text.</p></li><li><p>raw-html: Displays some basic HTML, can also be a function.</p></li><li><p>blank: Adds empty space. The default dimensions are 8px x 17px. The argument changes the dimensions. If it's a single value (e.g. "20px"), that determines the height. If you have a pair of arguments, the first is width and the second is height.</p></li><li><p>row: Display a list of components horizontally. The argument is an array of components in the tab layout format.</p></li><li><p>column: Display a list of components vertically. The argument is an array of components in the tab layout format. This is useful to display columns within a row.</p></li><li><p>main-display: The text that displays the main currency for the layer and its effects. The argument is the amount of precision to use, allowing it to display non-whole numbers.</p></li><li><p>resource-display: The text that displays the currency that this layer is based on, as well as the best and/or total values for this layer's prestige currency (if they are put in <code>startData</code> for this layer).</p></li><li><p>prestige-button: The argument is a string that the prestige button should say before the amount of currency you will gain. It can also be a function that returns updating text.</p></li><li><p>text-input: A text input box. The argument is the name of the variable in player[layer] that the input is for, player[layer][argument] (Works with strings, numbers, and Decimals!)</p></li><li><p>slider: Lets the user input a value with a slider. The argument a 3-element array: [name, min, max]. The name is the name of the variable in player[layer] that the input that the input is for, and min and max are the limits of the slider. (Does not work for Decimal values)</p></li><li><p>upgrades: The layer's upgrades. The argument is optional, and is a the list of rows this component should include, if it doesn't have all of them.</p></li><li><p>milestones, challenges, achievements: Display the upgrades, milestones, and challenges for a layer, as appropriate.</p></li><li><p>buyables, clickables: Display all of the buyables/clickables for this layer, as appropriate. The argument is optional and is the size of the boxes in pixels.</p></li><li><p>microtabs: Display a set of subtabs for an area. The argument is the name of the set of microtabs in the "microtabs" feature.</p></li><li><p>bar: Display a bar. The argument is the id of the bar to display.</p></li><li><p>infobox: Display an infobox. The argument is the id of the infobox to display.</p></li><li><p>tree: Displays a tree. The argument is an array of arrays containing the names of the nodes in the tree (first by row, then by column) <a href="./trees-and-tree-customization">See here for more information on tree layouts and nodes!</a></p></li><li><p>toggle: A toggle button that toggles a bool value. The argument is a pair that identifies the location in player of the bool to toggle, e.g. <code>[layer, id]</code>. 'layer' also affects the color of the toggle.</p></li><li><p>grid: Displays the gridable grid for the layer. If you need more than one grid, use a layer proxy.</p></li><li><p>layer-proxy: Lets you use components from another layer. The argument is a pair, <code>[layer, data]</code>, consisting of the id of the layer to proxy from, and the tabFormat for the components to show. (Note: you cannot use a microtab within a layer proxy)</p></li></ul><p>The rest of the components are sub-components. They can be used just like other components, but are typically part of another component.</p><ul><li><p>upgrade, milestone, challenge, buyable, clickable, achievement, gridable: An individual upgrade, challenge, etc. The argument is the id. This can be used if you want to have upgrades split up across multiple subtabs, for example.</p></li><li><p>respec-button, master-button: The respec and master buttons for buyables and clickables, respectively.</p></li><li><p>sell-one, sell-all: The "sell one" and "sell all" for buyables, respectively. The argument is the id of the buyable.</p></li></ul>`,9),l=[n];function p(r,i,c,y,D,u){return o(),a("div",null,l)}const m=s(t,[["render",p]]);export{F as __pageData,m as default};
|
|
@ -0,0 +1 @@
|
|||
import{_ as s,c as a,o,a as e}from"./app.e9531dc8.js";const F=JSON.parse('{"title":"Custom tab layouts","description":"","frontmatter":{},"headers":[],"relativePath":"public/kronos/docs/custom-tab-layouts.md","lastUpdated":null}'),t={name:"public/kronos/docs/custom-tab-layouts.md"},n=e("",9),l=[n];function p(r,i,c,y,D,u){return o(),a("div",null,l)}const m=s(t,[["render",p]]);export{F as __pageData,m as default};
|
1
assets/public_kronos_docs_getting-started.md.1deda510.js
Normal file
1
assets/public_kronos_docs_getting-started.md.1deda510.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o,a as i}from"./app.e9531dc8.js";const y=JSON.parse('{"title":"Getting started","description":"","frontmatter":{},"headers":[{"level":2,"title":"Getting set up with Github Desktop, Visual Studio Code, and The Modding Tree:","slug":"getting-set-up-with-github-desktop-visual-studio-code-and-the-modding-tree","link":"#getting-set-up-with-github-desktop-visual-studio-code-and-the-modding-tree","children":[{"level":3,"title":"Using your repository","slug":"using-your-repository","link":"#using-your-repository","children":[]}]}],"relativePath":"public/kronos/docs/getting-started.md","lastUpdated":null}'),a={name:"public/kronos/docs/getting-started.md"},n=i("",11),r=[n];function s(l,h,u,d,p,c){return o(),t("div",null,r)}const m=e(a,[["render",s]]);export{y as __pageData,m as default};
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue