Fix some augs not getting added.

This commit is contained in:
Olivier Gagnon 2022-03-21 00:30:11 -04:00
parent 9104c54d96
commit 0171fc236c
3 changed files with 134 additions and 107 deletions

@ -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;