Merge pull request #11 from thepaperpilot/day-19-factory

Day 19 factory
This commit is contained in:
unsoftcapped3 2022-12-22 20:44:46 -08:00 committed by GitHub
commit 5cae3ea040
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 1274 additions and 87 deletions

View file

@ -36,6 +36,7 @@ import oil from "./oil";
import paper from "./paper"; import paper from "./paper";
import trees from "./trees"; import trees from "./trees";
import toys from "./toys"; import toys from "./toys";
import factory from "./factory";
interface Dye { interface Dye {
name: string; name: string;
@ -56,7 +57,7 @@ type DyeUpg =
| "blueDyeUpg2" | "blueDyeUpg2"
| "coalUpg"; | "coalUpg";
export type enumColor = "red" | "green" | "blue" | "yellow" | "purple" | "orange" | "black"; export type enumColor = "red" | "green" | "blue" | "yellow" | "purple" | "orange" | "black" | "white";
const id = "dyes"; const id = "dyes";
const day = 11; const day = 11;
@ -214,6 +215,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
case "yellow": case "yellow":
case "blue": case "blue":
case "black": case "black":
case "white":
dyeBook = paper.books.primaryDyeBook; dyeBook = paper.books.primaryDyeBook;
break; break;
case "orange": case "orange":
@ -520,6 +522,31 @@ const layer = createLayer(id, function (this: BaseLayer) {
dyesToReset: [], dyesToReset: [],
visibility: () => showIf(toys.milestones.milestone2.earned.value) visibility: () => showIf(toys.milestones.milestone2.earned.value)
}), }),
white: createDye({
name: "White Dye",
color: "white",
key: "q",
costs: () => [
{
base: "1e60",
root: 5,
res: trees.logs
},
{
base: computed(() => (upgrades.yellowDyeUpg2.bought.value ? "1e17" : "2e17")),
root: 2,
res: oil.oil
}
],
listedBoosts: [
{
visible: true,
desc: computed(() => `*${format(boosts.white1.value)} plastic gain.`)
}
],
dyesToReset: [],
visibility: () => showIf(factory.upgrades[2][2].bought.value)
}),
orange: createDye({ orange: createDye({
name: "Orange Dye", name: "Orange Dye",
color: "orange", color: "orange",
@ -702,6 +729,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
Decimal.pow(2, Decimal.add(dyes.black.amount.value, 1).log2().sqrt()) Decimal.pow(2, Decimal.add(dyes.black.amount.value, 1).log2().sqrt())
.pow(upgrades.coalUpg.bought.value ? 1.2 : 1) .pow(upgrades.coalUpg.bought.value ? 1.2 : 1)
.pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1) .pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1)
),
white1: computed(() =>
Decimal.pow(2, Decimal.add(dyes.white.amount.value, 1).log2().sqrt())
.pow(upgrades.coalUpg.bought.value ? 1.2 : 1)
.pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1)
) )
}; };
@ -726,6 +758,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
modifier: dyes.black.toGenerate, modifier: dyes.black.toGenerate,
base: 0 base: 0
}, },
{
title: "White Dye Creation",
modifier: dyes.white.toGenerate,
base: 0
},
{ {
title: "Orange Dye Creation", title: "Orange Dye Creation",
modifier: dyes.orange.toGenerate, modifier: dyes.orange.toGenerate,
@ -956,8 +993,8 @@ const layer = createLayer(id, function (this: BaseLayer) {
</> </>
) : null} ) : null}
<div style="width: 620px"> <div style="width: 620px">
{renderRow(dyes.black.display)} {renderRow(dyes.black.display, dyes.white.display)}
{renderRow(dyes.black.buyable)} {renderRow(dyes.black.buyable, dyes.white.buyable)}
<Spacer /> <Spacer />
{renderRow(dyes.red.display, dyes.yellow.display, dyes.blue.display)} {renderRow(dyes.red.display, dyes.yellow.display, dyes.blue.display)}
{renderRow(dyes.red.buyable, dyes.yellow.buyable, dyes.blue.buyable)} {renderRow(dyes.red.buyable, dyes.yellow.buyable, dyes.blue.buyable)}

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/stuffingmaker.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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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="path619-0"
style="fill:#ff0000;fill-opacity:1;stroke:#010000;stroke-width:0.696689;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 6.8642348,0.96395118 A 5.6167291,5.6167291 0 0 0 1.2475248,6.5806622 5.6167291,5.6167291 0 0 0 6.8642348,12.197372 5.6167291,5.6167291 0 0 0 12.480946,6.5806622 5.6167291,5.6167291 0 0 0 6.8642348,0.96395118 Z m 2.264577,1.36037902 a 1.9913912,1.9913912 0 0 1 1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.991413,-1.991413 1.9913912,1.9913912 0 0 1 1.991413,-1.991413 z m -4.484251,0.04558 a 1.9913912,1.9913912 0 0 1 1.991413,1.991413 1.9913912,1.9913912 0 0 1 -1.991413,1.991073 1.9913912,1.9913912 0 0 1 -1.991414,-1.991073 1.9913912,1.9913912 0 0 1 1.991414,-1.991413 z m 4.484251,4.212447 a 1.9913912,1.9913912 0 0 1 1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.9914142,1.9914128 1.9913912,1.9913912 0 0 1 -1.991413,-1.9914128 1.9913912,1.9913912 0 0 1 1.991413,-1.991413 z m -4.439008,0.181317 a 1.9913912,1.9913912 0 0 1 1.991414,1.991073 1.9913912,1.9913912 0 0 1 -1.991414,1.9914128 1.9913912,1.9913912 0 0 1 -1.991413,-1.9914128 1.9913912,1.9913912 0 0 1 1.991413,-1.991073 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,58 @@
<?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/button.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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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-6"
width="12.46511"
height="12.46511"
x="0.38202921"
y="0.38202849"
rx="1.246511" />
<path
id="path619-0"
style="fill:#ff0000;fill-opacity:1;stroke:#010000;stroke-width:0.696689;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 6.8642348,0.96395118 A 5.6167291,5.6167291 0 0 0 1.2475248,6.5806622 5.6167291,5.6167291 0 0 0 6.8642348,12.197372 5.6167291,5.6167291 0 0 0 12.480946,6.5806622 5.6167291,5.6167291 0 0 0 6.8642348,0.96395118 Z m 2.264577,1.36037902 a 1.9913912,1.9913912 0 0 1 1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.991413,-1.991413 1.9913912,1.9913912 0 0 1 1.991413,-1.991413 z m -4.484251,0.04558 a 1.9913912,1.9913912 0 0 1 1.991413,1.991413 1.9913912,1.9913912 0 0 1 -1.991413,1.991073 1.9913912,1.9913912 0 0 1 -1.991414,-1.991073 1.9913912,1.9913912 0 0 1 1.991414,-1.991413 z m 4.484251,4.212447 a 1.9913912,1.9913912 0 0 1 1.9914142,1.991413 1.9913912,1.9913912 0 0 1 -1.9914142,1.9914128 1.9913912,1.9913912 0 0 1 -1.991413,-1.9914128 1.9913912,1.9913912 0 0 1 1.991413,-1.991413 z m -4.439008,0.181317 a 1.9913912,1.9913912 0 0 1 1.991414,1.991073 1.9913912,1.9913912 0 0 1 -1.991414,1.9914128 1.9913912,1.9913912 0 0 1 -1.991413,-1.9914128 1.9913912,1.9913912 0 0 1 1.991413,-1.991073 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -0,0 +1,300 @@
<?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/circuitmaker.png"
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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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="g14758-2"
transform="matrix(0.63507814,0,0,0.63507814,66.697487,21.4137)">
<rect
style="fill:#008100;fill-opacity:1;stroke:#015800;stroke-width:1.05833;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect2937-2"
width="16.927031"
height="16.927031"
x="-103.07599"
y="-31.789791"
rx="0.52916664"
ry="0.52916664" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-7"
width="0.49474049"
height="5.2566171"
x="-94.866463"
y="-30.859426"
rx="0.26458338" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-1"
width="0.49474052"
height="4.8237195"
x="-93.938828"
y="-30.333771"
rx="0.26458341" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-52"
width="0.49474069"
height="3.2776561"
x="-93.196716"
y="-28.694942"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-5-1"
width="0.49474069"
height="3.2776561"
x="-96.350685"
y="-28.725863"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-1"
width="0.49474069"
height="3.2776561"
x="-88.001945"
y="-28.602179"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-0"
width="0.49474034"
height="6.0605702"
x="-87.878258"
y="-22.479765"
rx="0.26458332" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-1"
width="0.49474058"
height="3.5868685"
x="-93.444092"
y="-20.593569"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-6-8"
width="0.49474058"
height="3.5868685"
x="-97.58754"
y="-19.85146"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-8-7"
width="0.49474058"
height="3.5868685"
x="-99.87571"
y="-22.943584"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-9-6"
width="0.49473983"
height="11.193501"
x="-101.29809"
y="-27.581778"
rx="0.26458308" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-9-8-0"
width="0.49474058"
height="3.5250261"
x="-100.30862"
y="-27.705462"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-0"
width="0.49472937"
height="3.5251164"
x="-32.42971"
y="91.079651"
rx="0.26457745"
transform="matrix(0.00743825,0.99997234,-0.99990788,0.01357339,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-9"
width="0.49472395"
height="2.7212634"
x="-32.052433"
y="91.080261"
rx="0.26457453"
transform="matrix(0.00574177,0.99998352,-0.99984541,0.01758294,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-56"
width="0.49472889"
height="3.4632816"
x="-25.2423"
y="88.508125"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-5-2"
width="0.49472323"
height="2.5975995"
x="-21.788242"
y="97.115021"
rx="0.26457417"
transform="matrix(0.00548077,0.99998498,-0.99983034,0.01842001,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-4-8"
width="0.49472889"
height="3.4632816"
x="-25.094913"
y="95.745461"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-0-5"
width="0.49472889"
height="3.4632816"
x="-18.011745"
y="97.838226"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-9"
width="0.49474952"
height="5.5657978"
x="-29.408934"
y="87.229904"
rx="0.26458821"
transform="matrix(0.01174441,0.99993103,-0.99996305,0.00859675,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-4-4"
width="0.49473175"
height="3.8343098"
x="-29.974941"
y="95.622993"
rx="0.2645787"
transform="matrix(0.00809075,0.99996727,-0.99992214,0.01247885,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-4-5-3"
width="0.49472928"
height="3.5251245"
x="-17.903791"
y="87.074791"
rx="0.26457739"
transform="matrix(0.00743827,0.99997234,-0.99990788,0.01357336,0,0)" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-9"
cx="-102.38033"
cy="-31.137722"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-0"
cx="-86.950623"
cy="-31.044958"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-2-5"
cx="-86.826935"
cy="-15.522479"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-2-6-6"
cx="-102.41125"
cy="-15.584321"
r="0.4595851" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.606458;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-3"
width="2.4308338"
height="2.6782038"
x="-88.90815"
y="-25.024797"
rx="0.14444345" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.484197;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-6"
width="2.5530944"
height="1.6254561"
x="-91.133766"
y="-30.93005"
rx="0.15170835" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:1.05833;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-3"
width="4.4526634"
height="4.4526634"
x="-96.721748"
y="-25.47913"
rx="0.26458332" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.399144;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-7-0"
width="1.6486663"
height="1.7105087"
x="-101.38032"
y="-29.488354"
rx="0.097965993" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.399144;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-7-7-8"
width="1.6486663"
height="1.7105087"
x="-100.32899"
y="-24.417265"
rx="0.097965993" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.669161;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-5-4"
width="7.006321"
height="1.1312789"
x="-98.184097"
y="-17.139441"
rx="0.41632515" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,308 @@
<?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/consolemaker.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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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-6"
width="12.46511"
height="12.46511"
x="0.38202849"
y="0.38202849"
rx="1.246511" />
<g
id="g14758-2"
transform="matrix(0.63507814,0,0,0.63507814,66.67092,21.438206)">
<rect
style="fill:#008100;fill-opacity:1;stroke:#015800;stroke-width:1.05833;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect2937-2"
width="16.927031"
height="16.927031"
x="-103.07599"
y="-31.789791"
rx="0.52916664"
ry="0.52916664" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-7"
width="0.49474049"
height="5.2566171"
x="-94.866463"
y="-30.859426"
rx="0.26458338" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-1"
width="0.49474052"
height="4.8237195"
x="-93.938828"
y="-30.333771"
rx="0.26458341" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-52"
width="0.49474069"
height="3.2776561"
x="-93.196716"
y="-28.694942"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-5-1"
width="0.49474069"
height="3.2776561"
x="-96.350685"
y="-28.725863"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-1"
width="0.49474069"
height="3.2776561"
x="-88.001945"
y="-28.602179"
rx="0.2645835" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-0"
width="0.49474034"
height="6.0605702"
x="-87.878258"
y="-22.479765"
rx="0.26458332" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-1"
width="0.49474058"
height="3.5868685"
x="-93.444092"
y="-20.593569"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-6-8"
width="0.49474058"
height="3.5868685"
x="-97.58754"
y="-19.85146"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-8-7"
width="0.49474058"
height="3.5868685"
x="-99.87571"
y="-22.943584"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-9-6"
width="0.49473983"
height="11.193501"
x="-101.29809"
y="-27.581778"
rx="0.26458308" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-1-7-7-8-2-9-8-0"
width="0.49474058"
height="3.5250261"
x="-100.30862"
y="-27.705462"
rx="0.26458347" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-0"
width="0.49472937"
height="3.5251164"
x="-32.42971"
y="91.079651"
rx="0.26457745"
transform="matrix(0.00743825,0.99997234,-0.99990788,0.01357339,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-9"
width="0.49472395"
height="2.7212634"
x="-32.052433"
y="91.080261"
rx="0.26457453"
transform="matrix(0.00574177,0.99998352,-0.99984541,0.01758294,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-56"
width="0.49472889"
height="3.4632816"
x="-25.2423"
y="88.508125"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-5-2"
width="0.49472323"
height="2.5975995"
x="-21.788242"
y="97.115021"
rx="0.26457417"
transform="matrix(0.00548077,0.99998498,-0.99983034,0.01842001,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-4-8"
width="0.49472889"
height="3.4632816"
x="-25.094913"
y="95.745461"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-2-0-5"
width="0.49472889"
height="3.4632816"
x="-18.011745"
y="97.838226"
rx="0.26457718"
transform="matrix(0.00730776,0.9999733,-0.99990456,0.01381574,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-9"
width="0.49474952"
height="5.5657978"
x="-29.408934"
y="87.229904"
rx="0.26458821"
transform="matrix(0.01174441,0.99993103,-0.99996305,0.00859675,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-4-4"
width="0.49473175"
height="3.8343098"
x="-29.974941"
y="95.622993"
rx="0.2645787"
transform="matrix(0.00809075,0.99996727,-0.99992214,0.01247885,0,0)" />
<rect
style="fill:#ab8011;fill-opacity:1;stroke:#010000;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect9920-8-4-8-4-5-3"
width="0.49472928"
height="3.5251245"
x="-17.903791"
y="87.074791"
rx="0.26457739"
transform="matrix(0.00743827,0.99997234,-0.99990788,0.01357336,0,0)" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-9"
cx="-102.38033"
cy="-31.137722"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-0"
cx="-86.950623"
cy="-31.044958"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-2-5"
cx="-86.826935"
cy="-15.522479"
r="0.4595851" />
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#b08200;stroke-width:0.41395;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path13928-2-2-6-6"
cx="-102.41125"
cy="-15.584321"
r="0.4595851" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.606458;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-3"
width="2.4308338"
height="2.6782038"
x="-88.90815"
y="-25.024797"
rx="0.14444345" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.484197;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-6"
width="2.5530944"
height="1.6254561"
x="-91.133766"
y="-30.93005"
rx="0.15170835" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:1.05833;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-3"
width="4.4526634"
height="4.4526634"
x="-96.721748"
y="-25.47913"
rx="0.26458332" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.399144;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-7-0"
width="1.6486663"
height="1.7105087"
x="-101.38032"
y="-29.488354"
rx="0.097965993" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.399144;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-7-7-7-8"
width="1.6486663"
height="1.7105087"
x="-100.32899"
y="-24.417265"
rx="0.097965993" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#010000;stroke-width:0.669161;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="rect7151-6-5-4"
width="7.006321"
height="1.1312789"
x="-98.184097"
y="-17.139441"
rx="0.41632515" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,110 @@
<?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/buttonmaker.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:xlink="http://www.w3.org/1999/xlink"
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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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">
<linearGradient
inkscape:collect="always"
id="linearGradient22104">
<stop
style="stop-color:#707372;stop-opacity:1;"
offset="0"
id="stop22100" />
<stop
style="stop-color:#1b1819;stop-opacity:1;"
offset="1"
id="stop22102" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient22104"
id="radialGradient22106-3"
cx="36.744789"
cy="66.12191"
fx="36.744789"
fy="66.12191"
r="2.0348806"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-4.1611276,5.2592029)" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g23031-7"
transform="matrix(0.52986006,0,0,0.52986006,-7.0953885,-32.550915)">
<path
id="path19177-3"
style="fill:#000000;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 32.41766,67.193831 c -1.234059,5.77e-4 -2.402119,0.557366 -3.179651,1.51567 -0.03735,-0.0033 -0.07544,-0.0057 -0.113689,-0.0057 h -6.150012 c -0.778172,-0.94737 -1.939704,-1.496472 -3.165698,-1.49655 -2.009066,0.0032 -3.719398,1.462739 -4.038513,3.446302 l -0.01757,-0.0031 -0.343796,6.620655 c -0.0737,0.21366 -0.11159,0.438029 -0.112138,0.664042 -2.23e-4,1.133218 0.918337,2.052009 2.051555,2.052071 0.767351,-4.59e-4 1.470305,-0.429089 1.822111,-1.111043 l 0.01033,0.0083 2.621176,-4.008411 c 0.425287,-0.23589 0.80518,-0.545613 1.121895,-0.914673 h 6.200655 c 0.06064,0 0.120527,-0.0046 0.178801,-0.01292 0.221351,0.259733 0.474285,0.490794 0.752926,0.687813 0,0 2.829902,4.248451 2.80603,4.242635 l 0.0067,-0.0047 c 0.333779,0.729841 1.062458,1.198062 1.865002,1.198377 1.133017,-6.2e-5 2.051493,-0.918538 2.051555,-2.051555 -0.002,-0.06393 -0.007,-0.127736 -0.01499,-0.191202 L 36.50989,71.373905 c 0.0018,-0.02772 0.0034,-0.05545 0.0047,-0.0832 -9.2e-5,-2.262621 -1.834286,-4.096815 -4.096907,-4.096908 z"
sodipodi:nodetypes="ccscccccccccccsccccccccccc" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-2"
cx="19.826353"
cy="69.163277"
r="1.1276354" />
<circle
style="fill:#ffff00;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-5"
cx="21.951302"
cy="71.492081"
r="1.1276354" />
<circle
style="fill:#0073ff;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-9-6"
cx="17.450777"
cy="71.380142"
r="1.1276354" />
<circle
style="fill:#00ff00;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-9-0-3"
cx="19.771206"
cy="73.597"
r="1.1276354" />
<circle
style="fill:url(#radialGradient22106-3);fill-opacity:1;stroke:#838283;stroke-width:0.264583;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path20051-4"
cx="32.58366"
cy="71.381111"
r="2.0348802" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,118 @@
<?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/console.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:xlink="http://www.w3.org/1999/xlink"
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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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">
<linearGradient
inkscape:collect="always"
id="linearGradient22104">
<stop
style="stop-color:#707372;stop-opacity:1;"
offset="0"
id="stop22100" />
<stop
style="stop-color:#1b1819;stop-opacity:1;"
offset="1"
id="stop22102" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient22104"
id="radialGradient22106-3"
cx="36.744789"
cy="66.12191"
fx="36.744789"
fy="66.12191"
r="2.0348806"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-4.1611276,5.2592029)" />
</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-6"
width="12.46511"
height="12.46511"
x="0.38202849"
y="0.38202849"
rx="1.246511" />
<g
id="g23031-7"
transform="matrix(0.52986006,0,0,0.52986006,-7.0953885,-32.550915)">
<path
id="path19177-3"
style="fill:#000000;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="m 32.41766,67.193831 c -1.234059,5.77e-4 -2.402119,0.557366 -3.179651,1.51567 -0.03735,-0.0033 -0.07544,-0.0057 -0.113689,-0.0057 h -6.150012 c -0.778172,-0.94737 -1.939704,-1.496472 -3.165698,-1.49655 -2.009066,0.0032 -3.719398,1.462739 -4.038513,3.446302 l -0.01757,-0.0031 -0.343796,6.620655 c -0.0737,0.21366 -0.11159,0.438029 -0.112138,0.664042 -2.23e-4,1.133218 0.918337,2.052009 2.051555,2.052071 0.767351,-4.59e-4 1.470305,-0.429089 1.822111,-1.111043 l 0.01033,0.0083 2.621176,-4.008411 c 0.425287,-0.23589 0.80518,-0.545613 1.121895,-0.914673 h 6.200655 c 0.06064,0 0.120527,-0.0046 0.178801,-0.01292 0.221351,0.259733 0.474285,0.490794 0.752926,0.687813 0,0 2.829902,4.248451 2.80603,4.242635 l 0.0067,-0.0047 c 0.333779,0.729841 1.062458,1.198062 1.865002,1.198377 1.133017,-6.2e-5 2.051493,-0.918538 2.051555,-2.051555 -0.002,-0.06393 -0.007,-0.127736 -0.01499,-0.191202 L 36.50989,71.373905 c 0.0018,-0.02772 0.0034,-0.05545 0.0047,-0.0832 -9.2e-5,-2.262621 -1.834286,-4.096815 -4.096907,-4.096908 z"
sodipodi:nodetypes="ccscccccccccccsccccccccccc" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-2"
cx="19.826353"
cy="69.163277"
r="1.1276354" />
<circle
style="fill:#ffff00;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-5"
cx="21.951302"
cy="71.492081"
r="1.1276354" />
<circle
style="fill:#0073ff;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-9-6"
cx="17.450777"
cy="71.380142"
r="1.1276354" />
<circle
style="fill:#00ff00;fill-opacity:1;stroke:#b08200;stroke-width:0;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path19753-5-9-0-3"
cx="19.771206"
cy="73.597"
r="1.1276354" />
<circle
style="fill:url(#radialGradient22106-3);fill-opacity:1;stroke:#838283;stroke-width:0.264583;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path20051-4"
cx="32.58366"
cy="71.381111"
r="2.0348802" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

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/circuit.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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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="path2422-1"
style="fill:#ffffff;fill-opacity:1;stroke:#010000;stroke-width:0.49963;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 11.23819,7.659357 A 1.2993707,1.0394967 50.383802 0 0 9.6090941,7.3211204 1.2993707,1.0394967 50.383802 0 0 9.508248,7.4204299 1.5917292,1.7216662 50.383802 0 0 9.1841571,6.1967449 1.5917292,1.7216662 50.383802 0 0 7.1596155,5.8571077 2.7286787,2.0140247 50.383802 0 0 6.7430824,5.1859342 1.2668865,1.3968236 50.383802 0 0 6.9878951,5.0206606 1.2668865,1.3968236 50.383802 0 0 7.256167,3.1540008 1.2668865,1.3968236 50.383802 0 0 5.3722537,3.0688094 1.2668865,1.3968236 50.383802 0 0 5.299635,3.1333528 1.2668865,1.5592448 50.383802 0 0 5.1195192,2.8143678 1.2668865,1.5592448 50.383802 0 0 3.1104437,2.8327797 1.2668865,1.5592448 50.383802 0 0 2.6591664,4.7255103 1.2993707,1.4617921 50.383802 0 0 2.3823963,6.6400583 1.2993707,1.4617921 50.383802 0 0 3.1672733,7.0633409 2.7286787,2.0140247 50.383802 0 0 3.353875,7.3760066 0.90955958,1.8516033 50.383802 0 0 2.7114714,7.8016625 0.90955958,1.8516033 50.383802 0 0 1.865001,9.682966 0.90955958,1.8516033 50.383802 0 0 3.7466469,9.3013268 1.0719808,1.3643393 50.383802 0 0 3.9481913,9.8562469 1.0719808,1.3643393 50.383802 0 0 5.6828185,9.8119692 1.0719808,1.3643393 50.383802 0 0 5.8711165,9.6304535 1.4293078,1.0070123 50.383802 0 0 7.5286331,10.055059 1.4293078,1.0070123 50.383802 0 0 7.7417277,8.9393512 1.5917292,1.7216662 50.383802 0 0 8.8729539,8.5207782 1.5917292,1.7216662 50.383802 0 0 9.2862784,8.0364529 1.2993707,1.0394967 50.383802 0 0 9.6368307,8.9848789 1.2993707,1.0394967 50.383802 0 0 11.266115,9.3229607 1.2993707,1.0394967 50.383802 0 0 11.238191,7.6593561 Z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,58 @@
<?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/stuffing.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.9225905"
inkscape:cx="54.873881"
inkscape:cy="-1.0402631"
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-6"
width="12.46511"
height="12.46511"
x="0.38202849"
y="0.38202849"
rx="1.246511" />
<path
id="path2422-1"
style="fill:#ffffff;fill-opacity:1;stroke:#010000;stroke-width:0.49963;stroke-linecap:round;stroke-miterlimit:6;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
d="M 11.23819,7.659357 A 1.2993707,1.0394967 50.383802 0 0 9.6090941,7.3211204 1.2993707,1.0394967 50.383802 0 0 9.508248,7.4204299 1.5917292,1.7216662 50.383802 0 0 9.1841571,6.1967449 1.5917292,1.7216662 50.383802 0 0 7.1596155,5.8571077 2.7286787,2.0140247 50.383802 0 0 6.7430824,5.1859342 1.2668865,1.3968236 50.383802 0 0 6.9878951,5.0206606 1.2668865,1.3968236 50.383802 0 0 7.256167,3.1540008 1.2668865,1.3968236 50.383802 0 0 5.3722537,3.0688094 1.2668865,1.3968236 50.383802 0 0 5.299635,3.1333528 1.2668865,1.5592448 50.383802 0 0 5.1195192,2.8143678 1.2668865,1.5592448 50.383802 0 0 3.1104437,2.8327797 1.2668865,1.5592448 50.383802 0 0 2.6591664,4.7255103 1.2993707,1.4617921 50.383802 0 0 2.3823963,6.6400583 1.2993707,1.4617921 50.383802 0 0 3.1672733,7.0633409 2.7286787,2.0140247 50.383802 0 0 3.353875,7.3760066 0.90955958,1.8516033 50.383802 0 0 2.7114714,7.8016625 0.90955958,1.8516033 50.383802 0 0 1.865001,9.682966 0.90955958,1.8516033 50.383802 0 0 3.7466469,9.3013268 1.0719808,1.3643393 50.383802 0 0 3.9481913,9.8562469 1.0719808,1.3643393 50.383802 0 0 5.6828185,9.8119692 1.0719808,1.3643393 50.383802 0 0 5.8711165,9.6304535 1.4293078,1.0070123 50.383802 0 0 7.5286331,10.055059 1.4293078,1.0070123 50.383802 0 0 7.7417277,8.9393512 1.5917292,1.7216662 50.383802 0 0 8.8729539,8.5207782 1.5917292,1.7216662 50.383802 0 0 9.2862784,8.0364529 1.2993707,1.0394967 50.383802 0 0 9.6368307,8.9848789 1.2993707,1.0394967 50.383802 0 0 11.266115,9.3229607 1.2993707,1.0394967 50.383802 0 0 11.238191,7.6593561 Z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -30,7 +30,7 @@ import { noPersist, Persistent, persistent, State } from "game/persistence";
import Decimal, { DecimalSource, format, formatWhole } from "util/bignum"; import Decimal, { DecimalSource, format, formatWhole } from "util/bignum";
import { Direction } from "util/common"; import { Direction } from "util/common";
import { ProcessedComputable } from "util/computed"; import { ProcessedComputable } from "util/computed";
import { render, renderGrid, renderRow } from "util/vue"; import { render, renderGrid, renderRow, VueFeature } from "util/vue";
import { computed, ComputedRef, reactive, ref, unref, watchEffect } from "vue"; import { computed, ComputedRef, reactive, ref, unref, watchEffect } from "vue";
import _cloth from "../symbols/cloth.png"; import _cloth from "../symbols/cloth.png";
import _dye from "../symbols/dyes.png"; import _dye from "../symbols/dyes.png";
@ -38,18 +38,14 @@ import _metal from "../symbols/metal.png";
import _plastic from "../symbols/plastic.png"; import _plastic from "../symbols/plastic.png";
import boxes from "./boxes"; import boxes from "./boxes";
import coal from "./coal"; import coal from "./coal";
import { import _bear from "./factory-components/bear.svg";
default as _bear, import _bearMaker from "./factory-components/bearmaker.svg";
default as _circuitBoard, import _stuffing from "./factory-components/stuffing.svg";
default as _console, import _console from "./factory-components/console.svg";
default as _stuffing import _circuitBoard from "./factory-components/circuit.svg";
} from "./factory-components/bear.svg"; import _stuffingMaker from "./factory-components/stuffingmaker.svg";
import { import _consoleMaker from "./factory-components/consolemaker.svg";
default as _bearMaker, import _circuitBoardMaker from "./factory-components/circuitmaker.svg";
default as _circuitBoardMaker,
default as _consoleMaker,
default as _stuffingMaker
} from "./factory-components/bearmaker.svg";
import _block from "./factory-components/block.svg"; import _block from "./factory-components/block.svg";
import _blockMaker from "./factory-components/blockmaker.svg"; import _blockMaker from "./factory-components/blockmaker.svg";
import _bucket from "./factory-components/bucket.svg"; import _bucket from "./factory-components/bucket.svg";
@ -67,11 +63,10 @@ import _rotateLeft from "./factory-components/rotateLeft.svg";
import _rotateRight from "./factory-components/rotateRight.svg"; import _rotateRight from "./factory-components/rotateRight.svg";
import _plankMaker from "./factory-components/sawmill.svg"; import _plankMaker from "./factory-components/sawmill.svg";
import _shed from "./factory-components/shed.svg"; import _shed from "./factory-components/shed.svg";
import { default as _button, default as _shovel } from "./factory-components/shovel.svg"; import _button from "./factory-components/button.svg";
import { import _shovel from "./factory-components/shovel.svg";
default as _buttonMaker, import _shovelMaker from "./factory-components/shovelmaker.svg";
default as _shovelMaker import _buttonMaker from "./factory-components/buttonmaker.svg";
} from "./factory-components/shovelmaker.svg";
import _thread from "./factory-components/thread.svg"; import _thread from "./factory-components/thread.svg";
import _threadMaker from "./factory-components/threadmaker.svg"; import _threadMaker from "./factory-components/threadmaker.svg";
import _truck from "./factory-components/truck.svg"; import _truck from "./factory-components/truck.svg";
@ -87,8 +82,8 @@ import trees from "./trees";
import workshop from "./workshop"; import workshop from "./workshop";
import paper from "./paper"; import paper from "./paper";
import metal from "./metal"; import metal from "./metal";
import dyes from "./dyes" import dyes from "./dyes";
import plastic from "./plastic" import plastic from "./plastic";
const id = "factory"; const id = "factory";
@ -97,7 +92,7 @@ const advancedDay = 19;
const presentsDay = 20; const presentsDay = 20;
const toyGoal = 750; const toyGoal = 750;
const advancedToyGoal = 2000; const advancedToyGoal = 1500;
// 20x20 block size // 20x20 block size
// TODO: unhardcode stuff // TODO: unhardcode stuff
@ -105,13 +100,6 @@ const advancedToyGoal = 2000;
function roundDownTo(num: number, multiple: number) { function roundDownTo(num: number, multiple: number) {
return Math.floor((num + multiple / 2) / multiple) * multiple; return Math.floor((num + multiple / 2) / multiple) * multiple;
} }
function getRelativeCoords(e: MouseEvent) {
const rect = (e.target as HTMLElement).getBoundingClientRect();
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function rotateDir(dir: Direction, relative = Direction.Right) { function rotateDir(dir: Direction, relative = Direction.Right) {
const directions = [Direction.Up, Direction.Right, Direction.Down, Direction.Left]; const directions = [Direction.Up, Direction.Right, Direction.Down, Direction.Left];
let index = directions.indexOf(dir); let index = directions.indexOf(dir);
@ -150,6 +138,15 @@ const factory = createLayer(id, () => {
const bucketAndShovels = createResource<DecimalSource>(0, "shovel and pails"); const bucketAndShovels = createResource<DecimalSource>(0, "shovel and pails");
const consoles = createResource<DecimalSource>(0, "consoles"); const consoles = createResource<DecimalSource>(0, "consoles");
function getRelativeCoords(e: MouseEvent) {
const rect = (e.target as HTMLElement).getBoundingClientRect();
const offset = computedFactorySize.value % 2 === 0 ? -blockSize / 2 : 0;
return {
x: e.clientX - rect.left + offset,
y: e.clientY - rect.top + offset
};
}
const energy = createSequentialModifier(() => [ const energy = createSequentialModifier(() => [
createAdditiveModifier(() => ({ createAdditiveModifier(() => ({
addend: () => Decimal.add(1, coal.coal.value).log10(), addend: () => Decimal.add(1, coal.coal.value).log10(),
@ -167,7 +164,12 @@ const factory = createLayer(id, () => {
})), })),
createMultiplicativeModifier(() => ({ createMultiplicativeModifier(() => ({
multiplier: 1.4, multiplier: 1.4,
description: "2000 toys", description: "1500 toys",
enabled: toys.milestones.milestone6.earned
})),
createMultiplicativeModifier(() => ({
multiplier: 1.4,
description: "6000 toys",
enabled: toys.milestones.milestone6.earned enabled: toys.milestones.milestone6.earned
})) }))
]); ]);
@ -194,6 +196,23 @@ const factory = createLayer(id, () => {
multiplier: energyEfficiency, multiplier: energyEfficiency,
description: "Energy Consumption", description: "Energy Consumption",
enabled: () => Decimal.gt(energyConsumption.value, computedEnergy.value) enabled: () => Decimal.gt(energyConsumption.value, computedEnergy.value)
})),
createMultiplicativeModifier(() => ({
multiplier: Decimal.add(paper.paper.value, 1).log10().div(100).add(1),
description: "News Ticker",
enabled: () => upgrades[0][1].bought.value
})),
createMultiplicativeModifier(() => ({
multiplier: Decimal.lt(energyEfficiency.value, 1)
? 1
: Decimal.sub(2, Decimal.div(energyConsumption.value, computedEnergy.value)),
description: "Brighter work rooms",
enabled: () => upgrades[2][1].bought.value
})),
createMultiplicativeModifier(() => ({
multiplier: 1.5,
description: "Carry ticks in boxes",
enabled: () => upgrades[2][3].bought.value
})) }))
]); ]);
const computedTickRate = computed(() => tickRate.apply(1)); const computedTickRate = computed(() => tickRate.apply(1));
@ -356,7 +375,7 @@ const factory = createLayer(id, () => {
tick: 1, tick: 1,
outputs: { outputs: {
dye: { dye: {
amount: 1 amount: computed(() => (upgrades[1][1].bought.value ? 4 : 1))
} }
} }
} as FactoryComponentDeclaration, } as FactoryComponentDeclaration,
@ -386,7 +405,7 @@ const factory = createLayer(id, () => {
tick: 1, tick: 1,
outputs: { outputs: {
plastic: { plastic: {
amount: 1 amount: computed(() => (upgrades[1][2].bought.value ? 4 : 1))
} }
} }
} as FactoryComponentDeclaration, } as FactoryComponentDeclaration,
@ -400,12 +419,12 @@ const factory = createLayer(id, () => {
tick: 1, tick: 1,
inputs: { inputs: {
wood: { wood: {
amount: 1 amount: computed(() => (upgrades[0][0].bought.value ? 2 : 1))
} }
}, },
outputs: { outputs: {
plank: { plank: {
amount: 1 amount: computed(() => (upgrades[0][0].bought.value ? 2 : 1))
} }
} }
} as FactoryComponentDeclaration, } as FactoryComponentDeclaration,
@ -527,7 +546,7 @@ const factory = createLayer(id, () => {
} }
}, },
outputs: { outputs: {
shovel: { bucket: {
amount: 1 amount: 1
} }
}, },
@ -571,7 +590,7 @@ const factory = createLayer(id, () => {
}, },
outputs: { outputs: {
block: { block: {
amount: 1, amount: computed(() => (upgrades[1][0].bought.value ? 3 : 1)),
resource: toys.woodenBlocks resource: toys.woodenBlocks
} }
} }
@ -650,7 +669,7 @@ const factory = createLayer(id, () => {
}, },
outputs: { outputs: {
bear: { bear: {
amount: 1, amount: computed(() => (upgrades[1][3].bought.value ? 2 : 1)),
resource: bears resource: bears
} }
}, },
@ -702,7 +721,7 @@ const factory = createLayer(id, () => {
}, },
outputs: { outputs: {
console: { console: {
amount: 1, amount: computed(() => (upgrades[1][3].bought.value ? 3 : 1)),
resource: consoles resource: consoles
} }
}, },
@ -1010,7 +1029,7 @@ const factory = createLayer(id, () => {
const oilFuel = createBuyable(() => ({ const oilFuel = createBuyable(() => ({
resource: oil.oil, resource: oil.oil,
cost() { cost() {
return Decimal.pow(10, this.amount.value).times(1e24); return Decimal.pow(10, this.amount.value).times(1e23);
}, },
display: { display: {
title: "Oil Fuel", title: "Oil Fuel",
@ -1040,64 +1059,118 @@ const factory = createLayer(id, () => {
const factoryBuyables = { expandFactory, oilFuel, carryToys }; const factoryBuyables = { expandFactory, oilFuel, carryToys };
const upgrades = [[createUpgrade(() => ({ const upgrades = [[createUpgrade(() => ({
resource: trees.logs, resource: trees.logs,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1e80), cost: () =>Decimal.pow(5, upgradeAmount.value).mul(1e75),
display: { display: {
title: "Sawmill Efficiency", title: "Sawmill Efficiency",
description: "Metal increases sawmill consumption and production by *log(metal)/10" description: "Double sawmill consumption and production and metal supplier efficiency"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})), })),
createUpgrade(() => ({ createUpgrade(() => ({
resource: paper.paper, resource: paper.paper,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1e94), cost: () =>Decimal.pow(5, upgradeAmount.value).mul(1e90),
display: { display: {
title: "News Ticker", title: "News Ticker",
description: "Paper boosts tick speed" // formula: *1+log(x)/100 description: "Paper boosts tick speed"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})), })),
createUpgrade(() => ({ createUpgrade(() => ({
resource: toys.trucks, resource: toys.trucks,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1000), cost: () =>Decimal.pow(1.2, upgradeAmount.value).mul(1000),
display: { display: {
title: "Haul wood in trucks", title: "Haul wood in trucks",
description: "Trucks multiply wood gain" description: "Trucks multiply wood gain"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})), })),
createUpgrade(() => ({ createUpgrade(() => ({
resource: metal.metal, resource: metal.metal,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1e55), cost: () =>Decimal.pow(3, upgradeAmount.value).mul(1e53),
display: { display: {
title: "Diamond-tipped drills", title: "Diamond-tipped drills",
description: "Drill power ^1.2" description: "Drill power ^1.2"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
}))], }))],
[createUpgrade(() => ({ [createUpgrade(() => ({
resource: toys.woodenBlocks, resource: toys.woodenBlocks,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1000), cost: () =>Decimal.pow(1.2, upgradeAmount.value).mul(2000),
display: { display: {
title: "Larger wood pieces", title: "Larger wood pieces",
description: "Wooden block producers produce 3x as much" description: "Wooden block producers produce 3x as much"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})), })),
createUpgrade(() => ({ createUpgrade(() => ({
resource: dyes.dyes.red.amount, resource: dyes.dyes.red.amount,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1e17), cost: () =>Decimal.pow(1.5, upgradeAmount.value).mul(4e16),
display: { display: {
title: "Colorful clothes", title: "Colorful clothes",
description: "Dye producers produce 4x as much" description: "Dye producers produce 4x as much"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})), })),
createUpgrade(() => ({ createUpgrade(() => ({
resource: plastic.plastic, resource: plastic.plastic,
cost: () =>Decimal.pow(10, upgradeAmount.value).mul(1e17), cost: () =>Decimal.pow(2, upgradeAmount.value).mul(1e17),
display: { display: {
title: "Improved plastic producers", title: "Improved plastic producers",
description: "Plastic producers produce 4x as much" description: "Plastic producers produce 4x as much"
} },
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})),
createUpgrade(() => ({
resource: oil.oil,
cost: () =>Decimal.pow(1.5, upgradeAmount.value).mul(1e22),
display: {
title: "Capitalism",
description: "Console production is tripled"
},
visible: () => showIf(main.days[advancedDay - 1].opened.value)
}))],
[createUpgrade(() => ({
resource: coal.coal,
cost: () =>Decimal.pow(5, upgradeAmount.value).mul(1e130),
display: {
title: "Brighter work rooms",
description: "Unused electricity makes ticks faster"
},
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})),
createUpgrade(() => ({
resource: dyes.dyes.blue.amount,
cost: () =>Decimal.pow(1.4, upgradeAmount.value).mul(1e15),
display: {
title: "Colorful teddy bears",
description: "Teddy bears produce 2x as much"
},
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})),
createUpgrade(() => ({
resource: dyes.dyes.black.amount,
cost: () =>Decimal.pow(1.5, upgradeAmount.value).mul(1e6),
display: {
title: "New Colors",
description: "Unlock white dye"
},
visible: () => showIf(main.days[advancedDay - 1].opened.value)
})),
createUpgrade(() => ({
resource: boxes.boxes,
cost: () =>Decimal.pow(3, upgradeAmount.value).mul(1e80),
display: {
title: "Carry ticks in boxes",
description: "Tick speed x1.5"
},
visible: () => showIf(main.days[advancedDay - 1].opened.value)
}))], }))],
] ]
// pixi // pixi
const upgradeAmount = computed(() => Object.values(upgrades).filter(u => u.bought.value).length) as ComputedRef<number> const upgradeAmount = computed(
() => upgrades.flat().filter(u => u.bought.value).length
) as ComputedRef<number>;
// load every sprite here so pixi doesn't complain about loading multiple times // load every sprite here so pixi doesn't complain about loading multiple times
const assetsLoading = Promise.all([ const assetsLoading = Promise.all([
Assets.load(Object.values(FACTORY_COMPONENTS).map(x => x.imageSrc)), Assets.load(Object.values(FACTORY_COMPONENTS).map(x => x.imageSrc)),
@ -1164,8 +1237,6 @@ const factory = createLayer(id, () => {
} }
} }
updateGraphics();
loaded = true; loaded = true;
watchEffect(updateGraphics); watchEffect(updateGraphics);
}); });
@ -1497,19 +1568,20 @@ const factory = createLayer(id, () => {
graphicContainer.removeChild(hoverSprite); graphicContainer.removeChild(hoverSprite);
if (isMouseHoverShown.value && compSelected.value !== "cursor") { if (isMouseHoverShown.value && compSelected.value !== "cursor") {
// Offset half a block if factory size is even
const factorySizeOffset = computedFactorySize.value % 2 === 0 ? blockSize / 2 : 0;
const { tx, ty } = spriteContainer.localTransform; const { tx, ty } = spriteContainer.localTransform;
const x =
roundDownTo(mouseCoords.x - tx, blockSize) + factorySizeOffset + tx - blockSize / 2;
const y =
roundDownTo(mouseCoords.y - ty, blockSize) + factorySizeOffset + ty - blockSize / 2;
graphicContainer.lineStyle(4, 0x808080, 1); graphicContainer.lineStyle(4, 0x808080, 1);
graphicContainer.drawRect( graphicContainer.drawRect(x, y, blockSize, blockSize);
roundDownTo(mouseCoords.x - tx, blockSize) + tx - blockSize / 2,
roundDownTo(mouseCoords.y - ty, blockSize) + ty - blockSize / 2,
blockSize,
blockSize
);
const factoryBaseData = FACTORY_COMPONENTS[compSelected.value]; const factoryBaseData = FACTORY_COMPONENTS[compSelected.value];
const sheet = Assets.get(factoryBaseData.imageSrc); const sheet = Assets.get(factoryBaseData.imageSrc);
hoverSprite = new Sprite(sheet); hoverSprite = new Sprite(sheet);
hoverSprite.x = roundDownTo(mouseCoords.x - tx, blockSize) + tx - blockSize / 2; hoverSprite.x = x;
hoverSprite.y = roundDownTo(mouseCoords.y - ty, blockSize) + ty - blockSize / 2; hoverSprite.y = y;
hoverSprite.width = blockSize; hoverSprite.width = blockSize;
hoverSprite.height = blockSize; hoverSprite.height = blockSize;
hoverSprite.alpha = 0.5; hoverSprite.alpha = 0.5;
@ -1677,7 +1749,6 @@ const factory = createLayer(id, () => {
const hovered = ref(false); const hovered = ref(false);
const componentsList = jsx(() => { const componentsList = jsx(() => {
return ( return (
<div class={{ "comp-container": true, hovered: hovered.value }}> <div class={{ "comp-container": true, hovered: hovered.value }}>
<div class="comp-list"> <div class="comp-list">
<div <div
@ -1759,22 +1830,24 @@ const factory = createLayer(id, () => {
); );
} }
const hoveredComponent = jsx(() => const hoveredComponent = jsx(() => {
compHovered.value !== undefined ? ( if (compHovered.value == null) {
return "";
}
const factorySizeOffset = computedFactorySize.value % 2 === 0 ? blockSize / 2 : 0;
const x = mouseCoords.x + factorySizeOffset;
const y = mouseCoords.y + factorySizeOffset;
const onRight =
x + (document.getElementById("factory-info")?.clientWidth ?? 0) > app.view.width - 30;
const onTop =
y + (document.getElementById("factory-info")?.clientHeight ?? 0) > app.view.height - 30;
return (
<div <div
class="info-container" class="info-container"
id="factory-info" id="factory-info"
style={{ style={{
...(mouseCoords.x + ...(onRight ? { right: app.view.width - x + "px" } : { left: x + 148 + "px" }),
(document.getElementById("factory-info")?.clientWidth ?? 0) > ...(onTop ? { bottom: app.view.height - y + "px" } : { top: y + "px" })
app.view.width - 30
? { right: app.view.width - mouseCoords.x + "px" }
: { left: mouseCoords.x + 148 + "px" }),
...(mouseCoords.y +
(document.getElementById("factory-info")?.clientHeight ?? 0) >
app.view.height - 30
? { bottom: app.view.height - mouseCoords.y + "px" }
: { top: mouseCoords.y + "px" })
}} }}
> >
<h3>{FACTORY_COMPONENTS[compHovered.value.type].name}</h3> <h3>{FACTORY_COMPONENTS[compHovered.value.type].name}</h3>
@ -1797,10 +1870,8 @@ const factory = createLayer(id, () => {
</> </>
) : undefined} ) : undefined}
</div> </div>
) : (
""
)
); );
});
const tabs = createTabFamily( const tabs = createTabFamily(
{ {
@ -1863,7 +1934,7 @@ const factory = createLayer(id, () => {
<Spacer /> <Spacer />
{renderRow(...Object.values(factoryBuyables))} {renderRow(...Object.values(factoryBuyables))}
<Spacer /> <Spacer />
{renderGrid(upgrades as VueFeature[])} {renderGrid(...(upgrades as VueFeature[][]))}
</> </>
)) ))
})), })),

View file

@ -25,6 +25,7 @@ import {
createSequentialModifier, createSequentialModifier,
createAdditiveModifier, createAdditiveModifier,
createMultiplicativeModifier, createMultiplicativeModifier,
createExponentialModifier,
Modifier Modifier
} from "game/modifiers"; } from "game/modifiers";
import { main } from "data/projEntry"; import { main } from "data/projEntry";
@ -41,6 +42,7 @@ import workshop from "./workshop";
import { WithRequired } from "util/common"; import { WithRequired } from "util/common";
import { ElfBuyable } from "./elves"; import { ElfBuyable } from "./elves";
import toys from "./toys"; import toys from "./toys";
import factory from "./factory";
const id = "oil"; const id = "oil";
const day = 9; const day = 9;
@ -889,6 +891,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
multiplier: dyes.boosts.red2, multiplier: dyes.boosts.red2,
description: "Red Dye", description: "Red Dye",
enabled: dyes.masteryEffectActive enabled: dyes.masteryEffectActive
})),
createExponentialModifier(() => ({
exponent: 1.2,
description: "Diamond-tipped drills",
enabled: factory.upgrades[0][3].bought
})) }))
]); ]);
const computedDrillPower = computed(() => drillPower.apply(0)); const computedDrillPower = computed(() => drillPower.apply(0));

View file

@ -379,6 +379,10 @@ const layer = createLayer(id, function (this: BaseLayer) {
multiplier: 50, multiplier: 50,
description: "350 toys", description: "350 toys",
enabled: toys.milestones.milestone4.earned enabled: toys.milestones.milestone4.earned
})),
createMultiplicativeModifier(() => ({
multiplier: () => dyes.boosts.white1.value,
description: "White Dye Boost"
})) }))
]); ]);
const computedPlasticGain = computed(() => plasticGain.apply(0)); const computedPlasticGain = computed(() => plasticGain.apply(0));

View file

@ -288,6 +288,15 @@ const layer = createLayer(id, function (this: BaseLayer) {
visibility: () => visibility: () =>
showIf(milestone6.earned.value && main.days[factory.advancedDay - 1].opened.value) showIf(milestone6.earned.value && main.days[factory.advancedDay - 1].opened.value)
})) as GenericMilestone; })) as GenericMilestone;
const milestone8 = createMilestone(() => ({
display: {
requirement: "6000 toys",
effectDisplay: "Running out of energy? Let's increase the limit! Multiply energy capacity by 1.4"
},
shouldEarn: () => Decimal.gte(toySum.value, 6000),
visibility: () =>
showIf(milestone6.earned.value && main.days[factory.advancedDay - 1].opened.value)
})) as GenericMilestone;
const milestones = { const milestones = {
milestone1, milestone1,
milestone2, milestone2,
@ -295,7 +304,8 @@ const layer = createLayer(id, function (this: BaseLayer) {
milestone4, milestone4,
milestone5, milestone5,
milestone6, milestone6,
milestone7 milestone7,
milestone8
}; };
const { collapseMilestones, display: milestonesDisplay } = const { collapseMilestones, display: milestonesDisplay } =
createCollapsibleMilestones(milestones); createCollapsibleMilestones(milestones);

View file

@ -39,6 +39,7 @@ import paper from "./paper";
import workshop from "./workshop"; import workshop from "./workshop";
import wrappingPaper from "./wrapping-paper"; import wrappingPaper from "./wrapping-paper";
import toys from "./toys"; import toys from "./toys";
import factory from "./factory";
const id = "trees"; const id = "trees";
const day = 1; const day = 1;
@ -551,6 +552,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
description: "3000 Toys", description: "3000 Toys",
enabled: toys.milestones.milestone7.earned enabled: toys.milestones.milestone7.earned
})), })),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(toys.trucks.value, 1),
description: "Haul wood in trucks",
enabled: factory.upgrades[0][2].bought
})),
createExponentialModifier(() => ({ createExponentialModifier(() => ({
exponent: 1.2, exponent: 1.2,
description: "100% Foundation Completed", description: "100% Foundation Completed",