MISC: Update description of source files (#1461)

This commit is contained in:
catloversg 2024-07-06 04:17:06 +07:00 committed by GitHub
parent 6fb6d38bd9
commit 02f5c5b727
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 127 additions and 252 deletions

@ -1,59 +0,0 @@
/**
* React Component for displaying a list of the player's Source-Files
* on the Augmentations UI
*/
import React, { useState } from "react";
import { Player } from "@player";
import { Exploit, ExploitName } from "../../Exploits/Exploit";
import ListItemButton from "@mui/material/ListItemButton";
import ListItemText from "@mui/material/ListItemText";
import Box from "@mui/material/Box";
import Typography from "@mui/material/Typography";
import Paper from "@mui/material/Paper";
import Collapse from "@mui/material/Collapse";
import ExpandMore from "@mui/icons-material/ExpandMore";
import ExpandLess from "@mui/icons-material/ExpandLess";
export function SourceFileMinus1(): React.ReactElement {
const [open, setOpen] = useState(false);
const exploits = Player.exploits;
if (exploits.length === 0) {
return <></>;
}
return (
<Box component={Paper}>
<ListItemButton onClick={() => setOpen((old) => !old)}>
<ListItemText
primary={
<Typography style={{ whiteSpace: "pre-wrap" }}>
Source-File -1: Exploits in the BitNodes
<br />
Level {exploits.length} / {Object.keys(Exploit).length}
</Typography>
}
/>
{open ? <ExpandLess color="primary" /> : <ExpandMore color="primary" />}
</ListItemButton>
<Collapse in={open} unmountOnExit>
<Box m={4}>
<Typography>
This Source-File can only be acquired with obscure knowledge of the game, javascript, and the web ecosystem.
</Typography>
<Typography>It increases all of the player's multipliers by 0.1%</Typography>
<br />
<Typography>You have found the following exploits:</Typography>
<Box mx={2}>
{exploits.map((c) => (
<Typography key={c}>* {ExploitName(c)}</Typography>
))}
</Box>
</Box>
</Collapse>
</Box>
);
}

@ -135,7 +135,7 @@ export function SourceFilesElement(): React.ReactElement {
<Typography variant="h6" sx={{ display: "flex", alignItems: "center", flexWrap: "wrap" }}> <Typography variant="h6" sx={{ display: "flex", alignItems: "center", flexWrap: "wrap" }}>
{safeGetSf(selectedSf.n)?.name} {safeGetSf(selectedSf.n)?.name}
</Typography> </Typography>
<Typography sx={{ maxHeight: 350, overflowY: "scroll" }}> <Typography component="div" sx={{ maxHeight: 350, overflowY: "scroll" }}>
{(() => { {(() => {
const sfObj = safeGetSf(selectedSf.n); const sfObj = safeGetSf(selectedSf.n);
if (!sfObj) return; if (!sfObj) return;

@ -156,14 +156,23 @@ export function initBitNodes() {
<br /> <br />
<br /> <br />
Destroying this BitNode will give you Source-File 5, or if you already have this Source-File, it will upgrade Destroying this BitNode will give you Source-File 5, or if you already have this Source-File, it will upgrade
its level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence its level up to a maximum of 3. This Source-File grants you a new stat called Intelligence. Intelligence is
is unique because it is permanent and persistent (it never gets reset back to 1). However, gaining Intelligence unique because it is permanent and persistent (it never gets reset back to 1). However, gaining Intelligence
experience is much slower than other stats. Higher Intelligence levels will boost your production for many experience is much slower than other stats. Higher Intelligence levels will boost your production for many
actions in the game. actions in the game.
<br /> <br />
<br /> <br />
In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with In addition, this Source-File will unlock:
Formulas.exe, and will also raise all of your hacking-related multipliers by: <ul>
<li>
<code>getBitNodeMultipliers()</code> Netscript function
</li>
<li>Permanent access to Formulas.exe</li>
<li>
Access to BitNode multiplier information on the <b>Stats</b> page
</li>
</ul>
It will also raise all of your hacking-related multipliers by:
<ul> <ul>
<li>Level 1: 8%</li> <li>Level 1: 8%</li>
<li>Level 2: 12%</li> <li>Level 2: 12%</li>

@ -102,10 +102,15 @@ Destroying this BitNode will give you Source-File 4, or if you already have this
They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that couldn't be modeled by 1's and 0's. They were wrong. They said it couldn't be done. They said the human brain, along with its consciousness and intelligence, couldn't be replicated. They said the complexity of the brain results from unpredictable, nonlinear interactions that couldn't be modeled by 1's and 0's. They were wrong.
Destroying this BitNode will give you Source-File 5, or if you already have this Source-File, it will upgrade its level up to a maximum of 3. This Source-File grants you a special new stat called Intelligence. Intelligence is unique because it is permanent and persistent (it never gets reset back to 1). However, gaining Intelligence Destroying this BitNode will give you Source-File 5, or if you already have this Source-File, it will upgrade its level up to a maximum of 3. This Source-File grants you a new stat called Intelligence. Intelligence is unique because it is permanent and persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions in the game.
experience is much slower than other stats. Higher Intelligence levels will boost your production for many actions in the game.
In addition, this Source-File will unlock the getBitNodeMultipliers() Netscript function and let you start with Formulas.exe, and will also raise all of your hacking-related multipliers by: In addition, this Source-File will unlock:
- `getBitNodeMultipliers()` Netscript function
- Permanent access to `Formulas.exe`
- Access to BitNode multiplier information on the `Stats` page
It will also raise all of your hacking-related multipliers by:
- Level 1: 8% - Level 1: 8%
- Level 2: 12% - Level 2: 12%

@ -1,6 +1,7 @@
import React from "react"; import React from "react";
import { SourceFile } from "./SourceFile"; import { SourceFile } from "./SourceFile";
import { initBitNodes } from "../BitNode/BitNode"; import { initBitNodes } from "../BitNode/BitNode";
import { FactionName } from "@enums";
export const SourceFiles: Record<string, SourceFile> = {}; export const SourceFiles: Record<string, SourceFile> = {};
/** Engine initializer for SourceFiles, BitNodes, and BitNodeMultipliers. Run once at engine load. */ /** Engine initializer for SourceFiles, BitNodes, and BitNodeMultipliers. Run once at engine load. */
@ -10,15 +11,13 @@ export function initSourceFiles() {
1, 1,
( (
<> <>
This Source-File lets the player start with 32GB of RAM on his/her home computer. It also increases all of the This Source-File lets the player start with 32GB of RAM on their home computer when entering a new BitNode and
player's multipliers by: increases all of the player's multipliers by:
<br /> <ul>
<br /> <li>Level 1: 16%</li>
Level 1: 16% <li>Level 2: 24%</li>
<br /> <li>Level 3: 28%</li>
Level 2: 24% </ul>
<br />
Level 3: 28%
</> </>
), ),
); );
@ -27,14 +26,12 @@ export function initSourceFiles() {
( (
<> <>
This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It This Source-File allows you to form gangs in other BitNodes once your karma decreases to a certain value. It
also increases the player's crime success rate, crime money, and charisma multipliers by: also increases your crime success rate, crime money, and charisma multipliers by:
<br /> <ul>
<br /> <li>Level 1: 24%</li>
Level 1: 24% <li>Level 2: 36%</li>
<br /> <li>Level 3: 42%</li>
Level 2: 36% </ul>
<br />
Level 3: 42%
</> </>
), ),
); );
@ -45,12 +42,11 @@ export function initSourceFiles() {
This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this This Source-File lets you create corporations on other BitNodes (although some BitNodes will disable this
mechanic) and level 3 permanently unlocks the full API. This Source-File also increases your charisma and mechanic) and level 3 permanently unlocks the full API. This Source-File also increases your charisma and
company salary multipliers by: company salary multipliers by:
<br /> <ul>
Level 1: 8% <li>Level 1: 8%</li>
<br /> <li>Level 2: 12%</li>
Level 2: 12% <li>Level 3: 14%</li>
<br /> </ul>
Level 3: 14%
</> </>
), ),
); );
@ -58,14 +54,13 @@ export function initSourceFiles() {
4, 4,
( (
<> <>
This Source-File lets you access and use the Singularity Functions in every BitNode. Every level of this This Source-File lets you access and use the Singularity functions in other BitNodes. Each level of this
Source-File reduces the RAM cost of Singularity functions: Source-File reduces the RAM cost of singularity functions:
<br /> <ul>
Level 1: 16x <li>Level 1: 16x</li>
<br /> <li>Level 2: 4x</li>
Level 2: 4x <li>Level 3: 1x</li>
<br /> </ul>
Level 3: 1x
</> </>
), ),
); );
@ -73,34 +68,27 @@ export function initSourceFiles() {
5, 5,
( (
<> <>
This Source-File grants a special new stat called Intelligence. Intelligence is unique because it is permanent This Source-File grants you a new stat called Intelligence. Intelligence is unique because it is permanent and
and persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than persistent (it never gets reset back to 1). However, gaining Intelligence experience is much slower than other
other stats. Higher Intelligence levels will boost your production for many actions in the game. In addition, stats. Higher Intelligence levels will boost your production for many actions in the game.
this Source-File will unlock:
<br /> <br />
<br />
In addition, this Source-File will unlock:
<ul> <ul>
<li> <li>
<span> <code>getBitNodeMultipliers()</code> Netscript function
The <code>getBitNodeMultipliers()</code> Netscript function
</span>
</li> </li>
<li>Permanent access to Formulas.exe</li>
<li> <li>
<span>Permanent access to Formulas.exe</span> Access to BitNode multiplier information on the <b>Stats</b> page
</li>
<li>
<span>
Access to BitNode multiplier information on the <b>Stats</b> page
</span>
</li> </li>
</ul> </ul>
It will also raise all of your hacking-related multipliers by: It will also raise all of your hacking-related multipliers by:
<br /> <ul>
<br /> <li>Level 1: 8%</li>
Level 1: 8% <li>Level 2: 12%</li>
<br /> <li>Level 3: 14%</li>
Level 2: 12% </ul>
<br />
Level 3: 14%
</> </>
), ),
); );
@ -108,15 +96,13 @@ export function initSourceFiles() {
6, 6,
( (
<> <>
This Source-File allows you to access the NSA's Bladeburner Division in other BitNodes. In addition, this This Source-File allows you to access the NSA's {FactionName.Bladeburners} division in other BitNodes. In
Source-File will raise both the level and experience gain rate of all your combat stats by: addition, this Source-File will raise both the level and experience gain rate of all your combat stats by:
<br /> <ul>
<br /> <li>Level 1: 8%</li>
Level 1: 8% <li>Level 2: 12%</li>
<br /> <li>Level 3: 14%</li>
Level 2: 12% </ul>
<br />
Level 3: 14%
</> </>
), ),
); );
@ -124,15 +110,13 @@ export function initSourceFiles() {
7, 7,
( (
<> <>
This Source-File allows you to access the Bladeburner Netscript API in other BitNodes. In addition, this This Source-File allows you to access the {FactionName.Bladeburners} Netscript API in other BitNodes. In
Source-File will increase all of your Bladeburner multipliers by: addition, this Source-File will increase all of your {FactionName.Bladeburners} multipliers by:
<br /> <ul>
<br /> <li>Level 1: 8%</li>
Level 1: 8% <li>Level 2: 12%</li>
<br /> <li>Level 3: 14%</li>
Level 2: 12% </ul>
<br />
Level 3: 14%
</> </>
), ),
); );
@ -141,22 +125,17 @@ export function initSourceFiles() {
( (
<> <>
This Source-File grants the following benefits: This Source-File grants the following benefits:
<br /> <ul>
<br /> <li>Level 1: Permanent access to WSE and TIX API</li>
Level 1: Permanent access to WSE and TIX API <li>Level 2: Ability to short stocks in other BitNodes</li>
<br /> <li>Level 3: Ability to use limit/stop orders in other BitNodes</li>
Level 2: Ability to short stocks in other BitNodes </ul>
<br />
Level 3: Ability to use limit/stop orders in other BitNodes
<br />
<br />
This Source-File also increases your hacking growth multipliers by: This Source-File also increases your hacking growth multipliers by:
<br /> <ul>
Level 1: 12% <li>Level 1: 12%</li>
<br /> <li>Level 2: 18%</li>
Level 2: 18% <li>Level 3: 21%</li>
<br /> </ul>
Level 3: 21%
</> </>
), ),
); );
@ -165,26 +144,21 @@ export function initSourceFiles() {
( (
<> <>
This Source-File grants the following benefits: This Source-File grants the following benefits:
<br /> <ul>
<br /> <li>Level 1: Permanently unlocks the Hacknet Server in other BitNodes</li>
Level 1: Permanently unlocks the Hacknet Server in other BitNodes <li>Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode</li>
<br /> <li>Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode</li>
Level 2: You start with 128GB of RAM on your home computer when entering a new BitNode </ul>
<br />
Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode
<br />
<br />
(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing (Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT when installing
Augmentations) augmentations)
<br /> <br />
<br /> <br />
This Source-File also increases hacknet production and reduces hacknet costs by: This Source-File also increases hacknet production and reduces hacknet costs by:
<br /> <ul>
Level 1: 12% <li>Level 1: 12%</li>
<br /> <li>Level 2: 18%</li>
Level 2: 18% <li>Level 3: 21%</li>
<br /> </ul>
Level 3: 21%
</> </>
), ),
); );
@ -192,8 +166,8 @@ export function initSourceFiles() {
10, 10,
( (
<> <>
This Source-File unlocks Sleeve technology, and the Grafting API in other BitNodes. Each level of this This Source-File unlocks Sleeve and Grafting API in other BitNodes. Each level of this Source-File also grants
Source-File also grants you a Duplicate Sleeve you a Sleeve.
</> </>
), ),
); );
@ -204,23 +178,17 @@ export function initSourceFiles() {
This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at This Source-File makes it so that company favor increases BOTH the player's salary and reputation gain rate at
that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the that company by 1% per favor (rather than just the reputation gain). This Source-File also increases the
player's company salary and reputation gain multipliers by: player's company salary and reputation gain multipliers by:
<br /> <ul>
<br /> <li>Level 1: 32%</li>
Level 1: 32% <li>Level 2: 48%</li>
<br /> <li>Level 3: 56%</li>
Level 2: 48% </ul>
<br /> It also reduces the price increase for every augmentation bought by:
Level 3: 56% <ul>
<br /> <li>Level 1: 4%</li>
<br /> <li>Level 2: 6%</li>
It also reduces the price increase for every aug bought by: <li>Level 3: 7%</li>
<br /> </ul>
<br />
Level 1: 4%
<br />
Level 2: 6%
<br />
Level 3: 7%
</> </>
), ),
); );
@ -230,29 +198,31 @@ export function initSourceFiles() {
); );
SourceFiles.SourceFile13 = new SourceFile( SourceFiles.SourceFile13 = new SourceFile(
13, 13,
<>Each level of this Source-File increases the size of Stanek's Gift.</>, (
<>
This Source-File lets the {FactionName.ChurchOfTheMachineGod} appear in other BitNodes.
<br />
<br />
Each level of this Source-File increases the size of Stanek's Gift.
</>
),
); );
SourceFiles.SourceFile14 = new SourceFile( SourceFiles.SourceFile14 = new SourceFile(
14, 14,
( (
<> <>
This Source-File grants the following benefits: This Source-File grants the following benefits:
<br /> <ul>
<br /> <li>Level 1: 100% increased stat multipliers from Node Power</li>
Level 1: 100% increased stat multipliers from node Power <li>Level 2: Permanently unlocks the go.cheat API</li>
<br /> <li>Level 3: 25% additive increased success rate for the go.cheat API</li>
Level 2: Permanently unlocks the go.cheat API in other BitNodes </ul>
<br />
Level 3: 25% additive 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 to: This Source-File also increases the maximum favor you can gain for each faction from IPvGO to:
<br /> <ul>
Level 1: 80 <li>Level 1: 80</li>
<br /> <li>Level 2: 100</li>
Level 2: 100 <li>Level 3: 120</li>
<br /> </ul>
Level 3: 120
</> </>
), ),
); );

