mirror of
https://github.com/thepaperpilot/Advent-Incremental.git
synced 2024-11-25 18:00:25 +00:00
Add ribbon milestones for dye elf
This commit is contained in:
parent
4c07345855
commit
e42e1f4c32
4 changed files with 24 additions and 3 deletions
|
@ -37,6 +37,7 @@ import trees from "./trees";
|
||||||
import workshop from "./workshop";
|
import workshop from "./workshop";
|
||||||
import wrappingPaper from "./wrapping-paper";
|
import wrappingPaper from "./wrapping-paper";
|
||||||
import dyes, { enumColor } from "./dyes";
|
import dyes, { enumColor } from "./dyes";
|
||||||
|
import ribbon from "./ribbon";
|
||||||
|
|
||||||
export interface ElfBuyable extends GenericBuyable {
|
export interface ElfBuyable extends GenericBuyable {
|
||||||
/** The inverse function of the cost formula, used to calculate the maximum amount that can be bought by elves. */
|
/** The inverse function of the cost formula, used to calculate the maximum amount that can be bought by elves. */
|
||||||
|
@ -912,7 +913,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
buyMax: management.elfTraining.dyeElfTraining.milestones[2].earned,
|
buyMax: management.elfTraining.dyeElfTraining.milestones[2].earned,
|
||||||
onAutoPurchase(buyable, amount) {
|
onAutoPurchase(buyable, amount) {
|
||||||
if (["orange", "green", "purple"].includes(dyeColors[buyable.id])) {
|
if (["orange", "green", "purple"].includes(dyeColors[buyable.id])) {
|
||||||
if (false) { // does not have ribbon milestone 1
|
if (!ribbon.milestones.secondaryDyeElf.earned.value) {
|
||||||
buyable.amount.value = Decimal.sub(buyable.amount.value, amount)
|
buyable.amount.value = Decimal.sub(buyable.amount.value, amount)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import dyes from "./dyes";
|
||||||
import elves, { ElfBuyable } from "./elves";
|
import elves, { ElfBuyable } from "./elves";
|
||||||
import management from "./management";
|
import management from "./management";
|
||||||
import plastic from "./plastic";
|
import plastic from "./plastic";
|
||||||
|
import ribbon from "./ribbon";
|
||||||
import trees from "./trees";
|
import trees from "./trees";
|
||||||
import workshop from "./workshop";
|
import workshop from "./workshop";
|
||||||
import wrappingPaper from "./wrapping-paper";
|
import wrappingPaper from "./wrapping-paper";
|
||||||
|
@ -294,7 +295,7 @@ const layer = createLayer(id, function (this: BaseLayer) {
|
||||||
name: "",
|
name: "",
|
||||||
elfName: "Carol",
|
elfName: "Carol",
|
||||||
buyableName: "Secondary Dyes",
|
buyableName: "Secondary Dyes",
|
||||||
visibility: () => showIf(elves.elves.dyeElf.bought.value && true) // ribbons secondary dye book milestone
|
visibility: () => showIf(elves.elves.dyeElf.bought.value && ribbon.milestones.dyeBook.earned.value)
|
||||||
});
|
});
|
||||||
const books = {
|
const books = {
|
||||||
cuttersBook,
|
cuttersBook,
|
||||||
|
|
|
@ -2,6 +2,7 @@ import Spacer from "components/layout/Spacer.vue";
|
||||||
import { createBar, GenericBar } from "features/bars/bar";
|
import { createBar, GenericBar } from "features/bars/bar";
|
||||||
import { createClickable } from "features/clickables/clickable";
|
import { createClickable } from "features/clickables/clickable";
|
||||||
import { jsx, showIf } from "features/feature";
|
import { jsx, showIf } from "features/feature";
|
||||||
|
import { createMilestone } from "features/milestones/milestone";
|
||||||
import { createResource } from "features/resources/resource";
|
import { createResource } from "features/resources/resource";
|
||||||
import { createLayer, layers } from "game/layers";
|
import { createLayer, layers } from "game/layers";
|
||||||
import player from "game/player";
|
import player from "game/player";
|
||||||
|
@ -22,6 +23,23 @@ const layer = createLayer(id, () => {
|
||||||
|
|
||||||
const ribbon = createResource<DecimalSource>(0, "Ribbon");
|
const ribbon = createResource<DecimalSource>(0, "Ribbon");
|
||||||
|
|
||||||
|
const milestones = {
|
||||||
|
secondaryDyeElf: createMilestone(() => ({
|
||||||
|
display: {
|
||||||
|
requirement: "10 Ribbons",
|
||||||
|
effectDisplay: "Carol will now mix secondary dyes for you"
|
||||||
|
},
|
||||||
|
shouldEarn: () => Decimal.gte(ribbon.value, 10)
|
||||||
|
})),
|
||||||
|
dyeBook: createMilestone(() => ({
|
||||||
|
display: {
|
||||||
|
requirement: "20 Ribbons",
|
||||||
|
effectDisplay: "Unlock a new book"
|
||||||
|
},
|
||||||
|
shouldEarn: () => Decimal.gte(ribbon.value, 20)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
const masteryReq = computed(() => Decimal.pow(2, masteredDays.value).times(30));
|
const masteryReq = computed(() => Decimal.pow(2, masteredDays.value).times(30));
|
||||||
const enterMasteryButton = createClickable(() => ({
|
const enterMasteryButton = createClickable(() => ({
|
||||||
display: () => ({
|
display: () => ({
|
||||||
|
@ -121,6 +139,7 @@ const layer = createLayer(id, () => {
|
||||||
day,
|
day,
|
||||||
color,
|
color,
|
||||||
ribbon,
|
ribbon,
|
||||||
|
milestones,
|
||||||
display: jsx(() => {
|
display: jsx(() => {
|
||||||
return (
|
return (
|
||||||
<div style="width: 620px">
|
<div style="width: 620px">
|
||||||
|
|
|
@ -2,7 +2,7 @@ import Spacer from "components/layout/Spacer.vue";
|
||||||
import { createBar, GenericBar } from "features/bars/bar";
|
import { createBar, GenericBar } from "features/bars/bar";
|
||||||
import { BuyableOptions, createBuyable, GenericBuyable } from "features/buyable";
|
import { BuyableOptions, createBuyable, GenericBuyable } from "features/buyable";
|
||||||
import { createClickable } from "features/clickables/clickable";
|
import { createClickable } from "features/clickables/clickable";
|
||||||
import { jsx, JSXFunction } from "features/feature";
|
import { jsx, JSXFunction, showIf } from "features/feature";
|
||||||
import { createMilestone } from "features/milestones/milestone";
|
import { createMilestone } from "features/milestones/milestone";
|
||||||
import MainDisplay from "features/resources/MainDisplay.vue";
|
import MainDisplay from "features/resources/MainDisplay.vue";
|
||||||
import { createResource, Resource } from "features/resources/resource";
|
import { createResource, Resource } from "features/resources/resource";
|
||||||
|
|
Loading…
Reference in a new issue