This commit is contained in:
thepaperpilot 2022-12-22 19:31:56 +00:00
parent ad0d821d4f
commit 24142295a9
135 changed files with 2173 additions and 171 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<g
id="layer1">
<g
id="g3038-4"
transform="matrix(0.72151136,0,0,0.72151136,-15.136702,-32.285353)">
<path
style="fill:#c68000;fill-opacity:1;stroke:#ff0000;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 23.906542,51.953545 v 6.784524 l 7.17471,2.411957 V 54.36577 Z"
id="path2172-9" />
<path
style="fill:#c68000;fill-opacity:1;stroke:#ffff00;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 36.727057,50.379178 -4.703952,4.474278 v 6.267975 l 4.703952,-3.957997 z"
id="path2170-1" />
<path
style="fill:#c68000;fill-opacity:1;stroke:#007cff;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 29.050764,46.632495 -4.703465,4.474547 7.295877,2.478984 4.703952,-4.474546 z"
id="rect341-6-7" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.72581px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;fill-opacity:1;stroke:#a96625;stroke-width:2.01773;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="25.790016"
y="47.090862"
id="text1338-5"
transform="matrix(0.97261523,0.37895849,-6.3090413e-4,1.02791,0,0)"><tspan
id="tspan1336-5"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.72581px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:2.01773"
x="25.790016"
y="47.090862">A</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9566px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffff00;fill-opacity:1;stroke:#a96625;stroke-width:1.48697;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="34.563576"
y="89.317398"
id="text1338-3-4"
transform="matrix(0.9557019,-0.98598613,-0.00537662,1.0518984,0,0)"><tspan
id="tspan1336-2-1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9566px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1.48697"
x="34.563576"
y="89.317398">B</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.29399px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#007cff;fill-opacity:1;stroke:#a96625;stroke-width:1.88819;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="57.188141"
y="40.191666"
id="text1338-3-1-8"
transform="matrix(0.97874676,0.36894071,-0.74321005,0.74156012,0,0)"><tspan
id="tspan1336-2-3-8"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.29399px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#007cff;fill-opacity:1;stroke:none;stroke-width:1.88819"
x="57.188141"
y="40.191666">C</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/bearmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<g
id="g3038-4-0"
transform="matrix(0.72151136,0,0,0.72151136,-15.399228,-32.2731)">
<path
style="fill:#c68000;fill-opacity:1;stroke:#ff0000;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 23.906542,51.953545 v 6.784524 l 7.17471,2.411957 V 54.36577 Z"
id="path2172-9-0" />
<path
style="fill:#c68000;fill-opacity:1;stroke:#ffff00;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 36.727057,50.379178 -4.703952,4.474278 v 6.267975 l 4.703952,-3.957997 z"
id="path2170-1-3"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#c68000;fill-opacity:1;stroke:#007cff;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 29.050764,46.632495 -4.703465,4.474547 7.295877,2.478984 4.703952,-4.474546 z"
id="rect341-6-7-9" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.72581px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;fill-opacity:1;stroke:#a96625;stroke-width:2.01773;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="25.790016"
y="47.090862"
id="text1338-5-5"
transform="matrix(0.97261523,0.37895849,-6.3090413e-4,1.02791,0,0)"><tspan
sodipodi:role="line"
id="tspan1336-5-3"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.72581px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:2.01773"
x="25.790016"
y="47.090862">A</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9566px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffff00;fill-opacity:1;stroke:#a96625;stroke-width:1.48697;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="34.563576"
y="89.317398"
id="text1338-3-4-1"
transform="matrix(0.9557019,-0.98598613,-0.00537662,1.0518984,0,0)"><tspan
sodipodi:role="line"
id="tspan1336-2-1-1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.9566px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1.48697"
x="34.563576"
y="89.317398">B</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.29399px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#007cff;fill-opacity:1;stroke:#a96625;stroke-width:1.88819;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
x="57.188141"
y="40.191666"
id="text1338-3-1-8-2"
transform="matrix(0.97874676,0.36894071,-0.74321005,0.74156012,0,0)"><tspan
sodipodi:role="line"
id="tspan1336-2-3-8-6"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.29399px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#007cff;fill-opacity:1;stroke:none;stroke-width:1.88819"
x="57.188141"
y="40.191666">C</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/plank.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect26869-0"
style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1.57447;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 8.9568575,2.8688672 H 8.2538855 C 8.0495925,3.4583436 7.4943565,3.8537437 6.8704826,3.8540297 6.246762,3.853566 5.6917407,3.458199 5.4874975,2.8688672 H 4.7494603 C 4.4662894,2.9756729 2.5610989,5.8144429 1.6495357,7.3947727 L 3.3067803,8.2755755 4.7494603,5.679504 V 8.9864795 H 8.9568575 V 5.3301048 L 10.67338,8.3169025 12.283036,7.3513591 C 11.28295,5.5599036 9.4517975,3.1529857 8.9568575,2.8688672 Z"
sodipodi:nodetypes="cccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/wheelmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<path
id="rect26869-0-1"
style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1.42336;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 8.3324321,3.8052463 H 7.6969286 C 7.5122429,4.3381476 7.0102962,4.6955987 6.4462993,4.6958572 5.882441,4.6954377 5.3806884,4.3380165 5.1960477,3.8052463 H 4.5288445 C 4.2728512,3.9018015 2.5505135,6.4681174 1.7264386,7.8967734 L 3.2246273,8.6930392 4.5288445,6.3461293 V 9.3357134 H 8.3324321 V 6.0302643 L 9.8842098,8.7303998 11.339377,7.8575261 C 10.435276,6.238008 8.7798697,4.0620967 8.3324321,3.8052463 Z"
sodipodi:nodetypes="cccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M30.25 42.75q-.95.45-1.9.1t-1.4-1.3l-6.35-13.6-5.9 8.25q-.65.9-1.675.55T12 35.3V7.1q0-.95.85-1.35.85-.4 1.6.15L36.6 23.3q.85.7.475 1.7t-1.425 1h-10.4l6.2 13.45q.45.95.1 1.9t-1.3 1.4Z" fill="white" stroke="black"/></svg>

After

Width:  |  Height:  |  Size: 291 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M13.05 42q-1.2 0-2.1-.9-.9-.9-.9-2.1V10.5H9.5q-.65 0-1.075-.425Q8 9.65 8 9q0-.65.425-1.075Q8.85 7.5 9.5 7.5h7.9q0-.65.425-1.075Q18.25 6 18.9 6h10.2q.65 0 1.075.425.425.425.425 1.075h7.9q.65 0 1.075.425Q40 8.35 40 9q0 .65-.425 1.075-.425.425-1.075.425h-.55V39q0 1.2-.9 2.1-.9.9-2.1.9Zm5.3-8.8q0 .65.425 1.075.425.425 1.075.425.65 0 1.075-.425.425-.425.425-1.075V16.25q0-.65-.425-1.075-.425-.425-1.075-.425-.65 0-1.075.425-.425.425-.425 1.075Zm8.3 0q0 .65.425 1.075.425.425 1.075.425.65 0 1.075-.425.425-.425.425-1.075V16.25q0-.65-.425-1.075-.425-.425-1.075-.425-.65 0-1.075.425-.425.425-.425 1.075Z" fill="white" stroke="black"/></svg>

After

Width:  |  Height:  |  Size: 706 B

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
var w={exports:{}};(function(g){var m=Object.prototype.hasOwnProperty,u="~";function h(){}Object.create&&(h.prototype=Object.create(null),new h().__proto__||(u=!1));function b(s,t,n){this.fn=s,this.context=t,this.once=n||!1}function x(s,t,n,r,l){if(typeof n!="function")throw new TypeError("The listener must be a function");var c=new b(n,r||s,l),o=u?u+t:t;return s._events[o]?s._events[o].fn?s._events[o]=[s._events[o],c]:s._events[o].push(c):(s._events[o]=c,s._eventsCount++),s}function y(s,t){--s._eventsCount===0?s._events=new h:delete s._events[t]}function f(){this._events=new h,this._eventsCount=0}f.prototype.eventNames=function(){var t=[],n,r;if(this._eventsCount===0)return t;for(r in n=this._events)m.call(n,r)&&t.push(u?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(n)):t},f.prototype.listeners=function(t){var n=u?u+t:t,r=this._events[n];if(!r)return[];if(r.fn)return[r.fn];for(var l=0,c=r.length,o=new Array(c);l<c;l++)o[l]=r[l].fn;return o},f.prototype.listenerCount=function(t){var n=u?u+t:t,r=this._events[n];return r?r.fn?1:r.length:0},f.prototype.emit=function(t,n,r,l,c,o){var a=u?u+t:t;if(!this._events[a])return!1;var e=this._events[a],v=arguments.length,p,i;if(e.fn){switch(e.once&&this.removeListener(t,e.fn,void 0,!0),v){case 1:return e.fn.call(e.context),!0;case 2:return e.fn.call(e.context,n),!0;case 3:return e.fn.call(e.context,n,r),!0;case 4:return e.fn.call(e.context,n,r,l),!0;case 5:return e.fn.call(e.context,n,r,l,c),!0;case 6:return e.fn.call(e.context,n,r,l,c,o),!0}for(i=1,p=new Array(v-1);i<v;i++)p[i-1]=arguments[i];e.fn.apply(e.context,p)}else{var d=e.length,_;for(i=0;i<d;i++)switch(e[i].once&&this.removeListener(t,e[i].fn,void 0,!0),v){case 1:e[i].fn.call(e[i].context);break;case 2:e[i].fn.call(e[i].context,n);break;case 3:e[i].fn.call(e[i].context,n,r);break;case 4:e[i].fn.call(e[i].context,n,r,l);break;default:if(!p)for(_=1,p=new Array(v-1);_<v;_++)p[_-1]=arguments[_];e[i].fn.apply(e[i].context,p)}}return!0},f.prototype.on=function(t,n,r){return x(this,t,n,r,!1)},f.prototype.once=function(t,n,r){return x(this,t,n,r,!0)},f.prototype.removeListener=function(t,n,r,l){var c=u?u+t:t;if(!this._events[c])return this;if(!n)return y(this,c),this;var o=this._events[c];if(o.fn)o.fn===n&&(!l||o.once)&&(!r||o.context===r)&&y(this,c);else{for(var a=0,e=[],v=o.length;a<v;a++)(o[a].fn!==n||l&&!o[a].once||r&&o[a].context!==r)&&e.push(o[a]);e.length?this._events[c]=e.length===1?e[0]:e:y(this,c)}return this},f.prototype.removeAllListeners=function(t){var n;return t?(n=u?u+t:t,this._events[n]&&y(this,n)):(this._events=new h,this._eventsCount=0),this},f.prototype.off=f.prototype.removeListener,f.prototype.addListener=f.prototype.on,f.prefixed=u,f.EventEmitter=f,g.exports=f})(w);var E=w.exports;export{E};

View file

@ -0,0 +1 @@
import{_ as T,s as d,p as e,a as l,l as c,D as m,b as s,g as p}from"./index.f6c9d016.js";import"./vue.e305c975.js";import{b1 as v}from"./@vue.359f7754.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.f2f3b7cf.js";import"./is-plain-object.906d88e8.js";import"./vue-next-select.0b2b1d01.js";import"./vue-toastification.d643abb2.js";import"./@pixi.45135ab2.js";import"./eventemitter3.dc5195d7.js";import"./earcut.7c12e2a9.js";import"./url.5a27916e.js";import"./querystring.b35d81f8.js";import"./vuedraggable.96a532dc.js";import"./sortablejs.a0419146.js";import"./vue-textarea-autosize.35804eaf.js";let n=null,o=null;function r(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const f=i;if(l.lastTenTicks.push(f),l.lastTenTicks.length>10&&(l.lastTenTicks=l.lastTenTicks.slice(1)),(o==null?void 0:o.value)&&!e.keepGoing||l.hasNaN||(i=Math.max(i,0),e.devSpeed===0))return;if(c.value=!1,e.offlineTime!=null){if(m.gt(e.offlineTime,s.offlineLimit*3600)&&(e.offlineTime=s.offlineLimit*3600),m.gt(e.offlineTime,0)&&e.devSpeed!==0){const u=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-u,i+=u}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||m.lt(e.offlineTime,0))&&(e.offlineTime=null)}if(i=Math.min(i,s.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),m.eq(i,0))return;e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308);let a=f;for(;a>1;)p.emit("update",i/f,1),a--;p.emit("update",i*a/f,a),d.unthrottled?(requestAnimationFrame(r),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(r,50))}async function M(){o=(await T(()=>import("./index.f6c9d016.js").then(function(t){return t.c}),["assets/index.f6c9d016.js","assets/index.98945109.css","assets/@fontsource.c175eac8.css","assets/vue.e305c975.js","assets/earcut.7c12e2a9.js","assets/@vue.359f7754.js","assets/nanoevents.1080beb7.js","assets/lz-string.f2f3b7cf.js","assets/is-plain-object.906d88e8.js","assets/vue-next-select.0b2b1d01.js","assets/vue-next-select.9e6f4164.css","assets/vue-toastification.d643abb2.js","assets/vue-toastification.4b5f8ac8.css","assets/@pixi.45135ab2.js","assets/eventemitter3.dc5195d7.js","assets/url.5a27916e.js","assets/querystring.b35d81f8.js","assets/vuedraggable.96a532dc.js","assets/sortablejs.a0419146.js","assets/vue-textarea-autosize.35804eaf.js"])).hasWon,v(o,t=>{t&&p.emit("gameWon")}),d.unthrottled?requestAnimationFrame(r):n=setInterval(r,50)}export{M as startGameLoop};

View file

