2021-09-21 02:42:13 +02:00
|
|
|
|
import React from "react";
|
2023-11-02 15:20:24 +01:00
|
|
|
|
import { FactionName, CompanyName, CityName, LiteratureName, MessageFilename } from "@enums";
|
|
|
|
|
import { currentNodeMults } from "../BitNode/BitNodeMultipliers";
|
2022-09-13 00:00:09 +02:00
|
|
|
|
import { Router } from "../ui/GameRoot";
|
2022-12-04 09:14:06 +01:00
|
|
|
|
import { Page } from "../ui/Router";
|
2022-04-14 08:07:13 +02:00
|
|
|
|
import { Option } from "./ui/Option";
|
2022-04-22 21:30:49 +02:00
|
|
|
|
import { Typography } from "@mui/material";
|
2023-11-02 15:20:24 +01:00
|
|
|
|
import {
|
|
|
|
|
JoinCondition,
|
|
|
|
|
haveBackdooredServer,
|
|
|
|
|
employedBy,
|
|
|
|
|
executiveEmployee,
|
|
|
|
|
notEmployee,
|
|
|
|
|
haveAugmentations,
|
|
|
|
|
haveMoney,
|
|
|
|
|
haveSkill,
|
|
|
|
|
haveCombatSkills,
|
|
|
|
|
haveKarma,
|
|
|
|
|
haveKilledPeople,
|
|
|
|
|
locatedInCity,
|
|
|
|
|
totalHacknetRam,
|
|
|
|
|
totalHacknetCores,
|
|
|
|
|
totalHacknetLevels,
|
|
|
|
|
haveBladeburnerRank,
|
|
|
|
|
haveSourceFile,
|
|
|
|
|
haveFile,
|
|
|
|
|
someCondition,
|
|
|
|
|
} from "./FactionJoinCondition";
|
|
|
|
|
import { SpecialServers } from "../Server/data/SpecialServers";
|
|
|
|
|
import { CONSTANTS } from "../Constants";
|
|
|
|
|
import { BladeburnerConstants } from "../Bladeburner/data/Constants";
|
|
|
|
|
import type { PlayerObject } from "../PersonObjects/Player/PlayerObject";
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
2022-04-12 23:18:36 +02:00
|
|
|
|
interface FactionInfoParams {
|
|
|
|
|
infoText?: JSX.Element;
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText?: JSX.Element;
|
|
|
|
|
inviteReqs?: JoinCondition[];
|
|
|
|
|
rumorReqs?: JoinCondition[];
|
2023-06-26 04:53:35 +02:00
|
|
|
|
enemies?: FactionName[];
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork?: boolean;
|
|
|
|
|
offerFieldWork?: boolean;
|
|
|
|
|
offerSecurityWork?: boolean;
|
|
|
|
|
special?: boolean;
|
|
|
|
|
keepOnInstall?: boolean;
|
2022-04-14 08:07:13 +02:00
|
|
|
|
assignment?: () => React.ReactElement;
|
2022-04-12 23:18:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** Contains the "information" property for all the Factions, which is just a description of each faction */
|
2021-09-21 02:42:13 +02:00
|
|
|
|
export class FactionInfo {
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** The names of all other factions considered to be enemies to this faction. */
|
2023-06-26 04:53:35 +02:00
|
|
|
|
enemies: FactionName[];
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** The descriptive text to show on the faction's page. */
|
2021-09-21 02:42:13 +02:00
|
|
|
|
infoText: JSX.Element;
|
|
|
|
|
|
2023-11-02 15:20:24 +01:00
|
|
|
|
/** The hint to show about how to get invited to this faction. */
|
|
|
|
|
rumorText: JSX.Element;
|
|
|
|
|
|
|
|
|
|
/** Conditions for being automatically inivited to this facton. */
|
|
|
|
|
inviteReqs: JoinCondition[];
|
|
|
|
|
|
|
|
|
|
/** Conditions for automatically hearing a rumor about this facton. */
|
|
|
|
|
rumorReqs: JoinCondition[];
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** A flag indicating if the faction supports field work to earn reputation. */
|
2021-09-21 02:42:13 +02:00
|
|
|
|
offerFieldWork: boolean;
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** A flag indicating if the faction supports hacking work to earn reputation. */
|
2021-09-21 02:42:13 +02:00
|
|
|
|
offerHackingWork: boolean;
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** A flag indicating if the faction supports security work to earn reputation. */
|
2021-09-21 02:42:13 +02:00
|
|
|
|
offerSecurityWork: boolean;
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** Keep faction on install. */
|
2021-09-22 09:09:37 +02:00
|
|
|
|
keep: boolean;
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** Special faction */
|
2021-10-12 00:56:51 +02:00
|
|
|
|
special: boolean;
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** The data to display on the faction screen. */
|
2022-04-14 08:07:13 +02:00
|
|
|
|
assignment?: () => React.ReactElement;
|
|
|
|
|
|
2022-04-12 23:18:36 +02:00
|
|
|
|
constructor(params: FactionInfoParams) {
|
|
|
|
|
this.infoText = params.infoText ?? <></>;
|
2023-11-02 15:20:24 +01:00
|
|
|
|
this.rumorText = params.rumorText ?? <></>;
|
|
|
|
|
this.inviteReqs = params.inviteReqs ?? [];
|
|
|
|
|
this.rumorReqs = params.rumorReqs ?? [];
|
2022-04-12 23:18:36 +02:00
|
|
|
|
this.enemies = params.enemies ?? [];
|
|
|
|
|
this.offerHackingWork = params.offerHackingWork ?? false;
|
|
|
|
|
this.offerFieldWork = params.offerFieldWork ?? false;
|
|
|
|
|
this.offerSecurityWork = params.offerSecurityWork ?? false;
|
|
|
|
|
|
|
|
|
|
this.keep = params.keepOnInstall ?? false;
|
|
|
|
|
this.special = params.special ?? false;
|
2022-04-14 08:07:13 +02:00
|
|
|
|
this.assignment = params.assignment;
|
2021-09-21 02:42:13 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
offersWork(): boolean {
|
2022-04-12 23:18:36 +02:00
|
|
|
|
return this.offerFieldWork || this.offerHackingWork || this.offerSecurityWork;
|
2021-09-21 02:42:13 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-04 12:40:10 +02:00
|
|
|
|
/** A map of all factions and associated info to them. */
|
2023-06-26 04:53:35 +02:00
|
|
|
|
export const FactionInfos: Record<FactionName, FactionInfo> = {
|
2021-09-21 02:42:13 +02:00
|
|
|
|
// Endgame
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Illuminati]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. And
|
|
|
|
|
from this chaos, we are the invisible hand that guides them to order.{" "}
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
“...the ancient secret society that controls the entire world from the shadows with their invisible hand. With
|
|
|
|
|
their personal wealth and skills they have penetrated every major government, financial agency, and
|
|
|
|
|
corporation...”
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [haveAugmentations(30), haveMoney(150e9), haveSkill("hacking", 1500), haveCombatSkills(1200)],
|
|
|
|
|
rumorReqs: [haveFile(LiteratureName.TheHiddenWorld)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Daedalus]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.</>,
|
2023-11-05 06:07:05 +01:00
|
|
|
|
rumorText: <>Follow the thread. Take fl1ght.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [
|
|
|
|
|
haveAugmentations(currentNodeMults.DaedalusAugsRequirement),
|
|
|
|
|
haveMoney(100e9),
|
|
|
|
|
someCondition(haveSkill("hacking", 2500), haveCombatSkills(1500)),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [haveFile(MessageFilename.TruthGazer)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.TheCovenant]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
Surrender yourself. Give up your empty individuality to become part of something great, something eternal.
|
|
|
|
|
Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
Only then can you discover immortality.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
{FactionName.TheCovenant} offers an exclusive service to those who have reached the limits of individual fitness
|
|
|
|
|
and wish to go further.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [haveAugmentations(20), haveMoney(75e9), haveSkill("hacking", 850), haveCombatSkills(850)],
|
|
|
|
|
rumorReqs: [haveSourceFile(10)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
|
|
|
|
// Megacorporations, each forms its own faction
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.ECorp]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
2023-06-12 06:34:20 +02:00
|
|
|
|
{FactionName.ECorp}'s mission is simple: to connect the world of today with the technology of tomorrow. With our
|
|
|
|
|
wide range of Internet-related software and commercial hardware, {FactionName.ECorp} makes the world's
|
2022-03-29 16:43:28 +02:00
|
|
|
|
information universally accessible.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>High-ranking employees of {CompanyName.ECorp} can gain access to proprietary hacking augmentations.</>,
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.ECorp, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.ECorp)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.MegaCorp]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
2023-06-12 06:34:20 +02:00
|
|
|
|
{FactionName.MegaCorp} does what no other dares to do. We imagine. We create. We invent. We create what others
|
2022-03-29 16:43:28 +02:00
|
|
|
|
have never even dreamed of. Our work fills the world's needs for food, water, power, and transportation on an
|
|
|
|
|
unprecedented scale, in ways that no other company can.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<br />
|
|
|
|
|
<br />
|
2023-06-12 06:34:20 +02:00
|
|
|
|
In our labs and factories and on the ground with customers, {FactionName.MegaCorp} is ushering in a new era for
|
2022-03-29 16:43:28 +02:00
|
|
|
|
the world.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>High-ranking employees of {CompanyName.MegaCorp} can gain access to proprietary biotech augmentations.</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.MegaCorp, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.MegaCorp)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.BachmanAssociates]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
2022-06-04 02:10:52 +02:00
|
|
|
|
Where Law and Business meet - that's where we are.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
Legal Insight - Business Instinct - Innovative Experience.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
High-ranking employees of {CompanyName.BachmanAndAssociates} can gain access to proprietary negotiation
|
|
|
|
|
augmentations.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.BachmanAndAssociates, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.BachmanAndAssociates)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.BladeIndustries]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Augmentation is Salvation.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>High-ranking employees of {CompanyName.BladeIndustries} can gain access to proprietary bionic augmentations.</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.BladeIndustries, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.BladeIndustries)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.NWO]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to be given
|
|
|
|
|
purpose and direction in life. That is why they created God. And that is why they created civilization - not
|
|
|
|
|
because of willingness, but because of a need to be incorporated into higher orders of structure and meaning.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>High-ranking employees of {CompanyName.NWO} can gain access to proprietary nanotech augmentations.</>,
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.NWO, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.NWO)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.ClarkeIncorporated]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>The Power of the Genome - Unlocked.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
High-ranking employees of {CompanyName.ClarkeIncorporated} can gain access to proprietary neurotech
|
|
|
|
|
augmentations.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.ClarkeIncorporated, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.ClarkeIncorporated)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.OmniTekIncorporated]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Simply put, our mission is to design and build robots that make a difference.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
High-ranking employees of {CompanyName.OmniTekIncorporated} can gain access to proprietary data-processing
|
|
|
|
|
augmentations.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.OmniTekIncorporated, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.OmniTekIncorporated)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.FourSigma]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
The scientific method is the best way to approach investing. Big strategies backed up with big data. Driven by
|
2023-06-12 06:34:20 +02:00
|
|
|
|
deep learning and innovative ideas. And improved by iteration. That's {FactionName.FourSigma}.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>High-ranking employees of {CompanyName.FourSigma} can gain access to a range of versatile augmentations.</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.FourSigma, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.FourSigma)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.KuaiGongInternational]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Dream big. Work hard. Make history.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
High-ranking employees of {CompanyName.KuaiGongInternational} can gain access to proprietary dermatech
|
|
|
|
|
augmentations.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [employedBy(CompanyName.KuaiGongInternational, { withRep: CONSTANTS.CorpFactionRepRequirement })],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.KuaiGongInternational)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
|
|
|
|
// Other Corporations
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.FulcrumSecretTechnologies]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
The human organism has an innate desire to worship. That is why they created gods. If there were no gods, it
|
|
|
|
|
would be necessary to create them. And now we can.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
High-ranking employees of {CompanyName.FulcrumTechnologies} may discover a company system with access to
|
|
|
|
|
proprietary neural network augmentations.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
employedBy(CompanyName.FulcrumTechnologies, { withRep: CONSTANTS.CorpFactionRepRequirement }),
|
|
|
|
|
haveBackdooredServer(SpecialServers.FulcrumSecretTechnologies),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [employedBy(CompanyName.FulcrumTechnologies)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
|
|
|
|
// Hacker groups
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.BitRunners]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
Our entire lives are controlled by bits. All of our actions, our thoughts, our personal information. It's all
|
|
|
|
|
transformed into bits, stored in bits, communicated through bits. It’s impossible for any person to move, to
|
|
|
|
|
live, to operate at any level without the use of bits. And when a person moves, lives, and operates, they leave
|
|
|
|
|
behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be
|
|
|
|
|
reconstructed. Transformed. Used.
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
Those who run the bits, run the world.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Run for the hills.</>,
|
|
|
|
|
inviteReqs: [haveBackdooredServer(SpecialServers.BitRunnersServer)],
|
|
|
|
|
rumorReqs: [haveFile(MessageFilename.BitRunnersTest)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.TheBlackHand]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
The world, so afraid of strong government, now has no government. Only power - Digital power. Financial power.
|
|
|
|
|
Technological power. And those at the top rule with an invisible hand. They built a society where the rich get
|
|
|
|
|
richer, and everyone else suffers.
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
So much pain. So many lives. Their darkness must end.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>I.I.I.I</>,
|
|
|
|
|
inviteReqs: [haveBackdooredServer(SpecialServers.TheBlackHandServer)],
|
|
|
|
|
rumorReqs: [haveFile(MessageFilename.Jumper3)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
|
|
|
|
// prettier-ignore
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.NiteSec]: new FactionInfo({
|
2023-11-02 15:20:24 +01:00
|
|
|
|
infoText:(<>
|
2022-03-19 09:09:59 +01:00
|
|
|
|
{" __..__ "}<br />
|
|
|
|
|
{" _.nITESECNIt. "}<br />
|
|
|
|
|
{" .-'NITESECNITESEc. "}<br />
|
|
|
|
|
{" .' NITESECNITESECn "}<br />
|
|
|
|
|
{" / NITESECNITESEC; "}<br />
|
|
|
|
|
{" : :NITESECNITESEC; "}<br />
|
|
|
|
|
{" ; $ NITESECNITESECN "}<br />
|
|
|
|
|
{" : _, ,N'ITESECNITESEC "}<br />
|
|
|
|
|
{" : .+^^`, : `NITESECNIT "}<br />
|
|
|
|
|
{" ) /), `-,-=,NITESECNI "}<br />
|
|
|
|
|
{" / ^ ,-;|NITESECN; "}<br />
|
|
|
|
|
{" / _.' '-';NITESECN "}<br />
|
|
|
|
|
{" ( , ,-''`^NITE' "}<br />
|
|
|
|
|
{" )` :`. .' "}<br />
|
|
|
|
|
{" )-- ; `- / "}<br />
|
|
|
|
|
{" ' _.-' : "}<br />
|
|
|
|
|
{" ( _.-' . "}<br />
|
|
|
|
|
{" ------. "}<br />
|
|
|
|
|
{" . "}<br />
|
|
|
|
|
{" _.nIt "}<br />
|
|
|
|
|
{" _.nITESECNi "}<br />
|
|
|
|
|
{" nITESECNIT^' "}<br />
|
|
|
|
|
{" NITE^' ___ "}<br />
|
|
|
|
|
{" / .gP''''Tp. "}<br />
|
|
|
|
|
{" : d' . `b "}<br />
|
|
|
|
|
{" ; d' o `b ; "}<br />
|
|
|
|
|
{" / d; `b| "}<br />
|
|
|
|
|
{" /, $; @ `: "}<br />
|
|
|
|
|
{" /' $/ ; "}<br />
|
|
|
|
|
{" .' $/b o | "}<br />
|
|
|
|
|
{" .' d$/$; : "}<br />
|
|
|
|
|
{" / .d/$/$; , ; "}<br />
|
|
|
|
|
{" d .dNITESEC $ | "}<br />
|
|
|
|
|
{" :bp.__.gNITESEC/$ :$ ; "}<br />
|
2022-04-12 23:18:36 +02:00
|
|
|
|
{" NITESECNITESECNIT /$b : "}<br /></>),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>A hacking group known as {FactionName.NiteSec} may recruit you if you impress them with your hacking skills.</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
haveBackdooredServer(SpecialServers.NiteSecServer)
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [haveFile(MessageFilename.NiteSecTest)],
|
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: false,
|
|
|
|
|
offerSecurityWork: false,
|
|
|
|
|
special: false,
|
|
|
|
|
keepOnInstall: false,
|
2022-04-12 23:18:36 +02:00
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
2023-12-03 10:06:30 +01:00
|
|
|
|
[FactionName.CyberSec]: new FactionInfo({
|
|
|
|
|
infoText: (
|
|
|
|
|
<>
|
|
|
|
|
The Internet is the first thing that was built that we don't fully understand, the largest experiment in anarchy
|
|
|
|
|
that we have ever had. And as the world becomes increasingly dominated by it, society approaches the brink of
|
|
|
|
|
total chaos. We serve only to protect society, to protect humanity, to protect the world from imminent collapse.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
A hacking group known as {FactionName.CyberSec} will invite you to join them if you demonstrate your hacking
|
|
|
|
|
skills on their server.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [haveBackdooredServer(SpecialServers.CyberSecServer)],
|
|
|
|
|
rumorReqs: [haveFile(MessageFilename.CyberSecTest)],
|
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2021-09-21 02:42:13 +02:00
|
|
|
|
// City factions, essentially governments
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Aevum]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>The Silicon City.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Wealthy residents of {CityName.Aevum} may be invited to work for the Silicon City.</>,
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Chongqing, FactionName.NewTokyo, FactionName.Ishima, FactionName.Volhaven],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.Aevum), haveMoney(40e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.Aevum), haveMoney(20e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Chongqing]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Serve the People.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Wealthy residents of {CityName.Chongqing} may be invited to serve the people.</>,
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Sector12, FactionName.Aevum, FactionName.Volhaven],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.Chongqing), haveMoney(20e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.Chongqing), haveMoney(10e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Ishima]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>The East Asian Order of the Future.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>Wealthy residents of {CityName.Ishima} may be invited to work for the East Asian Order of the Future.</>
|
|
|
|
|
),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Sector12, FactionName.Aevum, FactionName.Volhaven],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.Ishima), haveMoney(30e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.Ishima), haveMoney(15e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.NewTokyo]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Asia's World City.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Wealthy residents of {CityName.NewTokyo} may be invited to work for Asia's World City.</>,
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Sector12, FactionName.Aevum, FactionName.Volhaven],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.NewTokyo), haveMoney(20e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.NewTokyo), haveMoney(10e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Sector12]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>The City of the Future.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Wealthy residents of {CityName.Sector12} may be invited to work for the City of the Future.</>,
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Chongqing, FactionName.NewTokyo, FactionName.Ishima, FactionName.Volhaven],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.Sector12), haveMoney(15e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.Sector12), haveMoney(7.5e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Volhaven]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Benefit, Honor, and Glory.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>Wealthy residents of {CityName.Volhaven} may be invited to work for the city's Benefit, Honor, and Glory.</>
|
|
|
|
|
),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
enemies: [FactionName.Chongqing, FactionName.Sector12, FactionName.NewTokyo, FactionName.Aevum, FactionName.Ishima],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
inviteReqs: [locatedInCity(CityName.Volhaven), haveMoney(50e6)],
|
|
|
|
|
rumorReqs: [locatedInCity(CityName.Volhaven), haveMoney(25e6)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
|
|
|
|
// Criminal Organizations/Gangs
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.SpeakersForTheDead]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>It is better to reign in Hell than to serve in Heaven.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>“We know.”</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
notEmployee(CompanyName.CIA),
|
|
|
|
|
notEmployee(CompanyName.NSA),
|
|
|
|
|
haveKarma(-45),
|
|
|
|
|
haveSkill("hacking", 100),
|
|
|
|
|
haveCombatSkills(300),
|
|
|
|
|
haveKilledPeople(30),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [haveKarma(-45), haveSkill("hacking", 50), haveCombatSkills(150), haveKilledPeople(5)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.TheDarkArmy]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>The World doesn't care about right or wrong. It only cares about power.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>A ruthless criminal organization based in {CityName.Chongqing}</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing),
|
|
|
|
|
notEmployee(CompanyName.CIA),
|
|
|
|
|
notEmployee(CompanyName.NSA),
|
|
|
|
|
haveKarma(-45),
|
|
|
|
|
haveSkill("hacking", 300),
|
|
|
|
|
haveCombatSkills(300),
|
|
|
|
|
haveKilledPeople(5),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing),
|
|
|
|
|
haveKarma(-45),
|
|
|
|
|
haveSkill("hacking", 150),
|
|
|
|
|
haveCombatSkills(150),
|
|
|
|
|
haveKilledPeople(1),
|
|
|
|
|
],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.TheSyndicate]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Honor holds you back.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>An elite criminal organization that operates in the western hemisphere</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
locatedInCity(CityName.Aevum, CityName.Sector12),
|
|
|
|
|
notEmployee(CompanyName.CIA),
|
|
|
|
|
notEmployee(CompanyName.NSA),
|
|
|
|
|
haveKarma(-90),
|
|
|
|
|
haveMoney(10e6),
|
|
|
|
|
haveSkill("hacking", 200),
|
|
|
|
|
haveCombatSkills(200),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [
|
|
|
|
|
locatedInCity(CityName.Aevum, CityName.Sector12),
|
|
|
|
|
someCondition(haveKarma(-90), haveFile(LiteratureName.Sector12Crime)),
|
|
|
|
|
],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Silhouette]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
Corporations have filled the void of power left behind by the collapse of Western government. The issue is
|
|
|
|
|
they've become so big that you don't know who they're working for. And if you're employed at one of these
|
|
|
|
|
corporations, you don't even know who you're working for.
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
|
|
|
|
That's terror. Terror, fear, and corruption. All born into the system, all propagated by the system.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: (
|
|
|
|
|
<>
|
|
|
|
|
Corporate executives with the right moral flexiblity may be invited to find out who they are truly working for.
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
inviteReqs: [executiveEmployee(), haveMoney(15e6), haveKarma(-22)],
|
|
|
|
|
rumorReqs: [executiveEmployee()],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Tetrads]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Following the mandate of Heaven and carrying out the way.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>A notorious East Asian criminal organization</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing, CityName.NewTokyo, CityName.Ishima),
|
|
|
|
|
haveKarma(-18),
|
|
|
|
|
haveCombatSkills(75),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing, CityName.NewTokyo, CityName.Ishima),
|
|
|
|
|
someCondition(haveKarma(-18), haveFile(LiteratureName.NewTriads)),
|
|
|
|
|
],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.SlumSnakes]: new FactionInfo({
|
|
|
|
|
infoText: <>{FactionName.SlumSnakes} rule!</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Graffiti seen in the slums: “{FactionName.SlumSnakes} rule!”</>,
|
2023-11-05 06:07:05 +01:00
|
|
|
|
inviteReqs: [haveCombatSkills(30), haveMoney(1e6), haveKarma(-9)],
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorReqs: [haveKarma(-1)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerFieldWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
|
2022-10-09 07:25:31 +02:00
|
|
|
|
// Early game factions - factions the player will prestige with early on that don't belong in other categories.
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Netburners]: new FactionInfo({
|
2023-11-02 15:20:24 +01:00
|
|
|
|
infoText: <>{"~~//*>H4CK|\\|3T 8URN3R5**>?>\\~~"}</>,
|
|
|
|
|
rumorText: <>{"~~//*>H4CK|\\|3T 8URN3R5**>?>\\~~"}</>,
|
|
|
|
|
inviteReqs: [haveSkill("hacking", 80), totalHacknetRam(8), totalHacknetCores(4), totalHacknetLevels(100)],
|
|
|
|
|
rumorReqs: [totalHacknetLevels(50)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.TianDiHui]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: <>Obey Heaven and work righteously.</>,
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>A Chinese honor society with the motto: “Obey Heaven and work righteously.”</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing, CityName.NewTokyo, CityName.Ishima),
|
|
|
|
|
haveSkill("hacking", 50),
|
|
|
|
|
haveMoney(1e6),
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [
|
|
|
|
|
locatedInCity(CityName.Chongqing, CityName.NewTokyo, CityName.Ishima),
|
|
|
|
|
haveSkill("hacking", 25),
|
|
|
|
|
haveMoney(0.5e6),
|
|
|
|
|
],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
offerHackingWork: true,
|
|
|
|
|
offerSecurityWork: true,
|
|
|
|
|
}),
|
|
|
|
|
|
2021-09-21 02:42:13 +02:00
|
|
|
|
// Special Factions
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.Bladeburners]: new FactionInfo({
|
2022-04-12 23:18:36 +02:00
|
|
|
|
infoText: (
|
2021-09-21 02:42:13 +02:00
|
|
|
|
<>
|
|
|
|
|
It's too bad they won't live. But then again, who does?
|
|
|
|
|
<br />
|
|
|
|
|
<br />
|
2023-06-12 06:34:20 +02:00
|
|
|
|
Note that for this faction, reputation can only be gained through {FactionName.Bladeburners} actions. Completing{" "}
|
|
|
|
|
{FactionName.Bladeburners} contracts/operations will increase your reputation.
|
2021-09-21 02:42:13 +02:00
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>The {CompanyName.NSA} would like to have a word with you once you're ready.</>,
|
|
|
|
|
inviteReqs: [haveSourceFile(6, 7), haveBladeburnerRank(BladeburnerConstants.RankNeededForFaction)],
|
|
|
|
|
rumorReqs: [haveSourceFile(6, 7)],
|
2022-04-12 23:18:36 +02:00
|
|
|
|
special: true,
|
2022-04-14 08:07:13 +02:00
|
|
|
|
assignment: (): React.ReactElement => {
|
|
|
|
|
return (
|
|
|
|
|
<Option
|
|
|
|
|
buttonText={"Open Bladeburner headquarters"}
|
|
|
|
|
infoText={"You can gain reputation with bladeburner by completing contracts and operations."}
|
2022-12-04 09:14:06 +01:00
|
|
|
|
onClick={() => Router.toPage(Page.Bladeburner)}
|
2022-04-14 08:07:13 +02:00
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
},
|
2022-04-12 23:18:36 +02:00
|
|
|
|
}),
|
2021-09-25 23:21:50 +02:00
|
|
|
|
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.ChurchOfTheMachineGod]: new FactionInfo({
|
2022-04-14 08:07:13 +02:00
|
|
|
|
// prettier-ignore
|
|
|
|
|
infoText:(<>
|
2021-09-25 23:21:50 +02:00
|
|
|
|
{" `` "}<br />
|
|
|
|
|
{" -odmmNmds: "}<br />
|
|
|
|
|
{" `hNmo:..-omNh. "}<br />
|
|
|
|
|
{" yMd` `hNh "}<br />
|
|
|
|
|
{" mMd oNm "}<br />
|
|
|
|
|
{" oMNo .mM/ "}<br />
|
|
|
|
|
{" `dMN+ -mM+ "}<br />
|
|
|
|
|
{" -mMNo -mN+ "}<br />
|
|
|
|
|
{" .+- :mMNo/mN/ "}<br />
|
|
|
|
|
{":yNMd. :NMNNN/ "}<br />
|
|
|
|
|
{"-mMMMh. /NMMh` "}<br />
|
|
|
|
|
{" .dMMMd. /NMMMy` "}<br />
|
|
|
|
|
{" `yMMMd. /NNyNMMh` "}<br />
|
|
|
|
|
{" `sMMMd. +Nm: +NMMh. "}<br />
|
|
|
|
|
{" oMMMm- oNm: /NMMd. "}<br />
|
|
|
|
|
{" +NMMmsMm- :mMMd. "}<br />
|
|
|
|
|
{" /NMMMm- -mMMd. "}<br />
|
|
|
|
|
{" /MMMm- -mMMd. "}<br />
|
|
|
|
|
{" `sMNMMm- .mMmo "}<br />
|
|
|
|
|
{" `sMd:hMMm. ./. "}<br />
|
|
|
|
|
{" `yMy` `yNMd` "}<br />
|
|
|
|
|
{" `hMs` oMMy "}<br />
|
|
|
|
|
{" `hMh sMN- "}<br />
|
|
|
|
|
{" /MM- .NMo "}<br />
|
|
|
|
|
{" +MM: :MM+ "}<br />
|
|
|
|
|
{" sNNo-.`.-omNy` "}<br />
|
|
|
|
|
{" -smNNNNmdo- "}<br />
|
|
|
|
|
{" `..` "}<br /><br />
|
|
|
|
|
Many cultures predict an end to humanity in the near future, a final
|
2022-04-14 08:07:13 +02:00
|
|
|
|
Armageddon that will end the world; but we disagree.</>),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Trouble is brewing in {CityName.Chongqing}.</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
haveSourceFile(13),
|
|
|
|
|
haveAugmentations(0),
|
|
|
|
|
{
|
|
|
|
|
toString: () => `Investigate the dilapidated church in ${CityName.Chongqing}`,
|
|
|
|
|
isSatisfied: (p: PlayerObject) => {
|
|
|
|
|
return [...p.factions, ...p.factionInvitations].includes(FactionName.ChurchOfTheMachineGod);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
rumorReqs: [haveSourceFile(13), haveAugmentations(0)],
|
2022-04-14 08:07:13 +02:00
|
|
|
|
offerHackingWork: false,
|
|
|
|
|
offerFieldWork: false,
|
|
|
|
|
offerSecurityWork: false,
|
|
|
|
|
special: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
assignment: (): React.ReactElement => {
|
|
|
|
|
return (
|
|
|
|
|
<Option
|
|
|
|
|
buttonText={"Open Staneks Gift"}
|
|
|
|
|
infoText={
|
|
|
|
|
"Stanek's Gift is a powerful augmentation that powers up the stat you chose to boost." +
|
|
|
|
|
"Gaining reputation with the Church of the Machine God can only be done by charging the gift."
|
|
|
|
|
}
|
2022-12-04 09:14:06 +01:00
|
|
|
|
onClick={() => Router.toPage(Page.StaneksGift)}
|
2022-04-14 08:07:13 +02:00
|
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
},
|
2022-04-12 23:18:36 +02:00
|
|
|
|
}),
|
2023-06-12 06:34:20 +02:00
|
|
|
|
[FactionName.ShadowsOfAnarchy]: new FactionInfo({
|
2022-04-22 21:30:49 +02:00
|
|
|
|
infoText: (
|
|
|
|
|
<>
|
|
|
|
|
The government is ruled by the corporations that we have allowed to consume it. To release the world from its
|
|
|
|
|
shackles, the gods grant us their strength.
|
|
|
|
|
</>
|
|
|
|
|
),
|
2023-11-02 15:20:24 +01:00
|
|
|
|
rumorText: <>Your infiltration activity has attracted attention.</>,
|
|
|
|
|
inviteReqs: [
|
|
|
|
|
{
|
|
|
|
|
toString: () => `Complete an infiltration`,
|
|
|
|
|
isSatisfied: (p: PlayerObject) => {
|
|
|
|
|
return [...p.factions, ...p.factionInvitations].includes(FactionName.ShadowsOfAnarchy);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
2022-04-22 21:30:49 +02:00
|
|
|
|
special: true,
|
|
|
|
|
keepOnInstall: true,
|
|
|
|
|
assignment: (): React.ReactElement => {
|
2023-06-12 06:34:20 +02:00
|
|
|
|
return <Typography>{FactionName.ShadowsOfAnarchy} can only gain reputation by infiltrating.</Typography>;
|
2022-04-22 21:30:49 +02:00
|
|
|
|
},
|
|
|
|
|
}),
|
2021-09-21 02:42:13 +02:00
|
|
|
|
};
|