BITNODE: IPvGO territory control strategy game (#934)

This commit is contained in:
Michael Ficocelli
2023-12-26 11:45:27 -05:00
committed by GitHub
parent c6141f2adf
commit 7ef12a0323
68 changed files with 7833 additions and 17 deletions
+78
View File
@@ -445,6 +445,41 @@ export function initBitNodes() {
</>
),
);
BitNodes.BitNode14 = new BitNode(
14,
1,
"IPvGO Subnet Takeover",
"Territory exists only in the 'net",
(
<>
In late 2070, the .org bubble burst, and most of the newly-implemented IPvGO 'net collapsed overnight. Since
then, various factions have been fighting over small subnets to control their computational power. These subnets
are very valuable in the right hands, if you can wrest them from their current owners. You will be opposed by
the other factions, but you can overcome them with careful choices. Prevent their attempts to destroy your
networks by controlling the open space in the 'net!
<br />
<br />
Destroying this BitNode will give you Source-File 14, or if you already have this Source-File it will upgrade
its level up to a maximum of 3. This Source-File grants the following benefits:
<br />
<br />
Level 1: 25% increased stat multipliers from Node Power
<br />
Level 2: Permanently unlocks the go.cheat API
<br />
Level 3: 25% increased success rate for the go.cheat API
<br />
<br />
This Source-File also increases the maximum favor you can gain for each faction from IPvGO by:
<br />
Level 1: +10
<br />
Level 2: +20
<br />
Level 3: +40
</>
),
);
}
export const defaultMultipliers = new BitNodeMultipliers();
@@ -909,6 +944,49 @@ export function getBitNodeMultipliers(n: number, lvl: number): BitNodeMultiplier
WorldDaemonDifficulty: 3,
});
}
case 14: {
return new BitNodeMultipliers({
GoPower: 4,
HackingLevelMultiplier: 0.4,
HackingSpeedMultiplier: 0.3,
ServerMaxMoney: 0.7,
ServerStartingMoney: 0.5,
ServerStartingSecurity: 1.5,
CrimeMoney: 0.75,
CrimeSuccessRate: 0.4,
HacknetNodeMoney: 0.25,
ScriptHackMoney: 0.3,
StrengthLevelMultiplier: 0.5,
DexterityLevelMultiplier: 0.5,
AgilityLevelMultiplier: 0.5,
AugmentationMoneyCost: 1.5,
InfiltrationMoney: 0.75,
FactionWorkRepGain: 0.2,
CompanyWorkRepGain: 0.2,
CorporationValuation: 0.4,
CorporationSoftcap: 0.9,
CorporationDivisions: 0.8,
BladeburnerRank: 0.6,
BladeburnerSkillCost: 2,
GangSoftcap: 0.7,
GangUniqueAugs: 0.4,
StaneksGiftPowerMultiplier: 0.5,
StaneksGiftExtraSize: -1,
WorldDaemonDifficulty: 5,
});
}
default: {
throw new Error("Invalid BitNodeN");
}
+12
View File
@@ -36,6 +36,9 @@ export class BitNodeMultipliers {
/** Influences how much money the player earns when completing working their job. */
CompanyWorkMoney = 1;
/** Influences how much rep the player gains when performing work for a company. */
CompanyWorkRepGain = 1;
/** Influences the valuation of corporations created by the player. */
CorporationValuation = 1;
@@ -45,6 +48,9 @@ export class BitNodeMultipliers {
/** Influences the base money gained when the player commits a crime. */
CrimeMoney = 1;
/** influences the success chance of committing crimes */
CrimeSuccessRate = 1;
/** Influences how many Augmentations you need in order to get invited to the Daedalus faction */
DaedalusAugsRequirement = 30;
@@ -75,12 +81,18 @@ export class BitNodeMultipliers {
/** Percentage of unique augs that the gang has. */
GangUniqueAugs = 1;
/** Percentage multiplier on the effect of the IPvGO rewards **/
GoPower = 1;
/** Influences the experienced gained when hacking a server. */
HackExpGain = 1;
/** Influences how quickly the player's hacking level (not experience) scales */
HackingLevelMultiplier = 1;
/** Influences how quickly the player's hack(), grow() and weaken() calls run */
HackingSpeedMultiplier = 1;
/**
* Influences how much money is produced by Hacknet Nodes.
* Influences the hash rate of Hacknet Servers (unlocked in BitNode-9)
@@ -58,6 +58,7 @@ export const BitNodeMultipliersDisplay = ({ n, level }: IProps): React.ReactElem
<CorporationMults n={n} mults={mults} />
<BladeburnerMults n={n} mults={mults} />
<StanekMults n={n} mults={mults} />
<GoMults n={n} mults={mults} />
</Box>
);
};
@@ -351,3 +352,11 @@ function CorporationMults({ mults }: IMultsProps): React.ReactElement {
return <BNMultTable sectionName="Corporation" rowData={rows} mults={mults} />;
}
function GoMults({ mults }: IMultsProps): React.ReactElement {
const rows: IBNMultRows = {
GoPower: { name: "IPvGO Node Power bonus" },
};
return <BNMultTable sectionName="IPvGO Subnet Takeover" rowData={rows} mults={mults} />;
}
+1 -1
View File
@@ -241,7 +241,7 @@ export function BitverseRoot(props: IProps): React.ReactElement {
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | / __| \ | | O </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | O | | O / | O | | O | O </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> | | | | |_/ |/ | \_ \_| | | | | </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | | O | | O__/ | / \__ | | O | | | O </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O | | | <BitNodePortal n={14} level={n(4)} flume={props.flume} destroyedBitNode={destroyed} /> | | O__/ | / \__ | | O | | | O </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> | | | | | | | / /| O / \| | | | | | | </Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}>O | | | \| | O / _/ | / O | |/ | | | O</Typography>
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}>| | | |O / | | O / | O O | | \ O| | | |</Typography>