Add printFormula util
This commit is contained in:
parent
6115b6687d
commit
6f9b73d0e8
2 changed files with 26 additions and 2 deletions
|
@ -7,7 +7,8 @@ import { globalBus } from "game/events";
|
||||||
import Formula, {
|
import Formula, {
|
||||||
calculateCost,
|
calculateCost,
|
||||||
calculateMaxAffordable,
|
calculateMaxAffordable,
|
||||||
findNonInvertible
|
findNonInvertible,
|
||||||
|
printFormula
|
||||||
} from "game/formulas/formulas";
|
} from "game/formulas/formulas";
|
||||||
import type { BaseLayer, GenericLayer } from "game/layers";
|
import type { BaseLayer, GenericLayer } from "game/layers";
|
||||||
import { createLayer } from "game/layers";
|
import { createLayer } from "game/layers";
|
||||||
|
@ -23,6 +24,7 @@ window.Formula = Formula;
|
||||||
window.calculateMaxAffordable = calculateMaxAffordable;
|
window.calculateMaxAffordable = calculateMaxAffordable;
|
||||||
window.calculateCost = calculateCost;
|
window.calculateCost = calculateCost;
|
||||||
window.findNonInvertible = findNonInvertible;
|
window.findNonInvertible = findNonInvertible;
|
||||||
|
window.printFormula = printFormula;
|
||||||
window.unref = unref;
|
window.unref = unref;
|
||||||
window.ref = ref;
|
window.ref = ref;
|
||||||
window.createResource = createResource;
|
window.createResource = createResource;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Resource } from "features/resources/resource";
|
import { Resource } from "features/resources/resource";
|
||||||
import Decimal, { DecimalSource } from "util/bignum";
|
import Decimal, { DecimalSource, format } from "util/bignum";
|
||||||
import { Computable, convertComputable, ProcessedComputable } from "util/computed";
|
import { Computable, convertComputable, ProcessedComputable } from "util/computed";
|
||||||
import { computed, ComputedRef, ref, unref } from "vue";
|
import { computed, ComputedRef, ref, unref } from "vue";
|
||||||
import * as ops from "./operations";
|
import * as ops from "./operations";
|
||||||
|
@ -1334,6 +1334,28 @@ export function findNonInvertible(formula: GenericFormula): GenericFormula | nul
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stringifies a formula so it's more easy to read in the console
|
||||||
|
* @param formula The formula to print
|
||||||
|
*/
|
||||||
|
export function printFormula(formula: FormulaSource): string {
|
||||||
|
if (formula instanceof Formula) {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-ignore
|
||||||
|
return formula.internalEvaluate == null
|
||||||
|
? formula.hasVariable()
|
||||||
|
? "x"
|
||||||
|
: formula.inputs[0] ?? 0
|
||||||
|
: // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-ignore
|
||||||
|
formula.internalEvaluate.name +
|
||||||
|
"(" +
|
||||||
|
formula.inputs.map(printFormula).join(", ") +
|
||||||
|
")";
|
||||||
|
}
|
||||||
|
return format(unref(formula));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility for calculating the maximum amount of purchases possible with a given formula and resource. If {@ref spendResources} is changed to false, the calculation will be much faster with higher numbers.
|
* Utility for calculating the maximum amount of purchases possible with a given formula and resource. If {@ref spendResources} is changed to false, the calculation will be much faster with higher numbers.
|
||||||
* @param formula The formula to use for calculating buy max from
|
* @param formula The formula to use for calculating buy max from
|
||||||
|
|
Loading…
Reference in a new issue