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