From 98c7cd7724c5ce7d2e1248f8e3a7dd76eee66ffb Mon Sep 17 00:00:00 2001 From: thepaperpilot <thepaperpilot@gmail.com> Date: Sun, 10 Apr 2022 21:16:20 -0500 Subject: [PATCH] Added minimumGain to resetButton --- src/data/common.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/data/common.tsx b/src/data/common.tsx index a188486..e3fe79f 100644 --- a/src/data/common.tsx +++ b/src/data/common.tsx @@ -15,7 +15,7 @@ import { TreeNodeOptions } from "features/trees/tree"; import player from "game/player"; -import Decimal from "util/bignum"; +import Decimal, { DecimalSource } from "util/bignum"; import { Computable, GetComputableType, @@ -33,6 +33,7 @@ export interface ResetButtonOptions extends ClickableOptions { showNextAt?: Computable<boolean>; display?: Computable<CoercableComponent>; canClick?: Computable<boolean>; + minimumGain?: Computable<DecimalSource>; } export type ResetButton<T extends ResetButtonOptions> = Replace< @@ -42,6 +43,7 @@ export type ResetButton<T extends ResetButtonOptions> = Replace< showNextAt: GetComputableTypeWithDefault<T["showNextAt"], true>; display: GetComputableTypeWithDefault<T["display"], Ref<JSX.Element>>; canClick: GetComputableTypeWithDefault<T["canClick"], Ref<boolean>>; + minimumGain: GetComputableTypeWithDefault<T["minimumGain"], 1>; onClick: VoidFunction; } >; @@ -53,6 +55,7 @@ export type GenericResetButton = Replace< showNextAt: ProcessedComputable<boolean>; display: ProcessedComputable<CoercableComponent>; canClick: ProcessedComputable<boolean>; + minimumGain: ProcessedComputable<DecimalSource>; } >; @@ -64,6 +67,7 @@ export function createResetButton<T extends ClickableOptions & ResetButtonOption processComputable(resetButton as T, "showNextAt"); setDefault(resetButton, "showNextAt", true); + setDefault(resetButton, "minimumGain", 1); if (resetButton.resetDescription == null) { resetButton.resetDescription = computed(() => @@ -80,7 +84,10 @@ export function createResetButton<T extends ClickableOptions & ResetButtonOption <b> {displayResource( resetButton.conversion.gainResource, - unref(resetButton.conversion.actualGain) + Decimal.max( + unref(resetButton.conversion.actualGain), + unref(resetButton.minimumGain as ProcessedComputable<DecimalSource>) + ) )} </b>{" "} {resetButton.conversion.gainResource.displayName} @@ -99,7 +106,10 @@ export function createResetButton<T extends ClickableOptions & ResetButtonOption if (resetButton.canClick == null) { resetButton.canClick = computed(() => - Decimal.gt(unref(resetButton.conversion.actualGain), 0) + Decimal.gte( + unref(resetButton.conversion.actualGain), + unref(resetButton.minimumGain as ProcessedComputable<DecimalSource>) + ) ); }