diff --git a/dist/bundle.js b/dist/bundle.js index 286859af3..e6cdfabad 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -74,12 +74,12 @@ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__BitNode_js__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Company_js__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Crimes_js__ = __webpack_require__(40); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Faction_js__ = __webpack_require__(10); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Gang_js__ = __webpack_require__(29); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Server_js__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__SpecialServerIps_js__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__SourceFile_js__ = __webpack_require__(30); @@ -192,15 +192,8 @@ function PlayerObject() { this.sourceFiles = []; //Crime statistics + this.numPeopleKilled = 0; this.karma = 0; - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; - this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; this.crime_money_mult = 1; this.crime_success_mult = 1; @@ -259,11 +252,18 @@ function PlayerObject() { this.hasTixApiAccess = false; //Gang - this.gang = null; + this.gang = 0; //bitnode this.bitNodeN = 1; + //Flags for determining whether certain "thresholds" have been achieved + this.firstFacInvRecvd = false; + this.firstAugPurchased = false; + this.firstJobRecvd = false; + this.firstTimeTraveled = false; + this.firstProgramAvailable = false; + //Used to store the last update time. this.lastUpdate = 0; this.totalPlaytime = 0; @@ -294,16 +294,7 @@ PlayerObject.prototype.prestigeAugmentation = function() { this.currentServer = homeComp.ip; this.homeComputer = homeComp.ip; - //Crime statistics - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; - this.karma = 0; //Reset stats @@ -382,15 +373,7 @@ PlayerObject.prototype.prestigeSourceFile = function() { this.currentServer = homeComp.ip; this.homeComputer = homeComp.ip; - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; - this.karma = 0; //Reset stats @@ -1512,24 +1495,20 @@ PlayerObject.prototype.finishCrime = function(cancelled) { switch(this.crimeType) { case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeShoplift: this.karma -= 0.1; - ++this.numTimesShoplifted; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeRobStore: this.karma -= 0.5; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeMug: this.karma -= 0.25; - ++this.numPeopleMugged; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeLarceny: this.karma -= 1.5; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeDrugs: - ++this.numTimesDealtDrugs; this.karma -= 0.5; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeTraffickArms: - ++this.numTimesTraffickArms; this.karma -= 1; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeHomicide: @@ -1537,11 +1516,9 @@ PlayerObject.prototype.finishCrime = function(cancelled) { this.karma -= 3; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeGrandTheftAuto: - ++this.numTimesGrandTheftAuto; this.karma -= 5; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeKidnap: - ++this.numTimesKidnapped; this.karma -= 6; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeAssassination: @@ -1549,7 +1526,6 @@ PlayerObject.prototype.finishCrime = function(cancelled) { this.karma -= 10; break; case __WEBPACK_IMPORTED_MODULE_3__Constants_js__["a" /* CONSTANTS */].CrimeHeist: - ++this.numTimesHeist; this.karma -= 15; break; default: @@ -1725,6 +1701,8 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { this.companyName = company.companyName; this.companyPosition = pos; + Player.firstJobRecvd = true; + if (leaveCompany) { if (sing) {return true;} Object(__WEBPACK_IMPORTED_MODULE_14__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Congratulations! You were offered a new job at " + this.companyName + " as a " + @@ -1827,6 +1805,7 @@ PlayerObject.prototype.applyForAgentJob = function(sing=false) { PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { var company = __WEBPACK_IMPORTED_MODULE_2__Company_js__["a" /* Companies */][this.location]; //Company being applied to if (this.isQualified(company, __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].Employee)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].Employee; if (sing) {return true;} @@ -1841,6 +1820,7 @@ PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { var company = __WEBPACK_IMPORTED_MODULE_2__Company_js__["a" /* Companies */][this.location]; //Company being applied to if (this.isQualified(company, __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].PartTimeEmployee)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].PartTimeEmployee; if (sing) {return true;} @@ -1855,6 +1835,7 @@ PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForWaiterJob = function(sing=false) { var company = __WEBPACK_IMPORTED_MODULE_2__Company_js__["a" /* Companies */][this.location]; //Company being applied to if (this.isQualified(company, __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].Waiter)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].Waiter; if (sing) {return true;} @@ -1869,6 +1850,7 @@ PlayerObject.prototype.applyForWaiterJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeWaiterJob = function(sing=false) { var company = __WEBPACK_IMPORTED_MODULE_2__Company_js__["a" /* Companies */][this.location]; //Company being applied to if (this.isQualified(company, __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].PartTimeWaiter)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = __WEBPACK_IMPORTED_MODULE_2__Company_js__["d" /* CompanyPositions */].PartTimeWaiter; if (sing) {return true;} @@ -2258,6 +2240,10 @@ PlayerObject.prototype.inGang = function() { return (this.gang instanceof __WEBPACK_IMPORTED_MODULE_8__Gang_js__["b" /* Gang */]); } +PlayerObject.prototype.startGang = function(factionName, hacking) { + this.gang = new __WEBPACK_IMPORTED_MODULE_8__Gang_js__["b" /* Gang */](factionName, hacking); +} + /************* BitNodes **************/ PlayerObject.prototype.setBitNodeNumber = function(n) { this.bitNodeN = n; @@ -3334,23 +3320,23 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__BitNode_js__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Company_js__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Faction_js__ = __webpack_require__(10); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Gang_js__ = __webpack_require__(29); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__HacknetNode_js__ = __webpack_require__(32); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__InteractiveTutorial_js__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Literature_js__ = __webpack_require__(43); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__Location_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Gang_js__ = __webpack_require__(29); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__HacknetNode_js__ = __webpack_require__(32); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__InteractiveTutorial_js__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__Literature_js__ = __webpack_require__(43); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Message_js__ = __webpack_require__(24); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__NetscriptFunctions_js__ = __webpack_require__(39); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Prestige_js__ = __webpack_require__(31); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__RedPill_js__ = __webpack_require__(44); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__SaveObject_js__ = __webpack_require__(58); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Script_js__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__SourceFile_js__ = __webpack_require__(30); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__SpecialServerIps_js__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__StockMarket_js__ = __webpack_require__(25); @@ -3595,7 +3581,7 @@ let Engine = { loadHacknetNodesContent: function() { Engine.hideAllContent(); Engine.Display.hacknetNodesContent.style.visibility = "visible"; - Object(__WEBPACK_IMPORTED_MODULE_14__HacknetNode_js__["a" /* displayHacknetNodesContent */])(); + Object(__WEBPACK_IMPORTED_MODULE_15__HacknetNode_js__["a" /* displayHacknetNodesContent */])(); Engine.currentPage = Engine.Page.HacknetNodes; document.getElementById("hacknet-nodes-menu-link").classList.add("active"); }, @@ -3649,29 +3635,29 @@ let Engine = { loadLocationContent: function() { Engine.hideAllContent(); Engine.Display.locationContent.style.visibility = "visible"; - Object(__WEBPACK_IMPORTED_MODULE_17__Location_js__["b" /* displayLocationContent */])(); + Object(__WEBPACK_IMPORTED_MODULE_13__Location_js__["b" /* displayLocationContent */])(); Engine.currentPage = Engine.Page.Location; }, loadTravelContent: function() { switch(__WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].city) { - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Aevum: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].AevumTravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Aevum: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].AevumTravelAgency; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Chongqing: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].ChongqingTravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Chongqing: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].ChongqingTravelAgency; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Sector12: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Sector12TravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Sector12: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Sector12TravelAgency; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].NewTokyo: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].NewTokyoTravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].NewTokyo: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].NewTokyoTravelAgency; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Ishima: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].IshimaTravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Ishima: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].IshimaTravelAgency; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Volhaven: - __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].VolhavenTravelAgency; + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Volhaven: + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].location = __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].VolhavenTravelAgency; break; default: Object(__WEBPACK_IMPORTED_MODULE_0__utils_DialogBox_js__["a" /* dialogBoxCreate */])("ERROR: Invalid city. This is a bug please contact game dev"); @@ -3722,7 +3708,7 @@ let Engine = { loadGangContent: function() { Engine.hideAllContent(); if (document.getElementById("gang-container") || __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].inGang()) { - Object(__WEBPACK_IMPORTED_MODULE_13__Gang_js__["c" /* displayGangContent */])(); + Object(__WEBPACK_IMPORTED_MODULE_14__Gang_js__["c" /* displayGangContent */])(); Engine.currentPage = Engine.Page.Gang; } else { Engine.loadTerminalContent(); @@ -3869,22 +3855,22 @@ let Engine = { document.getElementById("world-city-name").innerHTML = __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].city; var cityDesc = document.getElementById("world-city-desc"); //TODO switch(__WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].city) { - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Aevum: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Aevum: Engine.aevumLocationsList.style.display = "inline"; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Chongqing: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Chongqing: Engine.chongqingLocationsList.style.display = "inline"; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Sector12: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Sector12: Engine.sector12LocationsList.style.display = "inline"; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].NewTokyo: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].NewTokyo: Engine.newTokyoLocationsList.style.display = "inline"; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Ishima: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Ishima: Engine.ishimaLocationsList.style.display = "inline"; break; - case __WEBPACK_IMPORTED_MODULE_17__Location_js__["a" /* Locations */].Volhaven: + case __WEBPACK_IMPORTED_MODULE_13__Location_js__["a" /* Locations */].Volhaven: Engine.volhavenLocationsList.style.display = "inline"; break; default: @@ -4164,7 +4150,7 @@ let Engine = { Object(__WEBPACK_IMPORTED_MODULE_20__NetscriptWorker_js__["g" /* updateOnlineScriptTimes */])(numCycles); //Hacknet Nodes - Object(__WEBPACK_IMPORTED_MODULE_14__HacknetNode_js__["c" /* processAllHacknetNodeEarnings */])(numCycles); + Object(__WEBPACK_IMPORTED_MODULE_15__HacknetNode_js__["c" /* processAllHacknetNodeEarnings */])(numCycles); }, //Counters for the main event loop. Represent the number of game cycles are required @@ -4210,7 +4196,7 @@ let Engine = { if (Engine.currentPage == Engine.Page.CharacterInfo) { Engine.displayCharacterInfo(); } else if (Engine.currentPage == Engine.Page.HacknetNodes) { - Object(__WEBPACK_IMPORTED_MODULE_14__HacknetNode_js__["e" /* updateHacknetNodesContent */])(); + Object(__WEBPACK_IMPORTED_MODULE_15__HacknetNode_js__["e" /* updateHacknetNodesContent */])(); } else if (Engine.currentPage == Engine.Page.CreateProgram) { Object(__WEBPACK_IMPORTED_MODULE_11__CreateProgram_js__["b" /* displayCreateProgramContent */])(); } @@ -4231,7 +4217,7 @@ let Engine = { if (Engine.Counters.updateDisplaysLong <= 0) { if (Engine.currentPage === Engine.Page.Gang) { - Object(__WEBPACK_IMPORTED_MODULE_13__Gang_js__["e" /* updateGangContent */])(); + Object(__WEBPACK_IMPORTED_MODULE_14__Gang_js__["e" /* updateGangContent */])(); } Engine.Counters.updateDisplaysLong = 15; } @@ -4252,6 +4238,7 @@ let Engine = { if (Engine.Counters.checkFactionInvitations <= 0) { var invitedFactions = __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].checkForFactionInvitations(); if (invitedFactions.length > 0) { + __WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].firstFacInvRecvd = true; var randFaction = invitedFactions[Math.floor(Math.random() * invitedFactions.length)]; Object(__WEBPACK_IMPORTED_MODULE_12__Faction_js__["g" /* inviteToFaction */])(randFaction); } @@ -4392,7 +4379,7 @@ let Engine = { if (__WEBPACK_IMPORTED_MODULE_21__Player_js__["a" /* Player */].hasWseAccount) { Object(__WEBPACK_IMPORTED_MODULE_30__StockMarket_js__["f" /* initSymbolToStockMap */])(); } - Object(__WEBPACK_IMPORTED_MODULE_16__Literature_js__["a" /* initLiterature */])(); + Object(__WEBPACK_IMPORTED_MODULE_17__Literature_js__["a" /* initLiterature */])(); Object(__WEBPACK_IMPORTED_MODULE_19__NetscriptFunctions_js__["c" /* initSingularitySFFlags */])(); //Calculate the number of cycles have elapsed while offline @@ -4420,7 +4407,7 @@ let Engine = { } //Hacknet Nodes offline progress - var offlineProductionFromHacknetNodes = Object(__WEBPACK_IMPORTED_MODULE_14__HacknetNode_js__["c" /* processAllHacknetNodeEarnings */])(numCyclesOffline); + var offlineProductionFromHacknetNodes = Object(__WEBPACK_IMPORTED_MODULE_15__HacknetNode_js__["c" /* processAllHacknetNodeEarnings */])(numCyclesOffline); //Passive faction rep gain offline Object(__WEBPACK_IMPORTED_MODULE_12__Faction_js__["j" /* processPassiveFactionRepGain */])(numCyclesOffline); @@ -4500,7 +4487,7 @@ let Engine = { Object(__WEBPACK_IMPORTED_MODULE_7__Augmentations_js__["g" /* initAugmentations */])(); Object(__WEBPACK_IMPORTED_MODULE_18__Message_js__["d" /* initMessages */])(); Object(__WEBPACK_IMPORTED_MODULE_30__StockMarket_js__["e" /* initStockSymbols */])(); - Object(__WEBPACK_IMPORTED_MODULE_16__Literature_js__["a" /* initLiterature */])(); + Object(__WEBPACK_IMPORTED_MODULE_17__Literature_js__["a" /* initLiterature */])(); Object(__WEBPACK_IMPORTED_MODULE_19__NetscriptFunctions_js__["c" /* initSingularitySFFlags */])(); //Open main menu accordions for new game @@ -4541,7 +4528,7 @@ let Engine = { options.style.display = "block"; //Start interactive tutorial - Object(__WEBPACK_IMPORTED_MODULE_15__InteractiveTutorial_js__["d" /* iTutorialStart */])(); + Object(__WEBPACK_IMPORTED_MODULE_16__InteractiveTutorial_js__["d" /* iTutorialStart */])(); Engine.removeLoadingScreen(); } //Initialize labels on game settings @@ -4618,7 +4605,7 @@ let Engine = { Engine.Display.redPillContent.style.visibility = "hidden"; //Init Location buttons - Object(__WEBPACK_IMPORTED_MODULE_17__Location_js__["c" /* initLocationButtons */])(); + Object(__WEBPACK_IMPORTED_MODULE_13__Location_js__["c" /* initLocationButtons */])(); //Tutorial buttons Engine.Clickables.tutorialNetworkingButton = document.getElementById("tutorial-networking-link"); @@ -5247,7 +5234,7 @@ function numNetscriptOperators(string) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return prestigeHomeComputer; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__BitNode_js__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Script_js__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__SpecialServerIps_js__ = __webpack_require__(11); @@ -16548,16 +16535,19 @@ function initBitNodeMultipliers() { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__BitNode_js__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Player_js__ = __webpack_require__(0); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__engine_js__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__ = __webpack_require__(53); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__ = __webpack_require__(2); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_FactionInvitationBox_js__ = __webpack_require__(54); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__ = __webpack_require__(7); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__ = __webpack_require__(5); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__engine_js__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__ = __webpack_require__(53); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Location_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Player_js__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Settings_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_FactionInvitationBox_js__ = __webpack_require__(54); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_JSONReviver_js__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__ = __webpack_require__(20); + + @@ -16576,12 +16566,12 @@ function initBitNodeMultipliers() { //Netburner Faction class function factionInit() { $('#faction-donate-input').on('input', function() { - if (__WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].currentPage == __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].Page.Faction) { + if (__WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].currentPage == __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].Page.Faction) { var val = document.getElementById("faction-donate-input").value; - if (Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["d" /* isPositiveNumber */])(val)) { + if (Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["d" /* isPositiveNumber */])(val)) { var numMoneyDonate = Number(val); document.getElementById("faction-donate-rep-gain").innerHTML = - "This donation will result in " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(numMoneyDonate/1000000 * __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].faction_rep_mult, 3) + " reputation gain"; + "This donation will result in " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(numMoneyDonate/1000000 * __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].faction_rep_mult, 3) + " reputation gain"; } else { document.getElementById("faction-donate-rep-gain").innerHTML = "This donation will result in 0 reputation gain"; @@ -16662,20 +16652,20 @@ Faction.prototype.addAllAugmentations = function() { } Faction.prototype.toJSON = function() { - return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["b" /* Generic_toJSON */])("Faction", this); + return Object(__WEBPACK_IMPORTED_MODULE_11__utils_JSONReviver_js__["b" /* Generic_toJSON */])("Faction", this); } Faction.fromJSON = function(value) { - return Object(__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(Faction, value.data); + return Object(__WEBPACK_IMPORTED_MODULE_11__utils_JSONReviver_js__["a" /* Generic_fromJSON */])(Faction, value.data); } -__WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["c" /* Reviver */].constructors.Faction = Faction; +__WEBPACK_IMPORTED_MODULE_11__utils_JSONReviver_js__["c" /* Reviver */].constructors.Faction = Faction; //Map of factions indexed by faction name let Factions = {} function loadFactions(saveString) { - Factions = JSON.parse(saveString, __WEBPACK_IMPORTED_MODULE_10__utils_JSONReviver_js__["c" /* Reviver */]); + Factions = JSON.parse(saveString, __WEBPACK_IMPORTED_MODULE_11__utils_JSONReviver_js__["c" /* Reviver */]); } function AddToFactions(faction) { @@ -16692,7 +16682,7 @@ function factionExists(name) { function initFactions() { //Endgame var Illuminati = new Faction("Illuminati"); - Illuminati.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].IlluminatiInfo); + Illuminati.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].IlluminatiInfo); if (factionExists("Illuminati")) { Illuminati.favor = Factions["Illuminati"].favor; delete Factions["Illuminati"]; @@ -16700,7 +16690,7 @@ function initFactions() { AddToFactions(Illuminati); var Daedalus = new Faction("Daedalus"); - Daedalus.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].DaedalusInfo); + Daedalus.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].DaedalusInfo); if (factionExists("Daedalus")) { Daedalus.favor = Factions["Daedalus"].favor; delete Factions["Daedalus"]; @@ -16708,7 +16698,7 @@ function initFactions() { AddToFactions(Daedalus); var Covenant = new Faction("The Covenant"); - Covenant.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].CovenantInfo); + Covenant.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].CovenantInfo); if (factionExists("The Covenant")) { Covenant.favor = Factions["The Covenant"].favor; delete Factions["The Covenant"]; @@ -16717,7 +16707,7 @@ function initFactions() { //Megacorporations, each forms its own faction var ECorp = new Faction("ECorp"); - ECorp.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].ECorpInfo); + ECorp.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].ECorpInfo); if (factionExists("ECorp")) { ECorp.favor = Factions["ECorp"].favor; delete Factions["ECorp"]; @@ -16725,7 +16715,7 @@ function initFactions() { AddToFactions(ECorp); var MegaCorp = new Faction("MegaCorp"); - MegaCorp.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].MegaCorpInfo); + MegaCorp.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].MegaCorpInfo); if (factionExists("MegaCorp")) { MegaCorp.favor = Factions["MegaCorp"].favor; delete Factions["MegaCorp"]; @@ -16733,7 +16723,7 @@ function initFactions() { AddToFactions(MegaCorp); var BachmanAndAssociates = new Faction("Bachman & Associates"); - BachmanAndAssociates.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].BachmanAndAssociatesInfo); + BachmanAndAssociates.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].BachmanAndAssociatesInfo); if (factionExists("Bachman & Associates")) { BachmanAndAssociates.favor = Factions["Bachman & Associates"].favor; delete Factions["Bachman & Associates"]; @@ -16741,7 +16731,7 @@ function initFactions() { AddToFactions(BachmanAndAssociates); var BladeIndustries = new Faction("Blade Industries"); - BladeIndustries.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].BladeIndustriesInfo); + BladeIndustries.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].BladeIndustriesInfo); if (factionExists("Blade Industries")) { BladeIndustries.favor = Factions["Blade Industries"].favor; delete Factions["Blade Industries"]; @@ -16749,7 +16739,7 @@ function initFactions() { AddToFactions(BladeIndustries); var NWO = new Faction("NWO"); - NWO.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].NWOInfo); + NWO.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].NWOInfo); if (factionExists("NWO")) { NWO.favor = Factions["NWO"].favor; delete Factions["NWO"]; @@ -16757,7 +16747,7 @@ function initFactions() { AddToFactions(NWO); var ClarkeIncorporated = new Faction("Clarke Incorporated"); - ClarkeIncorporated.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].ClarkeIncorporatedInfo); + ClarkeIncorporated.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].ClarkeIncorporatedInfo); if (factionExists("Clarke Incorporated")) { ClarkeIncorporated.favor = Factions["Clarke Incorporated"].favor; delete Factions["Clarke Incorporated"]; @@ -16765,7 +16755,7 @@ function initFactions() { AddToFactions(ClarkeIncorporated); var OmniTekIncorporated = new Faction("OmniTek Incorporated"); - OmniTekIncorporated.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].OmniTekIncorporatedInfo); + OmniTekIncorporated.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].OmniTekIncorporatedInfo); if (factionExists("OmniTek Incorporated")) { OmniTekIncorporated.favor = Factions["OmniTek Incorporated"].favor; delete Factions["OmniTek Incorporated"]; @@ -16773,7 +16763,7 @@ function initFactions() { AddToFactions(OmniTekIncorporated); var FourSigma = new Faction("Four Sigma"); - FourSigma.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].FourSigmaInfo); + FourSigma.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].FourSigmaInfo); if (factionExists("Four Sigma")) { FourSigma.favor = Factions["Four Sigma"].favor; delete Factions["Four Sigma"]; @@ -16781,7 +16771,7 @@ function initFactions() { AddToFactions(FourSigma); var KuaiGongInternational = new Faction("KuaiGong International"); - KuaiGongInternational.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].KuaiGongInternationalInfo); + KuaiGongInternational.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].KuaiGongInternationalInfo); if (factionExists("KuaiGong International")) { KuaiGongInternational.favor = Factions["KuaiGong International"].favor; delete Factions["KuaiGong International"]; @@ -16790,7 +16780,7 @@ function initFactions() { //Other corporations var FulcrumTechnologies = new Faction("Fulcrum Secret Technologies"); - FulcrumTechnologies.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].FulcrumSecretTechnologiesInfo); + FulcrumTechnologies.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].FulcrumSecretTechnologiesInfo); if (factionExists("Fulcrum Secret Technologies")) { FulcrumTechnologies.favor = Factions["Fulcrum Secret Technologies"].favor; delete Factions["Fulcrum Secret Technologies"]; @@ -16799,7 +16789,7 @@ function initFactions() { //Hacker groups var BitRunners = new Faction("BitRunners"); - BitRunners.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].BitRunnersInfo); + BitRunners.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].BitRunnersInfo); if (factionExists("BitRunners")) { BitRunners.favor = Factions["BitRunners"].favor; delete Factions["BitRunners"]; @@ -16807,7 +16797,7 @@ function initFactions() { AddToFactions(BitRunners); var BlackHand = new Faction("The Black Hand"); - BlackHand.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].BlackHandInfo); + BlackHand.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].BlackHandInfo); if (factionExists("The Black Hand")) { BlackHand.favor = Factions["The Black Hand"].favor; delete Factions["The Black Hand"]; @@ -16815,7 +16805,7 @@ function initFactions() { AddToFactions(BlackHand); var NiteSec = new Faction("NiteSec"); - NiteSec.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].NiteSecInfo); + NiteSec.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].NiteSecInfo); if (factionExists("NiteSec")) { NiteSec.favor = Factions["NiteSec"].favor; delete Factions["NiteSec"]; @@ -16824,7 +16814,7 @@ function initFactions() { //City factions, essentially governments var Chongqing = new Faction("Chongqing"); - Chongqing.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].ChongqingInfo); + Chongqing.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].ChongqingInfo); if (factionExists("Chongqing")) { Chongqing.favor = Factions["Chongqing"].favor; delete Factions["Chongqing"]; @@ -16832,7 +16822,7 @@ function initFactions() { AddToFactions(Chongqing); var Sector12 = new Faction("Sector-12"); - Sector12.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].Sector12Info); + Sector12.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].Sector12Info); if (factionExists("Sector-12")) { Sector12.favor = Factions["Sector-12"].favor; delete Factions["Sector-12"]; @@ -16840,7 +16830,7 @@ function initFactions() { AddToFactions(Sector12); var NewTokyo = new Faction("New Tokyo"); - NewTokyo.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].NewTokyoInfo); + NewTokyo.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].NewTokyoInfo); if (factionExists("New Tokyo")) { NewTokyo.favor = Factions["New Tokyo"].favor; delete Factions["New Tokyo"]; @@ -16848,7 +16838,7 @@ function initFactions() { AddToFactions(NewTokyo); var Aevum = new Faction("Aevum"); - Aevum.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].AevumInfo); + Aevum.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].AevumInfo); if (factionExists("Aevum")) { Aevum.favor = Factions["Aevum"].favor; delete Factions["Aevum"]; @@ -16858,12 +16848,12 @@ function initFactions() { var Ishima = new Faction("Ishima"); Ishima.setInfo var Volhaven = new Faction("Volhaven"); - Volhaven.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].VolhavenInfo); + Volhaven.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].VolhavenInfo); if (factionExists("Volhaven")) { Volhaven.favor = Factions["Volhaven"].favor; delete Factions["Volhaven"]; } - AddToFactions(Volhaven);(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].IshimaInfo); + AddToFactions(Volhaven);(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].IshimaInfo); if (factionExists("Ishima")) { Ishima.favor = Factions["Ishima"].favor; delete Factions["Ishima"]; @@ -16873,7 +16863,7 @@ function initFactions() { //Criminal Organizations/Gangs var SpeakersForTheDead = new Faction("Speakers for the Dead"); - SpeakersForTheDead.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].SpeakersForTheDeadInfo); + SpeakersForTheDead.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].SpeakersForTheDeadInfo); if (factionExists("Speakers for the Dead")) { SpeakersForTheDead.favor = Factions["Speakers for the Dead"].favor; delete Factions["Speakers for the Dead"]; @@ -16881,7 +16871,7 @@ function initFactions() { AddToFactions(SpeakersForTheDead); var DarkArmy = new Faction("The Dark Army"); - DarkArmy.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].DarkArmyInfo); + DarkArmy.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].DarkArmyInfo); if (factionExists("The Dark Army")) { DarkArmy.favor = Factions["The Dark Army"].favor; delete Factions["The Dark Army"]; @@ -16889,7 +16879,7 @@ function initFactions() { AddToFactions(DarkArmy); var TheSyndicate = new Faction("The Syndicate"); - TheSyndicate.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].TheSyndicateInfo); + TheSyndicate.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].TheSyndicateInfo); if (factionExists("The Syndicate")) { TheSyndicate.favor = Factions["The Syndicate"].favor; delete Factions["The Syndicate"]; @@ -16897,7 +16887,7 @@ function initFactions() { AddToFactions(TheSyndicate); var Silhouette = new Faction("Silhouette"); - Silhouette.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].SilhouetteInfo); + Silhouette.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].SilhouetteInfo); if (factionExists("Silhouette")) { Silhouette.favor = Factions["Silhouette"].favor; delete Factions["Silhouette"]; @@ -16905,7 +16895,7 @@ function initFactions() { AddToFactions(Silhouette); var Tetrads = new Faction("Tetrads"); //Low-medium level asian crime gang - Tetrads.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].TetradsInfo); + Tetrads.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].TetradsInfo); if (factionExists("Tetrads")) { Tetrads.favor = Factions["Tetrads"].favor; delete Factions["Tetrads"]; @@ -16913,7 +16903,7 @@ function initFactions() { AddToFactions(Tetrads); var SlumSnakes = new Faction("Slum Snakes"); //Low level crime gang - SlumSnakes.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].SlumSnakesInfo); + SlumSnakes.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].SlumSnakesInfo); if (factionExists("Slum Snakes")) { SlumSnakes.favor = Factions["Slum Snakes"].favor; delete Factions["Slum Snakes"]; @@ -16923,7 +16913,7 @@ function initFactions() { //Earlygame factions - factions the player will prestige with early on that don't //belong in other categories var Netburners = new Faction("Netburners"); - Netburners.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].NetburnersInfo); + Netburners.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].NetburnersInfo); if (factionExists("Netburners")) { Netburners.favor = Factions["Netburners"].favor; delete Factions["Netburners"]; @@ -16931,7 +16921,7 @@ function initFactions() { AddToFactions(Netburners); var TianDiHui = new Faction("Tian Di Hui"); //Society of the Heaven and Earth - TianDiHui.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].TianDiHuiInfo); + TianDiHui.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].TianDiHuiInfo); if (factionExists("Tian Di Hui")) { TianDiHui.favor = Factions["Tian Di Hui"].favor; delete Factions["Tian Di Hui"]; @@ -16939,7 +16929,7 @@ function initFactions() { AddToFactions(TianDiHui); var CyberSec = new Faction("CyberSec"); - CyberSec.setInfo(__WEBPACK_IMPORTED_MODULE_5__FactionInfo_js__["a" /* FactionInfo */].CyberSecInfo); + CyberSec.setInfo(__WEBPACK_IMPORTED_MODULE_4__FactionInfo_js__["a" /* FactionInfo */].CyberSecInfo); if (factionExists("CyberSec")) { CyberSec.favor = Factions["CyberSec"].favor; delete Factions["CyberSec"]; @@ -16948,17 +16938,17 @@ function initFactions() { } function inviteToFaction(faction) { - if (__WEBPACK_IMPORTED_MODULE_6__Settings_js__["a" /* Settings */].SuppressFactionInvites) { + if (__WEBPACK_IMPORTED_MODULE_7__Settings_js__["a" /* Settings */].SuppressFactionInvites) { faction.alreadyInvited = true; - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].factionInvitations.push(faction.name); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].factionInvitations.push(faction.name); } else { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_FactionInvitationBox_js__["a" /* factionInvitationBoxCreate */])(faction); + Object(__WEBPACK_IMPORTED_MODULE_9__utils_FactionInvitationBox_js__["a" /* factionInvitationBoxCreate */])(faction); } } function joinFaction(faction) { faction.isMember = true; - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].factions.push(faction.name); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].factions.push(faction.name); //Determine what factions you are banned from now that you have joined this faction if (faction.name == "Chongqing") { @@ -17000,11 +16990,11 @@ function displayFactionContent(factionName) { var repGain = faction.getFavorGain(); if (repGain.length != 2) {repGain = 0;} repGain = repGain[0]; - document.getElementById("faction-reputation").innerHTML = "Reputation: " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(faction.playerReputation, 4) + + document.getElementById("faction-reputation").innerHTML = "Reputation: " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(faction.playerReputation, 4) + "You will earn " + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(repGain, 4) + + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(repGain, 4) + " faction favor upon resetting after installing an Augmentation"; - document.getElementById("faction-favor").innerHTML = "Faction Favor: " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(faction.favor, 4) + + document.getElementById("faction-favor").innerHTML = "Faction Favor: " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(faction.favor, 4) + "Faction favor increases the rate at which " + "you earn reputation for this faction by 1% per favor. Faction favor " + "is gained whenever you reset after installing an Augmentation. The amount of " + @@ -17016,54 +17006,54 @@ function displayFactionContent(factionName) { var donateDiv = document.getElementById("faction-donate-div"); var gangDiv = document.getElementById("faction-gang-div"); - var newHackButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-hack-button"); - var newFieldWorkButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-fieldwork-button"); - var newSecurityWorkButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-securitywork-button"); - var newDonateWorkButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-donate-button"); + var newHackButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-hack-button"); + var newFieldWorkButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-fieldwork-button"); + var newSecurityWorkButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-securitywork-button"); + var newDonateWorkButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-donate-button"); newHackButton.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].startFactionHackWork(faction); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].startFactionHackWork(faction); return false; }); newFieldWorkButton.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].startFactionFieldWork(faction); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].startFactionFieldWork(faction); return false; }); newSecurityWorkButton.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].startFactionSecurityWork(faction); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].startFactionSecurityWork(faction); return false; }); newDonateWorkButton.addEventListener("click", function() { var donateAmountVal = document.getElementById("faction-donate-input").value; - if (Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["d" /* isPositiveNumber */])(donateAmountVal)) { + if (Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["d" /* isPositiveNumber */])(donateAmountVal)) { var numMoneyDonate = Number(donateAmountVal); - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].money.lt(numMoneyDonate)) { - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You cannot afford to donate this much money!"); + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].money.lt(numMoneyDonate)) { + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You cannot afford to donate this much money!"); return; } - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].loseMoney(numMoneyDonate); - var repGain = numMoneyDonate / 1000000 * __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].faction_rep_mult; + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].loseMoney(numMoneyDonate); + var repGain = numMoneyDonate / 1000000 * __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].faction_rep_mult; faction.playerReputation += repGain; - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You just donated $" + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(numMoneyDonate, 2) + " to " + - faction.name + " to gain " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(repGain, 3) + " reputation"); + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You just donated $" + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(numMoneyDonate, 2) + " to " + + faction.name + " to gain " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(repGain, 3) + " reputation"); displayFactionContent(factionName); } else { - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Invalid amount entered!"); + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Invalid amount entered!"); } return false; }); - var newPurchaseAugmentationsButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-purchase-augmentations"); + var newPurchaseAugmentationsButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-purchase-augmentations"); newPurchaseAugmentationsButton.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].hideAllContent(); - __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].Display.factionAugmentationsContent.style.visibility = "visible"; + __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].hideAllContent(); + __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].Display.factionAugmentationsContent.style.visibility = "visible"; - var newBackButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-augmentations-back-button"); + var newBackButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-augmentations-back-button"); newBackButton.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].loadFactionContent(); + __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].loadFactionContent(); displayFactionContent(factionName); return false; }); @@ -17071,7 +17061,7 @@ function displayFactionContent(factionName) { return false; }); - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].bitNodeN == 2 && (factionName == "Slum Snakes" || factionName == "Tetrads" || + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].bitNodeN == 2 && (factionName == "Slum Snakes" || factionName == "Tetrads" || factionName == "The Syndicate" || factionName == "The Dark Army" || factionName == "Speakers for the Dead" || factionName == "NiteSec" || factionName == "The Black Hand")) { //Set everything else to invisible @@ -17082,7 +17072,7 @@ function displayFactionContent(factionName) { var gangDiv = document.getElementById("faction-gang-div"); - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].inGang() && __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].gang.facName != factionName) { + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].inGang() && __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].gang.facName != factionName) { //If the player has a gang but its not for this faction if (gangDiv) { gangDiv.style.display = "none"; @@ -17111,34 +17101,34 @@ function displayFactionContent(factionName) { descText.parentNode.insertBefore(gangDiv, descText.nextSibling); } else { console.log("ERROR: faciton-work-description-text not found"); - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Error loading this page. This is a bug please report to game developer"); + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Error loading this page. This is a bug please report to game developer"); return; } } gangDiv.style.display = "inline"; - var gangButton = Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-gang-button"); + var gangButton = Object(__WEBPACK_IMPORTED_MODULE_10__utils_HelperFunctions_js__["b" /* clearEventListeners */])("faction-gang-button"); gangButton.addEventListener("click", function() { - if (!__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].inGang()) { - var yesBtn = Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["d" /* yesNoBoxGetYesButton */])(), noBtn = Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["c" /* yesNoBoxGetNoButton */])(); + if (!__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].inGang()) { + var yesBtn = Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["d" /* yesNoBoxGetYesButton */])(), noBtn = Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["c" /* yesNoBoxGetNoButton */])(); yesBtn.innerHTML = "Create Gang"; noBtn.innerHTML = "Cancel"; yesBtn.addEventListener("click", () => { var hacking = false; - if (factionName == "NiteSec" || factionName == "The Black Hand") {hacking = true;} - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].gang = new Gang(factionName, hacking); - __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].loadGangContent(); - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); + if (factionName === "NiteSec" || factionName === "The Black Hand") {hacking = true;} + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].startGang(factionName, hacking); + __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].loadGangContent(); + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); }); noBtn.addEventListener("click", () => { - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); }); - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["b" /* yesNoBoxCreate */])("Would you like to create a new Gang with " + factionName + "?

" + + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["b" /* yesNoBoxCreate */])("Would you like to create a new Gang with " + factionName + "?

" + "Note that this will prevent you from creating a Gang with any other Faction until " + "this BitNode is destroyed. There are NO differences between the Factions you can " + "create a Gang with and each of these Factions have all Augmentations available"); } else { - __WEBPACK_IMPORTED_MODULE_4__engine_js__["Engine"].loadGangContent(); + __WEBPACK_IMPORTED_MODULE_3__engine_js__["Engine"].loadGangContent(); } }); @@ -17337,13 +17327,13 @@ function displayFactionAugmentations(factionName) { return; } var owned = false; - for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations.length; ++j) { - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations[j].name == aug.name) { + for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations.length; ++j) { + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations[j].name == aug.name) { owned = true; } } - for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].augmentations.length; ++j) { - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].augmentations[j].name == aug.name) { + for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].augmentations.length; ++j) { + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].augmentations[j].name == aug.name) { owned = true; } } @@ -17360,10 +17350,10 @@ function displayFactionAugmentations(factionName) { pElem.innerHTML = "ALREADY OWNED"; } else if (faction.playerReputation >= req) { aElem.setAttribute("class", "a-link-button"); - pElem.innerHTML = "UNLOCKED - $" + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * faction.augmentationPriceMult, 2); + pElem.innerHTML = "UNLOCKED - $" + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * faction.augmentationPriceMult, 2); } else { aElem.setAttribute("class", "a-link-button-inactive"); - pElem.innerHTML = "LOCKED (Requires " + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(req, 1) + " faction reputation) - $" + Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * faction.augmentationPriceMult, 2); + pElem.innerHTML = "LOCKED (Requires " + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(req, 1) + " faction reputation) - $" + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * faction.augmentationPriceMult, 2); pElem.style.color = "red"; } aElem.style.display = "inline"; @@ -17394,82 +17384,84 @@ function displayFactionAugmentations(factionName) { } function purchaseAugmentationBoxCreate(aug, fac) { - var yesBtn = Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["d" /* yesNoBoxGetYesButton */])(), noBtn = Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["c" /* yesNoBoxGetNoButton */])(); + var yesBtn = Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["d" /* yesNoBoxGetYesButton */])(), noBtn = Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["c" /* yesNoBoxGetNoButton */])(); yesBtn.innerHTML = "Purchase"; noBtn.innerHTML = "Cancel"; yesBtn.addEventListener("click", function() { purchaseAugmentation(aug, fac); }); noBtn.addEventListener("click", function() { - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); }); - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["b" /* yesNoBoxCreate */])("

aug.name


" + + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["b" /* yesNoBoxCreate */])("

aug.name


" + aug.info + "

" + "
Would you like to purchase the " + aug.name + " Augmentation for $" + - Object(__WEBPACK_IMPORTED_MODULE_11__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * fac.augmentationPriceMult, 2) + "?"); + Object(__WEBPACK_IMPORTED_MODULE_12__utils_StringHelperFunctions_js__["c" /* formatNumber */])(aug.baseCost * fac.augmentationPriceMult, 2) + "?"); } function purchaseAugmentation(aug, fac, sing=false) { if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].Targeting2 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].Targeting1].owned == false) { var txt = "You must first install Augmented Targeting I before you can upgrade it to Augmented Targeting II"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].Targeting3 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].Targeting2].owned == false) { var txt = "You must first install Augmented Targeting II before you can upgrade it to Augmented Targeting III"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].CombatRib2 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].CombatRib1].owned == false) { var txt = "You must first install Combat Rib I before you can upgrade it to Combat Rib II"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].CombatRib3 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].CombatRib2].owned == false) { var txt = "You must first install Combat Rib II before you can upgrade it to Combat Rib III"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].GrapheneBionicSpine && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].BionicSpine].owned == false) { var txt = "You must first install a Bionic Spine before you can upgrade it to a Graphene Bionic Spine"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].GrapheneBionicLegs && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].BionicLegs].owned == false) { var txt = "You must first install Bionic Legs before you can upgrade it to Graphene Bionic Legs"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMCoreV2 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMCore].owned == false) { var txt = "You must first install Embedded Netburner Module Core Implant before you can upgrade it to V2"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMCoreV3 && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMCoreV2].owned == false) { var txt = "You must first install Embedded Netburner Module Core V2 Upgrade before you can upgrade it to V3"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if ((aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMCore || aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMAnalyzeEngine || aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENMDMA) && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].ENM].owned == false) { var txt = "You must first install the Embedded Netburner Module before installing any upgrades to it"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if ((aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].PCDNIOptimizer || aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].PCDNINeuralNetwork) && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].PCDNI].owned == false) { var txt = "You must first install the Pc Direct-Neural Interface before installing this upgrade"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].GrapheneBrachiBlades && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].BrachiBlades].owned == false) { var txt = "You must first install the Brachi Blades augmentation before installing this upgrade"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} } else if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].GrapheneBionicArms && __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].BionicArms].owned == false) { var txt = "You must first install the Bionic Arms augmentation before installing this upgrade"; - if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} - } else if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].money.gte(aug.baseCost * fac.augmentationPriceMult)) { + if (sing) {return txt;} else {Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])(txt);} + } else if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].money.gte(aug.baseCost * fac.augmentationPriceMult)) { + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].firstAugPurchased = true; + var queuedAugmentation = new __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["d" /* PlayerOwnedAugmentation */](aug.name); if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { queuedAugmentation.level = getNextNeurofluxLevel(); } - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations.push(queuedAugmentation); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations.push(queuedAugmentation); - __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].loseMoney((aug.baseCost * fac.augmentationPriceMult)); + __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].loseMoney((aug.baseCost * fac.augmentationPriceMult)); //If you just purchased Neuroflux Governor, recalculate the cost if (aug.name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { @@ -17478,7 +17470,7 @@ function purchaseAugmentation(aug, fac, sing=false) { var mult = Math.pow(__WEBPACK_IMPORTED_MODULE_2__Constants_js__["a" /* CONSTANTS */].NeuroFluxGovernorLevelMult, nextLevel); aug.setRequirements(500 * mult, 750000 * mult); - for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations.length-1; ++i) { + for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations.length-1; ++i) { aug.baseCost *= __WEBPACK_IMPORTED_MODULE_2__Constants_js__["a" /* CONSTANTS */].MultipleAugMultiplier; } } @@ -17492,7 +17484,7 @@ function purchaseAugmentation(aug, fac, sing=false) { if (sing) { return "You purchased " + aug.name; } else { - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You purchased " + aug.name + ". It's enhancements will not take " + + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You purchased " + aug.name + ". It's enhancements will not take " + "effect until they are installed. To install your augmentations, go to the " + "'Augmentations' tab on the left-hand navigation menu. Purchasing additional " + "augmentations will now be more expensive."); @@ -17503,18 +17495,18 @@ function purchaseAugmentation(aug, fac, sing=false) { if (sing) { return "You don't have enough money to purchase " + aug.name; } else { - Object(__WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You don't have enough money to purchase this Augmentation!"); + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You don't have enough money to purchase this Augmentation!"); } } - Object(__WEBPACK_IMPORTED_MODULE_12__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); + Object(__WEBPACK_IMPORTED_MODULE_13__utils_YesNoBox_js__["a" /* yesNoBoxClose */])(); } function getNextNeurofluxLevel() { var aug = __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["c" /* Augmentations */][__WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor]; if (aug == null) { - for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].augmentations.length; ++i) { - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].augmentations[i].name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { - aug = __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].augmentations[i]; + for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].augmentations.length; ++i) { + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].augmentations[i].name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { + aug = __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].augmentations[i]; } } if (aug == null) { @@ -17523,8 +17515,8 @@ function getNextNeurofluxLevel() { } } var nextLevel = aug.level + 1; - for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations.length; ++i) { - if (__WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].queuedAugmentations[i].name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { + for (var i = 0; i < __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations.length; ++i) { + if (__WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].queuedAugmentations[i].name == __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__["b" /* AugmentationNames */].NeuroFluxGovernor) { ++nextLevel; } } @@ -17532,7 +17524,7 @@ function getNextNeurofluxLevel() { } function processPassiveFactionRepGain(numCycles) { - var numTimesGain = (numCycles / 600) * __WEBPACK_IMPORTED_MODULE_3__Player_js__["a" /* Player */].faction_rep_mult; + var numTimesGain = (numCycles / 600) * __WEBPACK_IMPORTED_MODULE_6__Player_js__["a" /* Player */].faction_rep_mult; for (var name in Factions) { if (Factions.hasOwnProperty(name)) { var faction = Factions[name]; @@ -17615,513 +17607,6 @@ function initSpecialServerIps() { /* 12 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Settings; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initSettings; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return setSettingsLabels; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadSettings; }); -/* Settings.js */ -let Settings = { - CodeInstructionRunTime: 100, - MaxLogCapacity: 50, - MaxPortCapacity: 50, - SuppressMessages: false, - SuppressFactionInvites: false, -} - -function loadSettings(saveString) { - Settings = JSON.parse(saveString); -} - -function initSettings() { - Settings.CodeInstructionRunTime = 100; - Settings.MaxLogCapacity = 50; - Settings.MaxPortCapacity = 50; - Settings.SuppressMessages = false; - Settings.SuppressFactionInvites = false; -} - -function setSettingsLabels() { - var nsExecTime = document.getElementById("settingsNSExecTimeRangeValLabel"); - var nsLogLimit = document.getElementById("settingsNSLogRangeValLabel"); - var nsPortLimit = document.getElementById("settingsNSPortRangeValLabel"); - var suppressMsgs = document.getElementById("settingsSuppressMessages"); - var suppressFactionInv = document.getElementById("settingsSuppressFactionInvites") - - //Initialize values on labels - nsExecTime.innerHTML = Settings.CodeInstructionRunTime + "ms"; - nsLogLimit.innerHTML = Settings.MaxLogCapacity; - nsPortLimit.innerHTML = Settings.MaxPortCapacity; - suppressMsgs.checked = Settings.SuppressMessages; - suppressFactionInv.checked = Settings.SuppressFactionInvites; - - //Set handlers for when input changes - document.getElementById("settingsNSExecTimeRangeVal").oninput = function() { - nsExecTime.innerHTML = this.value + 'ms'; - Settings.CodeInstructionRunTime = this.value; - }; - - document.getElementById("settingsNSLogRangeVal").oninput = function() { - nsLogLimit.innerHTML = this.value; - Settings.MaxLogCapacity = this.value; - }; - - document.getElementById("settingsNSPortRangeVal").oninput = function() { - nsPortLimit.innerHTML = this.value; - Settings.MaxPortCapacity = this.value; - }; - - document.getElementById("settingsSuppressMessages").onclick = function() { - Settings.SuppressMessages = this.checked; - }; - - document.getElementById("settingsSuppressFactionInvites").onclick = function() { - Settings.SuppressFactionInvites = this.checked; - }; -} - - - - -/***/ }), -/* 13 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Programs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return displayCreateProgramContent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getNumAvailableCreateProgram; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initCreateProgramButtons; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Player_js__ = __webpack_require__(0); - - - -/* Create programs */ -let Programs = { - NukeProgram: "NUKE.exe", - BruteSSHProgram: "BruteSSH.exe", - FTPCrackProgram: "FTPCrack.exe", - RelaySMTPProgram: "relaySMTP.exe", - HTTPWormProgram: "HTTPWorm.exe", - SQLInjectProgram: "SQLInject.exe", - DeepscanV1: "DeepscanV1.exe", - DeepscanV2: "DeepscanV2.exe", - ServerProfiler: "ServerProfiler.exe", - AutoLink: "AutoLink.exe", - Flight: "fl1ght.exe", -}; - -//TODO Right now the times needed to complete work are hard-coded... -//maybe later make this dependent on hacking level or something -function displayCreateProgramContent() { - var nukeALink = document.getElementById("create-program-nuke"); - var bruteSshALink = document.getElementById("create-program-brutessh"); - var ftpCrackALink = document.getElementById("create-program-ftpcrack"); - var relaySmtpALink = document.getElementById("create-program-relaysmtp"); - var httpWormALink = document.getElementById("create-program-httpworm"); - var sqlInjectALink = document.getElementById("create-program-sqlinject"); - var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); - var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); - var servProfilerALink = document.getElementById("create-program-serverprofiler"); - var autolinkALink = document.getElementById("create-program-autolink"); - - nukeALink.style.display = "none"; - bruteSshALink.style.display = "none"; - ftpCrackALink.style.display = "none"; - relaySmtpALink.style.display = "none"; - httpWormALink.style.display = "none"; - sqlInjectALink.style.display = "none"; - deepscanv1ALink.style.display = "none"; - deepscanv2ALink.style.display = "none"; - servProfilerALink.style.display = "none"; - autolinkALink.style.display = "none"; - - //NUKE.exe (in case you delete it lol) - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) { - nukeALink.style.display = "inline-block"; - } - //BruteSSH - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.BruteSSHProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 50) { - bruteSshALink.style.display = "inline-block"; - } - //FTPCrack - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.FTPCrackProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 100) { - ftpCrackALink.style.display = "inline-block"; - } - //relaySMTP - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 250) { - relaySmtpALink.style.display = "inline-block"; - } - //HTTPWorm - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.HTTPWormProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 500) { - httpWormALink.style.display = "inline-block"; - } - //SQLInject - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.SQLInjectProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 750) { - sqlInjectALink.style.display = "inline-block"; - } - //Deepscan V1 and V2 - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV1) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { - deepscanv1ALink.style.display = "inline-block"; - } - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV2) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 400) { - deepscanv2ALink.style.display = "inline-block"; - } - //Server profiler - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.ServerProfiler) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { - servProfilerALink.style.display = "inline-block"; - } - //Auto Link - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { - autolinkALink.style.display = "inline-block"; - } -} - -//Returns the number of programs that are currently available to be created -function getNumAvailableCreateProgram() { - var count = 0; - //PortHack.exe (in case you delete it lol) - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) { - ++count; - } - //BruteSSH - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.BruteSSHProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 50) { - ++count; - } - //FTPCrack - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.FTPCrackProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 100) { - ++count; - } - //relaySMTP - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 250) { - ++count; - } - //HTTPWorm - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.HTTPWormProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 500) { - ++count; - } - //SQLInject - if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.SQLInjectProgram) == -1 && - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 750) { - ++count; - } - //Deepscan V1 and V2 - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV1) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { - ++count; - } - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV2) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 400) { - ++count; - } - //Server profiler - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.ServerProfiler) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { - ++count; - } - //Auto link - if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { - ++count; - } - return count; -} - -function initCreateProgramButtons() { - var nukeALink = document.getElementById("create-program-nuke"); - var bruteSshALink = document.getElementById("create-program-brutessh"); - var ftpCrackALink = document.getElementById("create-program-ftpcrack"); - var relaySmtpALink = document.getElementById("create-program-relaysmtp"); - var httpWormALink = document.getElementById("create-program-httpworm"); - var sqlInjectALink = document.getElementById("create-program-sqlinject"); - var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); - var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); - var servProfilerALink = document.getElementById("create-program-serverprofiler"); - var autolinkALink = document.getElementById("create-program-autolink"); - - nukeALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.NukeProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes, 1); - return false; - }); - bruteSshALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.BruteSSHProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes * 2, 50); - return false; - }); - ftpCrackALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.FTPCrackProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerHalfHour, 100); - return false; - }); - relaySmtpALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.RelaySMTPProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer2Hours, 250); - return false; - }); - httpWormALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.HTTPWormProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer4Hours, 500); - return false; - }); - sqlInjectALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.SQLInjectProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer8Hours, 750); - return false; - }); - deepscanv1ALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.DeepscanV1, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerQuarterHour, 75); - return false; - }); - deepscanv2ALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.DeepscanV2, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer2Hours, 400); - return false; - }); - servProfilerALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.ServerProfiler, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerHalfHour, 75); - return false; - }); - autolinkALink.addEventListener("click", function() { - __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.AutoLink, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerQuarterHour, 25); - return false; - }); -} - - - - -/***/ }), -/* 14 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return WorkerScript; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return workerScripts; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NetscriptPorts; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return runScriptsLoop; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return killWorkerScript; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return addWorkerScript; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return updateOnlineScriptTimes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeWorkerScripts; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__ = __webpack_require__(27); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__engine_js__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__NetscriptEnvironment_js__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__ = __webpack_require__(45); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__ = __webpack_require__(57); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_acorn_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__ = __webpack_require__(2); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__ = __webpack_require__(1); - - - - - - - - - - - - - -function WorkerScript(runningScriptObj) { - this.name = runningScriptObj.filename; - this.running = false; - this.serverIp = null; - this.code = runningScriptObj.scriptRef.code; - this.env = new __WEBPACK_IMPORTED_MODULE_3__NetscriptEnvironment_js__["a" /* Environment */](this); - this.env.set("args", runningScriptObj.args); - this.output = ""; - this.ramUsage = 0; - this.scriptRef = runningScriptObj; - this.errorMessage = ""; - this.args = runningScriptObj.args; -} - -//Returns the server on which the workerScript is running -WorkerScript.prototype.getServer = function() { - return __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][this.serverIp]; -} - -//Array containing all scripts that are running across all servers, to easily run them all -let workerScripts = []; - -let NetscriptPorts = { - Port1: [], - Port2: [], - Port3: [], - Port4: [], - Port5: [], - Port6: [], - Port7: [], - Port8: [], - Port9: [], - Port10: [], -} - -function prestigeWorkerScripts() { - for (var i = 0; i < workerScripts.length; ++i) { - Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["b" /* deleteActiveScriptsItem */])(workerScripts[i]); - workerScripts[i].env.stopFlag = true; - } - workerScripts.length = 0; -} - -//Loop through workerScripts and run every script that is not currently running -function runScriptsLoop() { - //Run any scripts that haven't been started - for (var i = 0; i < workerScripts.length; i++) { - //If it isn't running, start the script - if (workerScripts[i].running == false && workerScripts[i].env.stopFlag == false) { - try { - var ast = Object(__WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__["parse"])(workerScripts[i].code); - //console.log(ast); - } catch (e) { - console.log("Error parsing script: " + workerScripts[i].name); - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Syntax ERROR in " + workerScripts[i].name + ":
" + e); - workerScripts[i].env.stopFlag = true; - continue; - } - - workerScripts[i].running = true; - var p = Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["a" /* evaluate */])(ast, workerScripts[i]); - //Once the code finishes (either resolved or rejected, doesnt matter), set its - //running status to false - p.then(function(w) { - console.log("Stopping script " + w.name + " because it finished running naturally"); - w.running = false; - w.env.stopFlag = true; - w.scriptRef.log("Script finished running"); - }, function(w) { - //console.log(w); - if (w instanceof Error) { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime unknown error. This is a bug please contact game developer"); - console.log("ERROR: Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: " + w.toString()); - return; - } else if (w instanceof WorkerScript) { - if (Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["b" /* isScriptErrorMessage */])(w.errorMessage)) { - var errorTextArray = w.errorMessage.split("|"); - if (errorTextArray.length != 4) { - console.log("ERROR: Something wrong with Error text in evaluator..."); - console.log("Error text: " + errorText); - return; - } - var serverIp = errorTextArray[1]; - var scriptName = errorTextArray[2]; - var errorMsg = errorTextArray[3]; - - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime error:
Server Ip: " + serverIp + - "
Script name: " + scriptName + - "
Args:" + Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["f" /* printArray */])(w.args) + "
" + errorMsg); - w.scriptRef.log("Script crashed with runtime error"); - } else { - w.scriptRef.log("Script killed"); - } - w.running = false; - w.env.stopFlag = true; - - } else if (Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["b" /* isScriptErrorMessage */])(w)) { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime unknown error. This is a bug please contact game developer"); - console.log("ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: " + w.toString()); - return; - } else { - Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("An unknown script died for an unknown reason. This is a bug please contact game dev"); - } - }); - } - } - - //Delete any scripts that finished or have been killed. Loop backwards bc removing - //items fucks up the indexing - for (var i = workerScripts.length - 1; i >= 0; i--) { - if (workerScripts[i].running == false && workerScripts[i].env.stopFlag == true) { - console.log("Deleting script: " + workerScripts[i].name); - //Delete script from the runningScripts array on its host serverIp - var ip = workerScripts[i].serverIp; - var name = workerScripts[i].name; - - for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts.length; j++) { - if (__WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts[j].filename == name && - Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["c" /* compareArrays */])(__WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts[j].args, workerScripts[i].args)) { - __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts.splice(j, 1); - break; - } - } - - //Free RAM - __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].ramUsed -= workerScripts[i].ramUsage; - - //Delete script from Active Scripts - Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["b" /* deleteActiveScriptsItem */])(workerScripts[i]); - - //Delete script from workerScripts - workerScripts.splice(i, 1); - } - } - - setTimeout(runScriptsLoop, 10000); -} - -//Queues a script to be killed by settings its stop flag to true. Then, the code will reject -//all of its promises recursively, and when it does so it will no longer be running. -//The runScriptsLoop() will then delete the script from worker scripts -function killWorkerScript(runningScriptObj, serverIp) { - for (var i = 0; i < workerScripts.length; i++) { - if (workerScripts[i].name == runningScriptObj.filename && workerScripts[i].serverIp == serverIp && - Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["c" /* compareArrays */])(workerScripts[i].args, runningScriptObj.args)) { - workerScripts[i].env.stopFlag = true; - return true; - } - } - return false; -} - -//Queues a script to be run -function addWorkerScript(runningScriptObj, server) { - var filename = runningScriptObj.filename; - - //Update server's ram usage - var threads = 1; - if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) { - threads = runningScriptObj.threads; - } else { - runningScriptObj.threads = 1; - } - var ramUsage = runningScriptObj.scriptRef.ramUsage * threads - * Math.pow(__WEBPACK_IMPORTED_MODULE_1__Constants_js__["a" /* CONSTANTS */].MultithreadingRAMCost, threads-1); - server.ramUsed += ramUsage; - - //Create the WorkerScript - var s = new WorkerScript(runningScriptObj); - s.serverIp = server.ip; - s.ramUsage = ramUsage; - - //Add the WorkerScript to the Active Scripts list - Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["a" /* addActiveScriptsItem */])(s); - - //Add the WorkerScript - workerScripts.push(s); - return; -} - -//Updates the online running time stat of all running scripts -function updateOnlineScriptTimes(numCycles = 1) { - var time = (numCycles * __WEBPACK_IMPORTED_MODULE_2__engine_js__["Engine"]._idleSpeed) / 1000; //seconds - for (var i = 0; i < workerScripts.length; ++i) { - workerScripts[i].scriptRef.onlineRunningTime += time; - } -} - - - - -/***/ }), -/* 15 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Locations; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return displayLocationContent; }); @@ -19967,6 +19452,7 @@ function initLocationButtons() { } function travelToCity(destCityName, cost) { + __WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].firstTimeTraveled = true; if (__WEBPACK_IMPORTED_MODULE_5__Player_js__["a" /* Player */].money.lt(cost)) { Object(__WEBPACK_IMPORTED_MODULE_9__utils_DialogBox_js__["a" /* dialogBoxCreate */])("You cannot afford to travel to " + destCityName); return; @@ -20167,6 +19653,514 @@ function purchaseServerBoxCreate(ram, cost) { +/***/ }), +/* 13 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Settings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return setSettingsLabels; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadSettings; }); +/* Settings.js */ +let Settings = { + CodeInstructionRunTime: 100, + MaxLogCapacity: 50, + MaxPortCapacity: 50, + SuppressMessages: false, + SuppressFactionInvites: false, +} + +function loadSettings(saveString) { + Settings = JSON.parse(saveString); +} + +function initSettings() { + Settings.CodeInstructionRunTime = 100; + Settings.MaxLogCapacity = 50; + Settings.MaxPortCapacity = 50; + Settings.SuppressMessages = false; + Settings.SuppressFactionInvites = false; +} + +function setSettingsLabels() { + var nsExecTime = document.getElementById("settingsNSExecTimeRangeValLabel"); + var nsLogLimit = document.getElementById("settingsNSLogRangeValLabel"); + var nsPortLimit = document.getElementById("settingsNSPortRangeValLabel"); + var suppressMsgs = document.getElementById("settingsSuppressMessages"); + var suppressFactionInv = document.getElementById("settingsSuppressFactionInvites") + + //Initialize values on labels + nsExecTime.innerHTML = Settings.CodeInstructionRunTime + "ms"; + nsLogLimit.innerHTML = Settings.MaxLogCapacity; + nsPortLimit.innerHTML = Settings.MaxPortCapacity; + suppressMsgs.checked = Settings.SuppressMessages; + suppressFactionInv.checked = Settings.SuppressFactionInvites; + + //Set handlers for when input changes + document.getElementById("settingsNSExecTimeRangeVal").oninput = function() { + nsExecTime.innerHTML = this.value + 'ms'; + Settings.CodeInstructionRunTime = this.value; + }; + + document.getElementById("settingsNSLogRangeVal").oninput = function() { + nsLogLimit.innerHTML = this.value; + Settings.MaxLogCapacity = this.value; + }; + + document.getElementById("settingsNSPortRangeVal").oninput = function() { + nsPortLimit.innerHTML = this.value; + Settings.MaxPortCapacity = this.value; + }; + + document.getElementById("settingsSuppressMessages").onclick = function() { + Settings.SuppressMessages = this.checked; + }; + + document.getElementById("settingsSuppressFactionInvites").onclick = function() { + Settings.SuppressFactionInvites = this.checked; + }; +} + + + + +/***/ }), +/* 14 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Programs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return displayCreateProgramContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getNumAvailableCreateProgram; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initCreateProgramButtons; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Player_js__ = __webpack_require__(0); + + + +/* Create programs */ +let Programs = { + NukeProgram: "NUKE.exe", + BruteSSHProgram: "BruteSSH.exe", + FTPCrackProgram: "FTPCrack.exe", + RelaySMTPProgram: "relaySMTP.exe", + HTTPWormProgram: "HTTPWorm.exe", + SQLInjectProgram: "SQLInject.exe", + DeepscanV1: "DeepscanV1.exe", + DeepscanV2: "DeepscanV2.exe", + ServerProfiler: "ServerProfiler.exe", + AutoLink: "AutoLink.exe", + Flight: "fl1ght.exe", +}; + +//TODO Right now the times needed to complete work are hard-coded... +//maybe later make this dependent on hacking level or something +function displayCreateProgramContent() { + var nukeALink = document.getElementById("create-program-nuke"); + var bruteSshALink = document.getElementById("create-program-brutessh"); + var ftpCrackALink = document.getElementById("create-program-ftpcrack"); + var relaySmtpALink = document.getElementById("create-program-relaysmtp"); + var httpWormALink = document.getElementById("create-program-httpworm"); + var sqlInjectALink = document.getElementById("create-program-sqlinject"); + var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); + var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); + var servProfilerALink = document.getElementById("create-program-serverprofiler"); + var autolinkALink = document.getElementById("create-program-autolink"); + + nukeALink.style.display = "none"; + bruteSshALink.style.display = "none"; + ftpCrackALink.style.display = "none"; + relaySmtpALink.style.display = "none"; + httpWormALink.style.display = "none"; + sqlInjectALink.style.display = "none"; + deepscanv1ALink.style.display = "none"; + deepscanv2ALink.style.display = "none"; + servProfilerALink.style.display = "none"; + autolinkALink.style.display = "none"; + + //NUKE.exe (in case you delete it lol) + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) { + nukeALink.style.display = "inline-block"; + } + //BruteSSH + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.BruteSSHProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 50) { + bruteSshALink.style.display = "inline-block"; + } + //FTPCrack + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.FTPCrackProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 100) { + ftpCrackALink.style.display = "inline-block"; + } + //relaySMTP + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 250) { + relaySmtpALink.style.display = "inline-block"; + } + //HTTPWorm + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.HTTPWormProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 500) { + httpWormALink.style.display = "inline-block"; + } + //SQLInject + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.SQLInjectProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 750) { + sqlInjectALink.style.display = "inline-block"; + } + //Deepscan V1 and V2 + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV1) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { + deepscanv1ALink.style.display = "inline-block"; + } + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV2) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 400) { + deepscanv2ALink.style.display = "inline-block"; + } + //Server profiler + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.ServerProfiler) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { + servProfilerALink.style.display = "inline-block"; + } + //Auto Link + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { + autolinkALink.style.display = "inline-block"; + } +} + +//Returns the number of programs that are currently available to be created +function getNumAvailableCreateProgram() { + var count = 0; + //PortHack.exe (in case you delete it lol) + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) { + ++count; + } + //BruteSSH + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.BruteSSHProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 50) { + ++count; + } + //FTPCrack + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.FTPCrackProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 100) { + ++count; + } + //relaySMTP + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 250) { + ++count; + } + //HTTPWorm + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.HTTPWormProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 500) { + ++count; + } + //SQLInject + if (__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].getHomeComputer().programs.indexOf(Programs.SQLInjectProgram) == -1 && + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 750) { + ++count; + } + //Deepscan V1 and V2 + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV1) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { + ++count; + } + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.DeepscanV2) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 400) { + ++count; + } + //Server profiler + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.ServerProfiler) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 75) { + ++count; + } + //Auto link + if (!__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hasProgram(Programs.AutoLink) && __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].hacking_skill >= 25) { + ++count; + } + if (count > 0) {__WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].firstProgramAvailable = true;} + return count; +} + +function initCreateProgramButtons() { + var nukeALink = document.getElementById("create-program-nuke"); + var bruteSshALink = document.getElementById("create-program-brutessh"); + var ftpCrackALink = document.getElementById("create-program-ftpcrack"); + var relaySmtpALink = document.getElementById("create-program-relaysmtp"); + var httpWormALink = document.getElementById("create-program-httpworm"); + var sqlInjectALink = document.getElementById("create-program-sqlinject"); + var deepscanv1ALink = document.getElementById("create-program-deepscanv1"); + var deepscanv2ALink = document.getElementById("create-program-deepscanv2"); + var servProfilerALink = document.getElementById("create-program-serverprofiler"); + var autolinkALink = document.getElementById("create-program-autolink"); + + nukeALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.NukeProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes, 1); + return false; + }); + bruteSshALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.BruteSSHProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerFiveMinutes * 2, 50); + return false; + }); + ftpCrackALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.FTPCrackProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerHalfHour, 100); + return false; + }); + relaySmtpALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.RelaySMTPProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer2Hours, 250); + return false; + }); + httpWormALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.HTTPWormProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer4Hours, 500); + return false; + }); + sqlInjectALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.SQLInjectProgram, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer8Hours, 750); + return false; + }); + deepscanv1ALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.DeepscanV1, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerQuarterHour, 75); + return false; + }); + deepscanv2ALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.DeepscanV2, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPer2Hours, 400); + return false; + }); + servProfilerALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.ServerProfiler, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerHalfHour, 75); + return false; + }); + autolinkALink.addEventListener("click", function() { + __WEBPACK_IMPORTED_MODULE_1__Player_js__["a" /* Player */].startCreateProgramWork(Programs.AutoLink, __WEBPACK_IMPORTED_MODULE_0__Constants_js__["a" /* CONSTANTS */].MillisecondsPerQuarterHour, 25); + return false; + }); +} + + + + +/***/ }), +/* 15 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return WorkerScript; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return workerScripts; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NetscriptPorts; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return runScriptsLoop; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return killWorkerScript; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return addWorkerScript; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return updateOnlineScriptTimes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return prestigeWorkerScripts; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__ = __webpack_require__(27); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Constants_js__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__engine_js__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__NetscriptEnvironment_js__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__ = __webpack_require__(45); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Server_js__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__ = __webpack_require__(57); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_acorn_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__ = __webpack_require__(1); + + + + + + + + + + + + + +function WorkerScript(runningScriptObj) { + this.name = runningScriptObj.filename; + this.running = false; + this.serverIp = null; + this.code = runningScriptObj.scriptRef.code; + this.env = new __WEBPACK_IMPORTED_MODULE_3__NetscriptEnvironment_js__["a" /* Environment */](this); + this.env.set("args", runningScriptObj.args); + this.output = ""; + this.ramUsage = 0; + this.scriptRef = runningScriptObj; + this.errorMessage = ""; + this.args = runningScriptObj.args; +} + +//Returns the server on which the workerScript is running +WorkerScript.prototype.getServer = function() { + return __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][this.serverIp]; +} + +//Array containing all scripts that are running across all servers, to easily run them all +let workerScripts = []; + +let NetscriptPorts = { + Port1: [], + Port2: [], + Port3: [], + Port4: [], + Port5: [], + Port6: [], + Port7: [], + Port8: [], + Port9: [], + Port10: [], +} + +function prestigeWorkerScripts() { + for (var i = 0; i < workerScripts.length; ++i) { + Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["b" /* deleteActiveScriptsItem */])(workerScripts[i]); + workerScripts[i].env.stopFlag = true; + } + workerScripts.length = 0; +} + +//Loop through workerScripts and run every script that is not currently running +function runScriptsLoop() { + //Run any scripts that haven't been started + for (var i = 0; i < workerScripts.length; i++) { + //If it isn't running, start the script + if (workerScripts[i].running == false && workerScripts[i].env.stopFlag == false) { + try { + var ast = Object(__WEBPACK_IMPORTED_MODULE_7__utils_acorn_js__["parse"])(workerScripts[i].code); + //console.log(ast); + } catch (e) { + console.log("Error parsing script: " + workerScripts[i].name); + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Syntax ERROR in " + workerScripts[i].name + ":
" + e); + workerScripts[i].env.stopFlag = true; + continue; + } + + workerScripts[i].running = true; + var p = Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["a" /* evaluate */])(ast, workerScripts[i]); + //Once the code finishes (either resolved or rejected, doesnt matter), set its + //running status to false + p.then(function(w) { + console.log("Stopping script " + w.name + " because it finished running naturally"); + w.running = false; + w.env.stopFlag = true; + w.scriptRef.log("Script finished running"); + }, function(w) { + //console.log(w); + if (w instanceof Error) { + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime unknown error. This is a bug please contact game developer"); + console.log("ERROR: Evaluating workerscript returns an Error. THIS SHOULDN'T HAPPEN: " + w.toString()); + return; + } else if (w instanceof WorkerScript) { + if (Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["b" /* isScriptErrorMessage */])(w.errorMessage)) { + var errorTextArray = w.errorMessage.split("|"); + if (errorTextArray.length != 4) { + console.log("ERROR: Something wrong with Error text in evaluator..."); + console.log("Error text: " + errorText); + return; + } + var serverIp = errorTextArray[1]; + var scriptName = errorTextArray[2]; + var errorMsg = errorTextArray[3]; + + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime error:
Server Ip: " + serverIp + + "
Script name: " + scriptName + + "
Args:" + Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["f" /* printArray */])(w.args) + "
" + errorMsg); + w.scriptRef.log("Script crashed with runtime error"); + } else { + w.scriptRef.log("Script killed"); + } + w.running = false; + w.env.stopFlag = true; + + } else if (Object(__WEBPACK_IMPORTED_MODULE_4__NetscriptEvaluator_js__["b" /* isScriptErrorMessage */])(w)) { + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("Script runtime unknown error. This is a bug please contact game developer"); + console.log("ERROR: Evaluating workerscript returns only error message rather than WorkerScript object. THIS SHOULDN'T HAPPEN: " + w.toString()); + return; + } else { + Object(__WEBPACK_IMPORTED_MODULE_8__utils_DialogBox_js__["a" /* dialogBoxCreate */])("An unknown script died for an unknown reason. This is a bug please contact game dev"); + } + }); + } + } + + //Delete any scripts that finished or have been killed. Loop backwards bc removing + //items fucks up the indexing + for (var i = workerScripts.length - 1; i >= 0; i--) { + if (workerScripts[i].running == false && workerScripts[i].env.stopFlag == true) { + console.log("Deleting script: " + workerScripts[i].name); + //Delete script from the runningScripts array on its host serverIp + var ip = workerScripts[i].serverIp; + var name = workerScripts[i].name; + + for (var j = 0; j < __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts.length; j++) { + if (__WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts[j].filename == name && + Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["c" /* compareArrays */])(__WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts[j].args, workerScripts[i].args)) { + __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].runningScripts.splice(j, 1); + break; + } + } + + //Free RAM + __WEBPACK_IMPORTED_MODULE_5__Server_js__["b" /* AllServers */][ip].ramUsed -= workerScripts[i].ramUsage; + + //Delete script from Active Scripts + Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["b" /* deleteActiveScriptsItem */])(workerScripts[i]); + + //Delete script from workerScripts + workerScripts.splice(i, 1); + } + } + + setTimeout(runScriptsLoop, 10000); +} + +//Queues a script to be killed by settings its stop flag to true. Then, the code will reject +//all of its promises recursively, and when it does so it will no longer be running. +//The runScriptsLoop() will then delete the script from worker scripts +function killWorkerScript(runningScriptObj, serverIp) { + for (var i = 0; i < workerScripts.length; i++) { + if (workerScripts[i].name == runningScriptObj.filename && workerScripts[i].serverIp == serverIp && + Object(__WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__["c" /* compareArrays */])(workerScripts[i].args, runningScriptObj.args)) { + workerScripts[i].env.stopFlag = true; + return true; + } + } + return false; +} + +//Queues a script to be run +function addWorkerScript(runningScriptObj, server) { + var filename = runningScriptObj.filename; + + //Update server's ram usage + var threads = 1; + if (runningScriptObj.threads && !isNaN(runningScriptObj.threads)) { + threads = runningScriptObj.threads; + } else { + runningScriptObj.threads = 1; + } + var ramUsage = runningScriptObj.scriptRef.ramUsage * threads + * Math.pow(__WEBPACK_IMPORTED_MODULE_1__Constants_js__["a" /* CONSTANTS */].MultithreadingRAMCost, threads-1); + server.ramUsed += ramUsage; + + //Create the WorkerScript + var s = new WorkerScript(runningScriptObj); + s.serverIp = server.ip; + s.ramUsage = ramUsage; + + //Add the WorkerScript to the Active Scripts list + Object(__WEBPACK_IMPORTED_MODULE_0__ActiveScriptsUI_js__["a" /* addActiveScriptsItem */])(s); + + //Add the WorkerScript + workerScripts.push(s); + return; +} + +//Updates the online running time stat of all running scripts +function updateOnlineScriptTimes(numCycles = 1) { + var time = (numCycles * __WEBPACK_IMPORTED_MODULE_2__engine_js__["Engine"]._idleSpeed) / 1000; //seconds + for (var i = 0; i < workerScripts.length; ++i) { + workerScripts[i].scriptRef.onlineRunningTime += time; + } +} + + + + /***/ }), /* 16 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -22153,7 +22147,7 @@ function giveAllAugmentations() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CompanyPosition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return companyExists; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_JSONReviver_js__ = __webpack_require__(7); @@ -23319,10 +23313,10 @@ function getJobRequirementText(company, pos, tooltiptext=false) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__InteractiveTutorial_js__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__utils_DialogBox_js__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_JSONReviver_js__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_HelperFunctions_js__ = __webpack_require__(1); @@ -23903,14 +23897,14 @@ __WEBPACK_IMPORTED_MODULE_8__utils_JSONReviver_js__["c" /* Reviver */].construct /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Terminal; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Alias_js__ = __webpack_require__(41); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__DarkWeb_js__ = __webpack_require__(42); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__HelpText_js__ = __webpack_require__(56); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__InteractiveTutorial_js__ = __webpack_require__(22); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Literature_js__ = __webpack_require__(43); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Message_js__ = __webpack_require__(24); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__RedPill_js__ = __webpack_require__(44); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Script_js__ = __webpack_require__(18); @@ -31197,10 +31191,10 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/*! decimal.js v7.2.3 https://github.com/MikeM /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return initMessages; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Message; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__ = __webpack_require__(16); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_DialogBox_js__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__ = __webpack_require__(7); @@ -31408,7 +31402,7 @@ function initMessages() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return setStockMarketContentCreated; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__engine_js__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_DialogBox_js__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__ = __webpack_require__(1); @@ -32104,7 +32098,7 @@ function logBoxUpdateText() { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addActiveScriptsItem; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return deleteActiveScriptsItem; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return updateActiveScriptsItems; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Server_js__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_DialogBox_js__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_HelperFunctions_js__ = __webpack_require__(1); @@ -32469,7 +32463,7 @@ Environment.prototype = { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Constants_js__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Faction_js__ = __webpack_require__(10); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_DialogBox_js__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils_JSONReviver_js__ = __webpack_require__(7); @@ -33892,12 +33886,12 @@ function applySourceFile(srcFile) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Augmentations_js__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__BitNode_js__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Company_js__ = __webpack_require__(17); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Faction_js__ = __webpack_require__(10); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Message_js__ = __webpack_require__(24); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Server_js__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__SpecialServerIps_js__ = __webpack_require__(11); @@ -54714,20 +54708,20 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @preserve /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Augmentations_js__ = __webpack_require__(16); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Company_js__ = __webpack_require__(17); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Constants_js__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__DarkWeb_js__ = __webpack_require__(42); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__engine_js__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Faction_js__ = __webpack_require__(10); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__HacknetNode_js__ = __webpack_require__(32); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Location_js__ = __webpack_require__(15); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Location_js__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Script_js__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__SpecialServerIps_js__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__StockMarket_js__ = __webpack_require__(25); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Terminal_js__ = __webpack_require__(19); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__NetscriptEvaluator_js__ = __webpack_require__(45); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__NetscriptEnvironment_js__ = __webpack_require__(28); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__utils_decimal_js__ = __webpack_require__(23); @@ -56812,7 +56806,7 @@ function substituteAliases(origCommand) { /* unused harmony export buyDarkwebItem */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return parseDarkwebItemPrice; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DarkWebItems; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__CreateProgram_js__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__CreateProgram_js__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SpecialServerIps_js__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Terminal_js__ = __webpack_require__(19); @@ -57704,9 +57698,9 @@ function createBitNodeYesNoEventListeners(newBitNode, destroyedBitNode) { /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Constants_js__ = __webpack_require__(3); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__NetscriptEnvironment_js__ = __webpack_require__(28); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__ = __webpack_require__(14); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NetscriptWorker_js__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Script_js__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_HelperFunctions_js__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__utils_IPAddress_js__ = __webpack_require__(21); @@ -63808,7 +63802,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Player_js__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Script_js__ = __webpack_require__(18); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Server_js__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Settings_js__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Settings_js__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__SpecialServerIps_js__ = __webpack_require__(11); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__StockMarket_js__ = __webpack_require__(25); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__utils_DialogBox_js__ = __webpack_require__(2); @@ -63958,10 +63952,30 @@ function loadGame(saveObj) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, __WEBPACK_IMPORTED_MODULE_17__utils_JSONReviver_js__["c" /* Reviver */]); + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN === null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN === 0) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1); + } if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) { console.log("Evaluating changes needed for version compatibility"); - if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == 0) { - __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1); + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].augmentations.length > 0 || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].queuedAugmentations.length > 0 || + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].sourceFiles.length > 0) { + //If you have already purchased an Aug...you are far enough in the game + //that everything should be available + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstFacInvRecvd = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstAugPurchased = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstJobRecvd = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstTimeTraveled = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstProgramAvailable = true; + } else { + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].factions.length > 0 || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].factionInvitations.length > 0) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstFacInvRecvd = true; + } + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].companyName !== "" || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].companyPosition !== "") { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstJobRecvd = true; + } + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].hacking_skill >= 25) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstScriptAvailable = true; + } } } if (ver != __WEBPACK_IMPORTED_MODULE_2__Constants_js__["a" /* CONSTANTS */].Version) { @@ -64145,10 +64159,31 @@ function loadImportedGame(saveObj, saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, __WEBPACK_IMPORTED_MODULE_17__utils_JSONReviver_js__["c" /* Reviver */]); - if (ver.startsWith("0.27.")) { + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == 0) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1); + + } + if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) { console.log("Evaluating changes needed for version compatibility"); - if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == null || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].bitNodeN == 0) { - __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].setBitNodeNumber(1); + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].augmentations.length > 0 || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].queuedAugmentations.length > 0 || + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].sourceFiles.length > 0) { + //If you have already purchased an Aug...you are far enough in the game + //that everything should be available + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstFacInvRecvd = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstAugPurchased = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstJobRecvd = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstTimeTraveled = true; + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstProgramAvailable = true; + } else { + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].factions.length > 0 || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].factionInvitations.length > 0) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstFacInvRecvd = true; + } + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].companyName !== "" || __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].companyPosition !== "") { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstJobRecvd = true; + } + if (__WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].hacking_skill >= 25) { + __WEBPACK_IMPORTED_MODULE_8__Player_js__["a" /* Player */].firstScriptAvailable = true; + } } } if (ver != __WEBPACK_IMPORTED_MODULE_2__Constants_js__["a" /* CONSTANTS */].Version) { diff --git a/src/CreateProgram.js b/src/CreateProgram.js index 366a96341..a1523ed08 100644 --- a/src/CreateProgram.js +++ b/src/CreateProgram.js @@ -134,6 +134,7 @@ function getNumAvailableCreateProgram() { if (!Player.hasProgram(Programs.AutoLink) && Player.hacking_skill >= 25) { ++count; } + if (count > 0) {Player.firstProgramAvailable = true;} return count; } diff --git a/src/Faction.js b/src/Faction.js index ca7c389d1..3708b31b4 100644 --- a/src/Faction.js +++ b/src/Faction.js @@ -2,10 +2,12 @@ import {Augmentations, AugmentationNames, PlayerOwnedAugmentation} from "./Augmentations.js"; import {BitNodeMultipliers} from "./BitNode.js"; import {CONSTANTS} from "./Constants.js"; -import {Player} from "./Player.js"; import {Engine} from "./engine.js"; import {FactionInfo} from "./FactionInfo.js"; +import {Locations} from "./Location.js"; +import {Player} from "./Player.js"; import {Settings} from "./Settings.js"; + import {dialogBoxCreate} from "../utils/DialogBox.js"; import {factionInvitationBoxCreate} from "../utils/FactionInvitationBox.js"; import {clearEventListeners} from "../utils/HelperFunctions.js"; @@ -568,8 +570,8 @@ function displayFactionContent(factionName) { noBtn.innerHTML = "Cancel"; yesBtn.addEventListener("click", () => { var hacking = false; - if (factionName == "NiteSec" || factionName == "The Black Hand") {hacking = true;} - Player.gang = new Gang(factionName, hacking); + if (factionName === "NiteSec" || factionName === "The Black Hand") {hacking = true;} + Player.startGang(factionName, hacking); Engine.loadGangContent(); yesNoBoxClose(); }); @@ -906,6 +908,8 @@ function purchaseAugmentation(aug, fac, sing=false) { var txt = "You must first install the Bionic Arms augmentation before installing this upgrade"; if (sing) {return txt;} else {dialogBoxCreate(txt);} } else if (Player.money.gte(aug.baseCost * fac.augmentationPriceMult)) { + Player.firstAugPurchased = true; + var queuedAugmentation = new PlayerOwnedAugmentation(aug.name); if (aug.name == AugmentationNames.NeuroFluxGovernor) { queuedAugmentation.level = getNextNeurofluxLevel(); diff --git a/src/Location.js b/src/Location.js index 8ca6ef9c4..6153b8a3d 100644 --- a/src/Location.js +++ b/src/Location.js @@ -1840,6 +1840,7 @@ function initLocationButtons() { } function travelToCity(destCityName, cost) { + Player.firstTimeTraveled = true; if (Player.money.lt(cost)) { dialogBoxCreate("You cannot afford to travel to " + destCityName); return; diff --git a/src/Player.js b/src/Player.js index 2a3232626..8293d7d28 100644 --- a/src/Player.js +++ b/src/Player.js @@ -105,15 +105,8 @@ function PlayerObject() { this.sourceFiles = []; //Crime statistics + this.numPeopleKilled = 0; this.karma = 0; - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; - this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; this.crime_money_mult = 1; this.crime_success_mult = 1; @@ -172,11 +165,18 @@ function PlayerObject() { this.hasTixApiAccess = false; //Gang - this.gang = null; + this.gang = 0; //bitnode this.bitNodeN = 1; + //Flags for determining whether certain "thresholds" have been achieved + this.firstFacInvRecvd = false; + this.firstAugPurchased = false; + this.firstJobRecvd = false; + this.firstTimeTraveled = false; + this.firstProgramAvailable = false; + //Used to store the last update time. this.lastUpdate = 0; this.totalPlaytime = 0; @@ -207,16 +207,7 @@ PlayerObject.prototype.prestigeAugmentation = function() { this.currentServer = homeComp.ip; this.homeComputer = homeComp.ip; - //Crime statistics - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; - this.karma = 0; //Reset stats @@ -295,15 +286,7 @@ PlayerObject.prototype.prestigeSourceFile = function() { this.currentServer = homeComp.ip; this.homeComputer = homeComp.ip; - this.numTimesShoplifted = 0; - this.numPeopleMugged = 0; - this.numTimesDealtDrugs = 0; - this.numTimesTraffickArms = 0; this.numPeopleKilled = 0; - this.numTimesGrandTheftAuto = 0; - this.numTimesKidnapped = 0; - this.numTimesHeist = 0; - this.karma = 0; //Reset stats @@ -1425,24 +1408,20 @@ PlayerObject.prototype.finishCrime = function(cancelled) { switch(this.crimeType) { case CONSTANTS.CrimeShoplift: this.karma -= 0.1; - ++this.numTimesShoplifted; break; case CONSTANTS.CrimeRobStore: this.karma -= 0.5; break; case CONSTANTS.CrimeMug: this.karma -= 0.25; - ++this.numPeopleMugged; break; case CONSTANTS.CrimeLarceny: this.karma -= 1.5; break; case CONSTANTS.CrimeDrugs: - ++this.numTimesDealtDrugs; this.karma -= 0.5; break; case CONSTANTS.CrimeTraffickArms: - ++this.numTimesTraffickArms; this.karma -= 1; break; case CONSTANTS.CrimeHomicide: @@ -1450,11 +1429,9 @@ PlayerObject.prototype.finishCrime = function(cancelled) { this.karma -= 3; break; case CONSTANTS.CrimeGrandTheftAuto: - ++this.numTimesGrandTheftAuto; this.karma -= 5; break; case CONSTANTS.CrimeKidnap: - ++this.numTimesKidnapped; this.karma -= 6; break; case CONSTANTS.CrimeAssassination: @@ -1462,7 +1439,6 @@ PlayerObject.prototype.finishCrime = function(cancelled) { this.karma -= 10; break; case CONSTANTS.CrimeHeist: - ++this.numTimesHeist; this.karma -= 15; break; default: @@ -1638,6 +1614,8 @@ PlayerObject.prototype.applyForJob = function(entryPosType, sing=false) { this.companyName = company.companyName; this.companyPosition = pos; + Player.firstJobRecvd = true; + if (leaveCompany) { if (sing) {return true;} dialogBoxCreate("Congratulations! You were offered a new job at " + this.companyName + " as a " + @@ -1740,6 +1718,7 @@ PlayerObject.prototype.applyForAgentJob = function(sing=false) { PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to if (this.isQualified(company, CompanyPositions.Employee)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = CompanyPositions.Employee; if (sing) {return true;} @@ -1754,6 +1733,7 @@ PlayerObject.prototype.applyForEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to if (this.isQualified(company, CompanyPositions.PartTimeEmployee)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = CompanyPositions.PartTimeEmployee; if (sing) {return true;} @@ -1768,6 +1748,7 @@ PlayerObject.prototype.applyForPartTimeEmployeeJob = function(sing=false) { PlayerObject.prototype.applyForWaiterJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to if (this.isQualified(company, CompanyPositions.Waiter)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = CompanyPositions.Waiter; if (sing) {return true;} @@ -1782,6 +1763,7 @@ PlayerObject.prototype.applyForWaiterJob = function(sing=false) { PlayerObject.prototype.applyForPartTimeWaiterJob = function(sing=false) { var company = Companies[this.location]; //Company being applied to if (this.isQualified(company, CompanyPositions.PartTimeWaiter)) { + Player.firstJobRecvd = true; this.companyName = company.companyName; this.companyPosition = CompanyPositions.PartTimeWaiter; if (sing) {return true;} @@ -2171,6 +2153,10 @@ PlayerObject.prototype.inGang = function() { return (this.gang instanceof Gang); } +PlayerObject.prototype.startGang = function(factionName, hacking) { + this.gang = new Gang(factionName, hacking); +} + /************* BitNodes **************/ PlayerObject.prototype.setBitNodeNumber = function(n) { this.bitNodeN = n; diff --git a/src/SaveObject.js b/src/SaveObject.js index f73a3259e..e402d44e1 100644 --- a/src/SaveObject.js +++ b/src/SaveObject.js @@ -142,10 +142,30 @@ function loadGame(saveObj) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, Reviver); + if (Player.bitNodeN === null || Player.bitNodeN === 0) { + Player.setBitNodeNumber(1); + } if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) { console.log("Evaluating changes needed for version compatibility"); - if (Player.bitNodeN == null || Player.bitNodeN == 0) { - Player.setBitNodeNumber(1); + if (Player.augmentations.length > 0 || Player.queuedAugmentations.length > 0 || + Player.sourceFiles.length > 0) { + //If you have already purchased an Aug...you are far enough in the game + //that everything should be available + Player.firstFacInvRecvd = true; + Player.firstAugPurchased = true; + Player.firstJobRecvd = true; + Player.firstTimeTraveled = true; + Player.firstProgramAvailable = true; + } else { + if (Player.factions.length > 0 || Player.factionInvitations.length > 0) { + Player.firstFacInvRecvd = true; + } + if (Player.companyName !== "" || Player.companyPosition !== "") { + Player.firstJobRecvd = true; + } + if (Player.hacking_skill >= 25) { + Player.firstScriptAvailable = true; + } } } if (ver != CONSTANTS.Version) { @@ -329,10 +349,31 @@ function loadImportedGame(saveObj, saveString) { if (saveObj.hasOwnProperty("VersionSave")) { try { var ver = JSON.parse(saveObj.VersionSave, Reviver); - if (ver.startsWith("0.27.")) { + if (Player.bitNodeN == null || Player.bitNodeN == 0) { + Player.setBitNodeNumber(1); + + } + if (ver.startsWith("0.27.") || ver.startsWith("0.28.")) { console.log("Evaluating changes needed for version compatibility"); - if (Player.bitNodeN == null || Player.bitNodeN == 0) { - Player.setBitNodeNumber(1); + if (Player.augmentations.length > 0 || Player.queuedAugmentations.length > 0 || + Player.sourceFiles.length > 0) { + //If you have already purchased an Aug...you are far enough in the game + //that everything should be available + Player.firstFacInvRecvd = true; + Player.firstAugPurchased = true; + Player.firstJobRecvd = true; + Player.firstTimeTraveled = true; + Player.firstProgramAvailable = true; + } else { + if (Player.factions.length > 0 || Player.factionInvitations.length > 0) { + Player.firstFacInvRecvd = true; + } + if (Player.companyName !== "" || Player.companyPosition !== "") { + Player.firstJobRecvd = true; + } + if (Player.hacking_skill >= 25) { + Player.firstScriptAvailable = true; + } } } if (ver != CONSTANTS.Version) { diff --git a/src/engine.js b/src/engine.js index e37c605a1..76b8a382c 100644 --- a/src/engine.js +++ b/src/engine.js @@ -27,14 +27,14 @@ import {Programs, displayCreateProgramContent, import {displayFactionContent, joinFaction, processPassiveFactionRepGain, Factions, inviteToFaction, initFactions} from "./Faction.js"; +import {Locations, displayLocationContent, + initLocationButtons} from "./Location.js"; import {displayGangContent, updateGangContent, Gang} from "./Gang.js"; import {displayHacknetNodesContent, processAllHacknetNodeEarnings, updateHacknetNodesContent} from "./HacknetNode.js"; import {iTutorialStart} from "./InteractiveTutorial.js"; import {initLiterature} from "./Literature.js"; -import {Locations, displayLocationContent, - initLocationButtons} from "./Location.js"; import {checkForMessagesToSend, initMessages} from "./Message.js"; import {initSingularitySFFlags, hasSingularitySF} from "./NetscriptFunctions.js"; @@ -915,6 +915,7 @@ let Engine = { if (Engine.Counters.checkFactionInvitations <= 0) { var invitedFactions = Player.checkForFactionInvitations(); if (invitedFactions.length > 0) { + Player.firstFacInvRecvd = true; var randFaction = invitedFactions[Math.floor(Math.random() * invitedFactions.length)]; inviteToFaction(randFaction); }