@ -1,50 +0,0 @@
/**
* React Component for displaying a single Source-File as an accordion.
*
* The header of the accordion contains the Source-Files's name and level,
* and the accordion's panel contains the Source-File's description.
*/
import React, { useState } from "react";
import { SourceFile } from "../../SourceFile/SourceFile";
import ListItemButton from "@mui/material/ListItemButton";
import ListItemText from "@mui/material/ListItemText";
import Box from "@mui/material/Box";
import Typography from "@mui/material/Typography";
import Paper from "@mui/material/Paper";
import Collapse from "@mui/material/Collapse";
import ExpandMore from "@mui/icons-material/ExpandMore";
import ExpandLess from "@mui/icons-material/ExpandLess";
interface IProps {
level: number;
sf: SourceFile;
}
export function SourceFileAccordion(props: IProps): React.ReactElement {
const [open, setOpen] = useState(false);
const maxLevel = props.sf.n === 12 ? "∞" : "3";
return (
<Box component={Paper}>
<ListItemButton onClick={() => setOpen((old) => !old)}>
<ListItemText
primary={
<Typography style={{ whiteSpace: "pre-wrap" }}>
{props.sf.name}
<br />
{`Level ${props.level} / ${maxLevel}`}
</Typography>
}
/>
{open ? <ExpandLess color="primary" /> : <ExpandMore color="primary" />}
</ListItemButton>
<Collapse in={open} unmountOnExit>
<Box m={4}>
<Typography>{props.sf.info}</Typography>
</Box>
</Collapse>
</Box>
);
}