@ -1 +0,0 @@
import{_ as T,s as d,p as e,a as l,l as c,D as m,b as s,g as u}from"./index.f7f45a64.js";import"./vue.92681fcb.js";import{b1 as v}from"./@vue.4ce677c2.js";/* empty css */import"./nanoevents.1080beb7.js";import"./lz-string.731cedc5.js";import"./is-plain-object.906d88e8.js";import"./vue-next-select.a2bfab1d.js";import"./vue-toastification.6f567382.js";import"./vuedraggable.7949458c.js";import"./sortablejs.29100d8a.js";import"./vue-textarea-autosize.35804eaf.js";import"./workbox-window.8d14e8b7.js";let n=null,f=null;function r(){const t=Date.now();let i=(t-e.time)/1e3;e.time=t;const o=i;if(l.lastTenTicks.push(o),l.lastTenTicks.length>10&&(l.lastTenTicks=l.lastTenTicks.slice(1)),(f==null?void 0:f.value)&&!e.keepGoing||l.hasNaN||(i=Math.max(i,0),e.devSpeed===0))return;if(c.value=!1,e.offlineTime!=null){if(m.gt(e.offlineTime,s.offlineLimit*3600)&&(e.offlineTime=s.offlineLimit*3600),m.gt(e.offlineTime,0)&&e.devSpeed!==0){const p=Math.max(e.offlineTime/10,i);e.offlineTime=e.offlineTime-p,i+=p}else e.devSpeed===0&&(e.offlineTime+=i);(!e.offlineProd||m.lt(e.offlineTime,0))&&(e.offlineTime=null)}if(i=Math.min(i,s.maxTickLength),e.devSpeed!=null&&(i*=e.devSpeed),Number.isFinite(i)||(i=1e308),m.eq(i,0))return;e.timePlayed+=i,Number.isFinite(e.timePlayed)||(e.timePlayed=1e308);let a=o;for(;a>1;)u.emit("update",i/o,1),a--;u.emit("update",i*a/o,a),d.unthrottled?(requestAnimationFrame(r),n!=null&&(clearInterval(n),n=null)):n==null&&(n=setInterval(r,50))}async function F(){f=(await T(()=>import("./index.f7f45a64.js").then(function(t){return t.c}),["assets/index.f7f45a64.js","assets/index.f3454416.css","assets/@fontsource.c175eac8.css","assets/vue.92681fcb.js","assets/lz-string.731cedc5.js","assets/@vue.4ce677c2.js","assets/nanoevents.1080beb7.js","assets/is-plain-object.906d88e8.js","assets/vue-next-select.a2bfab1d.js","assets/vue-next-select.9e6f4164.css","assets/vue-toastification.6f567382.js","assets/vue-toastification.4b5f8ac8.css","assets/vuedraggable.7949458c.js","assets/sortablejs.29100d8a.js","assets/vue-textarea-autosize.35804eaf.js","assets/workbox-window.8d14e8b7.js"])).hasWon,v(f,t=>{t&&u.emit("gameWon")}),d.unthrottled?requestAnimationFrame(r):n=setInterval(r,50)}export{F as startGameLoop};

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/bucketpurple.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.42672839"
inkscape:cx="1135.3826"
inkscape:cy="691.30625"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#784421;stroke:#00a7ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:6;paint-order:markers stroke fill"
id="rect524-7"
width="6.3454332"
height="12.690866"
x="3.5424182"
y="0.36970145"
ry="1.9036299"
rx="3.1727166" />
<ellipse
style="fill:#ffbf81;fill-opacity:1;stroke:#00a7ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:6;paint-order:markers stroke fill"
id="path526-5"
cx="6.7776937"
cy="2.3647912"
rx="2.3006427"
ry="1.2401904" />
<ellipse
style="fill:#d67f39;fill-opacity:1;stroke:#00a7ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:6;paint-order:markers stroke fill"
id="path526-7-3"
cx="6.8136473"
cy="2.3468168"
rx="1.5457444"
ry="0.80881977" />
<ellipse
style="fill:#a05a2c;fill-opacity:1;stroke:#00a7ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:6;paint-order:markers stroke fill"
id="path526-7-2-9"
cx="6.849597"
cy="2.3468173"
rx="0.75489843"
ry="0.44934434" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
var O={exports:{}};(function(y){var U=function(){var _=String.fromCharCode,M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",x={};function m(o,r){if(!x[o]){x[o]={};for(var c=0;c<o.length;c++)x[o][o.charAt(c)]=c}return x[o][r]}var d={compressToBase64:function(o){if(o==null)return"";var r=d._compress(o,6,function(c){return M.charAt(c)});switch(r.length%4){default:case 0:return r;case 1:return r+"===";case 2:return r+"==";case 3:return r+"="}},decompressFromBase64:function(o){return o==null?"":o==""?null:d._decompress(o.length,32,function(r){return m(M,o.charAt(r))})},compressToUTF16:function(o){return o==null?"":d._compress(o,15,function(r){return _(r+32)})+" "},decompressFromUTF16:function(o){return o==null?"":o==""?null:d._decompress(o.length,16384,function(r){return o.charCodeAt(r)-32})},compressToUint8Array:function(o){for(var r=d.compress(o),c=new Uint8Array(r.length*2),e=0,t=r.length;e<t;e++){var p=r.charCodeAt(e);c[e*2]=p>>>8,c[e*2+1]=p%256}return c},decompressFromUint8Array:function(o){if(o==null)return d.decompress(o);for(var r=new Array(o.length/2),c=0,e=r.length;c<e;c++)r[c]=o[c*2]*256+o[c*2+1];var t=[];return r.forEach(function(p){t.push(_(p))}),d.decompress(t.join(""))},compressToEncodedURIComponent:function(o){return o==null?"":d._compress(o,6,function(r){return S.charAt(r)})},decompressFromEncodedURIComponent:function(o){return o==null?"":o==""?null:(o=o.replace(/ /g,"+"),d._decompress(o.length,32,function(r){return m(S,o.charAt(r))}))},compress:function(o){return d._compress(o,16,function(r){return _(r)})},_compress:function(o,r,c){if(o==null)return"";var e,t,p={},w={},v="",A="",u="",h=2,a=3,f=2,l=[],n=0,s=0,i;for(i=0;i<o.length;i+=1)if(v=o.charAt(i),Object.prototype.hasOwnProperty.call(p,v)||(p[v]=a++,w[v]=!0),A=u+v,Object.prototype.hasOwnProperty.call(p,A))u=A;else{if(Object.prototype.hasOwnProperty.call(w,u)){if(u.charCodeAt(0)<256){for(e=0;e<f;e++)n=n<<1,s==r-1?(s=0,l.push(c(n)),n=0):s++;for(t=u.charCodeAt(0),e=0;e<8;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1}else{for(t=1,e=0;e<f;e++)n=n<<1|t,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=0;for(t=u.charCodeAt(0),e=0;e<16;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1}h--,h==0&&(h=Math.pow(2,f),f++),delete w[u]}else for(t=p[u],e=0;e<f;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1;h--,h==0&&(h=Math.pow(2,f),f++),p[A]=a++,u=String(v)}if(u!==""){if(Object.prototype.hasOwnProperty.call(w,u)){if(u.charCodeAt(0)<256){for(e=0;e<f;e++)n=n<<1,s==r-1?(s=0,l.push(c(n)),n=0):s++;for(t=u.charCodeAt(0),e=0;e<8;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1}else{for(t=1,e=0;e<f;e++)n=n<<1|t,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=0;for(t=u.charCodeAt(0),e=0;e<16;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1}h--,h==0&&(h=Math.pow(2,f),f++),delete w[u]}else for(t=p[u],e=0;e<f;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1;h--,h==0&&(h=Math.pow(2,f),f++)}for(t=2,e=0;e<f;e++)n=n<<1|t&1,s==r-1?(s=0,l.push(c(n)),n=0):s++,t=t>>1;for(;;)if(n=n<<1,s==r-1){l.push(c(n));break}else s++;return l.join("")},decompress:function(o){return o==null?"":o==""?null:d._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,r,c){var e=[],t=4,p=4,w=3,v="",A=[],u,h,a,f,l,n,s,i={val:c(0),position:r,index:1};for(u=0;u<3;u+=1)e[u]=u;for(a=0,l=Math.pow(2,2),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;switch(a){case 0:for(a=0,l=Math.pow(2,8),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;s=_(a);break;case 1:for(a=0,l=Math.pow(2,16),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;s=_(a);break;case 2:return""}for(e[3]=s,h=s,A.push(s);;){if(i.index>o)return"";for(a=0,l=Math.pow(2,w),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;switch(s=a){case 0:for(a=0,l=Math.pow(2,8),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;e[p++]=_(a),s=p-1,t--;break;case 1:for(a=0,l=Math.pow(2,16),n=1;n!=l;)f=i.val&i.position,i.position>>=1,i.position==0&&(i.position=r,i.val=c(i.index++)),a|=(f>0?1:0)*n,n<<=1;e[p++]=_(a),s=p-1,t--;break;case 2:return A.join("")}if(t==0&&(t=Math.pow(2,w),w++),e[s])v=e[s];else if(s===p)v=h+h.charAt(0);else return null;A.push(v),e[p++]=h+v.charAt(0),t--,h=v,t==0&&(t=Math.pow(2,w),w++)}}};return d}();y!=null&&(y.exports=U)})(O);var j=O.exports;export{j as L};

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/truck.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect341-2-7-9-7"
style="fill:#ffc56c;fill-opacity:0.979522;stroke:#a96625;stroke-width:0.327983;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 9.0178676,4.8149692 0.62785729,6.7333036 4.0522443,7.8968386 12.442484,5.9785036 Z M 12.499583,6.0886154 4.1093442,8.0068239 V 9.7365214 L 12.499583,7.8181874 Z M 0.54220732,6.827559 V 8.5572569 L 3.9097229,9.6893312 V 7.9597594 Z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1 @@
var d={};function C(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var I=function(e,r,t,a){r=r||"&",t=t||"=";var n={};if(typeof e!="string"||e.length===0)return n;var f=/\+/g;e=e.split(r);var i=1e3;a&&typeof a.maxKeys=="number"&&(i=a.maxKeys);var l=e.length;i>0&&l>i&&(l=i);for(var p=0;p<l;++p){var c=e[p].replace(f,"%20"),s=c.indexOf(t),m,g,o,y;s>=0?(m=c.substr(0,s),g=c.substr(s+1)):(m=c,g=""),o=decodeURIComponent(m),y=decodeURIComponent(g),C(n,o)?Array.isArray(n[o])?n[o].push(y):n[o]=[n[o],y]:n[o]=y}return n},u=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}},R=function(e,r,t,a){return r=r||"&",t=t||"=",e===null&&(e=void 0),typeof e=="object"?Object.keys(e).map(function(n){var f=encodeURIComponent(u(n))+t;return Array.isArray(e[n])?e[n].map(function(i){return f+encodeURIComponent(u(i))}).join(r):f+encodeURIComponent(u(e[n]))}).join(r):a?encodeURIComponent(u(a))+t+encodeURIComponent(u(e)):""};d.decode=d.parse=I;d.encode=d.stringify=R;export{d as q};

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M7.9 23.6q-.75 0-1.2-.525-.45-.525-.3-1.225.35-1.55.925-3Q7.9 17.4 8.7 16.05q.4-.65 1.075-.7.675-.05 1.225.5.4.35.45.9.05.55-.2 1-.7 1.15-1.175 2.325Q9.6 21.25 9.35 22.4q-.1.55-.5.875-.4.325-.95.325Zm12.15 20.1q-1.45-.35-2.9-.925Q15.7 42.2 14.4 41.4q-.65-.4-.7-1.1-.05-.7.5-1.3.35-.35.85-.4.5-.05.9.2 1.15.7 2.275 1.175 1.125.475 2.325.775.5.1.85.525.35.425.35.975 0 .75-.5 1.175-.5.425-1.2.275Zm-11.35-8q-.8-1.3-1.375-2.775Q6.75 31.45 6.4 29.85q-.15-.7.275-1.225Q7.1 28.1 7.9 28.1q.5 0 .925.325.425.325.525.875.25 1.25.7 2.425.45 1.175 1.15 2.225.3.45.25 1-.05.55-.45.95-.55.55-1.225.5-.675-.05-1.075-.7Zm19.25 7.95q-.7.2-1.2-.225-.5-.425-.5-1.175 0-.5.35-.925.35-.425.85-.575 5.05-1.35 8.3-5.375Q39 31.35 39 25.85q0-6.35-4.325-10.675Q30.35 10.85 24 10.85h-1l2.85 2.85q.45.45.45 1.1 0 .65-.45 1.1-.45.45-1.1.45-.65 0-1.1-.45l-5.5-5.5q-.25-.25-.35-.5-.1-.25-.1-.55 0-.3.1-.55.1-.25.35-.5l5.5-5.5q.45-.45 1.1-.45.65 0 1.1.45.45.45.45 1.1 0 .65-.45 1.1L23 7.85h1q7.55 0 12.775 5.225Q42 18.3 42 25.85q0 6.55-3.925 11.425Q34.15 42.15 27.95 43.65Z" fill="white" stroke="black"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M40.2 23.6q-.5 0-.925-.35-.425-.35-.525-.85-.25-1.2-.725-2.35-.475-1.15-1.175-2.3-.25-.45-.2-1 .05-.55.45-.95.55-.55 1.25-.475.7.075 1.1.725.8 1.3 1.35 2.725t.9 3.025q.15.7-.3 1.25-.45.55-1.2.55ZM26.3 42.2q0-.5.35-.925.35-.425.85-.525 1.15-.25 2.3-.725t2.3-1.175q.45-.25.975-.225.525.025.925.425.55.55.475 1.25-.075.7-.725 1.1-1.35.85-2.775 1.4-1.425.55-2.875.9-.7.15-1.25-.3-.55-.45-.55-1.2Zm10.8-6.3q-.35-.35-.4-.925-.05-.575.2-1.025.7-1.15 1.15-2.3.45-1.15.7-2.35.1-.5.5-.85t.95-.35q.75 0 1.175.525.425.525.275 1.225-.4 1.6-.95 3.05-.55 1.45-1.3 2.75-.4.65-1.075.725-.675.075-1.225-.475Zm-17.05 7.8Q13.9 42.3 10 37.35q-3.9-4.95-3.9-11.5 0-7.55 5.225-12.775Q16.55 7.85 24.1 7.85h1L22.25 5q-.45-.45-.45-1.1 0-.65.45-1.1.45-.45 1.1-.45.65 0 1.1.45l5.5 5.5q.25.25.35.5.1.25.1.55 0 .3-.1.55-.1.25-.35.5l-5.5 5.5q-.45.45-1.1.45-.65 0-1.1-.45-.45-.45-.45-1.1 0-.65.45-1.1l2.85-2.85h-1q-6.35 0-10.675 4.325Q9.1 19.5 9.1 25.85q0 5.5 3.25 9.525t8.3 5.325q.5.1.85.525.35.425.35.975 0 .75-.55 1.2-.55.45-1.25.3Z" fill="white" stroke="black"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/mixer.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<g
id="g35244-0"
transform="matrix(0.74583387,0,0,0.74583387,33.258384,6.1193729)">
<path
id="path32127-9"
style="fill:#adb0b2;fill-opacity:1;stroke:#838390;stroke-width:0.264583;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -9.7525081,-8.0417446 -0.3136759,1.2474691 -0.559656,-1.1585856 -0.115238,1.2810587 -0.733806,-1.0562663 0.08682,1.2831258 -0.889868,-0.9286254 0.286287,1.254187 -1.024227,-0.7777303 0.479041,1.1937255 -1.133264,-0.6082316 0.659908,1.1038086 -1.214913,-0.4232299 0.824756,0.9870198 -1.266073,-0.2278931 0.968933,0.8459432 -1.286226,-0.026872 1.089339,0.6836792 -1.274341,0.1746663 1.182874,0.5048788 -1.23145,0.3715535 1.247469,0.3141927 -1.158585,0.5596558 1.281575,0.1147217 -1.056783,0.73380532 1.283643,-0.0868164 -0.928626,0.89038493 1.25367,-0.2868042 -0.77773,1.02474365 1.193726,-0.47904053 -0.608232,1.13326413 1.103809,-0.65990801 -0.42323,1.21439611 0.987536,-0.8242391 -0.228409,1.2655559 0.84646,-0.9684164 -0.02739,1.2857097 0.684196,-1.0893392 0.17415,1.2743408 0.5053951,-1.1828735 0.3710368,1.2319661 0.3141927,-1.2474691 0.5596557,1.1580689 0.1147217,-1.2810588 0.7338053,1.0562663 -0.0863,-1.2831258 0.8898682,0.9286255 -0.2862875,-1.254187 1.0242269,0.778247 -0.4790405,-1.19372554 1.1332642,0.60823164 -0.6599081,-1.10432539 1.2143962,0.42322998 -0.8242391,-0.98701986 1.2655558,0.22789307 -0.9684163,-0.8459432 1.2857096,0.0273885 -1.0893392,-0.684196 1.2748576,-0.1741495 -1.1828735,-0.5053956 1.2314493,-0.3715535 -1.247469,-0.3141927 1.1580688,-0.559139 -1.2810587,-0.1152384 1.0562662,-0.7338054 -1.2831258,0.086816 0.9286255,-0.8898681 -1.254187,0.2862874 0.7782471,-1.0242269 -1.1937256,0.4790405 0.6082316,-1.1337809 -1.1043254,0.659908 0.42323,-1.2143961 -0.9870199,0.8247558 0.2278931,-1.2660725 -0.8459432,0.9689331 0.027388,-1.2862264 -0.6841959,1.0893392 -0.1741496,-1.2743409 -0.5053955,1.1828736 z m 0.1576131,4.3707926 a 1.3627795,1.3627795 0 0 1 1.3627076,1.3627075 1.3627795,1.3627795 0 0 1 -1.3627076,1.36270757 1.3627795,1.3627795 0 0 1 -1.363224,-1.36270757 1.3627795,1.3627795 0 0 1 1.363224,-1.3627075 z"
transform="translate(-26.031871,2.5030646)" />
<rect
style="fill:#985800;fill-opacity:1;stroke:none;stroke-width:0.515458;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect32962-5"
width="15.129635"
height="3.8936555"
x="-43.442078"
y="0.16687097" />
<rect
style="fill:#985800;fill-opacity:1;stroke:none;stroke-width:0.17927;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect32962-7-72"
width="2.6143119"
height="2.7255597"
x="-43.386452"
y="-6.674839"
transform="scale(1,-1)" />
<rect
style="fill:#985800;fill-opacity:1;stroke:none;stroke-width:0.17927;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect32962-7-7-9"
width="2.6143119"
height="2.7255597"
x="-30.954567"
y="-6.6470275"
transform="scale(1,-1)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/threadmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g40446"
transform="matrix(0.87900271,0,0,0.87900271,5.4933369,-36.404496)">
<path
id="path39713-5"
style="fill:#c68000;fill-opacity:1;stroke:#a96625;stroke-width:1.12129;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -4.5288074,47.752893 v 5.989299 l 8.130769,1.072803 0.167432,-5.988782 z m 1.465543,1.217497 h 4.688086 v 4.797123 h -4.688086 z" />
<path
style="fill:#c68000;fill-opacity:1;stroke:#a96625;stroke-width:1.05833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 6.7134066,45.546433 -1.809733,0.12527 -0.67945,3.31545 1e-6,5.308012 2.489182,-2.112127 z"
id="path39711-3"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#008000;fill-opacity:1;stroke:#016625;stroke-width:1.19855;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 0.0318616,43.511282 -3.958814,0.364032 -1.368426,3.468355 8.787392,1.816976 0.866615,-3.913416 1.456508,-0.150687 z"
id="rect341-6-6-1"
sodipodi:nodetypes="ccccccc" />
<path
id="rect39773-9"
style="fill:#ff0000;stroke:#016625;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;paint-order:markers stroke fill"
d="m 4.7871916,49.936269 1.429115,-1.005312 v 4.122687 l -1.429115,1.005313 z"
sodipodi:nodetypes="ccccc" />
<ellipse
style="fill:#000000;fill-opacity:1;stroke:#016625;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path40241-3"
cx="5.753943"
cy="51.28479"
rx="0.37829503"
ry="0.42032781" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -1,4 +1,4 @@
import{g as Ue}from"./lz-string.731cedc5.js";/**!
import{g as Ue}from"./earcut.7c12e2a9.js";/**!
* Sortable 1.14.0
* @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com>

View file

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/flaskpurple.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g12610"
transform="matrix(0.5414695,0,0,0.5414695,0.80759611,0.67637776)">
<path
id="path8653-4-3"
style="fill:#b3b3b3;fill-opacity:1;stroke:#848383;stroke-width:0.79375;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 11.038957,13.578825 a 8.6547346,4.1054511 0 0 0 -8.6542531,4.105693 8.6547346,4.1054511 0 0 0 8.6542531,4.105175 8.6547346,4.1054511 0 0 0 8.654769,-4.105175 8.6547346,4.1054511 0 0 0 -8.654769,-4.105693 z m 0.111621,3.304191 a 1.8506517,0.8778733 0 0 1 1.850533,0.877983 1.8506517,0.8778733 0 0 1 -1.850533,0.877982 1.8506517,0.8778733 0 0 1 -1.8510504,-0.877982 1.8506517,0.8778733 0 0 1 1.8510504,-0.877983 z" />
<rect
style="fill:#ff0000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect10624-0-3"
width="12.672419"
height="16.901011"
x="4.7750044"
y="3.6540871"
rx="6.3362093"
ry="3.9148395" />
<path
id="rect10624-0-9-8-7"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646387,15.40327 v 0.413903 c 0,1.849962 2.8263081,3.339427 6.3365643,3.339427 3.510257,0 6.336047,-1.489465 6.336047,-3.339427 V 15.40327 c 0,1.849963 -2.82579,3.339429 -6.336047,3.339429 -3.5102562,0 -6.3365643,-1.489466 -6.3365643,-3.339429 z" />
<path
id="rect10624-0-9-8-9-7"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.7837741,13.86684 v 0.413903 c 0,1.849962 2.8263081,3.339427 6.3365639,3.339427 3.510257,0 6.336047,-1.489465 6.336047,-3.339427 V 13.86684 c 0,1.849963 -2.82579,3.339429 -6.336047,3.339429 -3.5102558,0 -6.3365639,-1.489466 -6.3365639,-3.339429 z" />
<path
id="rect10624-0-9-8-5-3"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.7837737,12.573005 v 0.378233 c 0,1.690535 2.8263084,3.051638 6.3365643,3.051638 3.510257,0 6.336047,-1.361103 6.336047,-3.051638 v -0.378233 c 0,1.690535 -2.82579,3.05164 -6.336047,3.05164 -3.5102559,0 -6.3365643,-1.361105 -6.3365643,-3.05164 z" />
<path
id="rect10624-0-9-8-5-8-2"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,11.077008 v 0.369315 c 0,1.650678 2.8263084,2.979692 6.3365644,2.979692 3.510257,0 6.336047,-1.329014 6.336047,-2.979692 v -0.369315 c 0,1.650678 -2.82579,2.979692 -6.336047,2.979692 -3.510256,0 -6.3365644,-1.329014 -6.3365644,-2.979692 z" />
<path
id="rect10624-0-9-8-5-8-9-5"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,9.6214426 v 0.333645 c 0,1.4912504 2.8263084,2.6919034 6.3365644,2.6919034 3.510257,0 6.336047,-1.200653 6.336047,-2.6919034 v -0.333645 c 0,1.4912504 -2.82579,2.6919034 -6.336047,2.6919034 -3.510256,0 -6.3365644,-1.200653 -6.3365644,-2.6919034 z" />
<path
id="rect10624-0-9-8-5-8-9-9-6"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,8.0041486 v 0.333645 c 0,1.49125 2.8263084,2.6919034 6.3365644,2.6919034 3.510257,0 6.336047,-1.2006534 6.336047,-2.6919034 v -0.333645 c 0,1.49125 -2.82579,2.6919034 -6.336047,2.6919034 -3.510256,0 -6.3365644,-1.2006534 -6.3365644,-2.6919034 z" />
<path
id="path8653-3"
style="fill:#b3b3b3;fill-opacity:1;stroke:#848383;stroke-width:0.79375;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 11.119821,0.72133655 A 8.6547346,4.1054511 0 0 0 2.4655689,4.8270296 8.6547346,4.1054511 0 0 0 11.119821,8.9322046 8.6547346,4.1054511 0 0 0 19.77459,4.8270296 8.6547346,4.1054511 0 0 0 11.119821,0.72133655 Z m 0.111621,3.30419105 a 1.8506517,0.8778733 0 0 1 1.850533,0.877983 1.8506517,0.8778733 0 0 1 -1.850533,0.877982 1.8506517,0.8778733 0 0 1 -1.8510497,-0.877982 1.8506517,0.8778733 0 0 1 1.8510497,-0.877983 z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/truckmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<g
id="g12610-3"
transform="matrix(0.5414695,0,0,0.5414695,0.64501457,0.54978754)">
<path
id="path8653-4-3-7"
style="fill:#b3b3b3;fill-opacity:1;stroke:#848383;stroke-width:0.79375;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 11.038957,13.578825 a 8.6547346,4.1054511 0 0 0 -8.6542531,4.105693 8.6547346,4.1054511 0 0 0 8.6542531,4.105175 8.6547346,4.1054511 0 0 0 8.654769,-4.105175 8.6547346,4.1054511 0 0 0 -8.654769,-4.105693 z m 0.111621,3.304191 a 1.8506517,0.8778733 0 0 1 1.850533,0.877983 1.8506517,0.8778733 0 0 1 -1.850533,0.877982 1.8506517,0.8778733 0 0 1 -1.8510504,-0.877982 1.8506517,0.8778733 0 0 1 1.8510504,-0.877983 z" />
<rect
style="fill:#ff0000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect10624-0-3-9"
width="12.672419"
height="16.901011"
x="4.7750044"
y="3.6540871"
rx="6.3362093"
ry="3.9148395" />
<path
id="rect10624-0-9-8-7-63"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646387,15.40327 v 0.413903 c 0,1.849962 2.8263081,3.339427 6.3365643,3.339427 3.510257,0 6.336047,-1.489465 6.336047,-3.339427 V 15.40327 c 0,1.849963 -2.82579,3.339429 -6.336047,3.339429 -3.5102562,0 -6.3365643,-1.489466 -6.3365643,-3.339429 z" />
<path
id="rect10624-0-9-8-9-7-1"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.7837741,13.86684 v 0.413903 c 0,1.849962 2.8263081,3.339427 6.3365639,3.339427 3.510257,0 6.336047,-1.489465 6.336047,-3.339427 V 13.86684 c 0,1.849963 -2.82579,3.339429 -6.336047,3.339429 -3.5102558,0 -6.3365639,-1.489466 -6.3365639,-3.339429 z" />
<path
id="rect10624-0-9-8-5-3-58"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.7837737,12.573005 v 0.378233 c 0,1.690535 2.8263084,3.051638 6.3365643,3.051638 3.510257,0 6.336047,-1.361103 6.336047,-3.051638 v -0.378233 c 0,1.690535 -2.82579,3.05164 -6.336047,3.05164 -3.5102559,0 -6.3365643,-1.361105 -6.3365643,-3.05164 z" />
<path
id="rect10624-0-9-8-5-8-2-0"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,11.077008 v 0.369315 c 0,1.650678 2.8263084,2.979692 6.3365644,2.979692 3.510257,0 6.336047,-1.329014 6.336047,-2.979692 v -0.369315 c 0,1.650678 -2.82579,2.979692 -6.336047,2.979692 -3.510256,0 -6.3365644,-1.329014 -6.3365644,-2.979692 z" />
<path
id="rect10624-0-9-8-5-8-9-5-9"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,9.6214426 v 0.333645 c 0,1.4912504 2.8263084,2.6919034 6.3365644,2.6919034 3.510257,0 6.336047,-1.200653 6.336047,-2.6919034 v -0.333645 c 0,1.4912504 -2.82579,2.6919034 -6.336047,2.6919034 -3.510256,0 -6.3365644,-1.200653 -6.3365644,-2.6919034 z" />
<path
id="rect10624-0-9-8-5-8-9-9-6-2"
style="fill:#000000;fill-opacity:1;stroke:#848383;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 4.8646386,8.0041486 v 0.333645 c 0,1.49125 2.8263084,2.6919034 6.3365644,2.6919034 3.510257,0 6.336047,-1.2006534 6.336047,-2.6919034 v -0.333645 c 0,1.49125 -2.82579,2.6919034 -6.336047,2.6919034 -3.510256,0 -6.3365644,-1.2006534 -6.3365644,-2.6919034 z" />
<path
id="path8653-3-4"
style="fill:#b3b3b3;fill-opacity:1;stroke:#848383;stroke-width:0.79375;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 11.119821,0.72133655 A 8.6547346,4.1054511 0 0 0 2.4655689,4.8270296 8.6547346,4.1054511 0 0 0 11.119821,8.9322046 8.6547346,4.1054511 0 0 0 19.77459,4.8270296 8.6547346,4.1054511 0 0 0 11.119821,0.72133655 Z m 0.111621,3.30419105 a 1.8506517,0.8778733 0 0 1 1.850533,0.877983 1.8506517,0.8778733 0 0 1 -1.850533,0.877982 1.8506517,0.8778733 0 0 1 -1.8510497,-0.877982 1.8506517,0.8778733 0 0 1 1.8510497,-0.877983 z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="adventwheel.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect20235-0"
is_visible="true"
lpeversion="1"
steps="1"
threshold="0.0047745358"
smooth_angles="0"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
step="1" />
<inkscape:path-effect
effect="powerstroke"
id="path-effect20237-8"
is_visible="true"
lpeversion="1"
offset_points="0.52240775,0.10199491"
not_jump="true"
sort_points="true"
interpolator_type="CentripetalCatmullRom"
interpolator_beta="0.75"
start_linecap_type="round"
linejoin_type="spiro"
miter_limit="4"
scale_width="1"
end_linecap_type="round" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g26023-4"
transform="matrix(0.61165172,0,0,0.61165172,28.298079,18.449863)">
<g
id="g17224-0-0-9"
transform="matrix(0.4171486,0,0,0.4171486,-9.1474259,-11.042004)">
<path
id="path16690-2-0-1-3"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.129633,-14.43988 a 5.2124038,5.2124038 0 0 0 -5.212601,5.2126018 5.2124038,5.2124038 0 0 0 5.212601,5.2120846 5.2124038,5.2124038 0 0 0 5.212602,-5.2120846 5.2124038,5.2124038 0 0 0 -5.212602,-5.2126018 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.0954178 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.0954178 z" />
<path
id="path16692-4-3-9-0"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.286578,-12.355545 a 3.095253,3.095253 0 0 0 -3.095419,3.0954188 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.0954188 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.3550168 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.2899048 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.2718178 l -1.097091,-0.4733558 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.6882688 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
<path
id="rect17292-5"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -42.756047,-18.563208 v 3.875732 h 1.423686 a 2.5077715,2.4277363 0 0 1 -0.01499,-0.258382 2.5077715,2.4277363 0 0 1 2.507857,-2.427759 2.5077715,2.4277363 0 0 1 2.507341,2.427759 2.5077715,2.4277363 0 0 1 -0.01499,0.258382 h 3.38739 a 2.5077715,2.4277363 0 0 1 -0.02429,-0.326078 2.5077715,2.4277363 0 0 1 2.507857,-2.427759 2.5077715,2.4277363 0 0 1 2.507857,2.427759 2.5077715,2.4277363 0 0 1 -0.02377,0.326078 h 1.840715 v -3.875732 z" />
<g
id="g17224-0-2"
transform="matrix(0.4171486,0,0,0.4171486,-17.511009,-11.042004)">
<path
id="path16690-2-0-3"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.129633,-14.43988 a 5.2124038,5.2124038 0 0 0 -5.212601,5.2126018 5.2124038,5.2124038 0 0 0 5.212601,5.2120846 5.2124038,5.2124038 0 0 0 5.212602,-5.2120846 5.2124038,5.2124038 0 0 0 -5.212602,-5.2126018 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.0954178 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.0954178 z" />
<path
id="path16692-4-3-8"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.286578,-12.355545 a 3.095253,3.095253 0 0 0 -3.095419,3.0954188 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.0954188 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.3550168 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.2899048 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.2718178 l -1.097091,-0.4733558 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.6882688 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
<g
id="g20243-7"
transform="matrix(1.6363512,0,0,1.6363512,18.121301,15.24319)">
<path
id="rect17356-8"
style="fill:#0041ff;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;paint-order:markers stroke fill"
d="m -30.720817,-25.172186 v 4.936649 h 3.671611 c -0.09459,-1.223735 -0.09058,-2.537503 -0.775146,-3.957897 -0.546744,-0.355028 -0.822384,-0.661706 -1.305347,-0.774113 -0.44203,-0.102881 -1.090714,-0.01618 -1.591118,-0.204639 z m 0.448552,0.713651 c 0.311362,0.07165 0.71508,0.03892 0.99012,0.07803 0.300511,0.04273 0.472158,0.159587 0.812354,0.294556 0.425951,0.539984 0.423285,1.039078 0.482141,1.5043 h -2.284615 z" />
<path
d="m -30.243376,-21.929625 c 0.05764,0.0069 0.19896,0.028 0.348693,0.04844 0.0053,7.24e-4 0.01062,0.0014 0.01594,0.0022 0.08122,0.0109 0.212633,0.02747 0.347539,0.03064 0.03229,9.33e-4 0.05887,0.0011 0.07507,0.0011 a 0.10199491,0.10199491 90 0 0 0,-0.20399 c -0.01494,0 -0.03945,-1.32e-4 -0.06973,-0.001 -0.12347,-0.0029 -0.245441,-0.01812 -0.325746,-0.0289 -0.0052,-6.92e-4 -0.01032,-0.0014 -0.01548,-0.0021 -0.14568,-0.01989 -0.291702,-0.04167 -0.352122,-0.04888 a 0.10199491,0.10199491 90 0 0 -0.02417,0.202554 z"
id="path-1-44-0"
inkscape:path-effect="#path-effect20235-0;#path-effect20237-8"
inkscape:original-d="m -30.231293,-22.030902 c 0.271427,0.03235 0.487435,0.0816 0.775161,0.0816"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" />
</g>
<path
id="rect20971-4"
style="fill:#ffe700;stroke:#e8cc00;stroke-width:0.506118;stroke-linecap:round;stroke-miterlimit:6;stroke-opacity:1;paint-order:markers stroke fill"
d="m -41.600233,-23.842629 0.727597,5.359722 2.743637,-0.03023 -0.931587,-5.686105 z m 5.743424,-0.780913 0.849902,6.052659 2.498847,-0.152627 -0.115539,-6.297446 z m -8.730559,1.227846 c 0.06844,0.12154 3.188063,4.275104 3.188063,4.275104 l -0.602659,-4.638141 z m 5.867472,-0.775962 0.849991,5.686104 2.539648,0.01056 -0.849991,-6.053286 z"
sodipodi:nodetypes="ccccccccccccccccccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/clothesmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect20235-07-0"
is_visible="true"
lpeversion="1"
steps="1"
threshold="0.0047745358"
smooth_angles="0"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
step="1" />
<inkscape:path-effect
effect="powerstroke"
id="path-effect20237-1-1"
is_visible="true"
lpeversion="1"
offset_points="0.52240775,0.10199491"
not_jump="true"
sort_points="true"
interpolator_type="CentripetalCatmullRom"
interpolator_beta="0.75"
start_linecap_type="round"
linejoin_type="spiro"
miter_limit="4"
scale_width="1"
end_linecap_type="round" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<g
id="g26023-6"
transform="matrix(0.55350165,0,0,0.55350165,26.329747,17.935283)">
<g
id="g17224-0-0-0"
transform="matrix(0.4171486,0,0,0.4171486,-9.1474259,-11.042004)">
<path
id="path16690-2-0-1-9"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.129633,-14.43988 a 5.2124038,5.2124038 0 0 0 -5.212601,5.2126018 5.2124038,5.2124038 0 0 0 5.212601,5.2120846 5.2124038,5.2124038 0 0 0 5.212602,-5.2120846 5.2124038,5.2124038 0 0 0 -5.212602,-5.2126018 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.0954178 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.0954178 z" />
<path
id="path16692-4-3-9-2"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.286578,-12.355545 a 3.095253,3.095253 0 0 0 -3.095419,3.0954188 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.0954188 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.3550168 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.2899048 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.2718178 l -1.097091,-0.4733558 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.6882688 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
<path
id="rect17292-9"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -42.756047,-18.563208 v 3.875732 h 1.423686 a 2.5077715,2.4277363 0 0 1 -0.01499,-0.258382 2.5077715,2.4277363 0 0 1 2.507857,-2.427759 2.5077715,2.4277363 0 0 1 2.507341,2.427759 2.5077715,2.4277363 0 0 1 -0.01499,0.258382 h 3.38739 a 2.5077715,2.4277363 0 0 1 -0.02429,-0.326078 2.5077715,2.4277363 0 0 1 2.507857,-2.427759 2.5077715,2.4277363 0 0 1 2.507857,2.427759 2.5077715,2.4277363 0 0 1 -0.02377,0.326078 h 1.840715 v -3.875732 z" />
<g
id="g17224-0-6"
transform="matrix(0.4171486,0,0,0.4171486,-17.511009,-11.042004)">
<path
id="path16690-2-0-0"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.129633,-14.43988 a 5.2124038,5.2124038 0 0 0 -5.212601,5.2126018 5.2124038,5.2124038 0 0 0 5.212601,5.2120846 5.2124038,5.2124038 0 0 0 5.212602,-5.2120846 5.2124038,5.2124038 0 0 0 -5.212602,-5.2126018 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.0954178 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.0954178 z" />
<path
id="path16692-4-3-2"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -51.286578,-12.355545 a 3.095253,3.095253 0 0 0 -3.095419,3.0954188 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.0954188 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.3550168 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.2899048 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.2718178 l -1.097091,-0.4733558 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.6882688 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
<g
id="g20243-8"
transform="matrix(1.6363512,0,0,1.6363512,18.121301,15.24319)">
<path
id="rect17356-4"
style="fill:#0041ff;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;paint-order:markers stroke fill"
d="m -30.720817,-25.172186 v 4.936649 h 3.671611 c -0.09459,-1.223735 -0.09058,-2.537503 -0.775146,-3.957897 -0.546744,-0.355028 -0.822384,-0.661706 -1.305347,-0.774113 -0.44203,-0.102881 -1.090714,-0.01618 -1.591118,-0.204639 z m 0.448552,0.713651 c 0.311362,0.07165 0.71508,0.03892 0.99012,0.07803 0.300511,0.04273 0.472158,0.159587 0.812354,0.294556 0.425951,0.539984 0.423285,1.039078 0.482141,1.5043 h -2.284615 z" />
<path
d="m -30.24339,-21.929627 c 0.05818,0.0069 0.200813,0.02832 0.351976,0.04888 0.0054,7.28e-4 0.01072,0.0015 0.01609,0.0022 0.08205,0.01096 0.214627,0.02756 0.350896,0.03038 0.02933,7.73e-4 0.05354,8.92e-4 0.06829,8.92e-4 a 0.10199491,0.10199491 90 0 0 0,-0.20399 c -0.0136,0 -0.03593,-1.1e-4 -0.0635,-8.35e-4 -0.124632,-0.0026 -0.247598,-0.0178 -0.328666,-0.02864 -0.0052,-6.96e-4 -0.01041,-0.0014 -0.01562,-0.0021 -0.146982,-0.01999 -0.294314,-0.04202 -0.355276,-0.0493 a 0.10199491,0.10199491 90 0 0 -0.02419,0.20255 z"
id="path-1-44-4"
inkscape:path-effect="#path-effect20235-07-0;#path-effect20237-1-1"
inkscape:original-d="m -30.231293,-22.030902 c 0.271427,0.03235 0.487435,0.0816 0.775161,0.0816"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" />
</g>
<path
id="rect20971-8"
style="fill:#ffe700;stroke:#e8cc00;stroke-width:0.506118;stroke-linecap:round;stroke-miterlimit:6;stroke-opacity:1;paint-order:markers stroke fill"
d="m -41.600233,-23.842629 0.727597,5.359722 2.743637,-0.03023 -0.931587,-5.686105 z m 5.743424,-0.780913 0.849902,6.052659 2.498847,-0.152627 -0.115539,-6.297446 z m -8.730559,1.227846 c 0.06844,0.12154 3.188063,4.275104 3.188063,4.275104 l -0.602659,-4.638141 z m 5.867472,-0.775962 0.849991,5.686104 2.539648,0.01056 -0.849991,-6.053286 z"
sodipodi:nodetypes="ccccccccccccccccccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{g as f}from"./lz-string.731cedc5.js";import{r as i,i as m,N as r,c as u,e as p,a as S,E as h,R as v,b as R,d as C,f as y,g as w,h as g,j as b,k as T,l as E,m as x,n as k,o as M,p as D,q as P,s as V,t as A,u as B,v as H,w as N,x as F,y as U,z,A as I,B as K,C as O,D as j,F as _,G as q,H as W,I as L,J as G,K as $,L as J,M as Q,O as X,P as Y,S as Z,Q as ee,T as ae,U as se,V as oe,W as te,X as re,Y as ne,Z as ie,_ as ce,$ as le,a0 as de,a1 as fe,a2 as me,a3 as ue,a4 as pe,a5 as Se,a6 as he,a7 as ve,a8 as Re,a9 as Ce,aa as ye,ab as we,ac as ge,ad as be,ae as Te,af as Ee,ag as xe,ah as ke,ai as Me,aj as De,ak as Pe,al as Ve,am as Ae,an as Be,ao as He,ap as Ne,aq as Fe,ar as Ue,as as ze,at as Ie,au as Ke,av as Oe,aw as je,ax as _e,ay as qe,az as We,aA as Le,aB as Ge,aC as $e,aD as Je,aE as Qe,aF as Xe,aG as Ye,aH as Ze,aI as ea,aJ as aa,aK as sa,aL as oa,aM as ta,aN as ra,aO as na,aP as ia,aQ as ca,aR as la,aS as da,aT as fa,aU as ma,aV as ua,aW as pa,aX as Sa,aY as ha,aZ as va,a_ as Ra,a$ as Ca,b0 as ya,b1 as wa,b2 as ga,b3 as ba,b4 as Ta,b5 as Ea,b6 as xa,b7 as ka,b8 as Ma,b9 as Da,ba as Pa,bb as Va,bc as Aa,bd as Ba,be as Ha,bf as Na,bg as Fa,bh as Ua,bi as za,bj as Ia,bk as Ka,bl as Oa,bm as ja,bn as _a,bo as qa,bp as Wa,bq as La,br as Ga,bs as $a,bt as Ja,bu as Qa}from"./@vue.4ce677c2.js";const n=Object.create(null);function c(e,l){if(!m(e))if(e.nodeType)e=e.innerHTML;else return r;const a=e,s=n[a];if(s)return s;if(e[0]==="#"){const t=document.querySelector(e);e=t?t.innerHTML:""}const{code:d}=u(e,p({hoistStatic:!0,onError:void 0,onWarn:r},l)),o=new Function("Vue",d)(S);return o._rc=!0,n[a]=o}i(c);var Xa=Object.freeze(Object.defineProperty({__proto__:null,compile:c,EffectScope:h,ReactiveEffect:v,customRef:R,effect:C,effectScope:y,getCurrentScope:w,isProxy:g,isReactive:b,isReadonly:T,isRef:E,isShallow:x,markRaw:k,onScopeDispose:M,proxyRefs:D,reactive:P,readonly:V,ref:A,shallowReactive:B,shallowReadonly:H,shallowRef:N,stop:F,toRaw:U,toRef:z,toRefs:I,triggerRef:K,unref:O,camelize:j,capitalize:_,normalizeClass:q,normalizeProps:W,normalizeStyle:L,toDisplayString:G,toHandlerKey:$,BaseTransition:J,Comment:Q,Fragment:X,KeepAlive:Y,Static:Z,Suspense:ee,Teleport:ae,Text:se,callWithAsyncErrorHandling:oe,callWithErrorHandling:te,cloneVNode:re,compatUtils:ne,computed:ie,createBlock:ce,createCommentVNode:le,createElementBlock:de,createElementVNode:fe,createHydrationRenderer:me,createPropsRestProxy:ue,createRenderer:pe,createSlots:Se,createStaticVNode:he,createTextVNode:ve,createVNode:Re,defineAsyncComponent:Ce,defineComponent:ye,defineEmits:we,defineExpose:ge,defineProps:be,get devtools(){return Te},getCurrentInstance:Ee,getTransitionRawChildren:xe,guardReactiveProps:ke,h:Me,handleError:De,initCustomFormatter:Pe,inject:Ve,isMemoSame:Ae,isRuntimeOnly:Be,isVNode:He,mergeDefaults:Ne,mergeProps:Fe,nextTick:Ue,onActivated:ze,onBeforeMount:Ie,onBeforeUnmount:Ke,onBeforeUpdate:Oe,onDeactivated:je,onErrorCaptured:_e,onMounted:qe,onRenderTracked:We,onRenderTriggered:Le,onServerPrefetch:Ge,onUnmounted:$e,onUpdated:Je,openBlock:Qe,popScopeId:Xe,provide:Ye,pushScopeId:Ze,queuePostFlushCb:ea,registerRuntimeCompiler:i,renderList:aa,renderSlot:sa,resolveComponent:oa,resolveDirective:ta,resolveDynamicComponent:ra,resolveFilter:na,resolveTransitionHooks:ia,setBlockTracking:ca,setDevtoolsHook:la,setTransitionHooks:da,ssrContextKey:fa,ssrUtils:ma,toHandlers:ua,transformVNodeArgs:pa,useAttrs:Sa,useSSRContext:ha,useSlots:va,useTransitionState:Ra,version:Ca,warn:ya,watch:wa,watchEffect:ga,watchPostEffect:ba,watchSyncEffect:Ta,withAsyncContext:Ea,withCtx:xa,withDefaults:ka,withDirectives:Ma,withMemo:Da,withScopeId:Pa,Transition:Va,TransitionGroup:Aa,VueElement:Ba,createApp:Ha,createSSRApp:Na,defineCustomElement:Fa,defineSSRCustomElement:Ua,hydrate:za,initDirectivesForSSR:Ia,render:Ka,useCssModule:Oa,useCssVars:ja,vModelCheckbox:_a,vModelDynamic:qa,vModelRadio:Wa,vModelSelect:La,vModelText:Ga,vShow:$a,withKeys:Ja,withModifiers:Qa},Symbol.toStringTag,{value:"Module"})),es=f(Xa);export{es as r};

View file

@ -0,0 +1 @@
import{g as u}from"./earcut.7c12e2a9.js";import{r as c,i as f,N as n,e as p,c as S,a as h,E as v,R,b as C,d as y,f as g,g as w,h as b,j as E,k as T,l as x,m as k,n as M,o as D,p as P,q as V,s as A,t as B,u as H,v as N,w as F,x as U,y as z,z as I,A as K,B as O,C as j,D as _,F as q,G as W,H as L,I as G,J as $,K as J,L as Q,M as X,O as Y,P as Z,S as ee,Q as ae,T as se,U as te,V as oe,W as re,X as ne,Y as ie,Z as ce,_ as le,$ as de,a0 as me,a1 as ue,a2 as fe,a3 as pe,a4 as Se,a5 as he,a6 as ve,a7 as Re,a8 as Ce,a9 as ye,aa as ge,ab as we,ac as be,ad as Ee,ae as Te,af as xe,ag as ke,ah as Me,ai as De,aj as Pe,ak as Ve,al as Ae,am as Be,an as He,ao as Ne,ap as Fe,aq as Ue,ar as ze,as as Ie,at as Ke,au as Oe,av as je,aw as _e,ax as qe,ay as We,az as Le,aA as Ge,aB as $e,aC as Je,aD as Qe,aE as Xe,aF as Ye,aG as Ze,aH as ea,aI as aa,aJ as sa,aK as ta,aL as oa,aM as ra,aN as na,aO as ia,aP as ca,aQ as la,aR as da,aS as ma,aT as ua,aU as fa,aV as pa,aW as Sa,aX as ha,aY as va,aZ as Ra,a_ as Ca,a$ as ya,b0 as ga,b1 as wa,b2 as ba,b3 as Ea,b4 as Ta,b5 as xa,b6 as ka,b7 as Ma,b8 as Da,b9 as Pa,ba as Va,bb as Aa,bc as Ba,bd as Ha,be as Na,bf as Fa,bg as Ua,bh as za,bi as Ia,bj as Ka,bk as Oa,bl as ja,bm as _a,bn as qa,bo as Wa,bp as La,bq as Ga,br as $a,bs as Ja,bt as Qa,bu as Xa}from"./@vue.359f7754.js";const i=Object.create(null);function l(e,d){if(!f(e))if(e.nodeType)e=e.innerHTML;else return n;const t=e,o=i[t];if(o)return o;if(e[0]==="#"){const a=document.querySelector(e);e=a?a.innerHTML:""}const s=p({hoistStatic:!0,onError:void 0,onWarn:n},d);!s.isCustomElement&&typeof customElements!="undefined"&&(s.isCustomElement=a=>!!customElements.get(a));const{code:m}=S(e,s),r=new Function("Vue",m)(h);return r._rc=!0,i[t]=r}c(l);var Ya=Object.freeze(Object.defineProperty({__proto__:null,compile:l,EffectScope:v,ReactiveEffect:R,customRef:C,effect:y,effectScope:g,getCurrentScope:w,isProxy:b,isReactive:E,isReadonly:T,isRef:x,isShallow:k,markRaw:M,onScopeDispose:D,proxyRefs:P,reactive:V,readonly:A,ref:B,shallowReactive:H,shallowReadonly:N,shallowRef:F,stop:U,toRaw:z,toRef:I,toRefs:K,triggerRef:O,unref:j,camelize:_,capitalize:q,normalizeClass:W,normalizeProps:L,normalizeStyle:G,toDisplayString:$,toHandlerKey:J,BaseTransition:Q,Comment:X,Fragment:Y,KeepAlive:Z,Static:ee,Suspense:ae,Teleport:se,Text:te,callWithAsyncErrorHandling:oe,callWithErrorHandling:re,cloneVNode:ne,compatUtils:ie,computed:ce,createBlock:le,createCommentVNode:de,createElementBlock:me,createElementVNode:ue,createHydrationRenderer:fe,createPropsRestProxy:pe,createRenderer:Se,createSlots:he,createStaticVNode:ve,createTextVNode:Re,createVNode:Ce,defineAsyncComponent:ye,defineComponent:ge,defineEmits:we,defineExpose:be,defineProps:Ee,get devtools(){return Te},getCurrentInstance:xe,getTransitionRawChildren:ke,guardReactiveProps:Me,h:De,handleError:Pe,initCustomFormatter:Ve,inject:Ae,isMemoSame:Be,isRuntimeOnly:He,isVNode:Ne,mergeDefaults:Fe,mergeProps:Ue,nextTick:ze,onActivated:Ie,onBeforeMount:Ke,onBeforeUnmount:Oe,onBeforeUpdate:je,onDeactivated:_e,onErrorCaptured:qe,onMounted:We,onRenderTracked:Le,onRenderTriggered:Ge,onServerPrefetch:$e,onUnmounted:Je,onUpdated:Qe,openBlock:Xe,popScopeId:Ye,provide:Ze,pushScopeId:ea,queuePostFlushCb:aa,registerRuntimeCompiler:c,renderList:sa,renderSlot:ta,resolveComponent:oa,resolveDirective:ra,resolveDynamicComponent:na,resolveFilter:ia,resolveTransitionHooks:ca,setBlockTracking:la,setDevtoolsHook:da,setTransitionHooks:ma,ssrContextKey:ua,ssrUtils:fa,toHandlers:pa,transformVNodeArgs:Sa,useAttrs:ha,useSSRContext:va,useSlots:Ra,useTransitionState:Ca,version:ya,warn:ga,watch:wa,watchEffect:ba,watchPostEffect:Ea,watchSyncEffect:Ta,withAsyncContext:xa,withCtx:ka,withDefaults:Ma,withDirectives:Da,withMemo:Pa,withScopeId:Va,Transition:Aa,TransitionGroup:Ba,VueElement:Ha,createApp:Na,createSSRApp:Fa,defineCustomElement:Ua,defineSSRCustomElement:za,hydrate:Ia,initDirectivesForSSR:Ka,render:Oa,useCssModule:ja,useCssVars:_a,vModelCheckbox:qa,vModelDynamic:Wa,vModelRadio:La,vModelSelect:Ga,vModelText:$a,vShow:Ja,withKeys:Qa,withModifiers:Xa},Symbol.toStringTag,{value:"Module"})),as=u(Ya);export{as as r};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/bear.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="path16690-2"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 6.8071988,1.4435854 a 5.2124038,5.2124038 0 0 0 -5.212601,5.212602 5.2124038,5.2124038 0 0 0 5.212601,5.2120846 5.2124038,5.2124038 0 0 0 5.2126022,-5.2120846 5.2124038,5.2124038 0 0 0 -5.2126022,-5.212602 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.095418 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.095418 z" />
<path
id="path16692-4"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 6.6502538,3.5279204 a 3.095253,3.095253 0 0 0 -3.095419,3.095419 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.095419 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.355017 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.289905 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.271818 l -1.097091,-0.473356 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.688269 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="50"
height="50"
viewBox="0 0 13.229166 13.229167"
version="1.1"
id="svg5"
sodipodi:docname="advent.svg"
inkscape:version="1.2.1 (9c6d41e4, 2022-07-14)"
inkscape:export-filename="advent/blockmaker.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.9158497"
inkscape:cx="92.648188"
inkscape:cy="-32.361621"
inkscape:window-width="1309"
inkscape:window-height="804"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#838390;stroke-width:0.764057;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect28545"
width="12.46511"
height="12.46511"
x="0.38202825"
y="0.38202825"
rx="1.246511" />
<g
id="g37125"
transform="translate(53.449746,54.483305)">
<path
id="path16690-0"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -46.805441,-53.198994 a 5.2124038,5.2124038 0 0 0 -5.212601,5.212602 5.2124038,5.2124038 0 0 0 5.212601,5.212085 5.2124038,5.2124038 0 0 0 5.212602,-5.212085 5.2124038,5.2124038 0 0 0 -5.212602,-5.212602 z m -0.124023,2.117184 a 3.095253,3.095253 0 0 1 3.094901,3.095418 3.095253,3.095253 0 0 1 -3.094901,3.095418 3.095253,3.095253 0 0 1 -3.095418,-3.095418 3.095253,3.095253 0 0 1 3.095418,-3.095418 z" />
<path
id="path16692-2"
style="fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m -46.962386,-51.114659 a 3.095253,3.095253 0 0 0 -3.095419,3.095419 3.095253,3.095253 0 0 0 3.095419,3.095418 3.095253,3.095253 0 0 0 3.095418,-3.095418 3.095253,3.095253 0 0 0 -3.095418,-3.095419 z m 0.295589,0.922425 a 2.1939828,2.1939828 0 0 1 1.627808,1.145666 l -1.200444,0.355017 a 0.99959075,0.99959075 0 0 0 -0.427364,-0.289905 z m -0.720886,0.01757 v 1.219563 a 0.99959075,0.99959075 0 0 0 -0.368453,0.271818 l -1.097091,-0.473356 a 2.1939828,2.1939828 0 0 1 1.465544,-1.018025 z m -1.732194,1.688269 1.127063,0.486275 a 0.99959075,0.99959075 0 0 0 0.10852,0.417029 l -0.788065,0.95498 a 2.1939828,2.1939828 0 0 1 -0.499711,-1.392163 2.1939828,2.1939828 0 0 1 0.05219,-0.466121 z m 4.308781,0.124023 a 2.1939828,2.1939828 0 0 1 0.02687,0.342098 2.1939828,2.1939828 0 0 1 -0.451135,1.328601 l -0.878499,-0.873848 a 0.99959075,0.99959075 0 0 0 0.117822,-0.446485 z m -2.535763,1.260388 a 0.99959075,0.99959075 0 0 0 0.352433,0.0646 0.99959075,0.99959075 0 0 0 0.331246,-0.05736 l 0.902271,0.89762 a 2.1939828,2.1939828 0 0 1 -1.21698,0.37052 2.1939828,2.1939828 0 0 1 -1.149801,-0.327629 z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -0,0 +1,2 @@
try{self["workbox:window:6.5.3"]&&_()}catch{}function S(t,r){return new Promise(function(e){var i=new MessageChannel;i.port1.onmessage=function(f){e(f.data)},t.postMessage(r,[i.port2])})}function W(t,r){for(var e=0;e<r.length;e++){var i=r[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function E(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,i=new Array(r);e<r;e++)i[e]=t[e];return i}function k(t,r){var e;if(typeof Symbol=="undefined"||t[Symbol.iterator]==null){if(Array.isArray(t)||(e=function(f,d){if(f){if(typeof f=="string")return E(f,d);var h=Object.prototype.toString.call(f).slice(8,-1);return h==="Object"&&f.constructor&&(h=f.constructor.name),h==="Map"||h==="Set"?Array.from(f):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?E(f,d):void 0}}(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return(e=t[Symbol.iterator]()).next.bind(e)}try{self["workbox:core:6.5.3"]&&_()}catch{}var y=function(){var t=this;this.promise=new Promise(function(r,e){t.resolve=r,t.reject=e})};function b(t,r){var e=location.href;return new URL(t,e).href===new URL(r,e).href}var g=function(t,r){this.type=t,Object.assign(this,r)};function p(t,r,e){return e?r?r(t):t:(t&&t.then||(t=Promise.resolve(t)),r?t.then(r):t)}function L(){}var j={type:"SKIP_WAITING"};function P(t,r){if(!r)return t&&t.then?t.then(L):Promise.resolve()}var x=function(t){var r,e;function i(v,c){var n,o;return c===void 0&&(c={}),(n=t.call(this)||this).nn={},n.tn=0,n.rn=new y,n.en=new y,n.on=new y,n.un=0,n.an=new Set,n.cn=function(){var s=n.fn,a=s.installing;n.tn>0||!b(a.scriptURL,n.sn.toString())||performance.now()>n.un+6e4?(n.vn=a,s.removeEventListener("updatefound",n.cn)):(n.hn=a,n.an.add(a),n.rn.resolve(a)),++n.tn,a.addEventListener("statechange",n.ln)},n.ln=function(s){var a=n.fn,u=s.target,l=u.state,m=u===n.vn,w={sw:u,isExternal:m,originalEvent:s};!m&&n.mn&&(w.isUpdate=!0),n.dispatchEvent(new g(l,w)),l==="installed"?n.wn=self.setTimeout(function(){l==="installed"&&a.waiting===u&&n.dispatchEvent(new g("waiting",w))},200):l==="activating"&&(clearTimeout(n.wn),m||n.en.resolve(u))},n.dn=function(s){var a=n.hn,u=a!==navigator.serviceWorker.controller;n.dispatchEvent(new g("controlling",{isExternal:u,originalEvent:s,sw:a,isUpdate:n.mn})),u||n.on.resolve(a)},n.gn=(o=function(s){var a=s.data,u=s.ports,l=s.source;return p(n.getSW(),function(){n.an.has(l)&&n.dispatchEvent(new g("message",{data:a,originalEvent:s,ports:u,sw:l}))})},function(){for(var s=[],a=0;a<arguments.length;a++)s[a]=arguments[a];try{return Promise.resolve(o.apply(this,s))}catch(u){return Promise.reject(u)}}),n.sn=v,n.nn=c,navigator.serviceWorker.addEventListener("message",n.gn),n}e=t,(r=i).prototype=Object.create(e.prototype),r.prototype.constructor=r,r.__proto__=e;var f,d,h=i.prototype;return h.register=function(v){var c=(v===void 0?{}:v).immediate,n=c!==void 0&&c;try{var o=this;return function(s,a){var u=s();return u&&u.then?u.then(a):a(u)}(function(){if(!n&&document.readyState!=="complete")return P(new Promise(function(s){return window.addEventListener("load",s)}))},function(){return o.mn=Boolean(navigator.serviceWorker.controller),o.yn=o.pn(),p(o.bn(),function(s){o.fn=s,o.yn&&(o.hn=o.yn,o.en.resolve(o.yn),o.on.resolve(o.yn),o.yn.addEventListener("statechange",o.ln,{once:!0}));var a=o.fn.waiting;return a&&b(a.scriptURL,o.sn.toString())&&(o.hn=a,Promise.resolve().then(function(){o.dispatchEvent(new g("waiting",{sw:a,wasWaitingBeforeRegister:!0}))}).then(function(){})),o.hn&&(o.rn.resolve(o.hn),o.an.add(o.hn)),o.fn.addEventListener("updatefound",o.cn),navigator.serviceWorker.addEventListener("controllerchange",o.dn),o.fn})})}catch(s){return Promise.reject(s)}},h.update=function(){try{return this.fn?P(this.fn.update()):void 0}catch(v){return Promise.reject(v)}},h.getSW=function(){return this.hn!==void 0?Promise.resolve(this.hn):this.rn.promise},h.messageSW=function(v){try{return p(this.getSW(),function(c){return S(c,v)})}catch(c){return Promise.reject(c)}},h.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&S(this.fn.waiting,j)},h.pn=function(){var v=navigator.serviceWorker.controller;return v&&b(v.scriptURL,this.sn.toString())?v:void 0},h.bn=function(){try{var v=this;return function(c,n){try{var o=c()}catch(s){return n(s)}return o&&o.then?o.then(void 0,n):o}(function(){return p(navigator.serviceWorker.register(v.sn,v.nn),function(c){return v.un=performance.now(),c})},function(c){throw c})}catch(c){return Promise.reject(c)}},f=i,(d=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&W(f.prototype,d),i}(function(){function t(){this.Pn=new Map}var r=t.prototype;return r.addEventListener=function(e,i){this.Sn(e).add(i)},r.removeEventListener=function(e,i){this.Sn(e).delete(i)},r.dispatchEvent=function(e){e.target=this;for(var i,f=k(this.Sn(e.type));!(i=f()).done;)(0,i.value)(e)},r.Sn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},t}());export{x as Workbox,g as WorkboxEvent,S as messageSW};

View file

@ -1,2 +0,0 @@
try{self["workbox:window:6.5.3"]&&_()}catch{}function S(t,r){return new Promise(function(e){var o=new MessageChannel;o.port1.onmessage=function(v){e(v.data)},t.postMessage(r,[o.port2])})}function L(t,r){for(var e=0;e<r.length;e++){var o=r[e];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function E(t,r){(r==null||r>t.length)&&(r=t.length);for(var e=0,o=new Array(r);e<r;e++)o[e]=t[e];return o}function W(t,r){var e;if(typeof Symbol=="undefined"||t[Symbol.iterator]==null){if(Array.isArray(t)||(e=function(v,d){if(v){if(typeof v=="string")return E(v,d);var h=Object.prototype.toString.call(v).slice(8,-1);return h==="Object"&&v.constructor&&(h=v.constructor.name),h==="Map"||h==="Set"?Array.from(v):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?E(v,d):void 0}}(t))||r&&t&&typeof t.length=="number"){e&&(t=e);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return(e=t[Symbol.iterator]()).next.bind(e)}try{self["workbox:core:6.5.3"]&&_()}catch{}var y=function(){var t=this;this.promise=new Promise(function(r,e){t.resolve=r,t.reject=e})};function b(t,r){var e=location.href;return new URL(t,e).href===new URL(r,e).href}var g=function(t,r){this.type=t,Object.assign(this,r)};function p(t,r,e){return e?r?r(t):t:(t&&t.then||(t=Promise.resolve(t)),r?t.then(r):t)}function j(){}var k={type:"SKIP_WAITING"};function P(t,r){if(!r)return t&&t.then?t.then(j):Promise.resolve()}var U=function(t){var r,e;function o(f,c){var n,i;return c===void 0&&(c={}),(n=t.call(this)||this).nn={},n.tn=0,n.rn=new y,n.en=new y,n.on=new y,n.un=0,n.an=new Set,n.cn=function(){var s=n.fn,a=s.installing;n.tn>0||!b(a.scriptURL,n.sn.toString())||performance.now()>n.un+6e4?(n.vn=a,s.removeEventListener("updatefound",n.cn)):(n.hn=a,n.an.add(a),n.rn.resolve(a)),++n.tn,a.addEventListener("statechange",n.ln)},n.ln=function(s){var a=n.fn,u=s.target,l=u.state,m=u===n.vn,w={sw:u,isExternal:m,originalEvent:s};!m&&n.mn&&(w.isUpdate=!0),n.dispatchEvent(new g(l,w)),l==="installed"?n.wn=self.setTimeout(function(){l==="installed"&&a.waiting===u&&n.dispatchEvent(new g("waiting",w))},200):l==="activating"&&(clearTimeout(n.wn),m||n.en.resolve(u))},n.dn=function(s){var a=n.hn,u=a!==navigator.serviceWorker.controller;n.dispatchEvent(new g("controlling",{isExternal:u,originalEvent:s,sw:a,isUpdate:n.mn})),u||n.on.resolve(a)},n.gn=(i=function(s){var a=s.data,u=s.ports,l=s.source;return p(n.getSW(),function(){n.an.has(l)&&n.dispatchEvent(new g("message",{data:a,originalEvent:s,ports:u,sw:l}))})},function(){for(var s=[],a=0;a<arguments.length;a++)s[a]=arguments[a];try{return Promise.resolve(i.apply(this,s))}catch(u){return Promise.reject(u)}}),n.sn=f,n.nn=c,navigator.serviceWorker.addEventListener("message",n.gn),n}e=t,(r=o).prototype=Object.create(e.prototype),r.prototype.constructor=r,r.__proto__=e;var v,d,h=o.prototype;return h.register=function(f){var c=(f===void 0?{}:f).immediate,n=c!==void 0&&c;try{var i=this;return function(s,a){var u=s();return u&&u.then?u.then(a):a(u)}(function(){if(!n&&document.readyState!=="complete")return P(new Promise(function(s){return window.addEventListener("load",s)}))},function(){return i.mn=Boolean(navigator.serviceWorker.controller),i.yn=i.pn(),p(i.bn(),function(s){i.fn=s,i.yn&&(i.hn=i.yn,i.en.resolve(i.yn),i.on.resolve(i.yn),i.yn.addEventListener("statechange",i.ln,{once:!0}));var a=i.fn.waiting;return a&&b(a.scriptURL,i.sn.toString())&&(i.hn=a,Promise.resolve().then(function(){i.dispatchEvent(new g("waiting",{sw:a,wasWaitingBeforeRegister:!0}))}).then(function(){})),i.hn&&(i.rn.resolve(i.hn),i.an.add(i.hn)),i.fn.addEventListener("updatefound",i.cn),navigator.serviceWorker.addEventListener("controllerchange",i.dn),i.fn})})}catch(s){return Promise.reject(s)}},h.update=function(){try{return this.fn?P(this.fn.update()):void 0}catch(f){return Promise.reject(f)}},h.getSW=function(){return this.hn!==void 0?Promise.resolve(this.hn):this.rn.promise},h.messageSW=function(f){try{return p(this.getSW(),function(c){return S(c,f)})}catch(c){return Promise.reject(c)}},h.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&S(this.fn.waiting,k)},h.pn=function(){var f=navigator.serviceWorker.controller;return f&&b(f.scriptURL,this.sn.toString())?f:void 0},h.bn=function(){try{var f=this;return function(c,n){try{var i=c()}catch(s){return n(s)}return i&&i.then?i.then(void 0,n):i}(function(){return p(navigator.serviceWorker.register(f.sn,f.nn),function(c){return f.un=performance.now(),c})},function(c){throw c})}catch(c){return Promise.reject(c)}},v=o,(d=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&L(v.prototype,d),o}(function(){function t(){this.Pn=new Map}var r=t.prototype;return r.addEventListener=function(e,o){this.Sn(e).add(o)},r.removeEventListener=function(e,o){this.Sn(e).delete(o)},r.dispatchEvent=function(e){e.target=this;for(var o,v=W(this.Sn(e.type));!(o=v()).done;)(0,o.value)(e)},r.Sn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},t}());export{S as n,U as v};

View file

@ -14,21 +14,25 @@
<title>Advent Incremental</title>
<meta name="description" content="An incremental game you play a day at a time, leading up to Christmas!"/>
<script defer="true" data-domain="thepaperpilot.org" src="https://plausible.io/js/plausible.js"></script>
<script type="module" crossorigin src="./assets/index.f7f45a64.js"></script>
<link rel="modulepreload" href="./assets/lz-string.731cedc5.js">
<link rel="modulepreload" href="./assets/@vue.4ce677c2.js">
<link rel="modulepreload" href="./assets/vue.92681fcb.js">
<script type="module" crossorigin src="./assets/index.f6c9d016.js"></script>
<link rel="modulepreload" href="./assets/earcut.7c12e2a9.js">
<link rel="modulepreload" href="./assets/@vue.359f7754.js">
<link rel="modulepreload" href="./assets/vue.e305c975.js">
<link rel="modulepreload" href="./assets/nanoevents.1080beb7.js">
<link rel="modulepreload" href="./assets/lz-string.f2f3b7cf.js">
<link rel="modulepreload" href="./assets/is-plain-object.906d88e8.js">
<link rel="modulepreload" href="./assets/vue-next-select.a2bfab1d.js">
<link rel="modulepreload" href="./assets/vue-toastification.6f567382.js">
<link rel="modulepreload" href="./assets/sortablejs.29100d8a.js">
<link rel="modulepreload" href="./assets/vuedraggable.7949458c.js">
<link rel="modulepreload" href="./assets/vue-next-select.0b2b1d01.js">
<link rel="modulepreload" href="./assets/vue-toastification.d643abb2.js">
<link rel="modulepreload" href="./assets/eventemitter3.dc5195d7.js">
<link rel="modulepreload" href="./assets/querystring.b35d81f8.js">
<link rel="modulepreload" href="./assets/url.5a27916e.js">
<link rel="modulepreload" href="./assets/@pixi.45135ab2.js">
<link rel="modulepreload" href="./assets/sortablejs.a0419146.js">
<link rel="modulepreload" href="./assets/vuedraggable.96a532dc.js">
<link rel="modulepreload" href="./assets/vue-textarea-autosize.35804eaf.js">
<link rel="modulepreload" href="./assets/workbox-window.8d14e8b7.js">
<link rel="stylesheet" href="./assets/vue-next-select.9e6f4164.css">
<link rel="stylesheet" href="./assets/vue-toastification.4b5f8ac8.css">
<link rel="stylesheet" href="./assets/index.f3454416.css">
<link rel="stylesheet" href="./assets/index.98945109.css">
<link rel="stylesheet" href="./assets/@fontsource.c175eac8.css">
<link rel="manifest" href="./manifest.webmanifest"></head>
<body>

View file

@ -1 +1 @@
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didnt register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let t={};const o=e=>i(e,r),u={module:{uri:r},exports:t,require:o};s[r]=Promise.all(n.map((e=>u[e]||o(e)))).then((e=>(l(...e),t)))}}define(["./workbox-958fa2bd"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"assets/@fontsource.c175eac8.css",revision:null},{url:"assets/@vue.4ce677c2.js",revision:null},{url:"assets/gameLoop.547be5f0.js",revision:null},{url:"assets/index.f3454416.css",revision:null},{url:"assets/index.f7f45a64.js",revision:null},{url:"assets/is-plain-object.906d88e8.js",revision:null},{url:"assets/lz-string.731cedc5.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/sortablejs.29100d8a.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-next-select.a2bfab1d.js",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.6f567382.js",revision:null},{url:"assets/vue.92681fcb.js",revision:null},{url:"assets/vuedraggable.7949458c.js",revision:null},{url:"assets/workbox-window.8d14e8b7.js",revision:null},{url:"index.html",revision:"4cf3203c45db0c1c3871f2db8d1de7d3"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"5f32ad2a77eb001e1b6a588835dc1efc"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didnt register its module`);return s})));self.define=(l,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let t={};const u=s=>i(s,r),o={module:{uri:r},exports:t,require:u};e[r]=Promise.all(l.map((s=>o[s]||u(s)))).then((s=>(n(...s),t)))}}define(["./workbox-7369c0e1"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/@fontsource.c175eac8.css",revision:null},{url:"assets/@pixi.45135ab2.js",revision:null},{url:"assets/@vue.359f7754.js",revision:null},{url:"assets/earcut.7c12e2a9.js",revision:null},{url:"assets/eventemitter3.dc5195d7.js",revision:null},{url:"assets/gameLoop.0776661e.js",revision:null},{url:"assets/index.98945109.css",revision:null},{url:"assets/index.f6c9d016.js",revision:null},{url:"assets/is-plain-object.906d88e8.js",revision:null},{url:"assets/lz-string.f2f3b7cf.js",revision:null},{url:"assets/nanoevents.1080beb7.js",revision:null},{url:"assets/querystring.b35d81f8.js",revision:null},{url:"assets/sortablejs.a0419146.js",revision:null},{url:"assets/url.5a27916e.js",revision:null},{url:"assets/vue-next-select.0b2b1d01.js",revision:null},{url:"assets/vue-next-select.9e6f4164.css",revision:null},{url:"assets/vue-textarea-autosize.35804eaf.js",revision:null},{url:"assets/vue-toastification.4b5f8ac8.css",revision:null},{url:"assets/vue-toastification.d643abb2.js",revision:null},{url:"assets/vue.e305c975.js",revision:null},{url:"assets/vuedraggable.96a532dc.js",revision:null},{url:"assets/workbox-window.4a8794bb.js",revision:null},{url:"index.html",revision:"d5651f663fac66bea1eec3767868d571"},{url:"favicon.ico",revision:"eead31eb5b19fa3bdc34af83d898c0b7"},{url:"robots.txt",revision:"5e0bd1c281a62a380d7a948085bfe2d1"},{url:"apple-touch-icon.png",revision:"26e53bb981d06c8069ffd9d2a14fce0e"},{url:"pwa-192x192.png",revision:"a16785d9e890858c5b508e0ef6954aaf"},{url:"pwa-512x512.png",revision:"b84004b93fd62ef6599ff179372861a1"},{url:"manifest.webmanifest",revision:"5f32ad2a77eb001e1b6a588835dc1efc"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
import{_ as e,c as t,o as a}from"./app.99998402.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!","actions":[{"theme":"brand","text":"My Projects","link":"/projects/"}]}},"headers":[],"relativePath":"index.md","lastUpdated":1671670322000}`),o={name:"index.md"};function n(r,s,i,c,d,p){return a(),t("div")}const h=e(o,[["render",n]]);export{m as __pageData,h as default};
import{_ as e,c as t,o as a}from"./app.99998402.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!","actions":[{"theme":"brand","text":"My Projects","link":"/projects/"}]}},"headers":[],"relativePath":"index.md","lastUpdated":1671737470000}`),o={name:"index.md"};function n(r,s,i,c,d,p){return a(),t("div")}const h=e(o,[["render",n]]);export{m as __pageData,h as default};

View file

@ -1 +1 @@
import{_ as e,c as t,o as a}from"./app.99998402.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!","actions":[{"theme":"brand","text":"My Projects","link":"/projects/"}]}},"headers":[],"relativePath":"index.md","lastUpdated":1671670322000}`),o={name:"index.md"};function n(r,s,i,c,d,p){return a(),t("div")}const h=e(o,[["render",n]]);export{m as __pageData,h as default};
import{_ as e,c as t,o as a}from"./app.99998402.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!","actions":[{"theme":"brand","text":"My Projects","link":"/projects/"}]}},"headers":[],"relativePath":"index.md","lastUpdated":1671737470000}`),o={name:"index.md"};function n(r,s,i,c,d,p){return a(),t("div")}const h=e(o,[["render",n]]);export{m as __pageData,h as default};

View file

@ -1 +1 @@
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const s="/assets/screenshot.3bf794a2.png",o="/assets/babblemmscreenshot.7646b6c2.png",g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"title":"Babble Buds"},"headers":[{"level":2,"title":"Engine","slug":"engine","link":"#engine","children":[]},{"level":2,"title":"Babble Movie Maker","slug":"babble-movie-maker","link":"#babble-movie-maker","children":[]}],"relativePath":"projects/babble/index.md","lastUpdated":1671670322000}'),n={name:"projects/babble/index.md"},i=r('<h1 id="babble-buds" tabindex="-1">Babble Buds <a class="header-anchor" href="#babble-buds" aria-hidden="true">#</a></h1><p><a href="http://babblebuds.xyz/" target="_blank" rel="noreferrer">Babble Buds Homepage</a></p><p>Source Code:</p><ul><li><a href="https://github.com/thepaperpilot/Babble-Buds" target="_blank" rel="noreferrer">Babble Buds</a></li><li><a href="https://github.com/thepaperpilot/BabbleMovieMaker" target="_blank" rel="noreferrer">Babble Movie Maker</a></li><li><a href="https://github.com/thepaperpilot/babble.js" target="_blank" rel="noreferrer">babble.js</a></li><li><a href="https://github.com/thepaperpilot/babble.cs" target="_blank" rel="noreferrer">babble.cs</a></li></ul><p>Babble buds is a free, open-source virtual puppet show software. It is heavily based on the non-public software called &quot;Puppet Pals&quot;, used in URealms Live. The software is written in javascript using React, a rendering library called PIXI.js, and electron.</p><p>Users can create puppets with different faces for different emotions, and then use the puppet on a stage where you and other users can each make your respective puppets move, change emotions, and &quot;babble&quot; at each other. The stage has a green screen feature and can be popped out, which gives the users tons of possibilities in terms of using the program for a role-playing live stream, faux video chatting with friends, game development, or whatever else you want!</p><p>Users can connect to the public server and create private rooms so that they and their friends can see each other&#39;s puppets and use the software however they please. For the security conscious, you can also use the server&#39;s source code to self-host your private server.</p><p><img src="'+s+'" alt="Babble Buds Screenshot"></p><h2 id="engine" tabindex="-1">Engine <a class="header-anchor" href="#engine" aria-hidden="true">#</a></h2><p>The engine originally made to make the Babble Buds program was separated into a separate engine called <code>babble.js</code>, so that projects created in Babble Buds can be used in other projects. For example, a game can create puppets in Babble Buds and then use them for cutscenes or player agency inside of the game. Additionally, it has been ported to C# (called <code>babble.cs</code>) for use with Unity, for the same kinds of purposes. You can check out <a href="https://thepaperpilot.itch.io/tower-offense" target="_blank" rel="noreferrer">Tower Offense</a> for a pixi.js game using Babble Buds puppets for the cutscenes, or <a href="./../dice/">Dice Armor</a> for a unity game using Babble Buds puppets for the cutscenes.</p><h2 id="babble-movie-maker" tabindex="-1">Babble Movie Maker <a class="header-anchor" href="#babble-movie-maker" aria-hidden="true">#</a></h2><p>Babble Movie Maker is a cutscene editor for Babble Buds puppets. You open a babble buds project in it, and you can add actors to a stage and have them move and change expressions, etc., on a timeline. You can then use the cutscene in a game using <code>babble.js</code> or <code>babble.cs</code>, or export the cutscene into a video file. There is even support for defining custom commands with custom fields, so that if you&#39;ve expanded upon the default actions provided in <code>babble.js</code> or <code>babble.cs</code>, you can still use Movie Maker to create your cutscenes.</p><p><img src="'+o+'" alt="Babble MM Screenshot"></p>',13),b=[i];function c(l,p,d,h,u,f){return t(),a("div",null,b)}const v=e(n,[["render",c]]);export{g as __pageData,v as default};
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const s="/assets/screenshot.3bf794a2.png",o="/assets/babblemmscreenshot.7646b6c2.png",g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"title":"Babble Buds"},"headers":[{"level":2,"title":"Engine","slug":"engine","link":"#engine","children":[]},{"level":2,"title":"Babble Movie Maker","slug":"babble-movie-maker","link":"#babble-movie-maker","children":[]}],"relativePath":"projects/babble/index.md","lastUpdated":1671737470000}'),n={name:"projects/babble/index.md"},i=r('<h1 id="babble-buds" tabindex="-1">Babble Buds <a class="header-anchor" href="#babble-buds" aria-hidden="true">#</a></h1><p><a href="http://babblebuds.xyz/" target="_blank" rel="noreferrer">Babble Buds Homepage</a></p><p>Source Code:</p><ul><li><a href="https://github.com/thepaperpilot/Babble-Buds" target="_blank" rel="noreferrer">Babble Buds</a></li><li><a href="https://github.com/thepaperpilot/BabbleMovieMaker" target="_blank" rel="noreferrer">Babble Movie Maker</a></li><li><a href="https://github.com/thepaperpilot/babble.js" target="_blank" rel="noreferrer">babble.js</a></li><li><a href="https://github.com/thepaperpilot/babble.cs" target="_blank" rel="noreferrer">babble.cs</a></li></ul><p>Babble buds is a free, open-source virtual puppet show software. It is heavily based on the non-public software called &quot;Puppet Pals&quot;, used in URealms Live. The software is written in javascript using React, a rendering library called PIXI.js, and electron.</p><p>Users can create puppets with different faces for different emotions, and then use the puppet on a stage where you and other users can each make your respective puppets move, change emotions, and &quot;babble&quot; at each other. The stage has a green screen feature and can be popped out, which gives the users tons of possibilities in terms of using the program for a role-playing live stream, faux video chatting with friends, game development, or whatever else you want!</p><p>Users can connect to the public server and create private rooms so that they and their friends can see each other&#39;s puppets and use the software however they please. For the security conscious, you can also use the server&#39;s source code to self-host your private server.</p><p><img src="'+s+'" alt="Babble Buds Screenshot"></p><h2 id="engine" tabindex="-1">Engine <a class="header-anchor" href="#engine" aria-hidden="true">#</a></h2><p>The engine originally made to make the Babble Buds program was separated into a separate engine called <code>babble.js</code>, so that projects created in Babble Buds can be used in other projects. For example, a game can create puppets in Babble Buds and then use them for cutscenes or player agency inside of the game. Additionally, it has been ported to C# (called <code>babble.cs</code>) for use with Unity, for the same kinds of purposes. You can check out <a href="https://thepaperpilot.itch.io/tower-offense" target="_blank" rel="noreferrer">Tower Offense</a> for a pixi.js game using Babble Buds puppets for the cutscenes, or <a href="./../dice/">Dice Armor</a> for a unity game using Babble Buds puppets for the cutscenes.</p><h2 id="babble-movie-maker" tabindex="-1">Babble Movie Maker <a class="header-anchor" href="#babble-movie-maker" aria-hidden="true">#</a></h2><p>Babble Movie Maker is a cutscene editor for Babble Buds puppets. You open a babble buds project in it, and you can add actors to a stage and have them move and change expressions, etc., on a timeline. You can then use the cutscene in a game using <code>babble.js</code> or <code>babble.cs</code>, or export the cutscene into a video file. There is even support for defining custom commands with custom fields, so that if you&#39;ve expanded upon the default actions provided in <code>babble.js</code> or <code>babble.cs</code>, you can still use Movie Maker to create your cutscenes.</p><p><img src="'+o+'" alt="Babble MM Screenshot"></p>',13),b=[i];function c(l,p,d,h,u,f){return t(),a("div",null,b)}const v=e(n,[["render",c]]);export{g as __pageData,v as default};

View file

@ -1 +1 @@
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const s="/assets/screenshot.3bf794a2.png",o="/assets/babblemmscreenshot.7646b6c2.png",g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"title":"Babble Buds"},"headers":[{"level":2,"title":"Engine","slug":"engine","link":"#engine","children":[]},{"level":2,"title":"Babble Movie Maker","slug":"babble-movie-maker","link":"#babble-movie-maker","children":[]}],"relativePath":"projects/babble/index.md","lastUpdated":1671670322000}'),n={name:"projects/babble/index.md"},i=r("",13),b=[i];function c(l,p,d,h,u,f){return t(),a("div",null,b)}const v=e(n,[["render",c]]);export{g as __pageData,v as default};
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const s="/assets/screenshot.3bf794a2.png",o="/assets/babblemmscreenshot.7646b6c2.png",g=JSON.parse('{"title":"Babble Buds","description":"","frontmatter":{"title":"Babble Buds"},"headers":[{"level":2,"title":"Engine","slug":"engine","link":"#engine","children":[]},{"level":2,"title":"Babble Movie Maker","slug":"babble-movie-maker","link":"#babble-movie-maker","children":[]}],"relativePath":"projects/babble/index.md","lastUpdated":1671737470000}'),n={name:"projects/babble/index.md"},i=r("",13),b=[i];function c(l,p,d,h,u,f){return t(),a("div",null,b)}const v=e(n,[["render",c]]);export{g as __pageData,v as default};

View file

@ -1 +1 @@
import{_ as a,c as r,o as s,a as e,b as t}from"./app.99998402.js";const n="/assets/screenshot.f2631300.png",C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"title":"Capture the Citadel"},"headers":[],"relativePath":"projects/citadel/index.md","lastUpdated":1671670322000}'),o={name:"projects/citadel/index.md"},i=e("h1",{id:"capture-the-citadel",tabindex:"-1"},[t("Capture the Citadel "),e("a",{class:"header-anchor",href:"#capture-the-citadel","aria-hidden":"true"},"#")],-1),c=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),d=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),l=e("p",null,[e("img",{src:n,alt:"Screenshot"})],-1),h=[i,c,d,l];function p(_,u,f,m,g,b){return s(),r("div",null,h)}const v=a(o,[["render",p]]);export{C as __pageData,v as default};
import{_ as a,c as r,o as s,a as e,b as t}from"./app.99998402.js";const n="/assets/screenshot.f2631300.png",C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"title":"Capture the Citadel"},"headers":[],"relativePath":"projects/citadel/index.md","lastUpdated":1671737470000}'),o={name:"projects/citadel/index.md"},i=e("h1",{id:"capture-the-citadel",tabindex:"-1"},[t("Capture the Citadel "),e("a",{class:"header-anchor",href:"#capture-the-citadel","aria-hidden":"true"},"#")],-1),c=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),d=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),l=e("p",null,[e("img",{src:n,alt:"Screenshot"})],-1),h=[i,c,d,l];function p(_,u,f,m,g,b){return s(),r("div",null,h)}const v=a(o,[["render",p]]);export{C as __pageData,v as default};

View file

@ -1 +1 @@
import{_ as a,c as r,o as s,a as e,b as t}from"./app.99998402.js";const n="/assets/screenshot.f2631300.png",C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"title":"Capture the Citadel"},"headers":[],"relativePath":"projects/citadel/index.md","lastUpdated":1671670322000}'),o={name:"projects/citadel/index.md"},i=e("h1",{id:"capture-the-citadel",tabindex:"-1"},[t("Capture the Citadel "),e("a",{class:"header-anchor",href:"#capture-the-citadel","aria-hidden":"true"},"#")],-1),c=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),d=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),l=e("p",null,[e("img",{src:n,alt:"Screenshot"})],-1),h=[i,c,d,l];function p(_,u,f,m,g,b){return s(),r("div",null,h)}const v=a(o,[["render",p]]);export{C as __pageData,v as default};
import{_ as a,c as r,o as s,a as e,b as t}from"./app.99998402.js";const n="/assets/screenshot.f2631300.png",C=JSON.parse('{"title":"Capture the Citadel","description":"","frontmatter":{"title":"Capture the Citadel"},"headers":[],"relativePath":"projects/citadel/index.md","lastUpdated":1671737470000}'),o={name:"projects/citadel/index.md"},i=e("h1",{id:"capture-the-citadel",tabindex:"-1"},[t("Capture the Citadel "),e("a",{class:"header-anchor",href:"#capture-the-citadel","aria-hidden":"true"},"#")],-1),c=e("p",null,"A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee for their VR class in college's final project.",-1),d=e("p",null,[t("For more details, visit "),e("a",{href:"https://grantcbarbee.github.io/conquer-the-citadel.html",target:"_blank",rel:"noreferrer"},"Grant's page on the game"),t(".")],-1),l=e("p",null,[e("img",{src:n,alt:"Screenshot"})],-1),h=[i,c,d,l];function p(_,u,f,m,g,b){return s(),r("div",null,h)}const v=a(o,[["render",p]]);export{C as __pageData,v as default};

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
import{_ as e,c as t,o as a,d as i}from"./app.99998402.js";const o="/assets/da2.57c7af0b.png",s="/assets/editors.c2eaa93b.png",n="/assets/simulator.7ede7b83.jpg",r="/assets/da1.ae7a2bb1.png",h="/assets/da6.5b5d63de.png",d="/assets/da7.b7b33663.png",l="/assets/da8.d623c64f.png",c="/assets/da3.e16fb4de.png",p="/assets/da9.35a2db61.png",I=JSON.parse('{"title":"Dice Armor","description":"","frontmatter":{"title":"Dice Armor"},"headers":[],"relativePath":"projects/dice/index.md","lastUpdated":1671670322000}'),g={name:"projects/dice/index.md"},m=i("",22),u=[m];function f(y,b,w,_,v,k){return a(),t("div",null,u)}const q=e(g,[["render",f]]);export{I as __pageData,q as default};
import{_ as e,c as t,o as a,d as i}from"./app.99998402.js";const o="/assets/da2.57c7af0b.png",s="/assets/editors.c2eaa93b.png",n="/assets/simulator.7ede7b83.jpg",r="/assets/da1.ae7a2bb1.png",h="/assets/da6.5b5d63de.png",d="/assets/da7.b7b33663.png",l="/assets/da8.d623c64f.png",c="/assets/da3.e16fb4de.png",p="/assets/da9.35a2db61.png",I=JSON.parse('{"title":"Dice Armor","description":"","frontmatter":{"title":"Dice Armor"},"headers":[],"relativePath":"projects/dice/index.md","lastUpdated":1671737470000}'),g={name:"projects/dice/index.md"},m=i("",22),u=[m];function f(y,b,w,_,v,k){return a(),t("div",null,u)}const q=e(g,[["render",f]]);export{I as __pageData,q as default};

View file

@ -1 +1 @@
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const f=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects","lastUpdated":false},"headers":[],"relativePath":"projects/index.md","lastUpdated":1671670322000}'),n={name:"projects/index.md"},s=r('<h1 id="games" tabindex="-1">Games! <a class="header-anchor" href="#games" aria-hidden="true">#</a></h1><p>I make games regularly! Check them out in the sidebar or on my <a href="https://thepaperpilot.itch.io/" target="_blank" rel="noreferrer">itch.io</a> page.</p><h1 id="profectus" tabindex="-1">Profectus! <a class="header-anchor" href="#profectus" aria-hidden="true">#</a></h1><p>I contributed to a modding framework called The Modding Tree and then made <a href="https://moddingtree.com" target="_blank" rel="noreferrer">Profectus</a> as an alternative that gives developers more control. Profectus is a game engine for the web that uses TS and Vue.</p><h1 id="v-ecs" tabindex="-1"><a href="./vecs/">V-ecs!</a> <a class="header-anchor" href="#v-ecs" aria-hidden="true">#</a></h1><p>V-ecs (pronounced &quot;Vex&quot;) is a Vulkan-based engine I made for making highly moddable games and tools in Lua centered around the ECS design pattern and a work-stealing job system.</p><h1 id="optispeech" tabindex="-1"><a href="./optispeech/">OptiSpeech!</a> <a class="header-anchor" href="#optispeech" aria-hidden="true">#</a></h1><p>I led a team updating a legacy Unity project for research on speech therapy to use a modern version with a focus on extensibility to facilitate future maintenance and features.</p><h1 id="babble-buds" tabindex="-1"><a href="./babble/">Babble Buds!</a> <a class="header-anchor" href="#babble-buds" aria-hidden="true">#</a></h1><p>Babble Buds is a free, open-source virtual puppet show engine I made for various platforms including HTLM5 and Unity, as well as an accompanying electron-based puppet editor and multiplayer stage.</p><h1 id="dice-armor" tabindex="-1"><a href="./dice/">Dice Armor</a> <a class="header-anchor" href="#dice-armor" aria-hidden="true">#</a></h1><p>I was the lead programmer on a team of nine creating this game in a semester-long college course. I programmed all the gameplay systems as well as incorporated Babble Buds for the cutscenes and tutorial.</p><h1 id="capture-the-citadel" tabindex="-1"><a href="./citadel/">Capture the Citadel</a> <a class="header-anchor" href="#capture-the-citadel" aria-hidden="true">#</a></h1><p>A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee.</p>',14),i=[s];function o(d,h,c,l,p,u){return t(),a("div",null,i)}const b=e(n,[["render",o]]);export{f as __pageData,b as default};
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const f=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects","lastUpdated":false},"headers":[],"relativePath":"projects/index.md","lastUpdated":1671737470000}'),n={name:"projects/index.md"},s=r('<h1 id="games" tabindex="-1">Games! <a class="header-anchor" href="#games" aria-hidden="true">#</a></h1><p>I make games regularly! Check them out in the sidebar or on my <a href="https://thepaperpilot.itch.io/" target="_blank" rel="noreferrer">itch.io</a> page.</p><h1 id="profectus" tabindex="-1">Profectus! <a class="header-anchor" href="#profectus" aria-hidden="true">#</a></h1><p>I contributed to a modding framework called The Modding Tree and then made <a href="https://moddingtree.com" target="_blank" rel="noreferrer">Profectus</a> as an alternative that gives developers more control. Profectus is a game engine for the web that uses TS and Vue.</p><h1 id="v-ecs" tabindex="-1"><a href="./vecs/">V-ecs!</a> <a class="header-anchor" href="#v-ecs" aria-hidden="true">#</a></h1><p>V-ecs (pronounced &quot;Vex&quot;) is a Vulkan-based engine I made for making highly moddable games and tools in Lua centered around the ECS design pattern and a work-stealing job system.</p><h1 id="optispeech" tabindex="-1"><a href="./optispeech/">OptiSpeech!</a> <a class="header-anchor" href="#optispeech" aria-hidden="true">#</a></h1><p>I led a team updating a legacy Unity project for research on speech therapy to use a modern version with a focus on extensibility to facilitate future maintenance and features.</p><h1 id="babble-buds" tabindex="-1"><a href="./babble/">Babble Buds!</a> <a class="header-anchor" href="#babble-buds" aria-hidden="true">#</a></h1><p>Babble Buds is a free, open-source virtual puppet show engine I made for various platforms including HTLM5 and Unity, as well as an accompanying electron-based puppet editor and multiplayer stage.</p><h1 id="dice-armor" tabindex="-1"><a href="./dice/">Dice Armor</a> <a class="header-anchor" href="#dice-armor" aria-hidden="true">#</a></h1><p>I was the lead programmer on a team of nine creating this game in a semester-long college course. I programmed all the gameplay systems as well as incorporated Babble Buds for the cutscenes and tutorial.</p><h1 id="capture-the-citadel" tabindex="-1"><a href="./citadel/">Capture the Citadel</a> <a class="header-anchor" href="#capture-the-citadel" aria-hidden="true">#</a></h1><p>A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant Barbee.</p>',14),i=[s];function o(d,h,c,l,p,u){return t(),a("div",null,i)}const b=e(n,[["render",o]]);export{f as __pageData,b as default};

View file

@ -1 +1 @@
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const f=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects","lastUpdated":false},"headers":[],"relativePath":"projects/index.md","lastUpdated":1671670322000}'),n={name:"projects/index.md"},s=r("",14),i=[s];function o(d,h,c,l,p,u){return t(),a("div",null,i)}const b=e(n,[["render",o]]);export{f as __pageData,b as default};
import{_ as e,c as a,o as t,d as r}from"./app.99998402.js";const f=JSON.parse('{"title":"Projects","description":"","frontmatter":{"title":"Projects","lastUpdated":false},"headers":[],"relativePath":"projects/index.md","lastUpdated":1671737470000}'),n={name:"projects/index.md"},s=r("",14),i=[s];function o(d,h,c,l,p,u){return t(),a("div",null,i)}const b=e(n,[["render",o]]);export{f as __pageData,b as default};

View file

@ -1 +1 @@
import{_ as t,c as s,o as a,a as e,b as o}from"./app.99998402.js";const n="/assets/system-architecture-600.254c8a7e.jpg",r="/assets/new-interface.99f03ba7.png",i="/assets/documentation.4e9ae6e0.png",c="/assets/unittests.e8833eb5.png",U=JSON.parse('{"title":"OptiSpeech","description":"","frontmatter":{"title":"OptiSpeech"},"headers":[],"relativePath":"projects/optispeech/index.md","lastUpdated":1671670322000}'),l={name:"projects/optispeech/index.md"},d=e("h1",{id:"optispeech",tabindex:"-1"},[o("OptiSpeech "),e("a",{class:"header-anchor",href:"#optispeech","aria-hidden":"true"},"#")],-1),p=e("p",null,"The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks \u2014 for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH). The UT Dallas Speech Production Lab is currently updating the program to use updated versions of Unity and adding support for more features and hardware.",-1),h=e("p",null,[e("img",{src:n,alt:"System Architecture"})],-1),u=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/9uHqIRs7ZjM",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),m=e("p",null,"This video shows a talker with WAVE sensors placed on the tongue hitting a virtual target sphere located at the alveolar ridge. When an alveolar consonant is hit (e.g., /s/, /n/, /d/) the sphere changes color from red to green.",-1),g=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/Oz42mKvlzqI",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),_=e("p",null,"This video shows an American talker learning a novel sound not found in English. When the post-alveolar consonant is hit, the target sphere changes color from red to green. Here, the NDI WAVE system serves as input.",-1),f=e("p",null,"The program is being updated by a team in the UT Dallas Speech Production Lab led by Anthony Lawn, so the program uses a more modern version of Unity, has an easier-to-use interface, can more easily support new features, and can connect to additional EMA systems, namely the Carstens AG501.",-1),w=e("p",null,[e("img",{src:r,alt:"New Interface"})],-1),y=e("p",null,"In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.",-1),b=e("p",null,[e("img",{src:i,alt:"Documentation"})],-1),v=e("p",null,[e("img",{src:c,alt:"Unit Tests"})],-1),T=[d,p,h,u,m,g,_,f,w,y,b,v];function k(x,A,I,N,S,j){return a(),s("div",null,T)}const D=t(l,[["render",k]]);export{U as __pageData,D as default};
import{_ as t,c as s,o as a,a as e,b as o}from"./app.99998402.js";const n="/assets/system-architecture-600.254c8a7e.jpg",r="/assets/new-interface.99f03ba7.png",i="/assets/documentation.4e9ae6e0.png",c="/assets/unittests.e8833eb5.png",U=JSON.parse('{"title":"OptiSpeech","description":"","frontmatter":{"title":"OptiSpeech"},"headers":[],"relativePath":"projects/optispeech/index.md","lastUpdated":1671737470000}'),l={name:"projects/optispeech/index.md"},d=e("h1",{id:"optispeech",tabindex:"-1"},[o("OptiSpeech "),e("a",{class:"header-anchor",href:"#optispeech","aria-hidden":"true"},"#")],-1),p=e("p",null,"The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks \u2014 for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH). The UT Dallas Speech Production Lab is currently updating the program to use updated versions of Unity and adding support for more features and hardware.",-1),h=e("p",null,[e("img",{src:n,alt:"System Architecture"})],-1),u=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/9uHqIRs7ZjM",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),m=e("p",null,"This video shows a talker with WAVE sensors placed on the tongue hitting a virtual target sphere located at the alveolar ridge. When an alveolar consonant is hit (e.g., /s/, /n/, /d/) the sphere changes color from red to green.",-1),g=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/Oz42mKvlzqI",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),_=e("p",null,"This video shows an American talker learning a novel sound not found in English. When the post-alveolar consonant is hit, the target sphere changes color from red to green. Here, the NDI WAVE system serves as input.",-1),f=e("p",null,"The program is being updated by a team in the UT Dallas Speech Production Lab led by Anthony Lawn, so the program uses a more modern version of Unity, has an easier-to-use interface, can more easily support new features, and can connect to additional EMA systems, namely the Carstens AG501.",-1),w=e("p",null,[e("img",{src:r,alt:"New Interface"})],-1),y=e("p",null,"In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.",-1),b=e("p",null,[e("img",{src:i,alt:"Documentation"})],-1),v=e("p",null,[e("img",{src:c,alt:"Unit Tests"})],-1),T=[d,p,h,u,m,g,_,f,w,y,b,v];function k(x,A,I,N,S,j){return a(),s("div",null,T)}const D=t(l,[["render",k]]);export{U as __pageData,D as default};

View file

@ -1 +1 @@
import{_ as t,c as s,o as a,a as e,b as o}from"./app.99998402.js";const n="/assets/system-architecture-600.254c8a7e.jpg",r="/assets/new-interface.99f03ba7.png",i="/assets/documentation.4e9ae6e0.png",c="/assets/unittests.e8833eb5.png",U=JSON.parse('{"title":"OptiSpeech","description":"","frontmatter":{"title":"OptiSpeech"},"headers":[],"relativePath":"projects/optispeech/index.md","lastUpdated":1671670322000}'),l={name:"projects/optispeech/index.md"},d=e("h1",{id:"optispeech",tabindex:"-1"},[o("OptiSpeech "),e("a",{class:"header-anchor",href:"#optispeech","aria-hidden":"true"},"#")],-1),p=e("p",null,"The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks \u2014 for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH). The UT Dallas Speech Production Lab is currently updating the program to use updated versions of Unity and adding support for more features and hardware.",-1),h=e("p",null,[e("img",{src:n,alt:"System Architecture"})],-1),u=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/9uHqIRs7ZjM",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),m=e("p",null,"This video shows a talker with WAVE sensors placed on the tongue hitting a virtual target sphere located at the alveolar ridge. When an alveolar consonant is hit (e.g., /s/, /n/, /d/) the sphere changes color from red to green.",-1),g=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/Oz42mKvlzqI",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),_=e("p",null,"This video shows an American talker learning a novel sound not found in English. When the post-alveolar consonant is hit, the target sphere changes color from red to green. Here, the NDI WAVE system serves as input.",-1),f=e("p",null,"The program is being updated by a team in the UT Dallas Speech Production Lab led by Anthony Lawn, so the program uses a more modern version of Unity, has an easier-to-use interface, can more easily support new features, and can connect to additional EMA systems, namely the Carstens AG501.",-1),w=e("p",null,[e("img",{src:r,alt:"New Interface"})],-1),y=e("p",null,"In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.",-1),b=e("p",null,[e("img",{src:i,alt:"Documentation"})],-1),v=e("p",null,[e("img",{src:c,alt:"Unit Tests"})],-1),T=[d,p,h,u,m,g,_,f,w,y,b,v];function k(x,A,I,N,S,j){return a(),s("div",null,T)}const D=t(l,[["render",k]]);export{U as __pageData,D as default};
import{_ as t,c as s,o as a,a as e,b as o}from"./app.99998402.js";const n="/assets/system-architecture-600.254c8a7e.jpg",r="/assets/new-interface.99f03ba7.png",i="/assets/documentation.4e9ae6e0.png",c="/assets/unittests.e8833eb5.png",U=JSON.parse('{"title":"OptiSpeech","description":"","frontmatter":{"title":"OptiSpeech"},"headers":[],"relativePath":"projects/optispeech/index.md","lastUpdated":1671737470000}'),l={name:"projects/optispeech/index.md"},d=e("h1",{id:"optispeech",tabindex:"-1"},[o("OptiSpeech "),e("a",{class:"header-anchor",href:"#optispeech","aria-hidden":"true"},"#")],-1),p=e("p",null,"The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks \u2014 for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH). The UT Dallas Speech Production Lab is currently updating the program to use updated versions of Unity and adding support for more features and hardware.",-1),h=e("p",null,[e("img",{src:n,alt:"System Architecture"})],-1),u=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/9uHqIRs7ZjM",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),m=e("p",null,"This video shows a talker with WAVE sensors placed on the tongue hitting a virtual target sphere located at the alveolar ridge. When an alveolar consonant is hit (e.g., /s/, /n/, /d/) the sphere changes color from red to green.",-1),g=e("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/Oz42mKvlzqI",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",style:{display:"block",margin:"auto"}},null,-1),_=e("p",null,"This video shows an American talker learning a novel sound not found in English. When the post-alveolar consonant is hit, the target sphere changes color from red to green. Here, the NDI WAVE system serves as input.",-1),f=e("p",null,"The program is being updated by a team in the UT Dallas Speech Production Lab led by Anthony Lawn, so the program uses a more modern version of Unity, has an easier-to-use interface, can more easily support new features, and can connect to additional EMA systems, namely the Carstens AG501.",-1),w=e("p",null,[e("img",{src:r,alt:"New Interface"})],-1),y=e("p",null,"In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.",-1),b=e("p",null,[e("img",{src:i,alt:"Documentation"})],-1),v=e("p",null,[e("img",{src:c,alt:"Unit Tests"})],-1),T=[d,p,h,u,m,g,_,f,w,y,b,v];function k(x,A,I,N,S,j){return a(),s("div",null,T)}const D=t(l,[["render",k]]);export{U as __pageData,D as default};

View file

@ -1 +1 @@
import{_ as e,c as t,o as s,d as a}from"./app.99998402.js";const o="/assets/screenshot.78830a30.png",n="/assets/debug.0a8c47b7.png",r="/assets/sandsoftime.ba63f865.png",w=JSON.parse('{"title":"V-ecs","description":"","frontmatter":{"title":"V-ecs"},"headers":[],"relativePath":"projects/vecs/index.md","lastUpdated":1671670322000}'),i={name:"projects/vecs/index.md"},d=a('<h1 id="v-ecs" tabindex="-1">V-ecs <a class="header-anchor" href="#v-ecs" aria-hidden="true">#</a></h1><p><img src="'+o+'" alt="V-ecs Screenshot"></p><p>V-ecs (pronounced &quot;Vex&quot;) is a Vulkan-based engine I made for making highly moddable games and tools in Lua centered around the ECS design pattern and a work-stealing job system.</p><p>The engine works with &quot;worlds&quot;, which are collections of systems and renderers. The engine comes with several worlds using systems and renderers I made, including a voxel world, an incremental game, and some test scenes. All of these include systems to render the fps as well as show a debug console by typing the grave key (`). The default world is a title screen that detects any worlds in the &quot;worlds&quot; folder and displays a button for each of them.</p><p><img src="'+n+'" alt="Debug Menu"></p><p>The original plans were to eventually put it on the steam workshop so people could more easily share their creations amongst each other, but I never became happy enough with the performance of the engine - the parallelization of the lua code involved a lot of overhead that severely limited performance.</p><p>Instead, I made a couple of worlds by myself - an infinite procedurally generated voxel world, a simple incremental game, and a more complex incremental game I call &quot;Sands of Time&quot;.</p><p><img src="'+r+'" alt="Sands of Time"></p>',8),l=[d];function c(p,h,m,u,_,g){return s(),t("div",null,l)}const y=e(i,[["render",c]]);export{w as __pageData,y as default};
import{_ as e,c as t,o as s,d as a}from"./app.99998402.js";const o="/assets/screenshot.78830a30.png",n="/assets/debug.0a8c47b7.png",r="/assets/sandsoftime.ba63f865.png",w=JSON.parse('{"title":"V-ecs","description":"","frontmatter":{"title":"V-ecs"},"headers":[],"relativePath":"projects/vecs/index.md","lastUpdated":1671737470000}'),i={name:"projects/vecs/index.md"},d=a('<h1 id="v-ecs" tabindex="-1">V-ecs <a class="header-anchor" href="#v-ecs" aria-hidden="true">#</a></h1><p><img src="'+o+'" alt="V-ecs Screenshot"></p><p>V-ecs (pronounced &quot;Vex&quot;) is a Vulkan-based engine I made for making highly moddable games and tools in Lua centered around the ECS design pattern and a work-stealing job system.</p><p>The engine works with &quot;worlds&quot;, which are collections of systems and renderers. The engine comes with several worlds using systems and renderers I made, including a voxel world, an incremental game, and some test scenes. All of these include systems to render the fps as well as show a debug console by typing the grave key (`). The default world is a title screen that detects any worlds in the &quot;worlds&quot; folder and displays a button for each of them.</p><p><img src="'+n+'" alt="Debug Menu"></p><p>The original plans were to eventually put it on the steam workshop so people could more easily share their creations amongst each other, but I never became happy enough with the performance of the engine - the parallelization of the lua code involved a lot of overhead that severely limited performance.</p><p>Instead, I made a couple of worlds by myself - an infinite procedurally generated voxel world, a simple incremental game, and a more complex incremental game I call &quot;Sands of Time&quot;.</p><p><img src="'+r+'" alt="Sands of Time"></p>',8),l=[d];function c(p,h,m,u,_,g){return s(),t("div",null,l)}const y=e(i,[["render",c]]);export{w as __pageData,y as default};

View file

@ -1 +1 @@
import{_ as e,c as t,o as s,d as a}from"./app.99998402.js";const o="/assets/screenshot.78830a30.png",n="/assets/debug.0a8c47b7.png",r="/assets/sandsoftime.ba63f865.png",w=JSON.parse('{"title":"V-ecs","description":"","frontmatter":{"title":"V-ecs"},"headers":[],"relativePath":"projects/vecs/index.md","lastUpdated":1671670322000}'),i={name:"projects/vecs/index.md"},d=a("",8),l=[d];function c(p,h,m,u,_,g){return s(),t("div",null,l)}const y=e(i,[["render",c]]);export{w as __pageData,y as default};
import{_ as e,c as t,o as s,d as a}from"./app.99998402.js";const o="/assets/screenshot.78830a30.png",n="/assets/debug.0a8c47b7.png",r="/assets/sandsoftime.ba63f865.png",w=JSON.parse('{"title":"V-ecs","description":"","frontmatter":{"title":"V-ecs"},"headers":[],"relativePath":"projects/vecs/index.md","lastUpdated":1671737470000}'),i={name:"projects/vecs/index.md"},d=a("",8),l=[d];function c(p,h,m,u,_,g){return s(),t("div",null,l)}const y=e(i,[["render",c]]);export{w as __pageData,y as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"guide-to-incrementals_design_introduction.md":"38daee51","guide-to-incrementals_index.md":"5d93b5e4","guide-to-incrementals_ludology_appeal-developers.md":"ef988d03","guide-to-incrementals_ludology_appeal-gamers.md":"e2ccfe16","guide-to-incrementals_ludology_content.md":"8399cc9d","guide-to-incrementals_ludology_definition.md":"b8d4c239","index.md":"7b8c929b","projects_babble_index.md":"388e56b4","projects_citadel_index.md":"0a086310","projects_dice_index.md":"4a7862d3","projects_index.md":"19cce7dd","projects_optispeech_index.md":"5815a7ec","projects_vecs_index.md":"8a2f5c7d","public_gamedevtree_2.0-format-changes.md":"869c95cb","public_gamedevtree_readme.md":"552fe2c4","public_gamedevtree_changelog.md":"d359af81","public_gamedevtree_docs_!general-info.md":"b54b0405","public_gamedevtree_docs_achievements.md":"dcac48ff","public_gamedevtree_docs_bars.md":"5f67f039","public_gamedevtree_docs_basic-layer-breakdown.md":"7761b77c","public_gamedevtree_docs_buyables.md":"0150160d","public_gamedevtree_docs_challenges.md":"0c6f4a98","public_gamedevtree_docs_clickables.md":"31209e1f","public_gamedevtree_docs_custom-tab-layouts.md":"c0fbc4e0","public_gamedevtree_docs_getting-started.md":"8c2ddda0","public_gamedevtree_docs_infoboxes.md":"7a0953be","public_gamedevtree_docs_layer-features.md":"a7640a7f","public_gamedevtree_docs_main-mod-info.md":"6f790508","public_gamedevtree_docs_milestones.md":"264c8c9a","public_gamedevtree_docs_subtabs-and-microtabs.md":"a5ee4ade","public_gamedevtree_docs_updating-tmt.md":"0237de18","public_gamedevtree_docs_upgrades.md":"ac3bddbc","public_kronos_old things_2.0-format-changes.md":"33740b7e","public_kronos_readme.md":"b02e146e","public_kronos_changelog.md":"8c678677","public_kronos_docs_!general-info.md":"a850fc5c","public_kronos_docs_achievements.md":"50170b22","public_kronos_docs_bars.md":"e362dd22","public_kronos_docs_basic-layer-breakdown.md":"c5012569","public_kronos_docs_buyables.md":"18df767f","public_kronos_docs_challenges.md":"e035cc8c","public_kronos_docs_clickables.md":"0b620d80","public_kronos_docs_custom-tab-layouts.md":"83ea4ec4","public_kronos_docs_getting-started.md":"bbfb2db6","public_kronos_docs_grids.md":"53210faa","public_kronos_docs_infoboxes.md":"1e520ae7","public_kronos_docs_layer-features.md":"13746ddd","public_kronos_docs_main-mod-info.md":"880d3987","public_kronos_docs_milestones.md":"ddaaade5","public_kronos_docs_particles.md":"78d816e8","public_kronos_docs_subtabs-and-microtabs.md":"f0ff58d5","public_kronos_docs_trees-and-tree-customization.md":"763f6e41","public_kronos_docs_updating-tmt.md":"3d630d86","public_kronos_docs_upgrades.md":"e5295c4b","public_lit_old things_2.0-format-changes.md":"e73a9b99","public_lit_readme.md":"241d60e2","public_lit_changelog.md":"08f37d7f","public_lit_docs_!general-info.md":"e02fc830","public_lit_docs_achievements.md":"9bdd1682","public_lit_docs_bars.md":"51d95f97","public_lit_docs_basic-layer-breakdown.md":"c311548b","public_lit_docs_buyables.md":"cdd4074b","public_lit_docs_challenges.md":"ff75af2d","public_lit_docs_clickables.md":"2c4bf6c0","public_lit_docs_custom-tab-layouts.md":"4ef7b79a","public_lit_docs_getting-started.md":"1abd3c25","public_lit_docs_infoboxes.md":"6e888c51","public_lit_docs_layer-features.md":"77bde097","public_lit_docs_main-mod-info.md":"c984b67a","public_lit_docs_milestones.md":"05858e62","public_lit_docs_subtabs-and-microtabs.md":"84373a35","public_lit_docs_trees-and-tree-customization.md":"083d2a32","public_lit_docs_updating-tmt.md":"6dce2005","public_lit_docs_upgrades.md":"967aa760"}
{"guide-to-incrementals_design_introduction.md":"38daee51","guide-to-incrementals_index.md":"5d93b5e4","guide-to-incrementals_ludology_appeal-developers.md":"ef988d03","guide-to-incrementals_ludology_appeal-gamers.md":"e2ccfe16","guide-to-incrementals_ludology_content.md":"8399cc9d","guide-to-incrementals_ludology_definition.md":"b8d4c239","index.md":"c52b2ad4","projects_babble_index.md":"73809099","projects_citadel_index.md":"3939e986","projects_dice_index.md":"fabedf79","projects_index.md":"1f76124d","projects_optispeech_index.md":"3f830dbc","projects_vecs_index.md":"984320a2","public_gamedevtree_2.0-format-changes.md":"869c95cb","public_gamedevtree_readme.md":"552fe2c4","public_gamedevtree_changelog.md":"d359af81","public_gamedevtree_docs_!general-info.md":"b54b0405","public_gamedevtree_docs_achievements.md":"dcac48ff","public_gamedevtree_docs_bars.md":"5f67f039","public_gamedevtree_docs_basic-layer-breakdown.md":"7761b77c","public_gamedevtree_docs_buyables.md":"0150160d","public_gamedevtree_docs_challenges.md":"0c6f4a98","public_gamedevtree_docs_clickables.md":"31209e1f","public_gamedevtree_docs_custom-tab-layouts.md":"c0fbc4e0","public_gamedevtree_docs_getting-started.md":"8c2ddda0","public_gamedevtree_docs_infoboxes.md":"7a0953be","public_gamedevtree_docs_layer-features.md":"a7640a7f","public_gamedevtree_docs_main-mod-info.md":"6f790508","public_gamedevtree_docs_milestones.md":"264c8c9a","public_gamedevtree_docs_subtabs-and-microtabs.md":"a5ee4ade","public_gamedevtree_docs_updating-tmt.md":"0237de18","public_gamedevtree_docs_upgrades.md":"ac3bddbc","public_kronos_old things_2.0-format-changes.md":"33740b7e","public_kronos_readme.md":"b02e146e","public_kronos_changelog.md":"8c678677","public_kronos_docs_!general-info.md":"a850fc5c","public_kronos_docs_achievements.md":"50170b22","public_kronos_docs_bars.md":"e362dd22","public_kronos_docs_basic-layer-breakdown.md":"c5012569","public_kronos_docs_buyables.md":"18df767f","public_kronos_docs_challenges.md":"e035cc8c","public_kronos_docs_clickables.md":"0b620d80","public_kronos_docs_custom-tab-layouts.md":"83ea4ec4","public_kronos_docs_getting-started.md":"bbfb2db6","public_kronos_docs_grids.md":"53210faa","public_kronos_docs_infoboxes.md":"1e520ae7","public_kronos_docs_layer-features.md":"13746ddd","public_kronos_docs_main-mod-info.md":"880d3987","public_kronos_docs_milestones.md":"ddaaade5","public_kronos_docs_particles.md":"78d816e8","public_kronos_docs_subtabs-and-microtabs.md":"f0ff58d5","public_kronos_docs_trees-and-tree-customization.md":"763f6e41","public_kronos_docs_updating-tmt.md":"3d630d86","public_kronos_docs_upgrades.md":"e5295c4b","public_lit_old things_2.0-format-changes.md":"e73a9b99","public_lit_readme.md":"241d60e2","public_lit_changelog.md":"08f37d7f","public_lit_docs_!general-info.md":"e02fc830","public_lit_docs_achievements.md":"9bdd1682","public_lit_docs_bars.md":"51d95f97","public_lit_docs_basic-layer-breakdown.md":"c311548b","public_lit_docs_buyables.md":"cdd4074b","public_lit_docs_challenges.md":"ff75af2d","public_lit_docs_clickables.md":"2c4bf6c0","public_lit_docs_custom-tab-layouts.md":"4ef7b79a","public_lit_docs_getting-started.md":"1abd3c25","public_lit_docs_infoboxes.md":"6e888c51","public_lit_docs_layer-features.md":"77bde097","public_lit_docs_main-mod-info.md":"c984b67a","public_lit_docs_milestones.md":"05858e62","public_lit_docs_subtabs-and-microtabs.md":"84373a35","public_lit_docs_trees-and-tree-customization.md":"083d2a32","public_lit_docs_updating-tmt.md":"6dce2005","public_lit_docs_upgrades.md":"967aa760"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -31,7 +31,7 @@
<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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the achievement was stored under, for convenient access. The achievement in the example&#39;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></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -29,7 +29,7 @@
<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 &quot;px&quot; at the end)</p></li><li><p>progress(): A function that returns the portion of the bar that is filled, from &quot;empty&quot; at 0 to &quot;full&quot; 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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the bar was stored under, for convenient access. The bar in the example&#39;s id is &quot;bigBar&quot;.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -50,7 +50,7 @@
<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&#39;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></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -36,7 +36,7 @@
<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 &quot;x&quot; to calculate the cost of the x+1th object, but needs to use &quot;current amount&quot; as a default value for x. (x is a Decimal). Can return an object if there are multiple currencies.</p></li><li><p>effect(): <strong>optional</strong>, A function that calculates and returns the current values of bonuses of this buyable. Can return a value or an object containing multiple values.</p></li><li><p>display(): A function returning everything that should be displayed on the buyable after the title, likely including the description, amount bought, cost, and current effect. Can use basic HTML.</p></li><li><p>unlocked(): <strong>optional</strong>, A function returning a bool to determine if the buyable is visible or not. Default is unlocked.</p></li><li><p>canAfford(): A function returning a bool to determine if you can buy one of the buyables.</p></li><li><p>buy(): A function that implements buying one of the buyable, including spending the currency.</p></li><li><p>buyMax(): <strong>optional</strong>, A function that implements buying as many of the buyable as possible.</p></li><li><p>style: <strong>Optional</strong>, Applies CSS to this buyable, in the form of an object where the keys are CSS attributes, and the values are the values for those attributes (both as strings)</p></li><li><p>layer: <strong>Assigned automagically</strong>. It&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the buyable was stored under, for convenient access. The buyable in the example&#39;s id is 11.</p></li></ul><p>Sell One/Sell All:</p><p>Including a sellOne or sellAll function will cause an additional button to appear beneath the buyable. They are functionally identical, but &quot;sell one&quot; appears above &quot;sell all&quot;. You can also use them for other things.</p><p>sellOne/sellAll(): <strong>optional</strong>, Called when the button is pressed. The standard use would be to decrease/reset the amount of the buyable, And possibly return some currency to the player.</p><p>canSellOne/canSellAll(): <strong>optional</strong>, booleans determining whether or not to show the buttons. If &quot;canSellOne/All&quot; is absent but &quot;sellOne/All&quot; is present, the appropriate button will always show.</p></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -31,7 +31,7 @@
<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&#39;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&#39;s not in a layer, omit. If it&#39;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&#39;s amount), you can access it this way. This is a function returning the object in &quot;player&quot; 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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the challenge was stored under, for convenient access. The challenge in the example&#39;s id is 11.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -35,7 +35,7 @@
<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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar.</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the clickable was stored under, for convenient access. The clickable in the example&#39;s id is 11.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -31,7 +31,7 @@
<span class="line"><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">toggle</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> [</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">c</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">beep</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">]]</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">milestones</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">blank</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">upgrades</span><span style="color:#89DDFF;">&quot;</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&#39;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 &quot;CSS object&quot;, 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&#39;s a single value (e.g. &quot;20px&quot;), 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&#39;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 &quot;microtabs&quot; 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 &quot;sell one&quot; and &quot;sell all&quot; for buyables, respectively. The argument is the id of the buyable.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the bar was stored under, for convenient access. The bar in the example&#39;s id is &quot;bigBar&quot;.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -39,7 +39,7 @@
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">prestige-button</span><span style="color:#89DDFF;">&quot;</span><span style="color:#F07178;">() </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">&#39;</span><span style="color:#F07178;">color</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">:</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">#AA66AA</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">}},</span></span>
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
<span class="line"></span></code></pre></div><h2 id="custom-prestige-type" tabindex="-1">Custom Prestige type <a class="header-anchor" href="#custom-prestige-type" aria-hidden="true">#</a></h2><ul><li><p>getResetGain(): <strong>For custom prestige type</strong>, Returns how many points you should get if you reset now. You can call getResetGain(this.layer, useType = &quot;static&quot;) or similar to calculate what your gain would be under another prestige type (provided you have all of the required features in the layer.)</p></li><li><p>getNextAt(canMax=false): <strong>For custom prestige type</strong>, Returns how many of the base currency you need to get to the next point. canMax is an optional variable used with Static-ish layers to differentiate between if it&#39;s looking for the first point you can reset at, or the requirement for any gain at all. (Supporting both is good). You can also call getNextAt(this.layer, canMax=false, useType = &quot;static&quot;) or similar to calculate what your next at would be under another prestige type (provided you have all of the required features in the layer.)</p></li><li><p>canReset(): <strong>For custom prestige type</strong>, return true only if you have the resources required to do a prestige here.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -28,7 +28,7 @@
<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&#39;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 &quot;you win!&quot; 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></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -29,7 +29,7 @@
<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 &quot;total&quot;. 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. [[&quot;b&quot;, &quot;auto&quot;], [&quot;g&quot;, &quot;auto&quot;])</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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the milestone was stored under, for convenient access. The milestone in the example&#39;s id is 0.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -46,7 +46,7 @@
<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 &quot;CSS Object&quot;, 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&#39;t use the &quot;this&quot; keyword in this function.)</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

File diff suppressed because one or more lines are too long

View file

@ -31,7 +31,7 @@
<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&#39;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 &quot;makes this layer act like it was unlocked first&quot;.</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&#39;s not in a layer (like Points), omit. If it&#39;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&#39;s amount), you can access it this way. This is a function returning the object in &quot;player&quot; 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&#39;s the same value as the name of this layer, so you can do player[this.layer].points or similar</p></li><li><p>id: <strong>Assigned automagically</strong>. It&#39;s the &quot;key&quot; which the upgrade was stored under, for convenient access. The upgrade in the example&#39;s id is 11.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<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 &quot;&quot; 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&#39;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&#39;s the &quot;key&quot; which the achievement was stored under, for convenient access. The achievement in the example&#39;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></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -32,7 +32,7 @@
<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 &quot;px&quot; at the end).</p></li><li><p>progress(): A function that returns the portion of the bar that is filled, from &quot;empty&quot; at 0 to &quot;full&quot; 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&#39;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&#39;s the &quot;key&quot; which the bar was stored under, for convenient access. The bar in the example&#39;s id is &quot;bigBar&quot;.</p></li></ul></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

View file

@ -54,7 +54,7 @@
<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></div></div></main><!--[--><!--]--><!----><!--[--><!--]--></div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"7b8c929b\",\"projects_babble_index.md\":\"388e56b4\",\"projects_citadel_index.md\":\"0a086310\",\"projects_dice_index.md\":\"4a7862d3\",\"projects_index.md\":\"19cce7dd\",\"projects_optispeech_index.md\":\"5815a7ec\",\"projects_vecs_index.md\":\"8a2f5c7d\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide-to-incrementals_design_introduction.md\":\"38daee51\",\"guide-to-incrementals_index.md\":\"5d93b5e4\",\"guide-to-incrementals_ludology_appeal-developers.md\":\"ef988d03\",\"guide-to-incrementals_ludology_appeal-gamers.md\":\"e2ccfe16\",\"guide-to-incrementals_ludology_content.md\":\"8399cc9d\",\"guide-to-incrementals_ludology_definition.md\":\"b8d4c239\",\"index.md\":\"c52b2ad4\",\"projects_babble_index.md\":\"73809099\",\"projects_citadel_index.md\":\"3939e986\",\"projects_dice_index.md\":\"fabedf79\",\"projects_index.md\":\"1f76124d\",\"projects_optispeech_index.md\":\"3f830dbc\",\"projects_vecs_index.md\":\"984320a2\",\"public_gamedevtree_2.0-format-changes.md\":\"869c95cb\",\"public_gamedevtree_readme.md\":\"552fe2c4\",\"public_gamedevtree_changelog.md\":\"d359af81\",\"public_gamedevtree_docs_!general-info.md\":\"b54b0405\",\"public_gamedevtree_docs_achievements.md\":\"dcac48ff\",\"public_gamedevtree_docs_bars.md\":\"5f67f039\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"7761b77c\",\"public_gamedevtree_docs_buyables.md\":\"0150160d\",\"public_gamedevtree_docs_challenges.md\":\"0c6f4a98\",\"public_gamedevtree_docs_clickables.md\":\"31209e1f\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"c0fbc4e0\",\"public_gamedevtree_docs_getting-started.md\":\"8c2ddda0\",\"public_gamedevtree_docs_infoboxes.md\":\"7a0953be\",\"public_gamedevtree_docs_layer-features.md\":\"a7640a7f\",\"public_gamedevtree_docs_main-mod-info.md\":\"6f790508\",\"public_gamedevtree_docs_milestones.md\":\"264c8c9a\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"a5ee4ade\",\"public_gamedevtree_docs_updating-tmt.md\":\"0237de18\",\"public_gamedevtree_docs_upgrades.md\":\"ac3bddbc\",\"public_kronos_old things_2.0-format-changes.md\":\"33740b7e\",\"public_kronos_readme.md\":\"b02e146e\",\"public_kronos_changelog.md\":\"8c678677\",\"public_kronos_docs_!general-info.md\":\"a850fc5c\",\"public_kronos_docs_achievements.md\":\"50170b22\",\"public_kronos_docs_bars.md\":\"e362dd22\",\"public_kronos_docs_basic-layer-breakdown.md\":\"c5012569\",\"public_kronos_docs_buyables.md\":\"18df767f\",\"public_kronos_docs_challenges.md\":\"e035cc8c\",\"public_kronos_docs_clickables.md\":\"0b620d80\",\"public_kronos_docs_custom-tab-layouts.md\":\"83ea4ec4\",\"public_kronos_docs_getting-started.md\":\"bbfb2db6\",\"public_kronos_docs_grids.md\":\"53210faa\",\"public_kronos_docs_infoboxes.md\":\"1e520ae7\",\"public_kronos_docs_layer-features.md\":\"13746ddd\",\"public_kronos_docs_main-mod-info.md\":\"880d3987\",\"public_kronos_docs_milestones.md\":\"ddaaade5\",\"public_kronos_docs_particles.md\":\"78d816e8\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"f0ff58d5\",\"public_kronos_docs_trees-and-tree-customization.md\":\"763f6e41\",\"public_kronos_docs_updating-tmt.md\":\"3d630d86\",\"public_kronos_docs_upgrades.md\":\"e5295c4b\",\"public_lit_old things_2.0-format-changes.md\":\"e73a9b99\",\"public_lit_readme.md\":\"241d60e2\",\"public_lit_changelog.md\":\"08f37d7f\",\"public_lit_docs_!general-info.md\":\"e02fc830\",\"public_lit_docs_achievements.md\":\"9bdd1682\",\"public_lit_docs_bars.md\":\"51d95f97\",\"public_lit_docs_basic-layer-breakdown.md\":\"c311548b\",\"public_lit_docs_buyables.md\":\"cdd4074b\",\"public_lit_docs_challenges.md\":\"ff75af2d\",\"public_lit_docs_clickables.md\":\"2c4bf6c0\",\"public_lit_docs_custom-tab-layouts.md\":\"4ef7b79a\",\"public_lit_docs_getting-started.md\":\"1abd3c25\",\"public_lit_docs_infoboxes.md\":\"6e888c51\",\"public_lit_docs_layer-features.md\":\"77bde097\",\"public_lit_docs_main-mod-info.md\":\"c984b67a\",\"public_lit_docs_milestones.md\":\"05858e62\",\"public_lit_docs_subtabs-and-microtabs.md\":\"84373a35\",\"public_lit_docs_trees-and-tree-customization.md\":\"083d2a32\",\"public_lit_docs_updating-tmt.md\":\"6dce2005\",\"public_lit_docs_upgrades.md\":\"967aa760\"}")</script>
<script type="module" async src="/assets/app.99998402.js"></script>
</body>

Some files were not shown because too many files have changed in this diff Show more