Factions have a property explaining if they should keep on install

This commit is contained in:
Olivier Gagnon 2021-09-22 03:09:37 -04:00
parent e1741778f9
commit c79fa240e1
3 changed files with 56 additions and 23 deletions

@ -13,6 +13,7 @@ export interface IConstructorParams {
expMultiplier: number; expMultiplier: number;
salaryMultiplier: number; salaryMultiplier: number;
jobStatReqOffset: number; jobStatReqOffset: number;
isMegacorp?: boolean;
} }
const DefaultConstructorParams: IConstructorParams = { const DefaultConstructorParams: IConstructorParams = {
@ -35,6 +36,11 @@ export class Company {
*/ */
info: string; info: string;
/**
* Has faction associated.
*/
isMegacorp: boolean;
/** /**
* Object that holds all available positions in this Company. * Object that holds all available positions in this Company.
* Position names are held in keys. * Position names are held in keys.
@ -79,6 +85,8 @@ export class Company {
this.playerReputation = 1; this.playerReputation = 1;
this.favor = 0; this.favor = 0;
this.rolloverRep = 0; this.rolloverRep = 0;
this.isMegacorp = false;
if (p.isMegacorp) this.isMegacorp = true;
} }
hasPosition(pos: CompanyPosition | string): boolean { hasPosition(pos: CompanyPosition | string): boolean {

@ -45,6 +45,11 @@ export class FactionInfo {
*/ */
offerSecurityWork: boolean; offerSecurityWork: boolean;
/**
* Keep faction on install.
*/
keep: boolean;
constructor( constructor(
infoText: JSX.Element, infoText: JSX.Element,
enemies: string[], enemies: string[],
@ -52,6 +57,7 @@ export class FactionInfo {
offerHackingWork: boolean, offerHackingWork: boolean,
offerFieldWork: boolean, offerFieldWork: boolean,
offerSecurityWork: boolean, offerSecurityWork: boolean,
keep: boolean,
) { ) {
this.infoText = infoText; this.infoText = infoText;
this.enemies = enemies; this.enemies = enemies;
@ -63,6 +69,7 @@ export class FactionInfo {
// These are always all 1 for now. // These are always all 1 for now.
this.augmentationPriceMult = 1; this.augmentationPriceMult = 1;
this.augmentationRepRequirementMult = 1; this.augmentationRepRequirementMult = 1;
this.keep = keep;
} }
offersWork(): boolean { offersWork(): boolean {
@ -88,6 +95,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, false,
false,
), ),
Daedalus: new FactionInfo( Daedalus: new FactionInfo(
@ -97,6 +105,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, false,
false,
), ),
"The Covenant": new FactionInfo( "The Covenant": new FactionInfo(
@ -114,6 +123,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, false,
false,
), ),
// Megacorporations, each forms its own faction // Megacorporations, each forms its own faction
@ -129,6 +139,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
true,
), ),
MegaCorp: new FactionInfo( MegaCorp: new FactionInfo(
@ -147,6 +158,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
true,
), ),
"Bachman & Associates": new FactionInfo( "Bachman & Associates": new FactionInfo(
@ -163,9 +175,10 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, 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( NWO: new FactionInfo(
( (
@ -180,9 +193,10 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, 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( "OmniTek Incorporated": new FactionInfo(
<>Simply put, our mission is to design and build robots that make a difference.</>, <>Simply put, our mission is to design and build robots that make a difference.</>,
@ -191,6 +205,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
true,
), ),
"Four Sigma": new FactionInfo( "Four Sigma": new FactionInfo(
@ -205,9 +220,10 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, 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 // Other Corporations
"Fulcrum Secret Technologies": new FactionInfo( "Fulcrum Secret Technologies": new FactionInfo(
@ -222,6 +238,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
false, false,
true, true,
true,
), ),
// Hacker groups // Hacker groups
@ -243,6 +260,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
false, false,
false, false,
false,
), ),
"The Black Hand": new FactionInfo( "The Black Hand": new FactionInfo(
@ -261,6 +279,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, false,
false,
), ),
// prettier-ignore // prettier-ignore
@ -305,6 +324,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
false, false,
false, false,
false,
), ),
// City factions, essentially governments // City factions, essentially governments
@ -315,8 +335,9 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, 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( Ishima: new FactionInfo(
<>The East Asian Order of the Future.</>, <>The East Asian Order of the Future.</>,
["Sector-12", "Aevum", "Volhaven"], ["Sector-12", "Aevum", "Volhaven"],
@ -324,8 +345,17 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, 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( "Sector-12": new FactionInfo(
<>The City of the Future.</>, <>The City of the Future.</>,
["Chongqing", "New Tokyo", "Ishima", "Volhaven"], ["Chongqing", "New Tokyo", "Ishima", "Volhaven"],
@ -333,6 +363,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
false,
), ),
Volhaven: new FactionInfo( Volhaven: new FactionInfo(
<>Benefit, Honor, and Glory.</>, <>Benefit, Honor, and Glory.</>,
@ -341,6 +372,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
false,
), ),
// Criminal Organizations/Gangs // Criminal Organizations/Gangs
@ -351,6 +383,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
true, true,
false,
), ),
"The Dark Army": new FactionInfo( "The Dark Army": new FactionInfo(
@ -360,9 +393,10 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, 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( Silhouette: new FactionInfo(
( (
@ -380,6 +414,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
true, true,
false, false,
false,
), ),
Tetrads: new FactionInfo( Tetrads: new FactionInfo(
@ -389,14 +424,15 @@ export const FactionInfos: IMap<FactionInfo> = {
false, false,
true, true,
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. // 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( CyberSec: new FactionInfo(
( (
@ -411,6 +447,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true, true,
false, false,
false, false,
false,
), ),
// Special Factions // Special Factions
@ -429,5 +466,6 @@ export const FactionInfos: IMap<FactionInfo> = {
false, false,
false, false,
false, false,
false,
), ),
}; };

@ -34,21 +34,8 @@ const BitNode8StartingMoney = 250e6;
function prestigeAugmentation() { function prestigeAugmentation() {
initBitNodeMultipliers(Player); 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) { const maintainMembership = Player.factions.filter(function (faction) {
return megaCorpFactions.includes(faction); return Factions[faction].getInfo().keep;
}); });
Player.prestigeAugmentation(); Player.prestigeAugmentation();