bitburner-src/src/ui/ActiveScripts/ScriptProduction.tsx

49 lines
1.5 KiB
TypeScript
Raw Normal View History

/**
* React Component for displaying the total production and production rate
* of scripts on the 'Active Scripts' UI page
*/
import * as React from "react";
import { WorkerScript } from "../../Netscript/WorkerScript";
import { IPlayer } from "../../PersonObjects/IPlayer";
import { Money } from "../React/Money";
type IProps = {
2021-09-05 01:09:30 +02:00
p: IPlayer;
workerScripts: Map<number, WorkerScript>;
};
export function ScriptProduction(props: IProps): React.ReactElement {
2021-09-09 05:47:34 +02:00
const prodRateSinceLastAug = props.p.scriptProdSinceLastAug / (props.p.playtimeSinceLastAug / 1000);
2021-09-05 01:09:30 +02:00
let onlineProduction = 0;
for (const ws of props.workerScripts.values()) {
2021-09-09 05:47:34 +02:00
onlineProduction += ws.scriptRef.onlineMoneyMade / ws.scriptRef.onlineRunningTime;
2021-09-05 01:09:30 +02:00
}
2021-09-05 01:09:30 +02:00
return (
<p id="active-scripts-total-prod">
Total online production of Active scripts:&nbsp;
<span className="money-gold">
<span id="active-scripts-total-production-active">
<Money money={onlineProduction} />
</span>{" "}
/ sec
</span>
<br />
Total online production since last Aug installation:&nbsp;
<span id="active-scripts-total-prod-aug-total" className="money-gold">
<Money money={props.p.scriptProdSinceLastAug} />
</span>
&nbsp;(
<span className="money-gold">
<span id="active-scripts-total-prod-aug-avg" className="money-gold">
<Money money={prodRateSinceLastAug} />
</span>{" "}
/ sec
</span>
)
</p>
);
}