From c79fa240e1af7c46322d27852cecca3cbb47f5fa Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Wed, 22 Sep 2021 03:09:37 -0400 Subject: [PATCH] Factions have a property explaining if they should keep on install --- src/Company/Company.ts | 8 ++++++ src/Faction/FactionInfo.tsx | 56 +++++++++++++++++++++++++++++++------ src/Prestige.js | 15 +--------- 3 files changed, 56 insertions(+), 23 deletions(-) diff --git a/src/Company/Company.ts b/src/Company/Company.ts index 7a061289e..4ef18400c 100644 --- a/src/Company/Company.ts +++ b/src/Company/Company.ts @@ -13,6 +13,7 @@ export interface IConstructorParams { expMultiplier: number; salaryMultiplier: number; jobStatReqOffset: number; + isMegacorp?: boolean; } const DefaultConstructorParams: IConstructorParams = { @@ -35,6 +36,11 @@ export class Company { */ info: string; + /** + * Has faction associated. + */ + isMegacorp: boolean; + /** * Object that holds all available positions in this Company. * Position names are held in keys. @@ -79,6 +85,8 @@ export class Company { this.playerReputation = 1; this.favor = 0; this.rolloverRep = 0; + this.isMegacorp = false; + if (p.isMegacorp) this.isMegacorp = true; } hasPosition(pos: CompanyPosition | string): boolean { diff --git a/src/Faction/FactionInfo.tsx b/src/Faction/FactionInfo.tsx index 9683bdfb2..fa9eb1aa6 100644 --- a/src/Faction/FactionInfo.tsx +++ b/src/Faction/FactionInfo.tsx @@ -45,6 +45,11 @@ export class FactionInfo { */ offerSecurityWork: boolean; + /** + * Keep faction on install. + */ + keep: boolean; + constructor( infoText: JSX.Element, enemies: string[], @@ -52,6 +57,7 @@ export class FactionInfo { offerHackingWork: boolean, offerFieldWork: boolean, offerSecurityWork: boolean, + keep: boolean, ) { this.infoText = infoText; this.enemies = enemies; @@ -63,6 +69,7 @@ export class FactionInfo { // These are always all 1 for now. this.augmentationPriceMult = 1; this.augmentationRepRequirementMult = 1; + this.keep = keep; } offersWork(): boolean { @@ -88,6 +95,7 @@ export const FactionInfos: IMap = { true, true, false, + false, ), Daedalus: new FactionInfo( @@ -97,6 +105,7 @@ export const FactionInfos: IMap = { true, true, false, + false, ), "The Covenant": new FactionInfo( @@ -114,6 +123,7 @@ export const FactionInfos: IMap = { true, true, false, + false, ), // Megacorporations, each forms its own faction @@ -129,6 +139,7 @@ export const FactionInfos: IMap = { true, true, true, + true, ), MegaCorp: new FactionInfo( @@ -147,6 +158,7 @@ export const FactionInfos: IMap = { true, true, true, + true, ), "Bachman & Associates": new FactionInfo( @@ -163,9 +175,10 @@ export const FactionInfos: IMap = { true, true, true, + true, ), - "Blade Industries": new FactionInfo(<>Augmentation is Salvation., [], true, true, true, true), + "Blade Industries": new FactionInfo(<>Augmentation is Salvation., [], true, true, true, true, true), NWO: new FactionInfo( ( @@ -180,9 +193,10 @@ export const FactionInfos: IMap = { true, true, true, + true, ), - "Clarke Incorporated": new FactionInfo(<>The Power of the Genome - Unlocked., [], true, true, true, true), + "Clarke Incorporated": new FactionInfo(<>The Power of the Genome - Unlocked., [], true, true, true, true, true), "OmniTek Incorporated": new FactionInfo( <>Simply put, our mission is to design and build robots that make a difference., @@ -191,6 +205,7 @@ export const FactionInfos: IMap = { true, true, true, + true, ), "Four Sigma": new FactionInfo( @@ -205,9 +220,10 @@ export const FactionInfos: IMap = { true, true, true, + true, ), - "KuaiGong International": new FactionInfo(<>Dream big. Work hard. Make history., [], true, true, true, true), + "KuaiGong International": new FactionInfo(<>Dream big. Work hard. Make history., [], true, true, true, true, true), // Other Corporations "Fulcrum Secret Technologies": new FactionInfo( @@ -222,6 +238,7 @@ export const FactionInfos: IMap = { true, false, true, + true, ), // Hacker groups @@ -243,6 +260,7 @@ export const FactionInfos: IMap = { true, false, false, + false, ), "The Black Hand": new FactionInfo( @@ -261,6 +279,7 @@ export const FactionInfos: IMap = { true, true, false, + false, ), // prettier-ignore @@ -305,6 +324,7 @@ export const FactionInfos: IMap = { true, false, false, + false, ), // City factions, essentially governments @@ -315,8 +335,9 @@ export const FactionInfos: IMap = { true, true, true, + false, ), - Chongqing: new FactionInfo(<>Serve the People., ["Sector-12", "Aevum", "Volhaven"], true, true, true, true), + Chongqing: new FactionInfo(<>Serve the People., ["Sector-12", "Aevum", "Volhaven"], true, true, true, true, false), Ishima: new FactionInfo( <>The East Asian Order of the Future., ["Sector-12", "Aevum", "Volhaven"], @@ -324,8 +345,17 @@ export const FactionInfos: IMap = { true, true, true, + false, + ), + "New Tokyo": new FactionInfo( + <>Asia's World City., + ["Sector-12", "Aevum", "Volhaven"], + true, + true, + true, + true, + false, ), - "New Tokyo": new FactionInfo(<>Asia's World City., ["Sector-12", "Aevum", "Volhaven"], true, true, true, true), "Sector-12": new FactionInfo( <>The City of the Future., ["Chongqing", "New Tokyo", "Ishima", "Volhaven"], @@ -333,6 +363,7 @@ export const FactionInfos: IMap = { true, true, true, + false, ), Volhaven: new FactionInfo( <>Benefit, Honor, and Glory., @@ -341,6 +372,7 @@ export const FactionInfos: IMap = { true, true, true, + false, ), // Criminal Organizations/Gangs @@ -351,6 +383,7 @@ export const FactionInfos: IMap = { true, true, true, + false, ), "The Dark Army": new FactionInfo( @@ -360,9 +393,10 @@ export const FactionInfos: IMap = { true, true, false, + false, ), - "The Syndicate": new FactionInfo(<>Honor holds you back., [], true, true, true, true), + "The Syndicate": new FactionInfo(<>Honor holds you back., [], true, true, true, true, false), Silhouette: new FactionInfo( ( @@ -380,6 +414,7 @@ export const FactionInfos: IMap = { true, true, false, + false, ), Tetrads: new FactionInfo( @@ -389,14 +424,15 @@ export const FactionInfos: IMap = { false, true, true, + false, ), - "Slum Snakes": new FactionInfo(<>Slum Snakes rule!, [], false, false, true, true), + "Slum Snakes": new FactionInfo(<>Slum Snakes rule!, [], false, false, true, true, false), // Earlygame factions - factions the player will prestige with early on that don't belong in other categories. - Netburners: new FactionInfo(<>{"~~//*>H4CK||3T 8URN3R5**>?>\\~~"}, [], true, true, false, false), + Netburners: new FactionInfo(<>{"~~//*>H4CK||3T 8URN3R5**>?>\\~~"}, [], true, true, false, false, false), - "Tian Di Hui": new FactionInfo(<>Obey Heaven and work righteously., [], true, true, false, true), + "Tian Di Hui": new FactionInfo(<>Obey Heaven and work righteously., [], true, true, false, true, false), CyberSec: new FactionInfo( ( @@ -411,6 +447,7 @@ export const FactionInfos: IMap = { true, false, false, + false, ), // Special Factions @@ -429,5 +466,6 @@ export const FactionInfos: IMap = { false, false, false, + false, ), }; diff --git a/src/Prestige.js b/src/Prestige.js index 893515939..3ab80b143 100755 --- a/src/Prestige.js +++ b/src/Prestige.js @@ -34,21 +34,8 @@ const BitNode8StartingMoney = 250e6; function prestigeAugmentation() { initBitNodeMultipliers(Player); - const megaCorpFactions = [ - "ECorp", - "MegaCorp", - "Bachman & Associates", - "Blade Industries", - "NWO", - "Clarke Incorporated", - "OmniTek Incorporated", - "Four Sigma", - "KuaiGong International", - "Fulcrum Secret Technologies", - ]; - const maintainMembership = Player.factions.filter(function (faction) { - return megaCorpFactions.includes(faction); + return Factions[faction].getInfo().keep; }); Player.prestigeAugmentation();