mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-20 00:04:22 +02:00
e572c6dad8
* Hash upgrades and Bladeburner skills can now be clicked to copy to clipboard * Aug purchase confirmation popup displays money in 0.000a format * Character now displays hacknet server info properly * Character,Info now displays hacknet server info correctly. * Formulas (#825) Formulas API v0.1 * Make all money the same color, same for reputation, format all numbers consistently. * rename a lot of the formulas function to no longer contain calculate * added hacking related formulas * removed unused variable * v0.51.0
42 lines
1.2 KiB
React
42 lines
1.2 KiB
React
/**
|
|
* React Component for the button that is used to purchase new Hacknet Nodes
|
|
*/
|
|
import React from "react";
|
|
|
|
import { hasHacknetServers,
|
|
hasMaxNumberHacknetServers } from "../HacknetHelpers";
|
|
import { Player } from "../../Player";
|
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
|
import { Money } from "../../ui/React/Money";
|
|
|
|
export function PurchaseButton(props) {
|
|
if (props.multiplier == null || props.onClick == null) {
|
|
throw new Error(`PurchaseButton constructed without required props`);
|
|
}
|
|
|
|
const cost = props.cost;
|
|
let className = Player.canAfford(cost) ? "std-button" : "std-button-disabled";
|
|
let text;
|
|
let style = null;
|
|
if (hasHacknetServers()) {
|
|
if (hasMaxNumberHacknetServers()) {
|
|
className = "std-button-disabled";
|
|
text = <>Hacknet Server limit reached</>;
|
|
style = {color: "red"};
|
|
} else {
|
|
text = <>Purchase Hacknet Server - {Money(cost)}</>;
|
|
}
|
|
} else {
|
|
text = <>Purchase Hacknet Node - {Money(cost)}</>;
|
|
}
|
|
|
|
return (
|
|
<button className={className}
|
|
onClick={props.onClick}
|
|
style={style}>
|
|
{text}
|
|
</button>
|
|
|
|
)
|
|
}
|