mirror of
https://github.com/thepaperpilot/Advent-Incremental.git
synced 2024-11-22 08:31:35 +00:00
finish balancing toys layer
This commit is contained in:
parent
7f0301b3e1
commit
19d58d575e
7 changed files with 145 additions and 12 deletions
|
@ -33,6 +33,7 @@ import wrappingPaper from "./wrapping-paper";
|
||||||
import paper from "./paper";
|
import paper from "./paper";
|
||||||
import boxes from "./boxes";
|
import boxes from "./boxes";
|
||||||
import { ElfBuyable } from "./elves";
|
import { ElfBuyable } from "./elves";
|
||||||
|
import toys from "./toys"
|
||||||
|
|
||||||
interface Dye {
|
interface Dye {
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -53,7 +54,7 @@ type DyeUpg =
|
||||||
| "blueDyeUpg2"
|
| "blueDyeUpg2"
|
||||||
| "coalUpg";
|
| "coalUpg";
|
||||||
|
|
||||||
export type enumColor = "red" | "green" | "blue" | "yellow" | "purple" | "orange";
|
export type enumColor = "red" | "green" | "blue" | "yellow" | "purple" | "orange" | "black";
|
||||||
|
|
||||||
const id = "dyes";
|
const id = "dyes";
|
||||||
const day = 11;
|
const day = 11;
|
||||||
|
@ -393,6 +394,34 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
],
|
],
|
||||||
dyesToReset: []
|
dyesToReset: []
|
||||||
}),
|
}),
|
||||||
|
black: createDye({
|
||||||
|
name: "Black Dye",
|
||||||
|
color: "black",
|
||||||
|
costs: () => [
|
||||||
|
{
|
||||||
|
base: "1e42",
|
||||||
|
root: 5,
|
||||||
|
res: trees.logs
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: computed(() => (upgrades.yellowDyeUpg2.bought.value ? "1e15" : "2e15")),
|
||||||
|
root: 2,
|
||||||
|
res: oil.oil
|
||||||
|
}
|
||||||
|
],
|
||||||
|
listedBoosts: [
|
||||||
|
{
|
||||||
|
visible: true,
|
||||||
|
desc: computed(
|
||||||
|
() =>
|
||||||
|
`*${format(
|
||||||
|
boosts.black1.value
|
||||||
|
)} letters processed.`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
],
|
||||||
|
dyesToReset: []
|
||||||
|
}),
|
||||||
orange: createDye({
|
orange: createDye({
|
||||||
name: "Orange Dye",
|
name: "Orange Dye",
|
||||||
color: "orange",
|
color: "orange",
|
||||||
|
@ -565,7 +594,12 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
.pow(upgrades.coalUpg.bought.value ? 1.2 : 1)
|
.pow(upgrades.coalUpg.bought.value ? 1.2 : 1)
|
||||||
.pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1)
|
.pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1)
|
||||||
),
|
),
|
||||||
purple2: computed(() => Decimal.add(dyes.purple.amount.value, 1).log2().plus(1))
|
purple2: computed(() => Decimal.add(dyes.purple.amount.value, 1).log2().plus(1)),
|
||||||
|
black1: computed(() =>
|
||||||
|
Decimal.pow(2, Decimal.add(dyes.black.amount.value, 1).log2().sqrt())
|
||||||
|
.pow(upgrades.coalUpg.bought.value ? 1.2 : 1)
|
||||||
|
.pow(management.elfTraining.clothElfTraining.milestones[3].earned.value ? 1.1 : 1)
|
||||||
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
const [generalTab, generalTabCollapsed] = createCollapsibleModifierSections(() => [
|
const [generalTab, generalTabCollapsed] = createCollapsibleModifierSections(() => [
|
||||||
|
@ -584,6 +618,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
modifier: dyes.blue.toGenerate,
|
modifier: dyes.blue.toGenerate,
|
||||||
base: 0
|
base: 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Black Dye Creation",
|
||||||
|
modifier: dyes.black.toGenerate,
|
||||||
|
base: 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Orange Dye Creation",
|
title: "Orange Dye Creation",
|
||||||
modifier: dyes.orange.toGenerate,
|
modifier: dyes.orange.toGenerate,
|
||||||
|
@ -795,6 +834,9 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
{render(trackerDisplay)}
|
{render(trackerDisplay)}
|
||||||
<Spacer />
|
<Spacer />
|
||||||
<div style="width: 620px">
|
<div style="width: 620px">
|
||||||
|
{renderRow(dyes.black.display)}
|
||||||
|
{renderRow(dyes.black.buyable)}
|
||||||
|
<Spacer />
|
||||||
{renderRow(dyes.red.display, dyes.yellow.display, dyes.blue.display)}
|
{renderRow(dyes.red.display, dyes.yellow.display, dyes.blue.display)}
|
||||||
{renderRow(dyes.red.buyable, dyes.yellow.buyable, dyes.blue.buyable)}
|
{renderRow(dyes.red.buyable, dyes.yellow.buyable, dyes.blue.buyable)}
|
||||||
<Spacer />
|
<Spacer />
|
||||||
|
|
|
@ -24,6 +24,7 @@ import { createBuyable, GenericBuyable } from "features/buyable";
|
||||||
import metal from "./metal";
|
import metal from "./metal";
|
||||||
import plastic from "./plastic";
|
import plastic from "./plastic";
|
||||||
import paper from "./paper";
|
import paper from "./paper";
|
||||||
|
import dyes from "./dyes";
|
||||||
import SqrtVue from "components/math/Sqrt.vue";
|
import SqrtVue from "components/math/Sqrt.vue";
|
||||||
import { globalBus } from "game/events";
|
import { globalBus } from "game/events";
|
||||||
import { main } from "data/projEntry";
|
import { main } from "data/projEntry";
|
||||||
|
@ -190,7 +191,12 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
createMultiplicativeModifier(() => ({
|
createMultiplicativeModifier(() => ({
|
||||||
multiplier: () => Decimal.div(paperBuyable.amount.value, 2).add(1),
|
multiplier: () => Decimal.div(paperBuyable.amount.value, 2).add(1),
|
||||||
description: "Printed Labels"
|
description: "Printed Labels"
|
||||||
|
})),
|
||||||
|
createMultiplicativeModifier(() => ({
|
||||||
|
multiplier: () => dyes.boosts.black1.value,
|
||||||
|
description: "Black Dye Boost"
|
||||||
}))
|
}))
|
||||||
|
|
||||||
]);
|
]);
|
||||||
const computedLettersGain = computed(() => lettersGain.apply(1));
|
const computedLettersGain = computed(() => lettersGain.apply(1));
|
||||||
const processingCooldown = createSequentialModifier(() => [
|
const processingCooldown = createSequentialModifier(() => [
|
||||||
|
|
|
@ -35,6 +35,7 @@ import oil from "./oil";
|
||||||
import paper from "./paper";
|
import paper from "./paper";
|
||||||
import plastic from "./plastic";
|
import plastic from "./plastic";
|
||||||
import workshop from "./workshop";
|
import workshop from "./workshop";
|
||||||
|
import toys from "./toys";
|
||||||
|
|
||||||
const id = "metal";
|
const id = "metal";
|
||||||
const day = 7;
|
const day = 7;
|
||||||
|
@ -193,6 +194,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
multiplier: () => Decimal.add(industrialCrucible.amount.value, 1).sqrt(),
|
multiplier: () => Decimal.add(industrialCrucible.amount.value, 1).sqrt(),
|
||||||
description: "100,000 Letters Processed",
|
description: "100,000 Letters Processed",
|
||||||
enabled: letters.milestones.industrialCrucibleMilestone.earned
|
enabled: letters.milestones.industrialCrucibleMilestone.earned
|
||||||
|
})),
|
||||||
|
createMultiplicativeModifier(() => ({
|
||||||
|
multiplier: () => Decimal.add(toys.clothes.value, 1),
|
||||||
|
description: "Give elves clothes to wear",
|
||||||
|
enabled: toys.row1Upgrades[1].bought
|
||||||
}))
|
}))
|
||||||
]);
|
]);
|
||||||
const computedAutoSmeltMulti = computed(() => autoSmeltMulti.apply(1));
|
const computedAutoSmeltMulti = computed(() => autoSmeltMulti.apply(1));
|
||||||
|
@ -268,7 +274,12 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
multiplier: () => Decimal.add(dyes.dyes.blue.amount.value, 1).sqrt(),
|
multiplier: () => Decimal.add(dyes.dyes.blue.amount.value, 1).sqrt(),
|
||||||
description: "1000 Letters Processed",
|
description: "1000 Letters Processed",
|
||||||
enabled: letters.milestones.miningMilestone.earned
|
enabled: letters.milestones.miningMilestone.earned
|
||||||
}))
|
})),
|
||||||
|
createMultiplicativeModifier(() => ({
|
||||||
|
multiplier: () => Decimal.add(toys.clothes.value, 1),
|
||||||
|
description: "Give elves clothes to wear",
|
||||||
|
enabled: toys.row1Upgrades[1].bought
|
||||||
|
})),
|
||||||
]);
|
]);
|
||||||
const computedOreAmount = computed(() => oreAmount.apply(1));
|
const computedOreAmount = computed(() => oreAmount.apply(1));
|
||||||
const oreSpeed = createSequentialModifier(() => [
|
const oreSpeed = createSequentialModifier(() => [
|
||||||
|
|
|
@ -861,6 +861,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
description: "Cocoa Level 3",
|
description: "Cocoa Level 3",
|
||||||
enabled: management.elfTraining.oilElfTraining.milestones[2].earned
|
enabled: management.elfTraining.oilElfTraining.milestones[2].earned
|
||||||
})),
|
})),
|
||||||
|
createMultiplicativeModifier(() => ({
|
||||||
|
multiplier: 4,
|
||||||
|
description: "Workshop 1200%",
|
||||||
|
enabled: workshop.milestones.extraExpansionMilestone6.earned
|
||||||
|
})),
|
||||||
createMultiplicativeModifier(() => ({
|
createMultiplicativeModifier(() => ({
|
||||||
multiplier: () => coalEffectiveness.value,
|
multiplier: () => coalEffectiveness.value,
|
||||||
description: "Effectiveness",
|
description: "Effectiveness",
|
||||||
|
|
|
@ -160,7 +160,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
You have {formatWhole(woodenBlocks.value)} wooden blocks.
|
You have {formatWhole(trucks.value)} trucks.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
@ -182,14 +182,51 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
},
|
},
|
||||||
})) as GenericBuyable;
|
})) as GenericBuyable;
|
||||||
const buyables = [ clothesBuyable, woodenBlocksBuyable, trucksBuyable ];
|
const buyables = [ clothesBuyable, woodenBlocksBuyable, trucksBuyable ];
|
||||||
|
const trucksUpgrade1 = createUpgrade(() => ({
|
||||||
|
resource: noPersist(trucks),
|
||||||
|
cost: 10,
|
||||||
|
display: {
|
||||||
|
title: "Load logs onto trucks",
|
||||||
|
description: "Log gain is doubled."
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
const clothesUpgrade1 = createUpgrade(() => ({
|
||||||
|
resource: noPersist(clothes),
|
||||||
|
cost: 30,
|
||||||
|
display: {
|
||||||
|
title: "Give elves clothes to wear",
|
||||||
|
description: "Multiply ore per mining operation and auto-smelt purity by the number of clothes you have."
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
|
||||||
|
const woodenBlocksUpgrade1 = createUpgrade(() => ({
|
||||||
|
resource: noPersist(woodenBlocks),
|
||||||
|
cost: 15,
|
||||||
|
display: {
|
||||||
|
title: "Build wooden towers",
|
||||||
|
description: "You can now build 2 extra tall workshops!"
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
const row1Upgrades = [
|
||||||
|
trucksUpgrade1,
|
||||||
|
clothesUpgrade1,
|
||||||
|
woodenBlocksUpgrade1
|
||||||
|
];
|
||||||
const milestone1 = createMilestone(() => ({
|
const milestone1 = createMilestone(() => ({
|
||||||
display: {
|
display: {
|
||||||
requirement: "10 toys",
|
requirement: "10 toys",
|
||||||
effectDisplay: "The number of complete workshops you have divides the cost to make toys."
|
effectDisplay: "The cost of making toys is divided by the number of complete workshops you have."
|
||||||
},
|
},
|
||||||
shouldEarn: () => Decimal.gte(toySum.value, 10)
|
shouldEarn: () => Decimal.gte(toySum.value, 10)
|
||||||
}));
|
}));
|
||||||
const milestones = {milestone1}
|
const milestone2 = createMilestone(() => ({
|
||||||
|
display: {
|
||||||
|
requirement: "100 toys",
|
||||||
|
effectDisplay: "Unlock black dyes."
|
||||||
|
},
|
||||||
|
shouldEarn: () => Decimal.gte(toySum.value, 100)
|
||||||
|
}));
|
||||||
|
const milestones = {milestone1, milestone2}
|
||||||
const { collapseMilestones, display: milestonesDisplay } =
|
const { collapseMilestones, display: milestonesDisplay } =
|
||||||
createCollapsibleMilestones(milestones);
|
createCollapsibleMilestones(milestones);
|
||||||
|
|
||||||
|
@ -217,14 +254,22 @@ const { collapseMilestones, display: milestonesDisplay } =
|
||||||
if (Decimal.lt(main.day.value, day)) {
|
if (Decimal.lt(main.day.value, day)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (Decimal.lt(clothes.value, clothesBuyable.amount.value)){
|
||||||
|
clothesBuyable.amount.value = clothes.value
|
||||||
|
}
|
||||||
|
if (Decimal.lt(woodenBlocks.value, woodenBlocksBuyable.amount.value)){
|
||||||
|
woodenBlocksBuyable.amount.value = woodenBlocks.value
|
||||||
|
}
|
||||||
|
if (Decimal.lt(trucks.value, trucksBuyable.amount.value)){
|
||||||
|
trucksBuyable.amount.value = trucks.value
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const { total: totalToys, trackerDisplay } = setUpDailyProgressTracker({
|
const { total: totalToys, trackerDisplay } = setUpDailyProgressTracker({
|
||||||
resource: toySum,
|
resource: toySum,
|
||||||
goal: 8e9,
|
goal: 200,
|
||||||
name,
|
name,
|
||||||
day,
|
day,
|
||||||
color: colorDark,
|
color: colorDark,
|
||||||
|
@ -244,6 +289,7 @@ const { collapseMilestones, display: milestonesDisplay } =
|
||||||
toySum,
|
toySum,
|
||||||
totalToys,
|
totalToys,
|
||||||
buyables,
|
buyables,
|
||||||
|
row1Upgrades,
|
||||||
milestones,
|
milestones,
|
||||||
generalTabCollapsed,
|
generalTabCollapsed,
|
||||||
collapseMilestones,
|
collapseMilestones,
|
||||||
|
@ -273,6 +319,8 @@ const { collapseMilestones, display: milestonesDisplay } =
|
||||||
<Spacer />
|
<Spacer />
|
||||||
{renderRow(...buyables)}
|
{renderRow(...buyables)}
|
||||||
<Spacer />
|
<Spacer />
|
||||||
|
{renderGrid(row1Upgrades)}
|
||||||
|
<Spacer />
|
||||||
{milestonesDisplay()}
|
{milestonesDisplay()}
|
||||||
</>
|
</>
|
||||||
)),
|
)),
|
||||||
|
|
|
@ -37,6 +37,7 @@ import management from "./management";
|
||||||
import paper from "./paper";
|
import paper from "./paper";
|
||||||
import workshop from "./workshop";
|
import workshop from "./workshop";
|
||||||
import wrappingPaper from "./wrapping-paper";
|
import wrappingPaper from "./wrapping-paper";
|
||||||
|
import toys from "./toys";
|
||||||
const id = "trees";
|
const id = "trees";
|
||||||
const day = 1;
|
const day = 1;
|
||||||
|
|
||||||
|
@ -528,6 +529,11 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
description: "Christmas Wrapping Paper",
|
description: "Christmas Wrapping Paper",
|
||||||
enabled: computed(() => Decimal.gt(wrappingPaper.boosts.christmas1.value, 1))
|
enabled: computed(() => Decimal.gt(wrappingPaper.boosts.christmas1.value, 1))
|
||||||
})),
|
})),
|
||||||
|
createMultiplicativeModifier(() => ({
|
||||||
|
multiplier: 2,
|
||||||
|
description: "Load logs onto trucks",
|
||||||
|
enabled: toys.row1Upgrades[0].bought
|
||||||
|
})),
|
||||||
createExponentialModifier(() => ({
|
createExponentialModifier(() => ({
|
||||||
exponent: 1.2,
|
exponent: 1.2,
|
||||||
description: "100% Foundation Completed",
|
description: "100% Foundation Completed",
|
||||||
|
|
|
@ -32,6 +32,7 @@ import elves from "./elves";
|
||||||
import management from "./management";
|
import management from "./management";
|
||||||
import trees from "./trees";
|
import trees from "./trees";
|
||||||
import wrappingPaper from "./wrapping-paper";
|
import wrappingPaper from "./wrapping-paper";
|
||||||
|
import toys from "./toys"
|
||||||
|
|
||||||
const id = "workshop";
|
const id = "workshop";
|
||||||
const day = 2;
|
const day = 2;
|
||||||
|
@ -47,7 +48,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
scaling: addHardcap(
|
scaling: addHardcap(
|
||||||
addSoftcap(addSoftcap(createPolynomialScaling(250, 1.5), 5423, 1 / 1e10), 1e20, 3e8),
|
addSoftcap(addSoftcap(createPolynomialScaling(250, 1.5), 5423, 1 / 1e10), 1e20, 3e8),
|
||||||
computed(() =>
|
computed(() =>
|
||||||
management.elfTraining.expandersElfTraining.milestones[2].earned.value ? 1000 : 100
|
toys.row1Upgrades[2].bought ? 1200 : management.elfTraining.expandersElfTraining.milestones[2].earned.value ? 1000 : 100
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
baseResource: trees.logs,
|
baseResource: trees.logs,
|
||||||
|
@ -95,7 +96,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
showIf(
|
showIf(
|
||||||
Decimal.lt(
|
Decimal.lt(
|
||||||
foundationProgress.value,
|
foundationProgress.value,
|
||||||
management.elfTraining.expandersElfTraining.milestones[2].earned.value
|
toys.row1Upgrades[2].bought.value ? 1200 : management.elfTraining.expandersElfTraining.milestones[2].earned.value
|
||||||
? 1000
|
? 1000
|
||||||
: 100
|
: 100
|
||||||
)
|
)
|
||||||
|
@ -104,7 +105,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
Decimal.gte(trees.logs.value, foundationConversion.nextAt.value) &&
|
Decimal.gte(trees.logs.value, foundationConversion.nextAt.value) &&
|
||||||
Decimal.lt(
|
Decimal.lt(
|
||||||
foundationProgress.value,
|
foundationProgress.value,
|
||||||
management.elfTraining.expandersElfTraining.milestones[2].earned.value ? 1000 : 100
|
toys.row1Upgrades[2].bought.value ? 1200 : management.elfTraining.expandersElfTraining.milestones[2].earned.value ? 1000 : 100
|
||||||
),
|
),
|
||||||
onClick() {
|
onClick() {
|
||||||
if (!unref(this.canClick)) {
|
if (!unref(this.canClick)) {
|
||||||
|
@ -261,6 +262,19 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
),
|
),
|
||||||
showPopups: shouldShowPopups
|
showPopups: shouldShowPopups
|
||||||
}));
|
}));
|
||||||
|
const extraExpansionMilestone6 = createMilestone(() => ({
|
||||||
|
display: {
|
||||||
|
requirement: "1200% Foundation Completed",
|
||||||
|
effectDisplay: "Quadruple oil gain"
|
||||||
|
},
|
||||||
|
shouldEarn: () => Decimal.gte(foundationProgress.value, 1200),
|
||||||
|
visibility: () =>
|
||||||
|
showIf(
|
||||||
|
extraExpansionMilestone5.earned.value &&
|
||||||
|
toys.row1Upgrades[2].bought.value
|
||||||
|
),
|
||||||
|
showPopups: shouldShowPopups
|
||||||
|
}));
|
||||||
const milestones = {
|
const milestones = {
|
||||||
logGainMilestone1,
|
logGainMilestone1,
|
||||||
autoCutMilestone1,
|
autoCutMilestone1,
|
||||||
|
@ -274,7 +288,8 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
extraExpansionMilestone2,
|
extraExpansionMilestone2,
|
||||||
extraExpansionMilestone3,
|
extraExpansionMilestone3,
|
||||||
extraExpansionMilestone4,
|
extraExpansionMilestone4,
|
||||||
extraExpansionMilestone5
|
extraExpansionMilestone5,
|
||||||
|
extraExpansionMilestone6
|
||||||
};
|
};
|
||||||
const { collapseMilestones, display: milestonesDisplay } =
|
const { collapseMilestones, display: milestonesDisplay } =
|
||||||
createCollapsibleMilestones(milestones);
|
createCollapsibleMilestones(milestones);
|
||||||
|
|
Loading…
Reference in a new issue