Change money to automatically color grey when something cannot be bought.

This commit is contained in:
Olivier Gagnon
2021-09-04 03:27:31 -04:00
parent 3a943e0e50
commit 6e013e4e6a
37 changed files with 112 additions and 92 deletions
+12 -2
View File
@@ -1,6 +1,16 @@
import * as React from "react";
import { numeralWrapper } from "../../ui/numeralFormat";
import { IPlayer } from "../../PersonObjects/IPlayer";
export function Money(money: number | string): JSX.Element {
return <span className={"money-gold samefont"}>{typeof money === 'number' ? numeralWrapper.formatMoney(money) : money}</span>
interface IProps {
money: number | string;
player?: IPlayer;
}
export function Money(props: IProps): JSX.Element {
if(props.player !== undefined) {
if(typeof props.money !== 'number') throw new Error('if player if provided, money should be number, contact dev');
if(!props.player.canAfford(props.money))
return <span className={"unbuyable samefont"}>{numeralWrapper.formatMoney(props.money)}</span>
}
return <span className={"money-gold samefont"}>{typeof props.money === 'number' ? numeralWrapper.formatMoney(props.money) : props.money}</span>
}
+2 -1
View File
@@ -1,6 +1,7 @@
import React from 'react';
import { numeralWrapper } from "../../ui/numeralFormat";
import { Money } from "../../ui/React/Money";
export function MoneyRate(money: number): JSX.Element {
return Money(`${numeralWrapper.formatMoney(money)} / sec`);
return <Money money={`${numeralWrapper.formatMoney(money)} / sec`} />;
}