augmentation isSpecial adjustments

* adjust faction helper to not longer require blacklisting, instead rely on isSpecial
* added neruflux and TRP as special augs
* made SOA augs special
This commit is contained in:
phyzical 2022-04-26 20:44:09 +08:00
parent ee4201c957
commit 510a2c2ff7
4 changed files with 15 additions and 14 deletions

@ -109,6 +109,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
rewards, reduced damage taken, etc. rewards, reduced damage taken, etc.
</> </>
), ),
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -121,6 +122,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
stats: ( stats: (
<>This augmentation makes the Slash minigame easier by showing you via an indictor when the slash in coming.</> <>This augmentation makes the Slash minigame easier by showing you via an indictor when the slash in coming.</>
), ),
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -129,6 +131,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
moneyCost: 1e6, moneyCost: 1e6,
info: "A connective brain implant to SASHA that focuses in pattern recognition and predictive templating.", info: "A connective brain implant to SASHA that focuses in pattern recognition and predictive templating.",
stats: <>This augmentation makes the Bracket minigame easier by removing all '[' ']'.</>, stats: <>This augmentation makes the Bracket minigame easier by removing all '[' ']'.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -137,6 +140,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
moneyCost: 1e6, moneyCost: 1e6,
info: "Opto-occipito implant to process visual signal before brain interpretation.", info: "Opto-occipito implant to process visual signal before brain interpretation.",
stats: <>This augmentation makes the Backwards minigame easier by flipping the words.</>, stats: <>This augmentation makes the Backwards minigame easier by flipping the words.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -147,6 +151,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
"Pheromone extruder injected in the thoracodorsal nerve. Emits pleasing scent guaranteed to " + "Pheromone extruder injected in the thoracodorsal nerve. Emits pleasing scent guaranteed to " +
"make conversational partners more agreeable.", "make conversational partners more agreeable.",
stats: <>This augmentation makes the Bribe minigame easier by indicating the incorrect paths.</>, stats: <>This augmentation makes the Bribe minigame easier by indicating the incorrect paths.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -155,6 +160,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
moneyCost: 1e6, moneyCost: 1e6,
info: "Penta-dynamo-neurovascular-valve inserted in the carpal ligament, enhances dexterity.", info: "Penta-dynamo-neurovascular-valve inserted in the carpal ligament, enhances dexterity.",
stats: <>This augmentation makes the Cheat Code minigame easier by allowing the opposite character.</>, stats: <>This augmentation makes the Cheat Code minigame easier by allowing the opposite character.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -163,6 +169,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
moneyCost: 1e6, moneyCost: 1e6,
info: "Transtinatium VVD reticulator used in optico-sterbing recognition.", info: "Transtinatium VVD reticulator used in optico-sterbing recognition.",
stats: <>This augmentation makes the Symbol matching minigame easier by indicating the correct choice.</>, stats: <>This augmentation makes the Symbol matching minigame easier by indicating the correct choice.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -176,6 +183,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
position. position.
</> </>
), ),
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
new Augmentation({ new Augmentation({
@ -184,6 +192,7 @@ export const initSoAAugmentations = (): Augmentation[] => [
moneyCost: 1e6, moneyCost: 1e6,
info: "Neodynic retention fjengeln spoofer using -φ karmions, net positive effect on implantees delta wave.", info: "Neodynic retention fjengeln spoofer using -φ karmions, net positive effect on implantees delta wave.",
stats: <>This augmentation makes the Wire Cutting minigame easier by indicating the incorrect wires.</>, stats: <>This augmentation makes the Wire Cutting minigame easier by indicating the incorrect wires.</>,
isSpecial: true,
factions: [FactionNames.ShadowsOfAnarchy], factions: [FactionNames.ShadowsOfAnarchy],
}), }),
]; ];
@ -1254,6 +1263,7 @@ export const initGeneralAugmentations = (): Augmentation[] => [
moneyCost: 0, moneyCost: 0,
info: "It's time to leave the cave.", info: "It's time to leave the cave.",
stats: null, stats: null,
isSpecial: true,
factions: [FactionNames.Daedalus], factions: [FactionNames.Daedalus],
}), }),
new Augmentation({ new Augmentation({
@ -2003,6 +2013,7 @@ export function initNeuroFluxGovernor(): Augmentation {
multiplicatively. multiplicatively.
</> </>
), ),
isSpecial: true,
hacking_chance_mult: 1.01 + donationBonus, hacking_chance_mult: 1.01 + donationBonus,
hacking_speed_mult: 1.01 + donationBonus, hacking_speed_mult: 1.01 + donationBonus,
hacking_money_mult: 1.01 + donationBonus, hacking_money_mult: 1.01 + donationBonus,

@ -165,13 +165,11 @@ export const getFactionAugmentationsFiltered = (player: IPlayer, faction: Factio
let augs = Object.values(Augmentations); let augs = Object.values(Augmentations);
// Remove special augs // Remove special augs
augs = augs.filter((a) => !a.isSpecial); augs = augs.filter((a) => !a.isSpecial || a.name != AugmentationNames.CongruityImplant );
const blacklist: string[] = [AugmentationNames.NeuroFluxGovernor, AugmentationNames.CongruityImplant]; if (player.bitNodeN === 2) {
if (player.bitNodeN !== 2) {
// TRP is not available outside of BN2 for Gangs // TRP is not available outside of BN2 for Gangs
blacklist.push(AugmentationNames.TheRedPill); augs.push(Augmentations[AugmentationNames.TheRedPill]);
} }
const rng = SFC32RNG(`BN${player.bitNodeN}.${player.sourceFileLvl(player.bitNodeN)}`); const rng = SFC32RNG(`BN${player.bitNodeN}.${player.sourceFileLvl(player.bitNodeN)}`);
@ -190,9 +188,6 @@ export const getFactionAugmentationsFiltered = (player: IPlayer, faction: Factio
}; };
augs = augs.filter(uniqueFilter); augs = augs.filter(uniqueFilter);
// Remove blacklisted augs
augs = augs.filter((a) => !blacklist.includes(a.name));
return augs.map((a) => a.name); return augs.map((a) => a.name);
} }

@ -1,5 +1,4 @@
import { Augmentations } from "../../Augmentation/Augmentations"; import { Augmentations } from "../../Augmentation/Augmentations";
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
import { GraftableAugmentation } from "./GraftableAugmentation"; import { GraftableAugmentation } from "./GraftableAugmentation";
import { IPlayer } from "../IPlayer"; import { IPlayer } from "../IPlayer";
@ -7,8 +6,7 @@ export const getGraftingAvailableAugs = (player: IPlayer): string[] => {
const augs: string[] = []; const augs: string[] = [];
for (const [augName, aug] of Object.entries(Augmentations)) { for (const [augName, aug] of Object.entries(Augmentations)) {
if (augName === AugmentationNames.NeuroFluxGovernor || augName === AugmentationNames.TheRedPill || aug.isSpecial) if (aug.isSpecial) continue;
continue;
augs.push(augName); augs.push(augName);
} }

@ -22,9 +22,6 @@ export function findSleevePurchasableAugs(sleeve: Sleeve, p: IPlayer): Augmentat
// Helper function that helps filter out augs that are already owned // Helper function that helps filter out augs that are already owned
// and augs that aren't allowed for sleeves // and augs that aren't allowed for sleeves
function isAvailableForSleeve(aug: Augmentation): boolean { function isAvailableForSleeve(aug: Augmentation): boolean {
if (aug.name === AugmentationNames.NeuroFluxGovernor) {
return false;
}
if (ownedAugNames.includes(aug.name)) { if (ownedAugNames.includes(aug.name)) {
return false; return false;
} }