mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-17 23:08:36 +02:00
BUGFIX: Some calculations return NaN due to Player.playtimeSinceLastAug being 0 in edge cases (#1985)
This commit is contained in:
@@ -1564,7 +1564,11 @@ export const ns: InternalAPI<NSFull> = {
|
|||||||
total += script.scriptRef.onlineMoneyMade / script.scriptRef.onlineRunningTime;
|
total += script.scriptRef.onlineMoneyMade / script.scriptRef.onlineRunningTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
return [total, Player.scriptProdSinceLastAug / (Player.playtimeSinceLastAug / 1000)];
|
let incomeFromScriptsSinceLastAug = Player.scriptProdSinceLastAug / (Player.playtimeSinceLastAug / 1000);
|
||||||
|
if (!Number.isFinite(incomeFromScriptsSinceLastAug)) {
|
||||||
|
incomeFromScriptsSinceLastAug = 0;
|
||||||
|
}
|
||||||
|
return [total, incomeFromScriptsSinceLastAug];
|
||||||
},
|
},
|
||||||
getScriptIncome:
|
getScriptIncome:
|
||||||
(ctx) =>
|
(ctx) =>
|
||||||
|
|||||||
@@ -58,8 +58,11 @@ export function scriptCalculateOfflineProduction(runningScript: RunningScript):
|
|||||||
const expGain = confidence * (runningScript.onlineExpGained / runningScript.onlineRunningTime) * timePassed;
|
const expGain = confidence * (runningScript.onlineExpGained / runningScript.onlineRunningTime) * timePassed;
|
||||||
Player.gainHackingExp(expGain);
|
Player.gainHackingExp(expGain);
|
||||||
|
|
||||||
const moneyGain =
|
let moneyGain =
|
||||||
(runningScript.onlineMoneyMade / Player.playtimeSinceLastAug) * timePassed * CONSTANTS.OfflineHackingIncome;
|
(runningScript.onlineMoneyMade / Player.playtimeSinceLastAug) * timePassed * CONSTANTS.OfflineHackingIncome;
|
||||||
|
if (!Number.isFinite(moneyGain)) {
|
||||||
|
moneyGain = 0;
|
||||||
|
}
|
||||||
// money is given to player during engine load
|
// money is given to player during engine load
|
||||||
Player.scriptProdSinceLastAug += moneyGain;
|
Player.scriptProdSinceLastAug += moneyGain;
|
||||||
|
|
||||||
|
|||||||
@@ -276,8 +276,11 @@ const Engine: {
|
|||||||
tryGeneratingRandomContract(timeOffline / CONSTANTS.MillisecondsPerTenMinutes);
|
tryGeneratingRandomContract(timeOffline / CONSTANTS.MillisecondsPerTenMinutes);
|
||||||
|
|
||||||
let offlineReputation = 0;
|
let offlineReputation = 0;
|
||||||
const offlineHackingIncome =
|
let offlineHackingIncome =
|
||||||
(Player.moneySourceA.hacking / Player.playtimeSinceLastAug) * timeOffline * CONSTANTS.OfflineHackingIncome;
|
(Player.moneySourceA.hacking / Player.playtimeSinceLastAug) * timeOffline * CONSTANTS.OfflineHackingIncome;
|
||||||
|
if (!Number.isFinite(offlineHackingIncome)) {
|
||||||
|
offlineHackingIncome = 0;
|
||||||
|
}
|
||||||
Player.gainMoney(offlineHackingIncome, "hacking");
|
Player.gainMoney(offlineHackingIncome, "hacking");
|
||||||
// Process offline progress
|
// Process offline progress
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ const useStyles = makeStyles()((theme: Theme) => ({
|
|||||||
}));
|
}));
|
||||||
export function ScriptProduction(): React.ReactElement {
|
export function ScriptProduction(): React.ReactElement {
|
||||||
const { classes } = useStyles();
|
const { classes } = useStyles();
|
||||||
const prodRateSinceLastAug = Player.scriptProdSinceLastAug / (Player.playtimeSinceLastAug / 1000);
|
let prodRateSinceLastAug = Player.scriptProdSinceLastAug / (Player.playtimeSinceLastAug / 1000);
|
||||||
|
if (!Number.isFinite(prodRateSinceLastAug)) {
|
||||||
|
prodRateSinceLastAug = 0;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Table size="small" classes={{ root: classes.size }}>
|
<Table size="small" classes={{ root: classes.size }}>
|
||||||
|
|||||||
Reference in New Issue
Block a user