mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-28 08:57:32 +01:00
commit
e680730450
22
dist/vendor.bundle.js
vendored
22
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -32,7 +32,7 @@ export function SourceFileMinus1(): React.ReactElement {
|
||||
<Typography style={{ whiteSpace: "pre-wrap" }}>
|
||||
Source-File -1: Exploits in the BitNodes
|
||||
<br />
|
||||
Level {exploits.length} / ?
|
||||
Level {exploits.length} / {Object.keys(Exploit).length}
|
||||
</Typography>
|
||||
}
|
||||
/>
|
||||
|
@ -566,7 +566,6 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.InfiltrationMoney = 3;
|
||||
BitNodeMultipliers.FactionWorkRepGain = 0.5;
|
||||
BitNodeMultipliers.FactionPassiveRepGain = 0;
|
||||
BitNodeMultipliers.GangKarmaRequirement = 0;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 1.3;
|
||||
break;
|
||||
case 3: // Corporatocracy
|
||||
@ -583,8 +582,8 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.HacknetNodeMoney = 0.25;
|
||||
BitNodeMultipliers.HomeComputerRamCost = 1.5;
|
||||
BitNodeMultipliers.PurchasedServerCost = 2;
|
||||
BitNodeMultipliers.GangKarmaRequirement = 3;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 1.3;
|
||||
BitNodeMultipliers.GangSoftcap = 0.9;
|
||||
break;
|
||||
case 4: // The Singularity
|
||||
BitNodeMultipliers.ServerMaxMoney = 0.15;
|
||||
@ -629,8 +628,8 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.FactionPassiveRepGain = 0;
|
||||
BitNodeMultipliers.HackExpGain = 0.25;
|
||||
BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed
|
||||
BitNodeMultipliers.GangKarmaRequirement = 5;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 2;
|
||||
BitNodeMultipliers.GangSoftcap = 0.7;
|
||||
break;
|
||||
case 7: // Bladeburner 2079
|
||||
BitNodeMultipliers.BladeburnerRank = 0.6;
|
||||
@ -651,8 +650,8 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.FourSigmaMarketDataCost = 2;
|
||||
BitNodeMultipliers.FourSigmaMarketDataApiCost = 2;
|
||||
BitNodeMultipliers.DaedalusAugsRequirement = 1.166; // Results in 35 Augs needed
|
||||
BitNodeMultipliers.GangKarmaRequirement = 5;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 2;
|
||||
BitNodeMultipliers.GangSoftcap = 0.7;
|
||||
break;
|
||||
case 8: // Ghost of Wall Street
|
||||
BitNodeMultipliers.ScriptHackMoney = 0.3;
|
||||
@ -665,8 +664,8 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.RepToDonateToFaction = 0;
|
||||
BitNodeMultipliers.CorporationValuation = 0;
|
||||
BitNodeMultipliers.CodingContractMoney = 0;
|
||||
BitNodeMultipliers.GangKarmaRequirement = 10;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 4;
|
||||
BitNodeMultipliers.GangSoftcap = 0;
|
||||
break;
|
||||
case 9: // Hacktocracy
|
||||
BitNodeMultipliers.HackingLevelMultiplier = 0.4;
|
||||
@ -688,7 +687,7 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.FourSigmaMarketDataApiCost = 4;
|
||||
BitNodeMultipliers.BladeburnerRank = 0.9;
|
||||
BitNodeMultipliers.BladeburnerSkillCost = 1.2;
|
||||
BitNodeMultipliers.GangKarmaRequirement = 3;
|
||||
BitNodeMultipliers.GangSoftcap = 0.8;
|
||||
break;
|
||||
case 10: // Digital Carbon
|
||||
BitNodeMultipliers.HackingLevelMultiplier = 0.2;
|
||||
@ -712,8 +711,8 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
BitNodeMultipliers.PurchasedServerLimit = 0.6;
|
||||
BitNodeMultipliers.PurchasedServerMaxRam = 0.5;
|
||||
BitNodeMultipliers.BladeburnerRank = 0.8;
|
||||
BitNodeMultipliers.GangKarmaRequirement = 3;
|
||||
BitNodeMultipliers.PurchasedServerSoftcap = 1.1;
|
||||
BitNodeMultipliers.GangSoftcap = 0.9;
|
||||
break;
|
||||
case 11: //The Big Crash
|
||||
BitNodeMultipliers.HackingLevelMultiplier = 0.5;
|
||||
@ -801,6 +800,7 @@ export function initBitNodeMultipliers(p: IPlayer): void {
|
||||
|
||||
BitNodeMultipliers.BladeburnerRank = dec;
|
||||
BitNodeMultipliers.BladeburnerSkillCost = inc;
|
||||
BitNodeMultipliers.GangSoftcap = dec;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -110,9 +110,9 @@ interface IBitNodeMultipliers {
|
||||
FourSigmaMarketDataCost: number;
|
||||
|
||||
/**
|
||||
* Influences how much negative karma is required to create a gang in this bitnode.
|
||||
* Reduces gangs earning.
|
||||
*/
|
||||
GangKarmaRequirement: number;
|
||||
GangSoftcap: number;
|
||||
|
||||
/**
|
||||
* Influences the experienced gained when hacking a server.
|
||||
@ -278,6 +278,7 @@ export const BitNodeMultipliers: IBitNodeMultipliers = {
|
||||
BladeburnerRank: 1,
|
||||
BladeburnerSkillCost: 1,
|
||||
|
||||
GangSoftcap: 1,
|
||||
|
||||
DaedalusAugsRequirement: 1,
|
||||
GangKarmaRequirement: 1,
|
||||
};
|
||||
|
@ -16,6 +16,7 @@ export enum Exploit {
|
||||
Unclickable = "Unclickable",
|
||||
UndocumentedFunctionCall = "UndocumentedFunctionCall",
|
||||
TimeCompression = "TimeCompression",
|
||||
RealityAlteration = "RealityAlteration",
|
||||
// To the players reading this. Yes you're supposed to add EditSaveFile by
|
||||
// editing your save file, yes you could add them all, no we don't care
|
||||
// that's not the point.
|
||||
@ -31,6 +32,7 @@ const names: {
|
||||
TimeCompression: "by compressing time",
|
||||
Unclickable: "by clicking the unclickable.",
|
||||
UndocumentedFunctionCall: "by looking beyond the documentation.",
|
||||
RealityAlteration: "by altering reality to suit your whims.",
|
||||
};
|
||||
|
||||
export function ExploitName(exploit: string): string {
|
||||
|
@ -42,6 +42,7 @@ export function AugmentationsPage(props: IProps): React.ReactElement {
|
||||
const augs: string[] = [];
|
||||
for (const augName in Augmentations) {
|
||||
if (augName === AugmentationNames.NeuroFluxGovernor) continue;
|
||||
if (augName === AugmentationNames.TheRedPill && player.bitNodeN !== 2) continue;
|
||||
const aug = Augmentations[augName];
|
||||
if (!aug.isSpecial) {
|
||||
augs.push(augName);
|
||||
|
@ -24,6 +24,7 @@ import { GangMember } from "./GangMember";
|
||||
|
||||
import { WorkerScript } from "../Netscript/WorkerScript";
|
||||
import { IPlayer } from "../PersonObjects/IPlayer";
|
||||
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
||||
|
||||
export class Gang {
|
||||
facName: string;
|
||||
@ -115,9 +116,10 @@ export class Gang {
|
||||
wantedLevelGains += wantedLevelGain;
|
||||
if (this.members[i].getTask().baseWanted < 0) justice++; // this member is lowering wanted.
|
||||
}
|
||||
this.respectGainRate = respectGains;
|
||||
this.wantedGainRate = wantedLevelGains;
|
||||
this.moneyGainRate = moneyGains;
|
||||
const territoryPenalty = (0.2 * this.getTerritory() + 0.8) * BitNodeMultipliers.GangSoftcap;
|
||||
this.respectGainRate = Math.pow(respectGains, territoryPenalty);
|
||||
this.wantedGainRate = Math.pow(wantedLevelGains, territoryPenalty);
|
||||
this.moneyGainRate = Math.pow(moneyGains, territoryPenalty);
|
||||
const gain = respectGains * numCycles;
|
||||
this.respect += gain;
|
||||
// Faction reputation gains is respect gain divided by some constant
|
||||
|
@ -63,7 +63,7 @@ export class GangMember {
|
||||
}
|
||||
|
||||
calculateAscensionMult(points: number): number {
|
||||
return Math.max(Math.pow(points / 4000, 0.7), 1);
|
||||
return Math.max(Math.pow(points / 2000, 0.7), 1);
|
||||
}
|
||||
|
||||
updateSkillLevels(): void {
|
||||
|
@ -6,7 +6,7 @@ export const GangConstants: {
|
||||
Names: string[];
|
||||
} = {
|
||||
// Respect is divided by this to get rep gain
|
||||
GangRespectToReputationRatio: 25,
|
||||
GangRespectToReputationRatio: 75,
|
||||
MaximumGangMembers: 12,
|
||||
CyclesPerTerritoryAndPowerUpdate: 100,
|
||||
// Portion of upgrade multiplier that is kept after ascending
|
||||
|
@ -53,7 +53,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00005,
|
||||
baseWanted: 0.0001,
|
||||
baseMoney: 1,
|
||||
baseMoney: 3,
|
||||
hackWeight: 100,
|
||||
difficulty: 1,
|
||||
},
|
||||
@ -66,7 +66,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00008,
|
||||
baseWanted: 0.003,
|
||||
baseMoney: 2.5,
|
||||
baseMoney: 7.5,
|
||||
hackWeight: 85,
|
||||
chaWeight: 15,
|
||||
difficulty: 3.5,
|
||||
@ -80,7 +80,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.0001,
|
||||
baseWanted: 0.075,
|
||||
baseMoney: 6,
|
||||
baseMoney: 18,
|
||||
hackWeight: 80,
|
||||
chaWeight: 20,
|
||||
difficulty: 5,
|
||||
@ -118,7 +118,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.0004,
|
||||
baseWanted: 0.3,
|
||||
baseMoney: 15,
|
||||
baseMoney: 45,
|
||||
hackWeight: 80,
|
||||
chaWeight: 20,
|
||||
difficulty: 20,
|
||||
@ -132,7 +132,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.001,
|
||||
baseWanted: 1.25,
|
||||
baseMoney: 120,
|
||||
baseMoney: 360,
|
||||
hackWeight: 75,
|
||||
chaWeight: 25,
|
||||
difficulty: 25,
|
||||
@ -158,7 +158,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
name: "Ethical Hacking",
|
||||
params: {
|
||||
baseWanted: -0.001,
|
||||
baseMoney: 1,
|
||||
baseMoney: 3,
|
||||
hackWeight: 90,
|
||||
chaWeight: 10,
|
||||
difficulty: 1,
|
||||
@ -172,7 +172,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00005,
|
||||
baseWanted: 0.00005,
|
||||
baseMoney: 1.2,
|
||||
baseMoney: 3.6,
|
||||
strWeight: 25,
|
||||
defWeight: 25,
|
||||
dexWeight: 25,
|
||||
@ -189,7 +189,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00006,
|
||||
baseWanted: 0.002,
|
||||
baseMoney: 5,
|
||||
baseMoney: 15,
|
||||
agiWeight: 20,
|
||||
dexWeight: 20,
|
||||
chaWeight: 60,
|
||||
@ -209,7 +209,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00004,
|
||||
baseWanted: 0.02,
|
||||
baseMoney: 2.5,
|
||||
baseMoney: 7.5,
|
||||
hackWeight: 10,
|
||||
strWeight: 25,
|
||||
defWeight: 25,
|
||||
@ -232,7 +232,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00012,
|
||||
baseWanted: 0.05,
|
||||
baseMoney: 15,
|
||||
baseMoney: 45,
|
||||
strWeight: 5,
|
||||
defWeight: 5,
|
||||
agiWeight: 25,
|
||||
@ -249,7 +249,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.00014,
|
||||
baseWanted: 0.1,
|
||||
baseMoney: 38,
|
||||
baseMoney: 114,
|
||||
hackWeight: 20,
|
||||
strWeight: 15,
|
||||
defWeight: 15,
|
||||
@ -267,7 +267,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.0002,
|
||||
baseWanted: 0.24,
|
||||
baseMoney: 58,
|
||||
baseMoney: 174,
|
||||
hackWeight: 15,
|
||||
strWeight: 20,
|
||||
defWeight: 20,
|
||||
@ -289,7 +289,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.0002,
|
||||
baseWanted: 0.125,
|
||||
baseMoney: 24,
|
||||
baseMoney: 72,
|
||||
hackWeight: 25,
|
||||
strWeight: 25,
|
||||
dexWeight: 25,
|
||||
@ -305,7 +305,7 @@ export const gangMemberTasksMetadata: IGangMemberTaskMetadata[] = [
|
||||
params: {
|
||||
baseRespect: 0.004,
|
||||
baseWanted: 1.25,
|
||||
baseMoney: 120,
|
||||
baseMoney: 360,
|
||||
hackWeight: 30,
|
||||
strWeight: 5,
|
||||
defWeight: 5,
|
||||
|
@ -8,6 +8,7 @@ export interface INetscriptExtra {
|
||||
};
|
||||
exploit(): void;
|
||||
bypass(doc: Document): void;
|
||||
alterReality(): void;
|
||||
}
|
||||
|
||||
export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INetscriptExtra {
|
||||
@ -34,5 +35,13 @@ export function NetscriptExtra(player: IPlayer, workerScript: WorkerScript): INe
|
||||
doc.completely_unused_field = undefined;
|
||||
real_document.completely_unused_field = undefined;
|
||||
},
|
||||
alterReality: function (): void {
|
||||
const x = false;
|
||||
console.warn("I am sure that this variable is false");
|
||||
if (x !== false) {
|
||||
console.warn("Reality has been altered!");
|
||||
player.giveExploit(Exploit.RealityAlteration);
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ import { Factions } from "../../Faction/Factions";
|
||||
import { Faction } from "../../Faction/Faction";
|
||||
import { Gang } from "../../Gang/Gang";
|
||||
import { SourceFileFlags } from "../../SourceFile/SourceFileFlags";
|
||||
import { BitNodeMultipliers } from "../../BitNode/BitNodeMultipliers";
|
||||
import { IPlayer } from "../IPlayer";
|
||||
|
||||
// Amount of negative karma needed to manage a gang in BitNodes other than 2
|
||||
@ -16,7 +15,7 @@ export function canAccessGang(this: IPlayer): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
return this.karma <= BitNodeMultipliers.GangKarmaRequirement * GangKarmaRequirement;
|
||||
return this.karma <= GangKarmaRequirement;
|
||||
}
|
||||
|
||||
export function getGangFaction(this: IPlayer): Faction {
|
||||
|
Loading…
Reference in New Issue
Block a user