mirror of
https://github.com/thepaperpilot/Advent-Incremental.git
synced 2024-12-03 13:21:31 +00:00
Merge branch 'main' into day-24-packing
This commit is contained in:
commit
5720fb02e6
7 changed files with 48 additions and 31 deletions
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
};
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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))}
|
||||
</>
|
||||
))
|
||||
})),
|
||||
|
|
|
@ -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
|
||||
};
|
||||
});
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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 />
|
||||
|
|
Loading…
Reference in a new issue