diff --git a/src/CodingContractGenerator.ts b/src/CodingContractGenerator.ts index 0b9174e52..90c78076c 100644 --- a/src/CodingContractGenerator.ts +++ b/src/CodingContractGenerator.ts @@ -4,6 +4,7 @@ import { CodingContractTypes, ICodingContractReward, } from "./CodingContracts"; +import { currentNodeMults } from "./BitNode/BitNodeMultipliers"; import { Factions } from "./Faction/Factions"; import { Player } from "@player"; import { GetServer, GetAllServers } from "./Server/AllServers"; @@ -124,7 +125,10 @@ function getRandomProblemType(): string { } function getRandomReward(): ICodingContractReward { - const rewardType = sanitizeRewardType(getRandomInt(0, CodingContractRewardType.Money)); + // Don't offer money reward by default if BN multiplier is 0 (e.g. BN8) + const rewardTypeUpperBound = + currentNodeMults.CodingContractMoney === 0 ? CodingContractRewardType.Money - 1 : CodingContractRewardType.Money; + const rewardType = sanitizeRewardType(getRandomInt(0, rewardTypeUpperBound)); // Add additional information based on the reward type const factionsThatAllowHacking = Player.factions.filter((fac) => Factions[fac].getInfo().offerHackingWork);