mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-30 03:23:48 +01:00
commit
9e04aef8d2
4
dist/engine.bundle.js
vendored
4
dist/engine.bundle.js
vendored
File diff suppressed because one or more lines are too long
24
dist/vendor.bundle.js
vendored
24
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
@ -1,5 +1,4 @@
|
|||||||
// Class definition for a single Augmentation object
|
// Class definition for a single Augmentation object
|
||||||
import { CONSTANTS } from "../Constants";
|
|
||||||
import { IMap } from "../types";
|
import { IMap } from "../types";
|
||||||
|
|
||||||
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
import { BitNodeMultipliers } from "../BitNode/BitNodeMultipliers";
|
||||||
@ -86,8 +85,8 @@ export class Augmentation {
|
|||||||
this.info = params.info;
|
this.info = params.info;
|
||||||
this.prereqs = params.prereqs ? params.prereqs : [];
|
this.prereqs = params.prereqs ? params.prereqs : [];
|
||||||
|
|
||||||
this.baseRepRequirement = params.repCost * CONSTANTS.AugmentationRepMultiplier * BitNodeMultipliers.AugmentationRepCost;
|
this.baseRepRequirement = params.repCost * BitNodeMultipliers.AugmentationRepCost;
|
||||||
this.baseCost = params.moneyCost * CONSTANTS.AugmentationCostMultiplier * BitNodeMultipliers.AugmentationMoneyCost;
|
this.baseCost = params.moneyCost * BitNodeMultipliers.AugmentationMoneyCost;
|
||||||
this.startingCost = this.baseCost;
|
this.startingCost = this.baseCost;
|
||||||
|
|
||||||
if (params.isSpecial) {
|
if (params.isSpecial) {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -78,6 +78,7 @@ export const AugmentationNames: IMap<string> = {
|
|||||||
PhotosyntheticCells: "Photosynthetic Cells",
|
PhotosyntheticCells: "Photosynthetic Cells",
|
||||||
Neurolink: "BitRunners Neurolink",
|
Neurolink: "BitRunners Neurolink",
|
||||||
TheBlackHand: "The Black Hand",
|
TheBlackHand: "The Black Hand",
|
||||||
|
UnstableCircadianModulator: "Unstable Circadian Modulator",
|
||||||
CRTX42AA: "CRTX42-AA Gene Modification",
|
CRTX42AA: "CRTX42-AA Gene Modification",
|
||||||
Neuregen: "Neuregen Gene Modification",
|
Neuregen: "Neuregen Gene Modification",
|
||||||
CashRoot: "CashRoot Starter Kit",
|
CashRoot: "CashRoot Starter Kit",
|
||||||
|
@ -48,10 +48,10 @@ export function PlayerMultipliers(): React.ReactElement {
|
|||||||
if(!Player.canAccessBladeburner()) return (<></>);
|
if(!Player.canAccessBladeburner()) return (<></>);
|
||||||
return (<>
|
return (<>
|
||||||
{MultiplierTable([
|
{MultiplierTable([
|
||||||
['Bladeburner Success Chance', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Success Chance', Player.bladeburner_success_chance_mult, Player.bladeburner_success_chance_mult*mults.bladeburner_success_chance_mult],
|
||||||
['Bladeburner Max Stamina', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Max Stamina', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
||||||
['Bladeburner Stamina Gain', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Stamina Gain', Player.bladeburner_stamina_gain_mult, Player.bladeburner_stamina_gain_mult*mults.bladeburner_stamina_gain_mult],
|
||||||
['Bladeburner Field Analysis', Player.bladeburner_max_stamina_mult, Player.bladeburner_max_stamina_mult*mults.bladeburner_max_stamina_mult],
|
['Bladeburner Field Analysis', Player.bladeburner_analysis_mult, Player.bladeburner_analysis_mult*mults.bladeburner_analysis_mult],
|
||||||
])}<br />
|
])}<br />
|
||||||
</>);
|
</>);
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,6 @@ export const CONSTANTS: IMap<any> = {
|
|||||||
PurchasedServerMaxRam: 1048576, // 2^20
|
PurchasedServerMaxRam: 1048576, // 2^20
|
||||||
|
|
||||||
// Augmentation Constants
|
// Augmentation Constants
|
||||||
AugmentationCostMultiplier: 5, // Used for balancing costs without having to readjust every Augmentation cost
|
|
||||||
AugmentationRepMultiplier: 2.5, // Used for balancing rep cost without having to readjust every value
|
|
||||||
MultipleAugMultiplier: 1.9,
|
MultipleAugMultiplier: 1.9,
|
||||||
|
|
||||||
// TOR Router
|
// TOR Router
|
||||||
|
@ -14,6 +14,7 @@ import { AllServers } from "./Server/AllServers";
|
|||||||
import { GetServerByHostname } from "./Server/ServerHelpers";
|
import { GetServerByHostname } from "./Server/ServerHelpers";
|
||||||
import { hackWorldDaemon } from "./RedPill";
|
import { hackWorldDaemon } from "./RedPill";
|
||||||
import { StockMarket } from "./StockMarket/StockMarket";
|
import { StockMarket } from "./StockMarket/StockMarket";
|
||||||
|
import { Bladeburner } from "./Bladeburner";
|
||||||
import { Stock } from "./StockMarket/Stock";
|
import { Stock } from "./StockMarket/Stock";
|
||||||
import { Engine } from "./engine";
|
import { Engine } from "./engine";
|
||||||
import { saveObject } from "./SaveObject";
|
import { saveObject } from "./SaveObject";
|
||||||
@ -145,6 +146,10 @@ class DevMenuComponent extends Component {
|
|||||||
hackWorldDaemon(Player.bitNodeN, true);
|
hackWorldDaemon(Player.bitNodeN, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
quickHackW0r1dD43m0n() {
|
||||||
|
hackWorldDaemon(Player.bitNodeN, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
hackW0r1dD43m0n() {
|
hackW0r1dD43m0n() {
|
||||||
hackWorldDaemon(Player.bitNodeN);
|
hackWorldDaemon(Player.bitNodeN);
|
||||||
}
|
}
|
||||||
@ -708,7 +713,6 @@ class DevMenuComponent extends Component {
|
|||||||
contractTypes.push(<option key={name} value={name}>{name}</option>);
|
contractTypes.push(<option key={name} value={name}>{name}</option>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -728,6 +732,7 @@ class DevMenuComponent extends Component {
|
|||||||
<div className="row">
|
<div className="row">
|
||||||
<button className="std-button" onClick={this.quickB1tFlum3}>Quick b1t_flum3.exe</button>
|
<button className="std-button" onClick={this.quickB1tFlum3}>Quick b1t_flum3.exe</button>
|
||||||
<button className="std-button" onClick={this.b1tflum3}>Run b1t_flum3.exe</button>
|
<button className="std-button" onClick={this.b1tflum3}>Run b1t_flum3.exe</button>
|
||||||
|
<button className="std-button" onClick={this.quickHackW0r1dD43m0n}>Quick w0rld_d34m0n</button>
|
||||||
<button className="std-button" onClick={this.hackW0r1dD43m0n}>Hack w0rld_d34m0n</button>
|
<button className="std-button" onClick={this.hackW0r1dD43m0n}>Hack w0rld_d34m0n</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -741,7 +746,7 @@ class DevMenuComponent extends Component {
|
|||||||
<td><span className="text text-center">All:</span></td>
|
<td><span className="text text-center">All:</span></td>
|
||||||
<td>
|
<td>
|
||||||
<button className="std-button tooltip" onClick={this.tonsOfExp}>Tons of exp<span className="tooltiptext">Sometimes you just need a ton of experience in every stat</span></button>
|
<button className="std-button tooltip" onClick={this.tonsOfExp}>Tons of exp<span className="tooltiptext">Sometimes you just need a ton of experience in every stat</span></button>
|
||||||
<button className="std-button tooltip" onClick={this.resetAllExp}>Reset<span className="tooltiptext">Sometimes you just need a ton of experience in every stat</span></button>
|
<button className="std-button tooltip" onClick={this.resetAllExp}>Reset<span className="tooltiptext">Reset all experience to 0</span></button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -1066,6 +1071,7 @@ class DevMenuComponent extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{Player.bladeburner instanceof Bladeburner &&
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1101,7 +1107,9 @@ class DevMenuComponent extends Component {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
{Player.inGang() &&
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1125,7 +1133,9 @@ class DevMenuComponent extends Component {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
{Player.hasCorporation() &&
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1152,6 +1162,7 @@ class DevMenuComponent extends Component {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1181,7 +1192,7 @@ class DevMenuComponent extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{Player.hasWseAccount &&
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1208,8 +1219,9 @@ class DevMenuComponent extends Component {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
{Player.sleeves.length > 0 &&
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
<div className="row">
|
<div className="row">
|
||||||
@ -1231,6 +1243,7 @@ class DevMenuComponent extends Component {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<div className="row">
|
<div className="row">
|
||||||
<div className="col">
|
<div className="col">
|
||||||
|
@ -190,8 +190,8 @@ export function purchaseAugmentation(aug, fac, sing=false) {
|
|||||||
var nextLevel = getNextNeurofluxLevel();
|
var nextLevel = getNextNeurofluxLevel();
|
||||||
--nextLevel;
|
--nextLevel;
|
||||||
var mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);
|
var mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, nextLevel);
|
||||||
aug.baseRepRequirement = 500 * mult * CONSTANTS.AugmentationRepMultiplier * BitNodeMultipliers.AugmentationRepCost;
|
aug.baseRepRequirement = 500 * mult * BitNodeMultipliers.AugmentationRepCost;
|
||||||
aug.baseCost = 750e3 * mult * CONSTANTS.AugmentationCostMultiplier * BitNodeMultipliers.AugmentationMoneyCost;
|
aug.baseCost = 750e3 * mult * BitNodeMultipliers.AugmentationMoneyCost;
|
||||||
|
|
||||||
for (var i = 0; i < Player.queuedAugmentations.length-1; ++i) {
|
for (var i = 0; i < Player.queuedAugmentations.length-1; ++i) {
|
||||||
aug.baseCost *= CONSTANTS.MultipleAugMultiplier;
|
aug.baseCost *= CONSTANTS.MultipleAugMultiplier;
|
||||||
|
@ -74,7 +74,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
// Endgame
|
// Endgame
|
||||||
Illuminati: new FactionInfo(
|
Illuminati: new FactionInfo(
|
||||||
"Humanity never changes. No matter how civilized society becomes, it will eventually fall back into chaos. " +
|
"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. ",
|
"And from this chaos, we are the invisible hand that guides them to order. ",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -112,7 +112,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
MegaCorp: new FactionInfo(
|
MegaCorp: new FactionInfo(
|
||||||
"MegaCorp does things that others don't. We imagine. We create. We invent. We build things that others have " +
|
"MegaCorp does what no other dares to do. We imagine. We create. We invent. We create what others have " +
|
||||||
"never even dreamed of. Our work fills the world's needs for food, water, power, and transporation on an " +
|
"never even dreamed of. Our work fills the world's needs for food, water, power, and transporation on an " +
|
||||||
"unprecendented scale, in ways that no other company can.<br>" +
|
"unprecendented scale, in ways that no other company can.<br>" +
|
||||||
"<br>" +
|
"<br>" +
|
||||||
@ -126,7 +126,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
"Bachman & Associates": new FactionInfo(
|
"Bachman & Associates": new FactionInfo(
|
||||||
"Where Law and Business meet - thats where we are.<br>" +
|
"Where Law and Business meet - thats where we are.<br>" +
|
||||||
"<br>" +
|
"<br>" +
|
||||||
"Legal Insight - Business Instinct - Experience Innovation",
|
"Legal Insight - Business Instinct - Innovative Experience.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -134,7 +134,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
"Blade Industries": new FactionInfo(
|
"Blade Industries": new FactionInfo(
|
||||||
"Augmentation is salvation",
|
"Augmentation is Salvation.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -142,8 +142,8 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
NWO: new FactionInfo(
|
NWO: new FactionInfo(
|
||||||
"The human being does not truly desire freedom. It wants to be observed, understood, and judged. It wants to " +
|
"Humans don't truly desire freedom. They want to be observed, understood, and judged. They want to " +
|
||||||
"be given purpose and direction in its life. That is why humans created God. And that is why humans created " +
|
"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 " +
|
"civilization - not because of willingness, but because of a need to be incorporated into higher orders of " +
|
||||||
"structure and meaning.",
|
"structure and meaning.",
|
||||||
[],
|
[],
|
||||||
@ -153,7 +153,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
"Clarke Incorporated": new FactionInfo(
|
"Clarke Incorporated": new FactionInfo(
|
||||||
"Unlocking the power of the genome",
|
"The Power of the Genome - Unlocked.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -161,7 +161,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
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.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -203,7 +203,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
"leave behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be " +
|
"leave behind their bits, mere traces of seemingly meaningless fragments of information. But these bits can be " +
|
||||||
"reconstructed. Transformed. Used.<br>" +
|
"reconstructed. Transformed. Used.<br>" +
|
||||||
"<br>" +
|
"<br>" +
|
||||||
"Those who run the bits, run the world",
|
"Those who run the bits, run the world.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -266,7 +266,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
|
|
||||||
// City factions, essentially governments
|
// City factions, essentially governments
|
||||||
Aevum: new FactionInfo(
|
Aevum: new FactionInfo(
|
||||||
"The Silicon City",
|
"The Silicon City.",
|
||||||
[
|
[
|
||||||
"Chongqing",
|
"Chongqing",
|
||||||
"New Tokyo",
|
"New Tokyo",
|
||||||
@ -278,7 +278,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true,
|
true,
|
||||||
true),
|
true),
|
||||||
Chongqing: new FactionInfo(
|
Chongqing: new FactionInfo(
|
||||||
"Serve the people",
|
"Serve the People.",
|
||||||
[
|
[
|
||||||
"Sector-12",
|
"Sector-12",
|
||||||
"Aevum",
|
"Aevum",
|
||||||
@ -289,7 +289,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true,
|
true,
|
||||||
true),
|
true),
|
||||||
Ishima: new FactionInfo(
|
Ishima: new FactionInfo(
|
||||||
"The East Asian Order of the Future",
|
"The East Asian Order of the Future.",
|
||||||
[
|
[
|
||||||
"Sector-12",
|
"Sector-12",
|
||||||
"Aevum",
|
"Aevum",
|
||||||
@ -300,7 +300,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true,
|
true,
|
||||||
true),
|
true),
|
||||||
"New Tokyo": new FactionInfo(
|
"New Tokyo": new FactionInfo(
|
||||||
"Asia's World City",
|
"Asia's World City.",
|
||||||
[
|
[
|
||||||
"Sector-12",
|
"Sector-12",
|
||||||
"Aevum",
|
"Aevum",
|
||||||
@ -311,7 +311,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true,
|
true,
|
||||||
true),
|
true),
|
||||||
"Sector-12": new FactionInfo(
|
"Sector-12": new FactionInfo(
|
||||||
"The City of the Future",
|
"The City of the Future.",
|
||||||
[
|
[
|
||||||
"Chongqing",
|
"Chongqing",
|
||||||
"New Tokyo",
|
"New Tokyo",
|
||||||
@ -323,7 +323,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true,
|
true,
|
||||||
true),
|
true),
|
||||||
Volhaven: new FactionInfo(
|
Volhaven: new FactionInfo(
|
||||||
"Benefit, Honour, and Glory",
|
"Benefit, Honor, and Glory.",
|
||||||
[
|
[
|
||||||
"Chongqing",
|
"Chongqing",
|
||||||
"Sector-12",
|
"Sector-12",
|
||||||
@ -338,7 +338,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
|
|
||||||
// Criminal Organizations/Gangs
|
// Criminal Organizations/Gangs
|
||||||
"Speakers for the Dead": new FactionInfo(
|
"Speakers for the Dead": new FactionInfo(
|
||||||
"It is better to reign in hell than to serve in heaven.",
|
"It is better to reign in Hell than to serve in Heaven.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -346,7 +346,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
"The Dark Army": new FactionInfo(
|
"The Dark Army": new FactionInfo(
|
||||||
"The World doesn't care about right or wrong. It's all about power.",
|
"The World doesn't care about right or wrong. It only cares about power.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -354,7 +354,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
false),
|
false),
|
||||||
|
|
||||||
"The Syndicate": new FactionInfo(
|
"The Syndicate": new FactionInfo(
|
||||||
"Honor holds you back",
|
"Honor holds you back.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -374,7 +374,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
false),
|
false),
|
||||||
|
|
||||||
Tetrads: new FactionInfo(
|
Tetrads: new FactionInfo(
|
||||||
"Following the Mandate of Heaven and Carrying out the Way",
|
"Following the mandate of Heaven and carrying out the way.",
|
||||||
[],
|
[],
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
@ -399,7 +399,7 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
false),
|
false),
|
||||||
|
|
||||||
"Tian Di Hui": new FactionInfo(
|
"Tian Di Hui": new FactionInfo(
|
||||||
"Obey Heaven and Work Righteousness",
|
"Obey Heaven and work righteously.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
@ -407,10 +407,10 @@ export const FactionInfos: IMap<FactionInfo> = {
|
|||||||
true),
|
true),
|
||||||
|
|
||||||
CyberSec: new FactionInfo(
|
CyberSec: new FactionInfo(
|
||||||
"The Internet is the first thing that humanity has built that humanity doesn’t understand, the largest " +
|
"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 the internet, " +
|
"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 " +
|
"society approaches the brink of total chaos. We serve only to protect society, to protect humanity, to " +
|
||||||
"protect the world from its imminent collapse.",
|
"protect the world from imminent collapse.",
|
||||||
[],
|
[],
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
|
@ -18,7 +18,6 @@ import {
|
|||||||
} from "../HacknetHelpers";
|
} from "../HacknetHelpers";
|
||||||
|
|
||||||
import { Player } from "../../Player";
|
import { Player } from "../../Player";
|
||||||
import { numeralWrapper } from "../../ui/numeralFormat";
|
|
||||||
|
|
||||||
import { Money } from "../../ui/React/Money";
|
import { Money } from "../../ui/React/Money";
|
||||||
import { Hashes } from "../../ui/React/Hashes";
|
import { Hashes } from "../../ui/React/Hashes";
|
||||||
|
@ -867,7 +867,7 @@ function NetscriptFunctions(workerScript) {
|
|||||||
if (workerScript.env.stopFlag) {return Promise.reject(workerScript);}
|
if (workerScript.env.stopFlag) {return Promise.reject(workerScript);}
|
||||||
const moneyBefore = server.moneyAvailable <= 0 ? 1 : server.moneyAvailable;
|
const moneyBefore = server.moneyAvailable <= 0 ? 1 : server.moneyAvailable;
|
||||||
server.moneyAvailable += (1 * threads); // It can be grown even if it has no money
|
server.moneyAvailable += (1 * threads); // It can be grown even if it has no money
|
||||||
var growthPercentage = processSingleServerGrowth(server, threads, Player);
|
processSingleServerGrowth(server, threads, Player);
|
||||||
const moneyAfter = server.moneyAvailable;
|
const moneyAfter = server.moneyAvailable;
|
||||||
workerScript.scriptRef.recordGrow(server.ip, threads);
|
workerScript.scriptRef.recordGrow(server.ip, threads);
|
||||||
var expGain = calculateHackingExpGain(server, Player) * threads;
|
var expGain = calculateHackingExpGain(server, Player) * threads;
|
||||||
|
@ -176,7 +176,7 @@ function prestigeAugmentation() {
|
|||||||
|
|
||||||
|
|
||||||
// Prestige by destroying Bit Node and gaining a Source File
|
// Prestige by destroying Bit Node and gaining a Source File
|
||||||
function prestigeSourceFile() {
|
function prestigeSourceFile(flume) {
|
||||||
initBitNodeMultipliers(Player);
|
initBitNodeMultipliers(Player);
|
||||||
updateSourceFileFlags(Player);
|
updateSourceFileFlags(Player);
|
||||||
|
|
||||||
@ -350,7 +350,8 @@ function prestigeSourceFile() {
|
|||||||
document.getElementById("world-menu-header").click();
|
document.getElementById("world-menu-header").click();
|
||||||
|
|
||||||
// Gain int exp
|
// Gain int exp
|
||||||
Player.gainIntelligenceExp(300);
|
if(SourceFileFlags[5] !== 0 && !flume)
|
||||||
|
Player.gainIntelligenceExp(300);
|
||||||
|
|
||||||
resetPidCounter();
|
resetPidCounter();
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ function giveSourceFile(bitNodeNumber) {
|
|||||||
} else {
|
} else {
|
||||||
var playerSrcFile = new PlayerOwnedSourceFile(bitNodeNumber, 1);
|
var playerSrcFile = new PlayerOwnedSourceFile(bitNodeNumber, 1);
|
||||||
Player.sourceFiles.push(playerSrcFile);
|
Player.sourceFiles.push(playerSrcFile);
|
||||||
if (bitNodeNumber === 5) { // Artificial Intelligence
|
if (bitNodeNumber === 5 && Player.intelligence === 0) { // Artificial Intelligence
|
||||||
Player.intelligence = 1;
|
Player.intelligence = 1;
|
||||||
}
|
}
|
||||||
dialogBoxCreate("You received a Source-File for destroying a Bit Node!<br><br>" +
|
dialogBoxCreate("You received a Source-File for destroying a Bit Node!<br><br>" +
|
||||||
@ -306,12 +306,16 @@ function createBitNodeYesNoEventListener(newBitNode, destroyedBitNode, flume=fal
|
|||||||
if (!flume) {
|
if (!flume) {
|
||||||
giveSourceFile(destroyedBitNode);
|
giveSourceFile(destroyedBitNode);
|
||||||
} else {
|
} else {
|
||||||
// If player used flume, subtract 300 int exp. The prestigeSourceFile()
|
if(SourceFileFlags[5] === 0 && newBitNode !== 5) {
|
||||||
// function below grants 300 int exp, so this allows sets net gain to 0
|
Player.intelligence = 0;
|
||||||
Player.gainIntelligenceExp(-300);
|
Player.intelligence_exp = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (newBitNode === 5 && Player.intelligence === 0) {
|
||||||
|
Player.intelligence = 1;
|
||||||
}
|
}
|
||||||
redPillFlag = false;
|
redPillFlag = false;
|
||||||
var container = document.getElementById("red-pill-content");
|
const container = document.getElementById("red-pill-content");
|
||||||
removeChildrenFromElement(container);
|
removeChildrenFromElement(container);
|
||||||
|
|
||||||
// Set new Bit Node
|
// Set new Bit Node
|
||||||
@ -323,7 +327,7 @@ function createBitNodeYesNoEventListener(newBitNode, destroyedBitNode, flume=fal
|
|||||||
document.getElementById("terminal-input-td").innerHTML = '$ <input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1"/>';
|
document.getElementById("terminal-input-td").innerHTML = '$ <input type="text" id="terminal-input-text-box" class="terminal-input" tabindex="1"/>';
|
||||||
$('input[class=terminal-input]').prop('disabled', false);
|
$('input[class=terminal-input]').prop('disabled', false);
|
||||||
|
|
||||||
prestigeSourceFile();
|
prestigeSourceFile(flume);
|
||||||
yesNoBoxClose();
|
yesNoBoxClose();
|
||||||
});
|
});
|
||||||
const noBtn = yesNoBoxGetNoButton();
|
const noBtn = yesNoBoxGetNoButton();
|
||||||
|
@ -80,7 +80,7 @@ export function CharacterInfo(p: IPlayer): React.ReactElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Intelligence(): React.ReactElement {
|
function Intelligence(): React.ReactElement {
|
||||||
if (p.intelligence > 0) {
|
if (p.intelligence > 0 && (p.bitNodeN === 5 || SourceFileFlags[5] > 0)) {
|
||||||
return <tr key="5">
|
return <tr key="5">
|
||||||
<td>Intelligence:</td>
|
<td>Intelligence:</td>
|
||||||
<td style={{textAlign: 'right'}}>{numeralWrapper.formatSkill(p.intelligence)}</td>
|
<td style={{textAlign: 'right'}}>{numeralWrapper.formatSkill(p.intelligence)}</td>
|
||||||
|
Loading…
Reference in New Issue
Block a user