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

@ -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<FactionInfo> = {
true,
true,
false,
false,
),
Daedalus: new FactionInfo(
@ -97,6 +105,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
false,
false,
),
"The Covenant": new FactionInfo(
@ -114,6 +123,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
false,
false,
),
// Megacorporations, each forms its own faction
@ -129,6 +139,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
true,
true,
),
MegaCorp: new FactionInfo(
@ -147,6 +158,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
true,
true,
),
"Bachman & Associates": new FactionInfo(
@ -163,9 +175,10 @@ export const FactionInfos: IMap<FactionInfo> = {
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<FactionInfo> = {
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<FactionInfo> = {
true,
true,
true,
true,
),
"Four Sigma": new FactionInfo(
@ -205,9 +220,10 @@ export const FactionInfos: IMap<FactionInfo> = {
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<FactionInfo> = {
true,
false,
true,
true,
),
// Hacker groups
@ -243,6 +260,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
false,
false,
false,
),
"The Black Hand": new FactionInfo(
@ -261,6 +279,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
false,
false,
),
// prettier-ignore
@ -305,6 +324,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
false,
false,
false,
),
// City factions, essentially governments
@ -315,8 +335,9 @@ export const FactionInfos: IMap<FactionInfo> = {
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<FactionInfo> = {
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<FactionInfo> = {
true,
true,
true,
false,
),
Volhaven: new FactionInfo(
<>Benefit, Honor, and Glory.</>,
@ -341,6 +372,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
true,
false,
),
// Criminal Organizations/Gangs
@ -351,6 +383,7 @@ export const FactionInfos: IMap<FactionInfo> = {
true,
true,
true,
false,
),
"The Dark Army": new FactionInfo(
@ -360,9 +393,10 @@ export const FactionInfos: IMap<FactionInfo> = {
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<FactionInfo> = {
true,
true,
false,
false,
),
Tetrads: new FactionInfo(
@ -389,14 +424,15 @@ export const FactionInfos: IMap<FactionInfo> = {
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<FactionInfo> = {
true,
false,
false,
false,
),
// Special Factions
@ -429,5 +466,6 @@ export const FactionInfos: IMap<FactionInfo> = {
false,
false,
false,
false,
),
};

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