This commit is contained in:
Chunkybanana 2022-12-14 01:07:39 +00:00
commit 14042997dc
20 changed files with 163 additions and 33 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -279,7 +279,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
},
display: jsx(() => (
<>
<h3>Mining Drill</h3>
<h3>Coal Drill</h3>
<br />
Dig through the ground to find 50,000,000 coal
<br />
@ -579,7 +579,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
addend() {
return drillCoal.value;
},
description: "Mining Drills",
description: "Coal Drills",
enabled() {
return Decimal.gt(activeDrills.value, 0);
}

View file

@ -314,16 +314,16 @@ const layer = createLayer(id, function (this: BaseLayer) {
enabled: elvesMilestone2.earned
}))
]);
const miningDrillCooldown = createSequentialModifier(() => [
const coalDrillCooldown = createSequentialModifier(() => [
createMultiplicativeModifier(() => ({
multiplier: 2,
description: "6 Elves Trained",
enabled: elvesMilestone.earned
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.times(paper.books.miningDrillBook.amount.value, 0.1).add(1),
multiplier: () => Decimal.times(paper.books.coalDrillBook.amount.value, 0.1).add(1),
description: "Drills and Mills",
enabled: () => Decimal.gt(paper.books.miningDrillBook.amount.value, 0)
enabled: () => Decimal.gt(paper.books.coalDrillBook.amount.value, 0)
})),
createMultiplicativeModifier(() => ({
multiplier: 2,
@ -478,7 +478,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
},
{
title: "Peppermint Auto-Buy Frequency",
modifier: miningDrillCooldown,
modifier: coalDrillCooldown,
base: 10,
unit: "/s",
visible: management.elfTraining.expandersElfTraining.milestones[3].earned
@ -768,18 +768,18 @@ const layer = createLayer(id, function (this: BaseLayer) {
visibility: () => showIf(plastic.elfUpgrades.clothElf.bought.value)
});
const plasticElves = [paperElf, boxElf, clothElf];
const miningDrillElf = createElf({
const coalDrillElf = createElf({
name: "Peppermint",
description:
"Peppermint will automatically purchase all mining drills you can afford, without actually spending any resources.",
"Peppermint will automatically purchase all coal drills you can afford, without actually spending any resources.",
buyable: coal.buildDrill,
cooldownModifier: miningDrillCooldown,
cooldownModifier: coalDrillCooldown,
visibility: () =>
showIf(management.elfTraining.expandersElfTraining.milestones[3].earned.value),
hasToggle: true,
toggleDesc: "Activate auto-purchased mining drills",
toggleDesc: "Activate auto-purchased coal drills",
onAutoPurchase() {
if (miningDrillElf.toggle.value) {
if (coalDrillElf.toggle.value) {
coal.activeDrills.value = Decimal.add(coal.activeDrills.value, 1);
}
}
@ -828,7 +828,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
}
}
});
const managementElves = [miningDrillElf, heavyDrillElf, oilElf];
const managementElves = [coalDrillElf, heavyDrillElf, oilElf];
const metalElf = createElf({
name: "Twinkle",
description:
@ -862,7 +862,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
paperElf,
boxElf,
clothElf,
miningDrillElf,
coalDrillElf,
heavyDrillElf,
oilElf,
metalElf,

View file

@ -822,7 +822,88 @@ const layer = createLayer(id, () => {
shouldEarn: () => clothElfTraining.level.value >= 5
}))
] as Array<GenericMilestone>;
const coalDrillElfMilestones = [
createMilestone(() => ({
display: {
requirement: "Peppermint Level 1",
effectDisplay: "The mining drill exponent is increased from 2 to 2.5"
},
shouldEarn: () => coalDrillElfTraining.level.value >= 1
})),
createMilestone(() => ({
display: {
requirement: "Peppermint Level 2",
effectDisplay: "Coal boosts its own gain"
},
visibility: () => showIf(coalDrillElfMilestones[0].earned.value),
shouldEarn: () => coalDrillElfTraining.level.value >= 2
})),
createMilestone(() => ({
display: {
requirement: "Peppermint Level 3",
effectDisplay: "The coal drill cost is decreased"
},
visibility: () => showIf(coalDrillElfMilestones[1].earned.value),
shouldEarn: () => coalDrillElfTraining.level.value >= 3
})),
createMilestone(() => ({
display: {
requirement: "Peppermint Level 4",
effectDisplay: "Unlock another row of coal upgrades"
},
visibility: () => showIf(coalDrillElfMilestones[2].earned.value && main.day.value >= 13),
shouldEarn: () => coalDrillElfTraining.level.value >= 4
})),
createMilestone(() => ({
display: {
requirement: "Peppermint Level 5",
effectDisplay: "Well depth boosts coal gain more"
},
visibility: () => showIf(coalDrillElfMilestones[3].earned.value && main.day.value >= 13),
shouldEarn: () => coalDrillElfTraining.level.value >= 5
}))
] as Array<GenericMilestone>;
const metalElfMilestones = [
createMilestone(() => ({
display: {
requirement: "Twinkle Level 1",
effectDisplay: "Schools multiply metal gain per ore"
},
shouldEarn: () => metalElfTraining.level.value >= 1
})),
createMilestone(() => ({
display: {
requirement: "Twinkle Level 2",
effectDisplay: "Each Twinkle level multiplies auto smelting speed by 1.25"
},
visibility: () => showIf(metalElfMilestones[0].earned.value),
shouldEarn: () => metalElfTraining.level.value >= 2
})),
createMilestone(() => ({
display: {
requirement: "Twinkle Level 3",
effectDisplay: "Auto smelting purity is tripled."
},
visibility: () => showIf(metalElfMilestones[1].earned.value),
shouldEarn: () => metalElfTraining.level.value >= 3
})),
createMilestone(() => ({
display: {
requirement: "Twinkle Level 4",
effectDisplay: "All metal buyables are cheaper"
},
visibility: () => showIf(metalElfMilestones[2].earned.value && main.day.value >= 13),
shouldEarn: () => metalElfTraining.level.value >= 4
})),
createMilestone(() => ({
display: {
requirement: "Twinkle Level 5",
effectDisplay: "Unlock another row of metal upgrades"
},
visibility: () => showIf(metalElfMilestones[3].earned.value && main.day.value >= 13),
shouldEarn: () => metalElfTraining.level.value >= 5
}))
] as Array<GenericMilestone>;
// ------------------------------------------------------------------------------- Milestone display
const currentShown = persistent<string>("Holly");
@ -875,7 +956,9 @@ const layer = createLayer(id, () => {
const boxElfTraining = createElfTraining(elves.elves.boxElf, boxElfMilestones);
const clothElfTraining = createElfTraining(elves.elves.clothElf, clothElfMilestones);
const plasticElfTraining = [paperElfTraining, boxElfTraining, clothElfTraining];
const coalDrillElfTraining = createElfTraining(elves.elves.coalDrillElf, coalDrillElfMilestones);
const metalElfTraining = createElfTraining(elves.elves.metalElf, metalElfMilestones);
const row5Elves = [coalDrillElfTraining, metalElfTraining]
const elfTraining = {
cutterElfTraining,
planterElfTraining,
@ -888,7 +971,9 @@ const layer = createLayer(id, () => {
kilnElfTraining,
paperElfTraining,
boxElfTraining,
clothElfTraining
clothElfTraining,
coalDrillElfTraining,
metalElfTraining
};
const day12Elves = [
cutterElfTraining,
@ -916,7 +1001,9 @@ const layer = createLayer(id, () => {
kilnElfTraining,
paperElfTraining,
boxElfTraining,
clothElfTraining
clothElfTraining,
coalDrillElfTraining,
metalElfTraining
];
// ------------------------------------------------------------------------------- Update
@ -1380,7 +1467,8 @@ const layer = createLayer(id, () => {
treeElfTraining,
coalElfTraining,
fireElfTraining,
plasticElfTraining
plasticElfTraining,
row5Elves
)}
<Spacer />
{currentElfDisplay()}

View file

@ -88,6 +88,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
description: "400% Foundation Completed",
enabled: workshop.milestones.extraExpansionMilestone2.earned
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(oil.buildHeavy.amount.value, 1).sqrt(),
description: "Joy Level 4",
enabled: management.elfTraining.smallfireElfTraining.milestones[3].earned
})),
createExponentialModifier(() => ({
exponent: 1.1,
description: "Mary Level 2",
@ -102,6 +107,21 @@ const layer = createLayer(id, function (this: BaseLayer) {
description: "Industrial Crucibles",
enabled: () => Decimal.gte(industrialCrucible.amount.value, 1)
})),
createExponentialModifier(() => ({
exponent: 1.1,
description: "Joy Level 5",
enabled: management.elfTraining.smallfireElfTraining.milestones[4].earned
})),
createExponentialModifier(() => ({
exponent: 1.1,
description: "Faith Level 5",
enabled: management.elfTraining.bonfireElfTraining.milestones[4].earned
})),
createExponentialModifier(() => ({
exponent: 1.1,
description: "Snowball Level 5",
enabled: management.elfTraining.kilnElfTraining.milestones[4].earned
})),
createMultiplicativeModifier(() => ({
multiplier: 2,
description: "Efficient Crucibles",
@ -194,7 +214,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
const oreAmount = createSequentialModifier(() => [
createAdditiveModifier(() => ({
addend: () => oreDrill.amount.value,
description: "Mining Drills",
description: "Metal Drills",
enabled: () => Decimal.gte(oreDrill.amount.value, 1)
})),
createMultiplicativeModifier(() => ({
@ -227,7 +247,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
})),
createMultiplicativeModifier(() => ({
multiplier: 2.5,
description: "Mining Drills",
description: "Metal Drills",
enabled: () => Decimal.gte(oreDrill.amount.value, 1)
})),
createMultiplicativeModifier(() => ({
@ -237,7 +257,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
})),
createMultiplicativeModifier(() => ({
multiplier: 2,
description: "Oil the Mining Drills",
description: "Oil the Metal Drills",
enabled: oil.row2Upgrades[1].bought
}))
]);
@ -311,7 +331,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
display: {
title: "Coal Drilling",
description:
"These mining drills are pretty powerful, mining more ore than you can actually smelt. Could be worth making some to mine coal instead"
"These metal drills are pretty powerful, mining more ore than you can actually smelt. Could be worth making some to mine coal instead"
},
visibility: () =>
showIf(
@ -361,7 +381,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
return Decimal.pow(1.15, this.amount.value).times(10);
},
display: {
title: "Mining Drill",
title: "Metal Drill",
description: "An automated machine to help you mine more ore, faster",
effectDisplay: jsx(() => (
<>

View file

@ -494,7 +494,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
cost: 1e18,
display: {
title: "Coal Drill Synergy",
description: "Increase drill power by +4% per coal Mining Drill owned.",
description: "Increase drill power by +4% per Coal Drill owned.",
effectDisplay: jsx(() => <>x{format(row1UpgradeEffects[0].value)}</>)
},
style: { color: colorText }
@ -504,7 +504,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
cost: 150000,
display: {
title: "Metal Drill Synergy",
description: "Increase drill power by +4% per ore Mining Drill owned.",
description: "Increase drill power by +4% per Metal Drill owned.",
effectDisplay: jsx(() => <>x{format(row1UpgradeEffects[1].value)}</>)
},
style: { color: colorText }
@ -584,7 +584,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
resource: noPersist(oil),
cost: 500,
display: {
title: "Oil the Mining Drills",
title: "Oil the Metal Drills",
description:
"Double ore mining speed and square the coal drill amount in its effect."
},
@ -731,6 +731,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
multiplier: () => Decimal.sqrt(management.totalElfLevels.value),
description: "Jack Level 4",
enabled: management.elfTraining.heatedCutterElfTraining.milestones[3].earned
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(buildHeavy2.amount.value, 1).sqrt(),
description: "Faith Level 4",
enabled: management.elfTraining.bonfireElfTraining.milestones[3].earned
}))
]);
const computedOilSpeed = computed(() => oilSpeed.apply(0));
@ -960,7 +965,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
<MainDisplay
resource={oil}
color={color}
resourceStyle={{textShadow: 'grey 0px 0px 10px'}}
resourceStyle={{ textShadow: "grey 0px 0px 10px" }}
sticky={true}
productionDisplay={jsx(() => (
<>

View file

@ -198,10 +198,10 @@ const layer = createLayer(id, function (this: BaseLayer) {
buyableName: "Cloth Buyables",
visibility: () => showIf(elves.elves.clothElf.bought.value)
});
const miningDrillBook = createBook({
const coalDrillBook = createBook({
name: "Drills and Mills",
elfName: "Peppermint",
buyableName: "Mining Drill",
buyableName: "Coal Drill",
visibility: () =>
showIf(management.elfTraining.expandersElfTraining.milestones[3].earned.value)
});
@ -246,7 +246,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
paperBook,
boxBook,
clothBook,
miningDrillBook,
coalDrillBook,
heavyDrillBook,
oilBook,
metalBook,

View file

@ -269,6 +269,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
Decimal.div(workshop.foundationProgress.value, 10).floor().div(10).add(1),
description: "800% Foundation Completed",
enabled: workshop.milestones.extraExpansionMilestone4.earned
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(oil.buildExtractor.amount.value, 1).sqrt(),
description: "Snowball Level 4",
enabled: management.elfTraining.kilnElfTraining.milestones[3].earned
}))
]);
const computedPlasticGain = computed(() => plasticGain.apply(0));

View file

@ -32,7 +32,7 @@ import oilSymbol from "./symbols/oil.png";
import plasticSymbol from "./symbols/plastic.png";
import dyesSymbol from "./symbols/dyes.png";
import managementSymbol from "./symbols/elfManagement.png";
import wrappingPaperSybol from "./symbols/wrappingPaper.png";
import wrappingPaperSymbol from "./symbols/wrappingPaper.png";
import coal from "./layers/coal";
import elves from "./layers/elves";
import paper from "./layers/paper";
@ -288,8 +288,8 @@ export const main = createLayer("main", function (this: BaseLayer) {
createDay(() => ({
day: 15,
shouldNotify: false,
layer: "wrappingPaper",
symbol: wrappingPaperSybol,
layer: null, // "wrapping paper"
symbol: wrappingPaperSymbol,
story: "You'll need to produce wrapping paper so the presents can be wrapped. The elves are getting a bit bored of their boring old workstations, so you decide to let them decorate with some wrapping paper.",
completedStory: "You've produced enough wrapping paper, and the elves are happy with their new workstations. However, some will need more than just wrapping paper to decorate."
})),