Implemented gingersnap lv1-3

Plus some cleanup
This commit is contained in:
Anthony Lawn 2022-12-12 08:35:43 -06:00
parent c6c6ff0947
commit 661cda21cb
3 changed files with 79 additions and 30 deletions

View file

@ -28,6 +28,7 @@ import { formatWhole } from "util/break_eternity";
import { Direction } from "util/common";
import { render, renderCol, renderRow } from "util/vue";
import { computed, ref } from "vue";
import dyes from "./dyes";
import management from "./management";
import metal from "./metal";
import paper from "./paper";
@ -330,6 +331,9 @@ const layer = createLayer(id, function (this: BaseLayer) {
}));
const paperUpgrades = { paperUpgrade4, paperUpgrade3, paperUpgrade2, paperUpgrade1 };
const hollyEffect = computed(() => Decimal.add(trees.computedAutoCuttingAmount.value, 1).log10().add(1));
const gingersnapEffect = computed(() => Decimal.add(dyes.dyeSum.value, 10).log10());
const sheepGain = createSequentialModifier(() => [
createAdditiveModifier(() => ({
addend: buildPens.amount,
@ -344,6 +348,16 @@ const layer = createLayer(id, function (this: BaseLayer) {
multiplier: 2,
description: "Shepherding for Dummies",
enabled: paper.upgrades.clothUpgrade.bought
})),
createMultiplicativeModifier(() => ({
multiplier: hollyEffect,
description: "Holly Level 3",
enabled: management.elfTraining.cutterElfTraining.milestones[2].earned
})),
createMultiplicativeModifier(() => ({
multiplier: gingersnapEffect,
description: "Gingersnap Level 2",
enabled: management.elfTraining.clothElfTraining.milestones[1].earned
}))
]);
const computedSheepGain = computed(() => sheepGain.apply(1));
@ -366,9 +380,14 @@ const layer = createLayer(id, function (this: BaseLayer) {
enabled: paper.upgrades.clothUpgrade.bought
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(trees.computedAutoCuttingAmount.value, 1).log10().add(1),
multiplier: hollyEffect,
description: "Holly Level 3",
enabled: management.elfTraining.cutterElfTraining.milestones[2].earned
})),
createMultiplicativeModifier(() => ({
multiplier: gingersnapEffect,
description: "Gingersnap Level 2",
enabled: management.elfTraining.clothElfTraining.milestones[1].earned
}))
]);
const computedShearingAmount = computed(() => shearingAmount.apply(1));
@ -391,9 +410,14 @@ const layer = createLayer(id, function (this: BaseLayer) {
enabled: paper.upgrades.clothUpgrade.bought
})),
createMultiplicativeModifier(() => ({
multiplier: () => Decimal.add(trees.computedAutoCuttingAmount.value, 1).log10().add(1),
multiplier: hollyEffect,
description: "Holly Level 3",
enabled: management.elfTraining.cutterElfTraining.milestones[2].earned
})),
createMultiplicativeModifier(() => ({
multiplier: gingersnapEffect,
description: "Gingersnap Level 2",
enabled: management.elfTraining.clothElfTraining.milestones[1].earned
}))
]);
const computedSpinningAmount = computed(() => spinningAmount.apply(1));

View file

@ -24,7 +24,9 @@ import { WithRequired } from "util/common";
import { Computable, convertComputable } from "util/computed";
import { render, renderCol, renderRow } from "util/vue";
import { computed, ComputedRef, ref, Ref, unref } from "vue";
import cloth from "./cloth";
import coal from "./coal";
import management from "./management";
import oil from "./oil";
import trees from "./trees";
@ -76,34 +78,51 @@ const layer = createLayer(id, function (this: BaseLayer) {
): Dye {
const amount = createResource<DecimalSource>(0, options.name);
const toGenerate = createSequentialModifier(() => [
createAdditiveModifier(() => ({
addend: () => Decimal.add(buyable.amount.value, 1),
description: `${options.name} Chambers`
})),
createMultiplicativeModifier(() => ({
multiplier: boosts.orange1,
description: "Orange Dye Boost 1",
enabled: options.color == "red" || options.color == "yellow"
})),
createMultiplicativeModifier(() => ({
multiplier: boosts.green1,
description: "Green Dye Boost 1",
enabled: options.color == "yellow" || options.color == "blue"
})),
createMultiplicativeModifier(() => ({
multiplier: boosts.purple1,
description: "Purple Dye Boost 1",
enabled: options.color == "red" || options.color == "blue"
})),
createMultiplicativeModifier(() => ({
const toGenerate = createSequentialModifier(() => {
const modifiers = [
createAdditiveModifier(() => ({
addend: () => Decimal.add(buyable.amount.value, 1),
description: `${options.name} Chambers`
}))
];
if (options.color === "red" || options.color === "yellow") {
modifiers.push(createMultiplicativeModifier(() => ({
multiplier: boosts.orange1,
description: "Orange Dye Boost 1"
})));
}
if (options.color == "yellow" || options.color == "blue") {
modifiers.push(createMultiplicativeModifier(() => ({
multiplier: boosts.green1,
description: "Green Dye Boost 1"
})));
}
if (options.color == "red" || options.color == "blue") {
modifiers.push(createMultiplicativeModifier(() => ({
multiplier: boosts.purple1,
description: "Purple Dye Boost 1"
})));
}
if (options.color == "red" || options.color == "yellow" || options.color == "blue") {
modifiers.push(createMultiplicativeModifier(() => ({
multiplier: 2,
description: "Wetter Dyes",
enabled: upgrades.yellowDyeUpg.bought
})));
modifiers.push(createMultiplicativeModifier(() => ({
// adding e, which apparently isn't a constant
multiplier: () => Decimal.add(cloth.cloth.value, 2.718281828459).ln(),
description: "Gingersnap Level 1",
enabled: management.elfTraining.clothElfTraining.milestones[0].earned
})));
}
modifiers.push(createMultiplicativeModifier(() => ({
multiplier: 2,
description: "Wetter Dyes",
enabled: () =>
upgrades.yellowDyeUpg.bought.value &&
(options.color == "red" || options.color == "yellow" || options.color == "blue")
}))
]) as WithRequired<Modifier, "description" | "revert">;
description: "Gingersnap Level 3",
enabled: management.elfTraining.clothElfTraining.milestones[2].earned
})))
return modifiers;
}) as WithRequired<Modifier, "description" | "revert">;
const computedToGenerate = computed(() => toGenerate.apply(0));
const buyable: GenericBuyable = createBuyable(() => {

View file

@ -664,7 +664,13 @@ const layer = createLayer(id, () => {
effectDisplay: "Double all dye colors and cloth actions, but reset all dyes."
},
visibility: () => showIf(clothElfMilestones[1].earned.value),
shouldEarn: () => clothElfTraining.level.value >= 3
shouldEarn: () => clothElfTraining.level.value >= 3,
onComplete() {
(["red", "yellow", "blue", "orange", "green", "purple"] as const).forEach(dyeColor => {
dyes.dyes[dyeColor].amount.value = 0;
dyes.dyes[dyeColor].buyable.amount.value = 0;
});
}
})),
createMilestone(() => ({
display: {