mirror of
https://github.com/thepaperpilot/Advent-Incremental.git
synced 2024-11-21 16:13:57 +00:00
Merge branch 'main' into day-18-toy-factory
This commit is contained in:
commit
4ba4fcdb25
8 changed files with 89 additions and 65 deletions
|
@ -68,6 +68,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
style: {
|
||||
minHeight: "80px"
|
||||
},
|
||||
visibility: () => showIf(Decimal.lt(totalLetters.value, 8e9)),
|
||||
canClick: () =>
|
||||
Decimal.gte(processingProgress.value, computedProcessingCooldown.value) &&
|
||||
(!main.isMastery.value || masteryEffectActive.value),
|
||||
|
@ -338,10 +339,14 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
) : null}
|
||||
<MainDisplay resource={letters} color={color} />
|
||||
{render(process)}
|
||||
<div>
|
||||
The more letters you process, the more you'll improve at processing letters.
|
||||
</div>
|
||||
<div>Currently: {format(synergy.value)}x</div>
|
||||
{Decimal.lt(totalLetters.value, 8e9) ? (
|
||||
<div>
|
||||
The more letters you process, the more you'll improve at processing letters.
|
||||
<div>Currently: {format(synergy.value)}x</div>
|
||||
</div>
|
||||
) : (
|
||||
<div>You've processed all of humanity's letters to Santa!</div>
|
||||
)}
|
||||
<Spacer />
|
||||
{renderRow(...Object.values(buyables))}
|
||||
<Spacer />
|
||||
|
|
|
@ -311,7 +311,7 @@ const layer = createLayer(id, () => {
|
|||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Multiply log gain by <sup>9</sup>
|
||||
<Sqrt>Cutter amount</Sqrt>.
|
||||
<Sqrt>Cutter amount</Sqrt>
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -320,7 +320,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Holly Level 2",
|
||||
effectDisplay: "Holly now buys max."
|
||||
effectDisplay: "Holly now buys max"
|
||||
},
|
||||
visibility: () => showIf(cutterElfMilestones[0].earned.value),
|
||||
shouldEarn: () => cutterElfTraining.level.value >= 2
|
||||
|
@ -330,8 +330,7 @@ const layer = createLayer(id, () => {
|
|||
requirement: "Holly Level 3",
|
||||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Multiply all cloth actions' effectiveness by log<sub>10</sub>(Cutter
|
||||
amount).
|
||||
Multiply all cloth actions' effectiveness by log<sub>10</sub>(Cutter amount)
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -349,7 +348,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Holly Level 5",
|
||||
effectDisplay: "Unlock an elf that autobuys oil drills and extractors."
|
||||
effectDisplay: "Unlock an elf that autobuys oil drills and extractors"
|
||||
},
|
||||
visibility: () => showIf(cutterElfMilestones[3].earned.value && main.day.value >= 13),
|
||||
shouldEarn: () => cutterElfTraining.level.value >= 5,
|
||||
|
@ -362,14 +361,14 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Ivy Level 1",
|
||||
effectDisplay: "Planters are now twice as efficent."
|
||||
effectDisplay: "Planters are now twice as efficent"
|
||||
},
|
||||
shouldEarn: () => planterElfTraining.level.value >= 1
|
||||
})),
|
||||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Ivy Level 2",
|
||||
effectDisplay: "Ivy now buys max."
|
||||
effectDisplay: "Ivy now buys max"
|
||||
},
|
||||
visibility: () => showIf(planterElfMilestones[0].earned.value),
|
||||
shouldEarn: () => planterElfTraining.level.value >= 2
|
||||
|
@ -418,7 +417,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Hope Level 2",
|
||||
effectDisplay: "Hope now buys max."
|
||||
effectDisplay: "Hope now buys max"
|
||||
},
|
||||
visibility: () => showIf(expanderElfMilestones[0].earned.value),
|
||||
shouldEarn: () => expandersElfTraining.level.value >= 2
|
||||
|
@ -426,7 +425,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Hope Level 3",
|
||||
effectDisplay: "The workshop can be expanded past 100%, but costs scale faster."
|
||||
effectDisplay: "The workshop can be expanded past 100%, but costs scale faster"
|
||||
},
|
||||
visibility: () => showIf(expanderElfMilestones[1].earned.value),
|
||||
shouldEarn: () => expandersElfTraining.level.value >= 3
|
||||
|
@ -434,7 +433,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Hope Level 4",
|
||||
effectDisplay: "Unlock an elf that autobuys coal drills."
|
||||
effectDisplay: "Unlock an elf that autobuys coal drills"
|
||||
},
|
||||
visibility: () => showIf(expanderElfMilestones[2].earned.value && main.day.value >= 13),
|
||||
shouldEarn: () => expandersElfTraining.level.value >= 4,
|
||||
|
@ -455,7 +454,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Jack Level 1",
|
||||
effectDisplay: '"Fahrenheit 451" affects "Heated Cutters" twice.'
|
||||
effectDisplay: '"Fahrenheit 451" affects "Heated Cutters" twice'
|
||||
},
|
||||
shouldEarn: () => heatedCutterElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -470,7 +469,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Jack Level 3",
|
||||
effectDisplay: "Jack and Joy now buy max."
|
||||
effectDisplay: "Jack and Joy now buy max"
|
||||
},
|
||||
visibility: () => showIf(heatedCutterElfMilestones[1].earned.value),
|
||||
shouldEarn: () => heatedCutterElfTraining.level.value >= 3
|
||||
|
@ -480,7 +479,7 @@ const layer = createLayer(id, () => {
|
|||
requirement: "Jack Level 4",
|
||||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Oil gain is multiplied by <Sqrt>total elf levels</Sqrt>.
|
||||
Oil gain is multiplied by <Sqrt>total elf levels</Sqrt>
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -491,7 +490,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Jack Level 5",
|
||||
effectDisplay: "Unlock an elf that autobuys oil-using machines."
|
||||
effectDisplay: "Unlock an elf that autobuys oil-using machines"
|
||||
},
|
||||
visibility: () =>
|
||||
showIf(heatedCutterElfMilestones[3].earned.value && main.day.value >= 13),
|
||||
|
@ -505,14 +504,14 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Mary Level 1",
|
||||
effectDisplay: `"Tillamook Burn Country" affects "Heated Planters" twice.`
|
||||
effectDisplay: `"Tillamook Burn Country" affects "Heated Planters" twice`
|
||||
},
|
||||
shouldEarn: () => heatedPlanterElfTraining.level.value >= 1
|
||||
})),
|
||||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Mary Level 2",
|
||||
effectDisplay: "Metal gain is raised to the 1.1."
|
||||
effectDisplay: "Metal gain is raised to the 1.1"
|
||||
},
|
||||
visibility: () => showIf(heatedPlanterElfMilestones[0].earned.value),
|
||||
shouldEarn: () => heatedPlanterElfTraining.level.value >= 2
|
||||
|
@ -520,7 +519,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Mary Level 3",
|
||||
effectDisplay: "Mary, Noel, and Faith now buy max."
|
||||
effectDisplay: "Mary, Noel, and Faith now buy max"
|
||||
},
|
||||
visibility: () => showIf(heatedPlanterElfMilestones[1].earned.value),
|
||||
shouldEarn: () => heatedPlanterElfTraining.level.value >= 3
|
||||
|
@ -539,7 +538,7 @@ const layer = createLayer(id, () => {
|
|||
requirement: "Mary Level 5",
|
||||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Auto smelting speed is multiplied by <Sqrt>total XP/1e6</Sqrt>.
|
||||
Auto smelting speed is multiplied by <Sqrt>total XP/1e6</Sqrt>
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -554,7 +553,7 @@ const layer = createLayer(id, () => {
|
|||
requirement: "Noel Level 1",
|
||||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Log gain is multiplied by <Sqrt>total elf levels</Sqrt>.
|
||||
Log gain is multiplied by <Sqrt>total elf levels</Sqrt>
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -606,7 +605,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Joy Level 1",
|
||||
effectDisplay: "Small Fire synergy counts bonfires at reduced rate."
|
||||
effectDisplay: "Small Fire synergy counts bonfires at reduced rate"
|
||||
},
|
||||
shouldEarn: () => smallfireElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -649,7 +648,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Faith Level 1",
|
||||
effectDisplay: "Multiply bonfire efficiency by 5."
|
||||
effectDisplay: "Multiply bonfire efficiency by 5"
|
||||
},
|
||||
shouldEarn: () => bonfireElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -690,7 +689,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Snowball Level 1",
|
||||
effectDisplay: "Multiply kiln efficiency by 5."
|
||||
effectDisplay: "Multiply kiln efficiency by 5"
|
||||
},
|
||||
shouldEarn: () => kilnElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -731,7 +730,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Star Level 1",
|
||||
effectDisplay: "Book cost is divided by total books bought."
|
||||
effectDisplay: "Book cost is divided by total books bought"
|
||||
},
|
||||
shouldEarn: () => paperElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -762,7 +761,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Star Level 5",
|
||||
effectDisplay: "Gain 5 free books for all prior elves that are at level 5 or above."
|
||||
effectDisplay: "Gain 5 free books for all prior elves that are at level 5 or above"
|
||||
},
|
||||
visibility: () => showIf(paperElfMilestones[3].earned.value && main.day.value >= 13),
|
||||
shouldEarn: () => paperElfTraining.level.value >= 5
|
||||
|
@ -774,7 +773,7 @@ const layer = createLayer(id, () => {
|
|||
requirement: "Bell Level 1",
|
||||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Every box buyable adds <Sqrt>level</Sqrt> levels to same-row box buyables.
|
||||
Every box buyable adds <Sqrt>level</Sqrt> levels to same-row box buyables
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
@ -823,7 +822,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Gingersnap Level 1",
|
||||
effectDisplay: "Multiply all primary dye colors by ln(cloth + e)."
|
||||
effectDisplay: "Multiply all primary dye colors by ln(cloth + e)"
|
||||
},
|
||||
shouldEarn: () => clothElfTraining.level.value >= 1
|
||||
})),
|
||||
|
@ -932,7 +931,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Twinkle Level 3",
|
||||
effectDisplay: "Auto smelting multi is tripled."
|
||||
effectDisplay: "Auto smelting multi is tripled"
|
||||
},
|
||||
visibility: () => showIf(metalElfMilestones[1].earned.value),
|
||||
shouldEarn: () => metalElfTraining.level.value >= 3
|
||||
|
@ -1107,7 +1106,7 @@ const layer = createLayer(id, () => {
|
|||
effectDisplay: jsx(() => (
|
||||
<>
|
||||
Every plastic buyable adds <Sqrt>level</Sqrt> levels to the other plastic
|
||||
buyables.
|
||||
buyables
|
||||
</>
|
||||
))
|
||||
},
|
||||
|
|
|
@ -746,21 +746,31 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
{autoSmeltEnabled.value &&
|
||||
(Decimal.gte(industrialCrucible.amount.value, 1) ||
|
||||
masteryEffectActive.value)
|
||||
? `+${formatLimit(
|
||||
[
|
||||
[computedAutoSmeltSpeed.value, "smelting speed"],
|
||||
[computedOreGain.value, "ore gain"],
|
||||
[
|
||||
Decimal.div(coal.computedCoalGain.value, coalCost),
|
||||
"coal gain"
|
||||
]
|
||||
],
|
||||
"/s",
|
||||
Decimal.mul(
|
||||
computedOrePurity.value,
|
||||
computedAutoSmeltMulti.value
|
||||
? masteryEffectActive.value
|
||||
? formatGain(
|
||||
Decimal.mul(
|
||||
computedOrePurity.value,
|
||||
computedOrePurity.value
|
||||
).mul(computedAutoSmeltSpeed.value)
|
||||
)
|
||||
)}`
|
||||
: `+${formatLimit(
|
||||
[
|
||||
[computedAutoSmeltSpeed.value, "smelting speed"],
|
||||
[computedOreGain.value, "ore gain"],
|
||||
[
|
||||
Decimal.div(
|
||||
coal.computedCoalGain.value,
|
||||
coalCost
|
||||
),
|
||||
"coal gain"
|
||||
]
|
||||
],
|
||||
"/s",
|
||||
Decimal.mul(
|
||||
computedOrePurity.value,
|
||||
computedAutoSmeltMulti.value
|
||||
)
|
||||
)}`
|
||||
: undefined}
|
||||
</>
|
||||
))}
|
||||
|
|
|
@ -513,7 +513,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
display: {
|
||||
requirement: "5m Well Depth",
|
||||
effectDisplay:
|
||||
"Gain 25% more coal for each metre of well depth (after the 3 elf milestone)."
|
||||
"Gain 25% more coal for each metre of well depth (after the 3 elf milestone)"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(depth.value, 5)
|
||||
})),
|
||||
|
@ -528,7 +528,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "25m Well Depth",
|
||||
effectDisplay: "Gain 5% more ore for each metre of well depth."
|
||||
effectDisplay: "Gain 5% more ore for each metre of well depth"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(depth.value, 25),
|
||||
visibility: () => showIf(depthMilestones[1].earned.value)
|
||||
|
|
|
@ -231,14 +231,14 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
display: {
|
||||
requirement: "10 toys",
|
||||
effectDisplay:
|
||||
"The cost of making toys is divided by the number of complete workshops you have."
|
||||
"The cost of making toys is divided by the number of complete workshops you have"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(toySum.value, 10)
|
||||
}));
|
||||
const milestone2 = createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "100 toys",
|
||||
effectDisplay: "Unlock black dyes."
|
||||
effectDisplay: "Unlock black dyes"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(toySum.value, 100),
|
||||
visibility: () => showIf(milestone1.earned.value)
|
||||
|
@ -247,7 +247,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
const milestone3 = createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "200 toys",
|
||||
effectDisplay: "Beach wrapping paper is much more powerful."
|
||||
effectDisplay: "Beach wrapping paper is much more powerful"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(toySum.value, 200),
|
||||
visibility: () => showIf(milestone2.earned.value)
|
||||
|
@ -255,7 +255,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
const milestone4 = createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "350 toys",
|
||||
effectDisplay: "Gain 50x oil and plastic."
|
||||
effectDisplay: "Gain 50x oil and plastic"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(toySum.value, 350),
|
||||
visibility: () => showIf(milestone3.earned.value)
|
||||
|
|
|
@ -908,17 +908,27 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
style="margin-bottom: 0"
|
||||
productionDisplay={
|
||||
Decimal.gt(computedAutoCuttingAmount.value, 0)
|
||||
? `+${format(
|
||||
averageLogGain.value
|
||||
)}/s average<br/>equilibrium: +${formatLimit(
|
||||
[
|
||||
[computedAutoCuttingAmount.value, "cutting speed"],
|
||||
[computedAutoPlantingAmount.value, "planting speed"],
|
||||
[Decimal.mul(computedTotalTrees.value, 20), "forest cap"]
|
||||
],
|
||||
"/s",
|
||||
logGain.apply(1)
|
||||
)}`
|
||||
? `+${format(averageLogGain.value)}/s average<br/>equilibrium: +${
|
||||
management.elfTraining.planterElfTraining.milestones[4].earned
|
||||
.value
|
||||
? format(logGain.apply(computedAutoCuttingAmount.value)) +
|
||||
"/s"
|
||||
: formatLimit(
|
||||
[
|
||||
[computedAutoCuttingAmount.value, "cutting speed"],
|
||||
[
|
||||
computedAutoPlantingAmount.value,
|
||||
"planting speed"
|
||||
],
|
||||
[
|
||||
Decimal.mul(computedTotalTrees.value, 20),
|
||||
"forest cap"
|
||||
]
|
||||
],
|
||||
"/s",
|
||||
logGain.apply(1)
|
||||
)
|
||||
}`
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
|
|
|
@ -293,7 +293,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
const extraExpansionMilestone6 = createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "1200% Foundation Completed",
|
||||
effectDisplay: "Quadruple oil gain"
|
||||
effectDisplay: "Quadruple drill power"
|
||||
},
|
||||
shouldEarn: () => Decimal.gte(foundationProgress.value, 1200),
|
||||
visibility: () =>
|
||||
|
|
|
@ -442,7 +442,7 @@ export const main = createLayer("main", function (this: BaseLayer) {
|
|||
symbol: toysSymbol,
|
||||
story: "You've had enough of this running around and stalling - it is time to create some toys NOW! You have everything you need and then some, so let's finally just sit down and get this process started!",
|
||||
completedStory:
|
||||
"In your haste you may have been a bit wasteful with resources, but it feels really good to finally make some meaningful process on making toys for Santa. You already envision plans on how to get elves to help you out and start pumping out these toys, but for now... Good Job!",
|
||||
"In your haste you may have been a bit wasteful with resources, but it feels really good to finally make some meaningful progress on making toys for Santa. You already envision plans on how to get elves to help you out and start pumping out these toys, but for now... Good Job!",
|
||||
masteredStory: ""
|
||||
})),
|
||||
createDay(() => ({
|
||||
|
|
Loading…
Reference in a new issue