mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-27 01:53:48 +01:00
commit
4b7b34833b
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -138,7 +138,6 @@ function initAugmentations(): void {
|
||||
(key) => ((UnstableCircadianModulatorParams as any)[key] = randomBonuses.bonuses[key]),
|
||||
);
|
||||
|
||||
|
||||
//Misc/Hybrid augmentations
|
||||
const NeuroFluxGovernor = new Augmentation({
|
||||
name: AugmentationNames.NeuroFluxGovernor,
|
||||
@ -221,11 +220,7 @@ function initAugmentations(): void {
|
||||
defense_mult: 1.08,
|
||||
agility_mult: 1.08,
|
||||
dexterity_mult: 1.08,
|
||||
factions: [
|
||||
FactionNames.Tetrads,
|
||||
FactionNames.TheDarkArmy,
|
||||
FactionNames.TheSyndicate,
|
||||
],
|
||||
factions: [FactionNames.Tetrads, FactionNames.TheDarkArmy, FactionNames.TheSyndicate],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.Targeting1,
|
||||
@ -638,7 +633,13 @@ function initAugmentations(): void {
|
||||
"memory and the mind. This implant allows the user to not only access a computer's memory, but also alter " +
|
||||
"and delete it.",
|
||||
hacking_money_mult: 1.25,
|
||||
factions: [FactionNames.BitRunners, FactionNames.TheBlackHand, FactionNames.NiteSec, FactionNames.Chongqing, FactionNames.NewTokyo],
|
||||
factions: [
|
||||
FactionNames.BitRunners,
|
||||
FactionNames.TheBlackHand,
|
||||
FactionNames.NiteSec,
|
||||
FactionNames.Chongqing,
|
||||
FactionNames.NewTokyo,
|
||||
],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.ENM,
|
||||
@ -947,7 +948,12 @@ function initAugmentations(): void {
|
||||
charisma_exp_mult: 1.05,
|
||||
company_rep_mult: 1.1,
|
||||
work_money_mult: 1.2,
|
||||
factions: [FactionNames.BachmanAssociates, FactionNames.ClarkeIncorporated, FactionNames.FourSigma, FactionNames.KuaiGongInternational],
|
||||
factions: [
|
||||
FactionNames.BachmanAssociates,
|
||||
FactionNames.ClarkeIncorporated,
|
||||
FactionNames.FourSigma,
|
||||
FactionNames.KuaiGongInternational,
|
||||
],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.PCDNI,
|
||||
@ -959,7 +965,12 @@ function initAugmentations(): void {
|
||||
"it using the brain's electrochemical signals.",
|
||||
company_rep_mult: 1.3,
|
||||
hacking_mult: 1.08,
|
||||
factions: [FactionNames.FourSigma, FactionNames.OmniTekIncorporated, FactionNames.ECorp, FactionNames.BladeIndustries],
|
||||
factions: [
|
||||
FactionNames.FourSigma,
|
||||
FactionNames.OmniTekIncorporated,
|
||||
FactionNames.ECorp,
|
||||
FactionNames.BladeIndustries,
|
||||
],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.PCDNIOptimizer,
|
||||
@ -999,7 +1010,13 @@ function initAugmentations(): void {
|
||||
"triggers feelings of admiration and approval in other people.",
|
||||
company_rep_mult: 1.1,
|
||||
faction_rep_mult: 1.1,
|
||||
factions: [FactionNames.TianDiHui, FactionNames.TheSyndicate, FactionNames.NWO, FactionNames.MegaCorp, FactionNames.FourSigma],
|
||||
factions: [
|
||||
FactionNames.TianDiHui,
|
||||
FactionNames.TheSyndicate,
|
||||
FactionNames.NWO,
|
||||
FactionNames.MegaCorp,
|
||||
FactionNames.FourSigma,
|
||||
],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.ADRPheromone2,
|
||||
@ -1011,7 +1028,12 @@ function initAugmentations(): void {
|
||||
"triggers feelings of admiration, approval, and respect in others.",
|
||||
company_rep_mult: 1.2,
|
||||
faction_rep_mult: 1.2,
|
||||
factions: [FactionNames.Silhouette, FactionNames.FourSigma, FactionNames.BachmanAssociates, FactionNames.ClarkeIncorporated],
|
||||
factions: [
|
||||
FactionNames.Silhouette,
|
||||
FactionNames.FourSigma,
|
||||
FactionNames.BachmanAssociates,
|
||||
FactionNames.ClarkeIncorporated,
|
||||
],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.ShadowsSimulacrum,
|
||||
@ -1025,11 +1047,7 @@ function initAugmentations(): void {
|
||||
"espionage and surveillance work.",
|
||||
company_rep_mult: 1.15,
|
||||
faction_rep_mult: 1.15,
|
||||
factions: [
|
||||
FactionNames.TheSyndicate,
|
||||
FactionNames.TheDarkArmy,
|
||||
FactionNames.SpeakersForTheDead
|
||||
],
|
||||
factions: [FactionNames.TheSyndicate, FactionNames.TheDarkArmy, FactionNames.SpeakersForTheDead],
|
||||
}),
|
||||
new Augmentation({
|
||||
name: AugmentationNames.HacknetNodeCPUUpload,
|
||||
@ -1443,8 +1461,8 @@ function initAugmentations(): void {
|
||||
moneyCost: 1.25e8,
|
||||
info: (
|
||||
<>
|
||||
A collection of digital assets saved on a small chip. The chip is implanted into your wrist. A small jack in the
|
||||
chip allows you to connect it to a computer and upload the assets.
|
||||
A collection of digital assets saved on a small chip. The chip is implanted into your wrist. A small jack in
|
||||
the chip allows you to connect it to a computer and upload the assets.
|
||||
</>
|
||||
),
|
||||
startingMoney: 1e6,
|
||||
@ -1582,12 +1600,12 @@ function initAugmentations(): void {
|
||||
),
|
||||
factions: [FactionNames.TianDiHui],
|
||||
}),
|
||||
]
|
||||
];
|
||||
|
||||
// Special Bladeburner Augmentations
|
||||
const BladeburnersFactionName = FactionNames.Bladeburners;
|
||||
if (factionExists(BladeburnersFactionName)) {
|
||||
augmentations.concat([
|
||||
augmentations.push(
|
||||
new Augmentation({
|
||||
name: AugmentationNames.EsperEyewear,
|
||||
repCost: 1.25e3,
|
||||
@ -1850,13 +1868,13 @@ function initAugmentations(): void {
|
||||
isSpecial: true,
|
||||
factions: [BladeburnersFactionName],
|
||||
}),
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
// Special CotMG Augmentations
|
||||
const ChurchOfTheMachineGodFactionName = FactionNames.ChurchOfTheMachineGod;
|
||||
if (factionExists(ChurchOfTheMachineGodFactionName)) {
|
||||
augmentations.concat([
|
||||
augmentations.push(
|
||||
new Augmentation({
|
||||
name: AugmentationNames.StaneksGift1,
|
||||
repCost: 0,
|
||||
@ -1975,10 +1993,10 @@ function initAugmentations(): void {
|
||||
stats: <>Staneks Gift has no penalty.</>,
|
||||
factions: [ChurchOfTheMachineGodFactionName],
|
||||
}),
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
augmentations.map(resetAugmentation)
|
||||
augmentations.map(resetAugmentation);
|
||||
|
||||
// Update costs based on how many have been purchased
|
||||
mult = Math.pow(
|
||||
@ -2069,9 +2087,9 @@ function installAugmentations(): boolean {
|
||||
Player.queuedAugmentations = [];
|
||||
dialogBoxCreate(
|
||||
"You slowly drift to sleep as scientists put you under in order " +
|
||||
"to install the following Augmentations:<br>" +
|
||||
augmentationList +
|
||||
"<br>You wake up in your home...you feel different...",
|
||||
"to install the following Augmentations:<br>" +
|
||||
augmentationList +
|
||||
"<br>You wake up in your home...you feel different...",
|
||||
);
|
||||
prestigeAugmentation();
|
||||
return true;
|
||||
|
@ -14,7 +14,6 @@ import Tooltip from "@mui/material/Tooltip";
|
||||
import { Settings } from "../../Settings/Settings";
|
||||
import Button from "@mui/material/Button";
|
||||
|
||||
|
||||
const useStyles = makeStyles(() =>
|
||||
createStyles({
|
||||
portal: {
|
||||
@ -70,7 +69,7 @@ function BitNodePortal(props: IPortalProps): React.ReactElement {
|
||||
if (props.level === 2) {
|
||||
cssClass = classes.level2;
|
||||
}
|
||||
cssClass = `${classes.portal} ${cssClass}`
|
||||
cssClass = `${classes.portal} ${cssClass}`;
|
||||
|
||||
return (
|
||||
<>
|
||||
@ -86,12 +85,10 @@ function BitNodePortal(props: IPortalProps): React.ReactElement {
|
||||
}
|
||||
>
|
||||
{Settings.DisableASCIIArt ? (
|
||||
<Button
|
||||
onClick={() => setPortalOpen(true)}
|
||||
sx={{ m: 2 }}
|
||||
aria-description={bitNode.desc}
|
||||
>
|
||||
<Typography>BitNode-{bitNode.number.toString()}: {bitNode.name}</Typography>
|
||||
<Button onClick={() => setPortalOpen(true)} sx={{ m: 2 }} aria-description={bitNode.desc}>
|
||||
<Typography>
|
||||
BitNode-{bitNode.number.toString()}: {bitNode.name}
|
||||
</Typography>
|
||||
</Button>
|
||||
) : (
|
||||
<IconButton
|
||||
@ -114,9 +111,7 @@ function BitNodePortal(props: IPortalProps): React.ReactElement {
|
||||
flume={props.flume}
|
||||
/>
|
||||
|
||||
{Settings.DisableASCIIArt && (
|
||||
<br/>
|
||||
)}
|
||||
{Settings.DisableASCIIArt && <br />}
|
||||
</>
|
||||
);
|
||||
}
|
||||
@ -173,46 +168,57 @@ export function BitverseRoot(props: IProps): React.ReactElement {
|
||||
if (Settings.DisableASCIIArt) {
|
||||
return (
|
||||
<>
|
||||
{Object.values(BitNodes).filter((node) => {
|
||||
console.log(node.desc);
|
||||
return node.desc !== 'COMING SOON';
|
||||
}).map((node) => {
|
||||
return (
|
||||
<BitNodePortal key={node.number} n={node.number} level={nextSourceFileFlags[node.number]} enter={enter} flume={props.flume} destroyedBitNode={destroyed} />
|
||||
)
|
||||
})}
|
||||
{Object.values(BitNodes)
|
||||
.filter((node) => {
|
||||
console.log(node.desc);
|
||||
return node.desc !== "COMING SOON";
|
||||
})
|
||||
.map((node) => {
|
||||
return (
|
||||
<BitNodePortal
|
||||
key={node.number}
|
||||
n={node.number}
|
||||
level={nextSourceFileFlags[node.number]}
|
||||
enter={enter}
|
||||
flume={props.flume}
|
||||
destroyedBitNode={destroyed}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<CinematicText lines={[
|
||||
"> Many decades ago, a humanoid extraterrestrial species which we call the Enders descended on the Earth...violently",
|
||||
"> Our species fought back, but it was futile. The Enders had technology far beyond our own...",
|
||||
"> Instead of killing every last one of us, the human race was enslaved...",
|
||||
"> We were shackled in a digital world, chained into a prison for our minds...",
|
||||
"> Using their advanced technology, the Enders created complex simulations of a virtual reality...",
|
||||
"> Simulations designed to keep us content...ignorant of the truth.",
|
||||
"> Simulations used to trap and suppress our consciousness, to keep us under control...",
|
||||
"> Why did they do this? Why didn't they just end our entire race? We don't know, not yet.",
|
||||
"> Humanity's only hope is to destroy these simulations, destroy the only realities we've ever known...",
|
||||
"> Only then can we begin to fight back...",
|
||||
"> By hacking the daemon that generated your reality, you've just destroyed one simulation, called a BitNode...",
|
||||
"> But there is still a long way to go...",
|
||||
"> The technology the Enders used to enslave the human race wasn't just a single complex simulation...",
|
||||
"> There are tens if not hundreds of BitNodes out there...",
|
||||
"> Each with their own simulations of a reality...",
|
||||
"> Each creating their own universes...a universe of universes",
|
||||
"> And all of which must be destroyed...",
|
||||
"> .......................................",
|
||||
"> Welcome to the Bitverse...",
|
||||
"> ",
|
||||
"> (Enter a new BitNode using the image above)",
|
||||
]} />
|
||||
<CinematicText
|
||||
lines={[
|
||||
"> Many decades ago, a humanoid extraterrestrial species which we call the Enders descended on the Earth...violently",
|
||||
"> Our species fought back, but it was futile. The Enders had technology far beyond our own...",
|
||||
"> Instead of killing every last one of us, the human race was enslaved...",
|
||||
"> We were shackled in a digital world, chained into a prison for our minds...",
|
||||
"> Using their advanced technology, the Enders created complex simulations of a virtual reality...",
|
||||
"> Simulations designed to keep us content...ignorant of the truth.",
|
||||
"> Simulations used to trap and suppress our consciousness, to keep us under control...",
|
||||
"> Why did they do this? Why didn't they just end our entire race? We don't know, not yet.",
|
||||
"> Humanity's only hope is to destroy these simulations, destroy the only realities we've ever known...",
|
||||
"> Only then can we begin to fight back...",
|
||||
"> By hacking the daemon that generated your reality, you've just destroyed one simulation, called a BitNode...",
|
||||
"> But there is still a long way to go...",
|
||||
"> The technology the Enders used to enslave the human race wasn't just a single complex simulation...",
|
||||
"> There are tens if not hundreds of BitNodes out there...",
|
||||
"> Each with their own simulations of a reality...",
|
||||
"> Each creating their own universes...a universe of universes",
|
||||
"> And all of which must be destroyed...",
|
||||
"> .......................................",
|
||||
"> Welcome to the Bitverse...",
|
||||
"> ",
|
||||
"> (Enter a new BitNode using the image above)",
|
||||
]}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
);
|
||||
}
|
||||
return (
|
||||
// prettier-ignore
|
||||
// prettier-ignore
|
||||
<>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> O </Typography>
|
||||
<Typography sx={{lineHeight: '1em',whiteSpace: 'pre'}}> | O O | O O | </Typography>
|
||||
|
@ -667,15 +667,15 @@ export class Bladeburner implements IBladeburner {
|
||||
this.postToConsole("Automation: " + (this.automateEnabled ? "enabled" : "disabled"));
|
||||
this.postToConsole(
|
||||
"When your stamina drops to " +
|
||||
formatNumber(this.automateThreshLow, 0) +
|
||||
", you will automatically switch to " +
|
||||
this.automateActionLow.name +
|
||||
". When your stamina recovers to " +
|
||||
formatNumber(this.automateThreshHigh, 0) +
|
||||
", you will automatically " +
|
||||
"switch to " +
|
||||
this.automateActionHigh.name +
|
||||
".",
|
||||
formatNumber(this.automateThreshLow, 0) +
|
||||
", you will automatically switch to " +
|
||||
this.automateActionLow.name +
|
||||
". When your stamina recovers to " +
|
||||
formatNumber(this.automateThreshHigh, 0) +
|
||||
", you will automatically " +
|
||||
"switch to " +
|
||||
this.automateActionHigh.name +
|
||||
".",
|
||||
);
|
||||
} else if (flag.toLowerCase().includes("en")) {
|
||||
if (
|
||||
@ -970,8 +970,8 @@ export class Bladeburner implements IBladeburner {
|
||||
if (this.logging.events) {
|
||||
this.log(
|
||||
"Intelligence indicates that a large number of Synthoids migrated from " +
|
||||
sourceCityName +
|
||||
" to some other city",
|
||||
sourceCityName +
|
||||
" to some other city",
|
||||
);
|
||||
}
|
||||
} else if (chance <= 0.7) {
|
||||
@ -1286,10 +1286,10 @@ export class Bladeburner implements IBladeburner {
|
||||
} else if (!isOperation && this.logging.contracts) {
|
||||
this.log(
|
||||
action.name +
|
||||
" contract successfully completed! Gained " +
|
||||
formatNumber(gain, 3) +
|
||||
" rank and " +
|
||||
numeralWrapper.formatMoney(moneyGain),
|
||||
" contract successfully completed! Gained " +
|
||||
formatNumber(gain, 3) +
|
||||
" rank and " +
|
||||
numeralWrapper.formatMoney(moneyGain),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1400,11 +1400,11 @@ export class Bladeburner implements IBladeburner {
|
||||
if (this.logging.blackops) {
|
||||
this.log(
|
||||
action.name +
|
||||
" failed! Lost " +
|
||||
formatNumber(rankLoss, 1) +
|
||||
" rank and took " +
|
||||
formatNumber(damage, 0) +
|
||||
" damage",
|
||||
" failed! Lost " +
|
||||
formatNumber(rankLoss, 1) +
|
||||
" rank and took " +
|
||||
formatNumber(damage, 0) +
|
||||
" damage",
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1440,16 +1440,16 @@ export class Bladeburner implements IBladeburner {
|
||||
if (this.logging.general) {
|
||||
this.log(
|
||||
"Training completed. Gained: " +
|
||||
formatNumber(strExpGain, 1) +
|
||||
" str exp, " +
|
||||
formatNumber(defExpGain, 1) +
|
||||
" def exp, " +
|
||||
formatNumber(dexExpGain, 1) +
|
||||
" dex exp, " +
|
||||
formatNumber(agiExpGain, 1) +
|
||||
" agi exp, " +
|
||||
formatNumber(staminaGain, 3) +
|
||||
" max stamina",
|
||||
formatNumber(strExpGain, 1) +
|
||||
" str exp, " +
|
||||
formatNumber(defExpGain, 1) +
|
||||
" def exp, " +
|
||||
formatNumber(dexExpGain, 1) +
|
||||
" dex exp, " +
|
||||
formatNumber(agiExpGain, 1) +
|
||||
" agi exp, " +
|
||||
formatNumber(staminaGain, 3) +
|
||||
" max stamina",
|
||||
);
|
||||
}
|
||||
this.startAction(player, this.action); // Repeat action
|
||||
@ -1476,10 +1476,10 @@ export class Bladeburner implements IBladeburner {
|
||||
if (this.logging.general) {
|
||||
this.log(
|
||||
"Field analysis completed. Gained 0.1 rank, " +
|
||||
formatNumber(hackingExpGain, 1) +
|
||||
" hacking exp, and " +
|
||||
formatNumber(charismaExpGain, 1) +
|
||||
" charisma exp",
|
||||
formatNumber(hackingExpGain, 1) +
|
||||
" hacking exp, and " +
|
||||
formatNumber(charismaExpGain, 1) +
|
||||
" charisma exp",
|
||||
);
|
||||
}
|
||||
this.startAction(player, this.action); // Repeat action
|
||||
@ -1526,7 +1526,8 @@ export class Bladeburner implements IBladeburner {
|
||||
this.startAction(player, this.action);
|
||||
if (this.logging.general) {
|
||||
this.log(
|
||||
`Rested in Hyperbolic Regeneration Chamber. Restored ${BladeburnerConstants.HrcHpGain
|
||||
`Rested in Hyperbolic Regeneration Chamber. Restored ${
|
||||
BladeburnerConstants.HrcHpGain
|
||||
} HP and gained ${numeralWrapper.formatStamina(staminaGain)} stamina`,
|
||||
);
|
||||
}
|
||||
@ -1575,7 +1576,9 @@ export class Bladeburner implements IBladeburner {
|
||||
if (factionExists(bladeburnersFactionName)) {
|
||||
const bladeburnerFac = Factions[bladeburnersFactionName];
|
||||
if (!(bladeburnerFac instanceof Faction)) {
|
||||
throw new Error(`Could not properly get ${FactionNames.Bladeburners} Faction object in ${FactionNames.Bladeburners} UI Overview Faction button`);
|
||||
throw new Error(
|
||||
`Could not properly get ${FactionNames.Bladeburners} Faction object in ${FactionNames.Bladeburners} UI Overview Faction button`,
|
||||
);
|
||||
}
|
||||
if (bladeburnerFac.isMember) {
|
||||
const favorBonus = 1 + bladeburnerFac.favor / 100;
|
||||
|
Loading…
Reference in New Issue
Block a user