mirror of
https://github.com/thepaperpilot/Advent-Incremental.git
synced 2024-11-24 17:31:54 +00:00
Noel lv5
This commit is contained in:
parent
e181b2b533
commit
49198eb746
3 changed files with 131 additions and 54 deletions
|
@ -329,23 +329,6 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
enabled: elvesMilestone2.earned
|
||||
}))
|
||||
]);
|
||||
const metalCooldown = createSequentialModifier(() => [
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "6 Elves Trained",
|
||||
enabled: elvesMilestone.earned
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: () => Decimal.times(paper.books.metalBook.amount.value, 0.1).add(1),
|
||||
description: "Physical Metallurgy",
|
||||
enabled: () => Decimal.gt(paper.books.metalBook.amount.value, 0)
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "10 Elves Trained",
|
||||
enabled: elvesMilestone2.earned
|
||||
}))
|
||||
]);
|
||||
const heavyDrillCooldown = createSequentialModifier(() => [
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
|
@ -363,6 +346,40 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
enabled: elvesMilestone2.earned
|
||||
}))
|
||||
]);
|
||||
const oilCooldown = createSequentialModifier(() => [
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "6 Elves Trained",
|
||||
enabled: elvesMilestone.earned
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: () => Decimal.times(paper.books.oilBook.amount.value, 0.1).add(1),
|
||||
description: "Burning the Midnight Oil",
|
||||
enabled: () => Decimal.gt(paper.books.oilBook.amount.value, 0)
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "10 Elves Trained",
|
||||
enabled: elvesMilestone2.earned
|
||||
}))
|
||||
]);
|
||||
const metalCooldown = createSequentialModifier(() => [
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "6 Elves Trained",
|
||||
enabled: elvesMilestone.earned
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: () => Decimal.times(paper.books.metalBook.amount.value, 0.1).add(1),
|
||||
description: "Physical Metallurgy",
|
||||
enabled: () => Decimal.gt(paper.books.metalBook.amount.value, 0)
|
||||
})),
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: 2,
|
||||
description: "10 Elves Trained",
|
||||
enabled: elvesMilestone2.earned
|
||||
}))
|
||||
]);
|
||||
|
||||
const [generalTab, generalTabCollapsed] = createCollapsibleModifierSections(() => [
|
||||
{
|
||||
|
@ -456,19 +473,26 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
unit: "/s",
|
||||
visible: management.elfTraining.expandersElfTraining.milestones[3].earned
|
||||
},
|
||||
{
|
||||
title: "Frosty Auto-Buy Frequency",
|
||||
modifier: heavyDrillCooldown,
|
||||
base: 10,
|
||||
unit: "/s",
|
||||
visible: management.elfTraining.fertilizerElfTraining.milestones[4].earned.value
|
||||
},
|
||||
{
|
||||
title: "Cocoa Auto-Buy Frequency",
|
||||
modifier: oilCooldown,
|
||||
base: 10,
|
||||
unit: "/s",
|
||||
visible: management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value
|
||||
},
|
||||
{
|
||||
title: "Twinkle Auto-Buy Frequency",
|
||||
modifier: metalCooldown,
|
||||
base: 10,
|
||||
unit: "/s",
|
||||
visible: management.elfTraining.expandersElfTraining.milestones[4].earned
|
||||
},
|
||||
{
|
||||
title: "Frosty Auto-Buy Frequency",
|
||||
modifier: heavyDrillCooldown,
|
||||
base: 10,
|
||||
unit: "/s",
|
||||
visible: management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value
|
||||
}
|
||||
]);
|
||||
const showModifiersModal = ref(false);
|
||||
|
@ -751,15 +775,6 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
}
|
||||
}
|
||||
});
|
||||
const metalElf = createElf({
|
||||
name: "Twinkle",
|
||||
description:
|
||||
"Twinkle will automatically purchase all metal buyables you can afford, without actually spending any resources.",
|
||||
buyable: [metal.oreDrill, metal.industrialCrucible, metal.hotterForge],
|
||||
cooldownModifier: metalCooldown,
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.expandersElfTraining.milestones[4].earned.value)
|
||||
});
|
||||
const heavyDrillElf = createElf({
|
||||
name: "Frosty",
|
||||
description:
|
||||
|
@ -767,7 +782,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
buyable: [oil.buildHeavy, oil.buildHeavy2, oil.buildExtractor],
|
||||
cooldownModifier: heavyDrillCooldown,
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value),
|
||||
showIf(management.elfTraining.fertilizerElfTraining.milestones[4].earned.value),
|
||||
hasToggle: true,
|
||||
toggleDesc: "Activate auto-purchased oil drills",
|
||||
onAutoPurchase(buyable) {
|
||||
|
@ -782,7 +797,39 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
}
|
||||
}
|
||||
});
|
||||
const managementElves = [miningDrillElf, metalElf, heavyDrillElf];
|
||||
const oilElf = createElf({
|
||||
name: "Cocoa",
|
||||
description:
|
||||
"Cocoa will automatically purchase all oil-using machines you can afford, without actually spending any resources.",
|
||||
buyable: [oil.buildPump, oil.buildBurner, oil.buildSmelter],
|
||||
cooldownModifier: oilCooldown,
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value),
|
||||
hasToggle: true,
|
||||
toggleDesc: "Activate auto-purchased oil-using machines",
|
||||
onAutoPurchase(buyable) {
|
||||
if (heavyDrillElf.toggle.value) {
|
||||
if (buyable === oil.buildPump) {
|
||||
oil.activePump.value = Decimal.add(oil.activePump.value, 1);
|
||||
} else if (buyable === oil.buildBurner) {
|
||||
oil.activeBurner.value = Decimal.add(oil.activeBurner.value, 1);
|
||||
} else if (buyable === oil.buildSmelter) {
|
||||
oil.activeSmelter.value = Decimal.add(oil.activeSmelter.value, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
const managementElves = [miningDrillElf, heavyDrillElf, oilElf];
|
||||
const metalElf = createElf({
|
||||
name: "Twinkle",
|
||||
description:
|
||||
"Twinkle will automatically purchase all metal buyables you can afford, without actually spending any resources.",
|
||||
buyable: [metal.oreDrill, metal.industrialCrucible, metal.hotterForge],
|
||||
cooldownModifier: metalCooldown,
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.expandersElfTraining.milestones[4].earned.value)
|
||||
});
|
||||
const managementElves2 = [metalElf];
|
||||
const elves = {
|
||||
cuttersElf,
|
||||
plantersElf,
|
||||
|
@ -797,8 +844,9 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
boxElf,
|
||||
clothElf,
|
||||
miningDrillElf,
|
||||
metalElf,
|
||||
heavyDrillElf
|
||||
heavyDrillElf,
|
||||
oilElf,
|
||||
metalElf
|
||||
};
|
||||
const totalElves = computed(() => Object.values(elves).filter(elf => elf.bought.value).length);
|
||||
|
||||
|
@ -978,7 +1026,14 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
{render(modifiersModal)}
|
||||
<Spacer />
|
||||
<div style="width: 600px">
|
||||
{renderGrid(treesElves, coalElves, fireElves, plasticElves, managementElves)}
|
||||
{renderGrid(
|
||||
treesElves,
|
||||
coalElves,
|
||||
fireElves,
|
||||
plasticElves,
|
||||
managementElves,
|
||||
managementElves2
|
||||
)}
|
||||
</div>
|
||||
{milestonesDisplay()}
|
||||
</>
|
||||
|
|
|
@ -407,7 +407,7 @@ const layer = createLayer(id, () => {
|
|||
createMilestone(() => ({
|
||||
display: {
|
||||
requirement: "Jack Level 5",
|
||||
effectDisplay: "Unlock an elf that autobuys oil buyables."
|
||||
effectDisplay: "Unlock an elf that autobuys oil-using machines."
|
||||
},
|
||||
visibility: () =>
|
||||
showIf(heatedCutterElfMilestones[3].earned.value && main.day.value >= 13),
|
||||
|
|
|
@ -38,7 +38,12 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
const paper = createResource<DecimalSource>(0, "paper");
|
||||
|
||||
const pulp = createResource<DecimalSource>(
|
||||
computed(() => Decimal.min(Decimal.div(trees.logs.value, 1e9), Decimal.div(coal.ash.value, computedAshCost.value))),
|
||||
computed(() =>
|
||||
Decimal.min(
|
||||
Decimal.div(trees.logs.value, 1e9),
|
||||
Decimal.div(coal.ash.value, computedAshCost.value)
|
||||
)
|
||||
),
|
||||
"pulp"
|
||||
);
|
||||
|
||||
|
@ -49,7 +54,10 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
roundUpCost: true,
|
||||
spend(gain, cost) {
|
||||
trees.logs.value = Decimal.sub(trees.logs.value, Decimal.times(cost, 1e9));
|
||||
coal.ash.value = Decimal.sub(coal.ash.value, Decimal.times(cost, computedAshCost.value));
|
||||
coal.ash.value = Decimal.sub(
|
||||
coal.ash.value,
|
||||
Decimal.times(cost, computedAshCost.value)
|
||||
);
|
||||
},
|
||||
gainModifier: paperGain
|
||||
}));
|
||||
|
@ -68,7 +76,8 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
<span style="font-size: large">
|
||||
Cost: {displayResource(trees.logs, cost)} {pulp.displayName} (
|
||||
{formatWhole(Decimal.times(cost, 1e9))} {trees.logs.displayName};{" "}
|
||||
{formatWhole(Decimal.times(cost, computedAshCost.value))} {coal.ash.displayName})
|
||||
{formatWhole(Decimal.times(cost, computedAshCost.value))}{" "}
|
||||
{coal.ash.displayName})
|
||||
</span>
|
||||
</>
|
||||
);
|
||||
|
@ -191,19 +200,29 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
name: "Drills and Mills",
|
||||
elfName: "Peppermint",
|
||||
buyableName: "Mining Drill",
|
||||
visibility: () => showIf(management.elfTraining.expandersElfTraining.milestones[3].earned.value)
|
||||
});
|
||||
const metalBook = createBook({
|
||||
name: "Physical Metallurgy",
|
||||
elfName: "Twinkle",
|
||||
buyableName: "Metal Buyables",
|
||||
visibility: () => showIf(management.elfTraining.expandersElfTraining.milestones[4].earned.value)
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.expandersElfTraining.milestones[3].earned.value)
|
||||
});
|
||||
const heavyDrillBook = createBook({
|
||||
name: "Deep in the Earth",
|
||||
elfName: "Frosty",
|
||||
buyableName: "Oil Drills",
|
||||
visibility: () => showIf(management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value)
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.fertilizerElfTraining.milestones[4].earned.value)
|
||||
});
|
||||
const oilBook = createBook({
|
||||
name: "Burning the Midnight Oil",
|
||||
elfName: "Cocoa",
|
||||
buyableName: "Oil-Consuming Machines",
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.heatedCutterElfTraining.milestones[4].earned.value)
|
||||
});
|
||||
const metalBook = createBook({
|
||||
name: "Physical Metallurgy",
|
||||
elfName: "Twinkle",
|
||||
buyableName: "Metal Buyables",
|
||||
visibility: () =>
|
||||
showIf(management.elfTraining.expandersElfTraining.milestones[4].earned.value)
|
||||
});
|
||||
const books = {
|
||||
cuttersBook,
|
||||
|
@ -219,10 +238,13 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
boxBook,
|
||||
clothBook,
|
||||
miningDrillBook,
|
||||
metalBook,
|
||||
heavyDrillBook
|
||||
heavyDrillBook,
|
||||
oilBook,
|
||||
metalBook
|
||||
};
|
||||
const sumBooks = computed(() => Object.values(books).reduce((acc, curr) => acc.add(curr.amount.value), new Decimal(0)));
|
||||
const sumBooks = computed(() =>
|
||||
Object.values(books).reduce((acc, curr) => acc.add(curr.amount.value), new Decimal(0))
|
||||
);
|
||||
|
||||
const clothUpgrade = createUpgrade(() => ({
|
||||
resource: noPersist(paper),
|
||||
|
@ -282,7 +304,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
|||
]) as WithRequired<Modifier, "description" | "revert">;
|
||||
const ashCost = createSequentialModifier(() => [
|
||||
createMultiplicativeModifier(() => ({
|
||||
multiplier: .1,
|
||||
multiplier: 0.1,
|
||||
description: "Star Level 2",
|
||||
enabled: management.elfTraining.paperElfTraining.milestones[1].earned
|
||||
}))
|
||||
|
|
Loading…
Reference in a new issue