Merge branch 'main' into day-24-packing

This commit is contained in:
thepaperpilot 2022-12-24 09:10:21 -06:00
commit 5720fb02e6
7 changed files with 48 additions and 31 deletions

View file

@ -13,6 +13,7 @@
v-if="layerKeys.includes(tab)"
v-bind="gatherLayerProps(layers[tab]!)"
:index="index"
@set-minimized="value => (layers[tab]!.minimized.value = value)"
/>
<component :is="tab" :index="index" v-else />
</div>

View file

@ -2,7 +2,11 @@
<div class="layer-container" :style="{ '--layer-color': unref(color) }">
<button v-if="showGoBack" class="goBack" @click="goBack"></button>
<button class="layer-tab minimized" v-if="unref(minimized)" @click="setMinimized(false)">
<button
class="layer-tab minimized"
v-if="unref(minimized)"
@click="$emit('setMinimized', false)"
>
<component v-if="minimizedComponent" :is="minimizedComponent" />
<div v-else>{{ unref(name) }}</div>
</button>
@ -12,7 +16,9 @@
</Context>
</div>
<button v-if="unref(minimizable)" class="minimize" @click="setMinimized(true)"></button>
<button v-if="unref(minimizable)" class="minimize" @click="$emit('setMinimized', true)">
</button>
</div>
</template>
@ -40,7 +46,7 @@ export default defineComponent({
},
minimizedDisplay: processedPropType<CoercableComponent>(Object, String, Function),
minimized: {
type: Object as PropType<Persistent<boolean>>,
type: Object as PropType<Ref<boolean>>,
required: true
},
name: {
@ -54,6 +60,7 @@ export default defineComponent({
required: true
}
},
emits: ["setMinimized"],
setup(props) {
const { display, index, minimized, minimizedDisplay } = toRefs(props);
@ -67,10 +74,6 @@ export default defineComponent({
player.tabs.splice(unref(props.index), 1);
}
function setMinimized(min: boolean) {
minimized.value = min;
}
function updateNodes(nodes: Record<string, FeatureNode | undefined>) {
props.nodes.value = nodes;
}
@ -81,8 +84,7 @@ export default defineComponent({
showGoBack,
updateNodes,
unref,
goBack,
setMinimized
goBack
};
}
});

View file

@ -998,7 +998,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];

View file

@ -307,7 +307,7 @@ const factory = createLayer(id, () => {
)}
</div>
<div>
{routing.metaMilestones[5].earned.value ? (
{routing.metaMilestones[4].earned.value ? (
<Tooltip display="Polyfill" direction={Direction.Down}>
<button class="control-btn material-icons" onClick={polyfill}>
format_color_fill
@ -2380,8 +2380,14 @@ const factory = createLayer(id, () => {
Object.values(factoryBuyables2)
)}
<Spacer />
<div style="width: 600px">
Every upgrade purchased below increases the price of the other
upgrades
</div>
<Spacer />
{renderGrid(...(upgrades as VueFeature[][]))}
{renderGrid(...upgrades.slice(0, 3))}
<Spacer />
{renderGrid(...upgrades.slice(3))}
</>
))
})),

View file

@ -771,7 +771,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
Decoration effect:
<br />
The lesser of ore mining amount x speed and auto smelting speed is
increased to match the greater
increased to match the greater, and Twinkle buys max
</div>
<Spacer />
</>
@ -865,7 +865,8 @@ const layer = createLayer(id, function (this: BaseLayer) {
</div>
)),
mastery,
mastered
mastered,
masteryEffectActive
};
});

View file

@ -44,6 +44,7 @@ import { ElfBuyable } from "./elves";
import toys from "./toys";
import factory from "./factory";
import reindeer from "./reindeer";
import routing from "./routing";
import packing from "./packing"
const id = "oil";
@ -1002,7 +1003,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<Modifier, "description" | "revert">;
const computedOilSpeed = computed(() => oilSpeed.apply(0));

View file

@ -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{" "}
<Fraction>
<div>factory tick rate</div>
<div>1000</div>
<div>100</div>
</Fraction>
</>
))
@ -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<Modifier, "description">;
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,7 +1138,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
</>
) : (
<>
{Decimal.lt(citiesCompleted.value, 50) ? (
{Decimal.lt(citiesCompleted.value, citiesGoal) ? (
<>
You're solving {formatWhole(computedMetaSolvingSpeed.value)} cities
per second
@ -1147,11 +1147,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
</>
) : (
<>
You've solved all of cities on Earth!
You've solved all cities on Earth!
<br />
<strike style="font-size: smaller">
<span style="text-decoration: line-through; font-size: smaller">
(and proved the travelling salesman problem to be O(1))
</strike>
</span>
</>
)}
<Spacer />