diff --git a/src/data/layers/elves.tsx b/src/data/layers/elves.tsx index 47378a4..74b94fb 100644 --- a/src/data/layers/elves.tsx +++ b/src/data/layers/elves.tsx @@ -973,7 +973,8 @@ const layer = createLayer(id, function (this: BaseLayer) { showIf( management.elfTraining.fertilizerElfTraining.milestones[4].earned.value || letters.masteryEffectActive.value - ) + ), + buyMax: metal.masteryEffectActive }); const managementElves2 = [metalElf]; diff --git a/src/data/layers/factory.tsx b/src/data/layers/factory.tsx index f74428c..0ee9fec 100644 --- a/src/data/layers/factory.tsx +++ b/src/data/layers/factory.tsx @@ -307,7 +307,7 @@ const factory = createLayer(id, () => { )}
- {routing.metaMilestones[5].earned.value ? ( + {routing.metaMilestones[4].earned.value ? (
@@ -854,7 +854,8 @@ const layer = createLayer(id, function (this: BaseLayer) { )), mastery, - mastered + mastered, + masteryEffectActive }; }); diff --git a/src/data/layers/oil.tsx b/src/data/layers/oil.tsx index 5242aec..2c04525 100644 --- a/src/data/layers/oil.tsx +++ b/src/data/layers/oil.tsx @@ -44,6 +44,7 @@ import { ElfBuyable } from "./elves"; import toys from "./toys"; import factory from "./factory"; import reindeer from "./reindeer"; +import routing from "./routing"; const id = "oil"; const day = 9; @@ -996,7 +997,12 @@ const layer = createLayer(id, function (this: BaseLayer) { description: "350 toys", enabled: toys.milestones.milestone4.earned })), - reindeer.reindeer.donner.modifier + reindeer.reindeer.donner.modifier, + createMultiplicativeModifier(() => ({ + multiplier: 4, + description: "600,000 Cities Solved", + enabled: routing.metaMilestones[5].earned + })) ]) as WithRequired; const computedOilSpeed = computed(() => oilSpeed.apply(0)); diff --git a/src/data/layers/routing.tsx b/src/data/layers/routing.tsx index 391d634..6c6f995 100644 --- a/src/data/layers/routing.tsx +++ b/src/data/layers/routing.tsx @@ -439,7 +439,8 @@ const layer = createLayer(id, function (this: BaseLayer) { } } return links; - } + }, + visibility: () => showIf(Decimal.lt(citiesCompleted.value, 50)) })); const checkCityProgressBar = createBar(() => ({ @@ -554,7 +555,7 @@ const layer = createLayer(id, function (this: BaseLayer) { const milestone5 = createMilestone(() => ({ display: { requirement: "5 Cities Solved", - effectDisplay: "Remove 1 city from the map" + effectDisplay: "Remove 1 house from the map" }, shouldEarn() { return Decimal.gte(citiesCompleted.value, 5); @@ -714,7 +715,7 @@ const layer = createLayer(id, function (this: BaseLayer) { display: { requirement: "5000 Cities Solved", effectDisplay: - "Elves can learn past level 5 and gain 0.1 base city solved per second for each level elves learnt" + "Elves can learn past level 5 and gain 0.5 base city solved per second for each level elves learnt" }, shouldEarn() { return Decimal.gte(citiesCompleted.value, 5000); @@ -749,7 +750,7 @@ const layer = createLayer(id, function (this: BaseLayer) { display: { requirement: "300,000 Cities Solved", effectDisplay: - "Multiply the amount of factory input resources by the amount of their corresponding warehouses appeared in the factory, plus 1" + "Multiply the amount of factory input resources by the amount of their corresponding warehouses appeared in the factory, plus 1. Also unlocks a button to fill your factory with warehouses." }, shouldEarn() { return Decimal.gte(citiesCompleted.value, 300000); @@ -759,8 +760,7 @@ const layer = createLayer(id, function (this: BaseLayer) { 5: createMilestone(() => ({ display: { requirement: "600,000 Cities Solved", - effectDisplay: - "Unlocks a button to let you fill the remaining empty spaces in the factory with warehouses, useful for the previous milestone" + effectDisplay: "Quadruple oil gain" }, shouldEarn() { return Decimal.gte(citiesCompleted.value, 600000); @@ -775,7 +775,7 @@ const layer = createLayer(id, function (this: BaseLayer) { Increases base city solving speed by{" "}
factory tick rate
-
1000
+
100
)) @@ -859,14 +859,14 @@ const layer = createLayer(id, function (this: BaseLayer) { const computedAutoProcessing = computed(() => autoProcessing.apply(1)); const metaSolvingSpeed = createSequentialModifier(() => [ createAdditiveModifier(() => ({ - addend: () => Decimal.div(management.totalElfLevels.value, 10), + addend: () => Decimal.div(management.totalElfLevels.value, 2), description: "5000 Cities Solved", enabled: metaMilestones[1].earned })), createAdditiveModifier(() => ({ - addend: () => Decimal.div(factory.computedTickRate.value, 1000), + addend: () => Decimal.div(factory.computedTickRate.value, 100), description: "1,000,000 Cities Solved", - enabled: metaMilestones[1].earned + enabled: metaMilestones[6].earned })), ...Object.values(metaBuyables).map(x => createMultiplicativeModifier(() => ({ @@ -876,7 +876,7 @@ const layer = createLayer(id, function (this: BaseLayer) { })) ) ]) as WithRequired; - const computedMetaSolvingSpeed = computed(() => metaSolvingSpeed.apply(20)); + const computedMetaSolvingSpeed = computed(() => metaSolvingSpeed.apply(50)); const [generalTab, generalTabCollapsed] = createCollapsibleModifierSections(() => [ { @@ -927,7 +927,7 @@ const layer = createLayer(id, function (this: BaseLayer) { { title: "Post-Inflation Solving Speed", modifier: metaSolvingSpeed, - base: 20, + base: 50, unit: "/s", visible: () => Decimal.gt(citiesCompleted.value, 50) } @@ -1138,10 +1138,22 @@ const layer = createLayer(id, function (this: BaseLayer) { ) : ( <> - You're solving {formatWhole(computedMetaSolvingSpeed.value)} cities per - second - - {renderRow(...Object.values(metaBuyables))} + {Decimal.lt(citiesCompleted.value, citiesGoal) ? ( + <> + You're solving {formatWhole(computedMetaSolvingSpeed.value)} cities + per second + + {renderRow(...Object.values(metaBuyables))} + + ) : ( + <> + You've solved all cities on Earth! +
+ + (and proved the travelling salesman problem to be O(1)) + + + )} {metaMilestonesDisplay()}