mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-29 19:13:49 +01:00
Addded Perk class, Traveling functionality, fixed bugs with script logging and terminal commands
This commit is contained in:
parent
3ecbed1351
commit
52297268f6
@ -57,10 +57,16 @@ TESTING TODO:
|
|||||||
|
|
||||||
Make it so that a script cannot be edited if it is running
|
Make it so that a script cannot be edited if it is running
|
||||||
|
|
||||||
|
+ Traveling
|
||||||
|
|
||||||
Script logging functionality? Logs to internal "log file" (property of script itself)
|
Script logging functionality? Logs to internal "log file" (property of script itself)
|
||||||
Can see log with tail.
|
Can see log with tail.
|
||||||
Should add something where if you click it in the "Active Scripts" GUI you can see the logs too
|
Should add something where if you click it in the "Active Scripts" GUI you can see the logs too
|
||||||
|
|
||||||
|
Seems to work fine
|
||||||
Tasks TODO:
|
Tasks TODO:
|
||||||
|
New server hostname in Purchase Server Pop-up Box needs limits..don't think the ones set in HTML work
|
||||||
|
|
||||||
Tutorial and help - INTERACTIVE TUTORIAL
|
Tutorial and help - INTERACTIVE TUTORIAL
|
||||||
Secret Servers
|
Secret Servers
|
||||||
|
|
||||||
@ -68,7 +74,7 @@ Tasks TODO:
|
|||||||
|
|
||||||
Create new menu page for purchased servers
|
Create new menu page for purchased servers
|
||||||
|
|
||||||
Gyms + Traveling
|
Gyms - Later..don't need for MVP
|
||||||
|
|
||||||
Update CONSTANTS.HelpText
|
Update CONSTANTS.HelpText
|
||||||
Account for Max possible int when gaining exp (it will overflow)
|
Account for Max possible int when gaining exp (it will overflow)
|
||||||
|
14
index.html
14
index.html
@ -22,6 +22,7 @@
|
|||||||
<script src="utils/PurchaseServerBox.js"></script>
|
<script src="utils/PurchaseServerBox.js"></script>
|
||||||
<script src="utils/FactionInvitationBox.js"></script>
|
<script src="utils/FactionInvitationBox.js"></script>
|
||||||
<script src="utils/PurchaseAugmentationBox.js"></script>
|
<script src="utils/PurchaseAugmentationBox.js"></script>
|
||||||
|
<script src="utils/TravelBox.js"></script>
|
||||||
|
|
||||||
<!-- Netscript -->
|
<!-- Netscript -->
|
||||||
<script src="src/netscript/NetScriptWorker.js"></script>
|
<script src="src/netscript/NetScriptWorker.js"></script>
|
||||||
@ -45,6 +46,7 @@
|
|||||||
<script src="src/PurchaseServers.js"></script>
|
<script src="src/PurchaseServers.js"></script>
|
||||||
<script src="src/CreateProgram.js"></script>
|
<script src="src/CreateProgram.js"></script>
|
||||||
<script src="src/Augmentations.js"></script>
|
<script src="src/Augmentations.js"></script>
|
||||||
|
<script src="src/Perk.js"></script>
|
||||||
|
|
||||||
<script src="src/engine.js"></script>
|
<script src="src/engine.js"></script>
|
||||||
|
|
||||||
@ -466,6 +468,9 @@
|
|||||||
<a href="#" id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $600,000,000</a>
|
<a href="#" id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $600,000,000</a>
|
||||||
|
|
||||||
<!-- Travel agency -->
|
<!-- Travel agency -->
|
||||||
|
<p id="location-travel-agency-text">
|
||||||
|
From here, you can travel to any other city! A ticket costs $1,000,000.
|
||||||
|
</p>
|
||||||
<a href="#" id="location-travel-to-aevum" class="a-link-button"> Travel to Aevum </a>
|
<a href="#" id="location-travel-to-aevum" class="a-link-button"> Travel to Aevum </a>
|
||||||
<a href="#" id="location-travel-to-chongqing" class="a-link-button"> Travel to Chongqing</a>
|
<a href="#" id="location-travel-to-chongqing" class="a-link-button"> Travel to Chongqing</a>
|
||||||
<a href="#" id="location-travel-to-sector12" class="a-link-button"> Travel to Sector-12</a>
|
<a href="#" id="location-travel-to-sector12" class="a-link-button"> Travel to Sector-12</a>
|
||||||
@ -496,6 +501,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Travel Pop-up Box -->
|
||||||
|
<div id="travel-box-container">
|
||||||
|
<div id="travel-box-content".
|
||||||
|
<p id="travel-box-text"> </p>
|
||||||
|
<span id="travel-box-confirm"> Yes </span>
|
||||||
|
<span id="travel-box-cancel"> No </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Purchase Augmentation Pop-up Box -->
|
<!-- Purchase Augmentation Pop-up Box -->
|
||||||
<div id="purchase-augmentation-box-container">
|
<div id="purchase-augmentation-box-container">
|
||||||
<div id="purchase-augmentation-box-content">
|
<div id="purchase-augmentation-box-content">
|
||||||
|
@ -34,7 +34,7 @@ CONSTANTS = {
|
|||||||
"rm Delete a script/program from the machine. (WARNING: Permanent)<br>" +
|
"rm Delete a script/program from the machine. (WARNING: Permanent)<br>" +
|
||||||
"run [script/program] Execute a program or a script<br>" +
|
"run [script/program] Execute a program or a script<br>" +
|
||||||
"scan See 'netstat' command<br>" +
|
"scan See 'netstat' command<br>" +
|
||||||
"tail [script] Display script logs (logs contain details about active scripts)"
|
"tail [script] Display script logs (logs contain details about active scripts)" +
|
||||||
"telnet [ip/hostname] See 'connect' command<br>" +
|
"telnet [ip/hostname] See 'connect' command<br>" +
|
||||||
"top Display all running scripts and their RAM usage<br>",
|
"top Display all running scripts and their RAM usage<br>",
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ CONSTANTS = {
|
|||||||
"will have very high security and will need many ports opened. In order to open ports on another " +
|
"will have very high security and will need many ports opened. In order to open ports on another " +
|
||||||
"server, you will need to run programs that attack the server to open specific ports. These programs " +
|
"server, you will need to run programs that attack the server to open specific ports. These programs " +
|
||||||
"can be coded once your hacking skill gets high enough, or they can be purchased if you can find " +
|
"can be coded once your hacking skill gets high enough, or they can be purchased if you can find " +
|
||||||
"a seller. <br><br>"
|
"a seller. <br><br>" +
|
||||||
"In order to determine how many ports need to be opened to successfully NUKE a server, connect to " +
|
"In order to determine how many ports need to be opened to successfully NUKE a server, connect to " +
|
||||||
"that server and run the 'analyze' command. This will also show you which ports have already been " +
|
"that server and run the 'analyze' command. This will also show you which ports have already been " +
|
||||||
"opened. <br>" +
|
"opened. <br>" +
|
||||||
@ -95,7 +95,7 @@ CONSTANTS = {
|
|||||||
"ps - Displays all scripts that are actively running on the current server<br>" +
|
"ps - Displays all scripts that are actively running on the current server<br>" +
|
||||||
"run [script] - Run a script <br>" +
|
"run [script] - Run a script <br>" +
|
||||||
"tail [script] - Displays a script's logs<br>" +
|
"tail [script] - Displays a script's logs<br>" +
|
||||||
"top - Displays all active scripts and their RAM usage <br><br>"
|
"top - Displays all active scripts and their RAM usage <br><br>",
|
||||||
TutorialTravelingText:"There are six major cities in the world that you are able to travel to: <br> " +
|
TutorialTravelingText:"There are six major cities in the world that you are able to travel to: <br> " +
|
||||||
" Aevum<br>" +
|
" Aevum<br>" +
|
||||||
" Chongqing<br>" +
|
" Chongqing<br>" +
|
||||||
@ -105,7 +105,7 @@ CONSTANTS = {
|
|||||||
" Volhaven<br>" +
|
" Volhaven<br>" +
|
||||||
"To travel between cities, visit your current city's travel agency through the 'World' page. " +
|
"To travel between cities, visit your current city's travel agency through the 'World' page. " +
|
||||||
"From the travel agency you can travel to any other city. Doing so costs money. <br>" +
|
"From the travel agency you can travel to any other city. Doing so costs money. <br>" +
|
||||||
"Each city has its own set of companies and unique locations. "
|
"Each city has its own set of companies and unique locations. ",
|
||||||
TutorialJobsText: "Hacking is not the only way to gain money and experience! Located around the world are many " +
|
TutorialJobsText: "Hacking is not the only way to gain money and experience! Located around the world are many " +
|
||||||
"different companies which you can work for. By working for a company you can earn money, " +
|
"different companies which you can work for. By working for a company you can earn money, " +
|
||||||
"train your various labor skills, and unlock powerful passive perks. <br> " +
|
"train your various labor skills, and unlock powerful passive perks. <br> " +
|
||||||
@ -122,7 +122,7 @@ CONSTANTS = {
|
|||||||
"other actions such as using your terminal or visiting other locations (However, note that any scripts you have " +
|
"other actions such as using your terminal or visiting other locations (However, note that any scripts you have " +
|
||||||
"running on servers will continue to run as you work!). It is possible to cancel your work shift before the " +
|
"running on servers will continue to run as you work!). It is possible to cancel your work shift before the " +
|
||||||
"8 hours is up, but doing so will result in you gaining only half of all of the money, experience, and reputation " +
|
"8 hours is up, but doing so will result in you gaining only half of all of the money, experience, and reputation " +
|
||||||
"that you had earned up to that point. <br>"
|
"that you had earned up to that point. <br>" +
|
||||||
"As you continue to work at a company, you will gain more and more reputation at that company. When your stats " +
|
"As you continue to work at a company, you will gain more and more reputation at that company. When your stats " +
|
||||||
"and reputation are high enough, you can get a promotion. You can apply for a promotion on the company page, just like " +
|
"and reputation are high enough, you can get a promotion. You can apply for a promotion on the company page, just like " +
|
||||||
"you applied for the job originally. Higher positions at a company provide better salaries and stat gains",
|
"you applied for the job originally. Higher positions at a company provide better salaries and stat gains",
|
||||||
|
@ -30,7 +30,7 @@ function displayCreateProgramContent() {
|
|||||||
portHackALink.style.display = "block";
|
portHackALink.style.display = "block";
|
||||||
portHackALink.addEventListener("click", function() {
|
portHackALink.addEventListener("click", function() {
|
||||||
createProgram(Programs.PortHackProgram);
|
createProgram(Programs.PortHackProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//BruteSSH
|
//BruteSSH
|
||||||
@ -39,7 +39,7 @@ function displayCreateProgramContent() {
|
|||||||
bruteSshALink.style.display = "block";
|
bruteSshALink.style.display = "block";
|
||||||
bruteSshALink.addEventListener("click", function() {
|
bruteSshALink.addEventListener("click", function() {
|
||||||
createProgram(Programs.BruteSSHProgram);
|
createProgram(Programs.BruteSSHProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//FTPCrack
|
//FTPCrack
|
||||||
@ -48,34 +48,34 @@ function displayCreateProgramContent() {
|
|||||||
ftpCrackALink.style.display = "block";
|
ftpCrackALink.style.display = "block";
|
||||||
ftpCrackALink.addEventListener("click", function() {
|
ftpCrackALink.addEventListener("click", function() {
|
||||||
createProgram(Programs.FTPCrackProgram);
|
createProgram(Programs.FTPCrackProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//relaySMTP
|
//relaySMTP
|
||||||
if (Player.getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram == -1 &&
|
if (Player.getHomeComputer().programs.indexOf(Programs.RelaySMTPProgram) == -1 &&
|
||||||
Player.hacking_skill >= 300) {
|
Player.hacking_skill >= 300) {
|
||||||
relaySmtpALink.style.display = "block";
|
relaySmtpALink.style.display = "block";
|
||||||
relaySmtpAlink.addEventListener("click", function() {
|
relaySmtpAlink.addEventListener("click", function() {
|
||||||
createProgram(Programs.RelaySMTPProgram);
|
createProgram(Programs.RelaySMTPProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//HTTPWorm
|
//HTTPWorm
|
||||||
if (Player.getHomeComputer().programs.indexOf(Programs.HTTPWormProgram == -1 &&
|
if (Player.getHomeComputer().programs.indexOf(Programs.HTTPWormProgram) == -1 &&
|
||||||
Player.hacking_skill >= 500) {
|
Player.hacking_skill >= 500) {
|
||||||
httpWormALink.style.display = "block";
|
httpWormALink.style.display = "block";
|
||||||
httpWormALink.addEventListener("click", function() {
|
httpWormALink.addEventListener("click", function() {
|
||||||
createProgram(Programs.HTTPWormProgram);
|
createProgram(Programs.HTTPWormProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//SQLInject
|
//SQLInject
|
||||||
if (Player.getHomeComputer().programs.indexOf(Programs.SQLInjectProgram == -1 &&
|
if (Player.getHomeComputer().programs.indexOf(Programs.SQLInjectProgram) == -1 &&
|
||||||
Player.hacking_skill >= 750) {
|
Player.hacking_skill >= 750) {
|
||||||
sqlInjectALink.style.display = "block";
|
sqlInjectALink.style.display = "block";
|
||||||
sqlInjectALink.addEventListener("click", function() {
|
sqlInjectALink.addEventListener("click", function() {
|
||||||
createProgram(Programs.SQLInjectProgram);
|
createProgram(Programs.SQLInjectProgram);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +116,7 @@ displayLocationContent = function() {
|
|||||||
var purchase512gb = document.getElementById("location-purchase-512gb");
|
var purchase512gb = document.getElementById("location-purchase-512gb");
|
||||||
var purchase1tb = document.getElementById("location-purchase-1tb");
|
var purchase1tb = document.getElementById("location-purchase-1tb");
|
||||||
|
|
||||||
|
var travelAgencyText = document.getElementById("location-travel-agency-text");
|
||||||
var travelToAevum = document.getElementById("location-travel-to-aevum");
|
var travelToAevum = document.getElementById("location-travel-to-aevum");
|
||||||
var travelToChongqing = document.getElementById("location-travel-to-chongqing");
|
var travelToChongqing = document.getElementById("location-travel-to-chongqing");
|
||||||
var travelToSector12 = document.getElementById("location-travel-to-sector12");
|
var travelToSector12 = document.getElementById("location-travel-to-sector12");
|
||||||
@ -173,6 +174,7 @@ displayLocationContent = function() {
|
|||||||
purchase512gb.style.display = "none";
|
purchase512gb.style.display = "none";
|
||||||
purchase1tb.style.display = "none";
|
purchase1tb.style.display = "none";
|
||||||
|
|
||||||
|
travelAgencyText.style.display = "none";
|
||||||
travelToAevum.style.display = "none";
|
travelToAevum.style.display = "none";
|
||||||
travelToChongqing.style.display = "none";
|
travelToChongqing.style.display = "none";
|
||||||
travelToSector12.style.display = "none";
|
travelToSector12.style.display = "none";
|
||||||
@ -221,6 +223,7 @@ displayLocationContent = function() {
|
|||||||
|
|
||||||
switch (loc) {
|
switch (loc) {
|
||||||
case Locations.AevumTravelAgency:
|
case Locations.AevumTravelAgency:
|
||||||
|
travelAgencyText.style.display = "block";
|
||||||
travelToChongqing.style.display = "block";
|
travelToChongqing.style.display = "block";
|
||||||
travelToSector12.style.display = "block";
|
travelToSector12.style.display = "block";
|
||||||
travelToNewTokyo.style.display = "block";
|
travelToNewTokyo.style.display = "block";
|
||||||
@ -356,6 +359,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.ChongqingTravelAgency:
|
case Locations.ChongqingTravelAgency:
|
||||||
|
travelAgencyText.style.display = "block";
|
||||||
travelToAevum.style.display = "block";
|
travelToAevum.style.display = "block";
|
||||||
travelToSector12.style.display = "block";
|
travelToSector12.style.display = "block";
|
||||||
travelToNewTokyo.style.display = "block";
|
travelToNewTokyo.style.display = "block";
|
||||||
@ -387,6 +391,7 @@ displayLocationContent = function() {
|
|||||||
|
|
||||||
|
|
||||||
case Locations.Sector12TravelAgency:
|
case Locations.Sector12TravelAgency:
|
||||||
|
travelAgencyText.style.display = "block";
|
||||||
travelToAevum.style.display = "block";
|
travelToAevum.style.display = "block";
|
||||||
travelToChongqing.style.display = "block";
|
travelToChongqing.style.display = "block";
|
||||||
travelToNewTokyo.style.display = "block";
|
travelToNewTokyo.style.display = "block";
|
||||||
@ -528,6 +533,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.NewTokyoTravelAgency:
|
case Locations.NewTokyoTravelAgency:
|
||||||
|
travelAgencyText.style.display = "block";
|
||||||
travelToAevum.style.display = "block";
|
travelToAevum.style.display = "block";
|
||||||
travelToChongqing.style.display = "block";
|
travelToChongqing.style.display = "block";
|
||||||
travelToSector12.style.display = "block";
|
travelToSector12.style.display = "block";
|
||||||
@ -574,6 +580,7 @@ displayLocationContent = function() {
|
|||||||
|
|
||||||
|
|
||||||
case Locations.IshimaTravelAgency:
|
case Locations.IshimaTravelAgency:
|
||||||
|
travelAgencyText.style.display = "block";
|
||||||
travelToAevum.style.display = "block";
|
travelToAevum.style.display = "block";
|
||||||
travelToChongqing.style.display = "block";
|
travelToChongqing.style.display = "block";
|
||||||
travelToSector12.style.display = "block";
|
travelToSector12.style.display = "block";
|
||||||
@ -624,8 +631,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.VolhavenTravelAgency:
|
case Locations.VolhavenTravelAgency:
|
||||||
locationInfo.innerHTML = Companies[loc].info;
|
travelAgencyText.style.display = "block";
|
||||||
|
|
||||||
travelToAevum.style.display = "block";
|
travelToAevum.style.display = "block";
|
||||||
travelToChongqing.style.display = "block";
|
travelToChongqing.style.display = "block";
|
||||||
travelToSector12.style.display = "block";
|
travelToSector12.style.display = "block";
|
||||||
@ -1225,4 +1231,40 @@ initLocationButtons = function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
travelToAevum.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.Aevum, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
travelToChongqing.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.Chongqing, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
travelToSector12.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.Sector12, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
travelToNewTokyo.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.NewTokyo, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
travelToIshima.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.Ishima, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
travelToVolhaven.addEventListener("click", function() {
|
||||||
|
travelBoxCreate(Locations.Volhaven, 1000000);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
travelToCity = function(destCityName, cost) {
|
||||||
|
if (cost > Player.money) {
|
||||||
|
dialogBoxCreate("You cannot afford to travel to " + destCityName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player.money -= cost;
|
||||||
|
|
||||||
|
Player.city = destCityName;
|
||||||
|
dialogBoxCreate("You are now in " + destCityName + "!");
|
||||||
|
Engine.loadWorldContent();
|
||||||
}
|
}
|
@ -1,7 +1,4 @@
|
|||||||
/* Worker code, contains Netscript scripts that are actually running */
|
/* Worker code, contains Netscript scripts that are actually running */
|
||||||
//TODO Need some way to stop scripts. Idea: Put a flag in the environment, we can setActive
|
|
||||||
//this flag from outside. If the evaluate() function sees that flag it rejects the current
|
|
||||||
// Promise. We can catch that rejection and stop the script.
|
|
||||||
|
|
||||||
//TODO Tested For and while and generic call statements. Have not tested if statements
|
//TODO Tested For and while and generic call statements. Have not tested if statements
|
||||||
|
|
||||||
|
@ -61,8 +61,8 @@ function PlayerObject() {
|
|||||||
|
|
||||||
//Money
|
//Money
|
||||||
this.money = 0;
|
this.money = 0;
|
||||||
this.total_money = 0;
|
this.total_money = 0; //Total money ever earned
|
||||||
this.lifetime_money = 0;
|
this.lifetime_money = 0; //Total money ever earned
|
||||||
|
|
||||||
//IP Address of Starting (home) computer
|
//IP Address of Starting (home) computer
|
||||||
this.homeComputer = "";
|
this.homeComputer = "";
|
||||||
@ -140,7 +140,7 @@ PlayerObject.prototype.init = function() {
|
|||||||
this.currentServer = t_homeComp.ip;
|
this.currentServer = t_homeComp.ip;
|
||||||
AddToAllServers(t_homeComp);
|
AddToAllServers(t_homeComp);
|
||||||
|
|
||||||
this.getHomeComputer().programs.push(CONSTANTS.PortHackProgram);
|
this.getHomeComputer().programs.push(Programs.NukeProgram);
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerObject.prototype.getCurrentServer = function() {
|
PlayerObject.prototype.getCurrentServer = function() {
|
||||||
@ -648,7 +648,7 @@ PlayerObject.prototype.createProgramWork = function(numCycles) {
|
|||||||
var txt = document.getElementById("work-in-progress-text");
|
var txt = document.getElementById("work-in-progress-text");
|
||||||
txt.innerHTML = "You are currently working on coding " + programName + ".<br><br> " +
|
txt.innerHTML = "You are currently working on coding " + programName + ".<br><br> " +
|
||||||
"You have been working for " + convertTimeMsToTimeElapsedString(this.timeWorked) + "<br><br>" +
|
"You have been working for " + convertTimeMsToTimeElapsedString(this.timeWorked) + "<br><br>" +
|
||||||
"The program is " + (this.timeWorked / timeToComplete).toFixed(2) "% complete. <br>" +
|
"The program is " + (this.timeWorked / timeToComplete).toFixed(2) + "% complete. <br>" +
|
||||||
"If you cancel, you will lose all of your progress.";
|
"If you cancel, you will lose all of your progress.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,6 @@ purchaseServer = function(ram, cost) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var newServ = new Server();
|
var newServ = new Server();
|
||||||
var hostname = document.getElementById("purchase-server-box-input").value;
|
var hostname = document.getElementById("purchase-server-box-input").value;
|
||||||
if (hostname == "") {
|
if (hostname == "") {
|
||||||
|
@ -68,7 +68,7 @@ function Script() {
|
|||||||
this.code = "";
|
this.code = "";
|
||||||
this.ramUsage = 0;
|
this.ramUsage = 0;
|
||||||
this.server = ""; //IP of server this script is on
|
this.server = ""; //IP of server this script is on
|
||||||
this.log = []; //Script logging. Array of strings, with each element being a log entry
|
this.logs = []; //Script logging. Array of strings, with each element being a log entry
|
||||||
|
|
||||||
/* Properties to calculate offline progress. Only applies for infinitely looping scripts */
|
/* Properties to calculate offline progress. Only applies for infinitely looping scripts */
|
||||||
|
|
||||||
@ -127,18 +127,18 @@ Script.prototype.updateRamUsage = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Script.prototype.log = function(txt) {
|
Script.prototype.log = function(txt) {
|
||||||
if (this.log.length > CONSTANTS.MaxLogCapacity) {
|
if (this.logs.length > CONSTANTS.MaxLogCapacity) {
|
||||||
//Delete first element and add new log entry to the end.
|
//Delete first element and add new log entry to the end.
|
||||||
//TODO Eventually it might be better to replace this with circular array
|
//TODO Eventually it might be better to replace this with circular array
|
||||||
//to improve performance
|
//to improve performance
|
||||||
this.log.shift();
|
this.logs.shift();
|
||||||
}
|
}
|
||||||
this.log.push(txt);
|
this.logs.push(txt);
|
||||||
}
|
}
|
||||||
|
|
||||||
Script.prototype.displayLog = function() {
|
Script.prototype.displayLog = function() {
|
||||||
for (var i = 0; i < this.log.length; ++i) {
|
for (var i = 0; i < this.logs.length; ++i) {
|
||||||
post(this.log[i]);
|
post(this.logs[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ var Terminal = {
|
|||||||
post("Estimated chance to hack: " + Math.round(Player.calculateHackingChance() * 100) + "%");
|
post("Estimated chance to hack: " + Math.round(Player.calculateHackingChance() * 100) + "%");
|
||||||
post("Estimated time to hack: " + Math.round(Player.calculateHackingTime()) + " seconds");
|
post("Estimated time to hack: " + Math.round(Player.calculateHackingTime()) + " seconds");
|
||||||
post("Estimed total money available on server: $" + Player.getCurrentServer().moneyAvailable);
|
post("Estimed total money available on server: $" + Player.getCurrentServer().moneyAvailable);
|
||||||
post("Required number of open ports for NUKE: " +Player.getCurrentServer().numOpenPortsRequired);
|
post("Required number of open ports for NUKE: " + Player.getCurrentServer().numOpenPortsRequired);
|
||||||
if (Player.getCurrentServer().sshPortOpen) {
|
if (Player.getCurrentServer().sshPortOpen) {
|
||||||
post("SSH port: Open")
|
post("SSH port: Open")
|
||||||
} else {
|
} else {
|
||||||
@ -425,10 +425,10 @@ var Terminal = {
|
|||||||
//TODO
|
//TODO
|
||||||
break;
|
break;
|
||||||
case "tail":
|
case "tail":
|
||||||
if (commandArray.length != 1) {
|
if (commandArray.length != 2) {
|
||||||
post("Incorrect number of arguments. Usage: tail [script]");
|
post("Incorrect number of arguments. Usage: tail [script]");
|
||||||
} else {
|
} else {
|
||||||
var scriptName == commandArray[1];
|
var scriptName = commandArray[1];
|
||||||
|
|
||||||
//Can only tail script files
|
//Can only tail script files
|
||||||
if (scriptName.endsWith(".script") == false) {
|
if (scriptName.endsWith(".script") == false) {
|
||||||
@ -438,8 +438,9 @@ var Terminal = {
|
|||||||
//Check that the script exists on this machine
|
//Check that the script exists on this machine
|
||||||
var currScripts = Player.getCurrentServer().scripts;
|
var currScripts = Player.getCurrentServer().scripts;
|
||||||
for (var i = 0; i < currScripts.length; ++i) {
|
for (var i = 0; i < currScripts.length; ++i) {
|
||||||
if (scriptName == currScripts[i]) {
|
if (scriptName == currScripts[i].filename) {
|
||||||
currScripts[i].displayLog();
|
currScripts[i].displayLog();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ var Engine = {
|
|||||||
|
|
||||||
//Online
|
//Online
|
||||||
var onlineTotalMoneyMade = "Total online production: $" + workerscript.scriptRef.onlineMoneyMade.toFixed(2);
|
var onlineTotalMoneyMade = "Total online production: $" + workerscript.scriptRef.onlineMoneyMade.toFixed(2);
|
||||||
var onlineTotalExpEarned = (Array(26).join(" ") + workerScript.scriptRef.onlineExpGained.toFixed(2) + " exp").replace( / /g, " ");
|
var onlineTotalExpEarned = (Array(26).join(" ") + workerscript.scriptRef.onlineExpGained.toFixed(2) + " exp").replace( / /g, " ");
|
||||||
|
|
||||||
var onlineMps = workerscript.scriptRef.onlineMoneyMade / workerscript.scriptRef.onlineRunningTime;
|
var onlineMps = workerscript.scriptRef.onlineMoneyMade / workerscript.scriptRef.onlineRunningTime;
|
||||||
var onlineMpsText = "Online production rate: $" + onlineMps.toFixed(2) + "/second";
|
var onlineMpsText = "Online production rate: $" + onlineMps.toFixed(2) + "/second";
|
||||||
@ -432,8 +432,8 @@ var Engine = {
|
|||||||
var onlineEpsText = (Array(25).join(" ") + onlineEps.toFixed(4) + " exp/second").replace( / /g, " ");
|
var onlineEpsText = (Array(25).join(" ") + onlineEps.toFixed(4) + " exp/second").replace( / /g, " ");
|
||||||
|
|
||||||
//Offline
|
//Offline
|
||||||
var offlineTotalMoneyMade = "Total offline production: $" + workerScript.scriptRef.offlineMoneyMade.toFixed(2);
|
var offlineTotalMoneyMade = "Total offline production: $" + workerscript.scriptRef.offlineMoneyMade.toFixed(2);
|
||||||
var offlineTotalExpEarned = (Array(27).join(" ") + workerScript.scriptRef.offlineExpGained.toFixed(2) + " exp").replace( / /g, " ");
|
var offlineTotalExpEarned = (Array(27).join(" ") + workerscript.scriptRef.offlineExpGained.toFixed(2) + " exp").replace( / /g, " ");
|
||||||
|
|
||||||
var offlineMps = workerscript.scriptRef.offlineMoneyMade / workerscript.scriptRef.offlineRunningTime;
|
var offlineMps = workerscript.scriptRef.offlineMoneyMade / workerscript.scriptRef.offlineRunningTime;
|
||||||
var offlineMpsText = "Offline production rate: $" + offlineMps.toFixed(2) + "/second";
|
var offlineMpsText = "Offline production rate: $" + offlineMps.toFixed(2) + "/second";
|
||||||
@ -503,7 +503,7 @@ var Engine = {
|
|||||||
Engine.Clickables.tutorialFactionsButton.style.display = "block";
|
Engine.Clickables.tutorialFactionsButton.style.display = "block";
|
||||||
Engine.Clickables.tutorialAugmentationsButton.style.display = "block";
|
Engine.Clickables.tutorialAugmentationsButton.style.display = "block";
|
||||||
|
|
||||||
Engine.CLickables.tutorialBackButton.style.display = "none";
|
Engine.Clickables.tutorialBackButton.style.display = "none";
|
||||||
document.getElementById("tutorial-text").style.display = "none";
|
document.getElementById("tutorial-text").style.display = "none";
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -518,7 +518,7 @@ var Engine = {
|
|||||||
Engine.Clickables.tutorialFactionsButton.style.display = "none";
|
Engine.Clickables.tutorialFactionsButton.style.display = "none";
|
||||||
Engine.Clickables.tutorialAugmentationsButton.style.display = "none";
|
Engine.Clickables.tutorialAugmentationsButton.style.display = "none";
|
||||||
|
|
||||||
Engine.Clickables.tutorialBackButton.style.display = "block";
|
Engine.Clickables.tutorialBackButton.style.display = "inline-block";
|
||||||
document.getElementById("tutorial-text").style.display = "block";
|
document.getElementById("tutorial-text").style.display = "block";
|
||||||
document.getElementById("tutorial-text").innerHTML = text;
|
document.getElementById("tutorial-text").innerHTML = text;
|
||||||
},
|
},
|
||||||
@ -577,7 +577,7 @@ var Engine = {
|
|||||||
Counters: {
|
Counters: {
|
||||||
autoSaveCounter: 300, //Autosave every minute
|
autoSaveCounter: 300, //Autosave every minute
|
||||||
updateSkillLevelsCounter: 10, //Only update skill levels every 2 seconds. Might improve performance
|
updateSkillLevelsCounter: 10, //Only update skill levels every 2 seconds. Might improve performance
|
||||||
updateDisplays: 10, //Update displays such as Active Scripts display and character display
|
updateDisplays: 5, //Update displays such as Active Scripts display and character display
|
||||||
serverGrowth: 450, //Process server growth every minute and a half
|
serverGrowth: 450, //Process server growth every minute and a half
|
||||||
checkFactionInvitations: 1500, //Check whether you qualify for any faction invitations every 5 minutes
|
checkFactionInvitations: 1500, //Check whether you qualify for any faction invitations every 5 minutes
|
||||||
},
|
},
|
||||||
@ -610,7 +610,7 @@ var Engine = {
|
|||||||
Engine.displayCharacterInfo();
|
Engine.displayCharacterInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
Engine.Counters.updateDisplays = 10;
|
Engine.Counters.updateDisplays = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Engine.Counters.serverGrowth <= 0) {
|
if (Engine.Counters.serverGrowth <= 0) {
|
||||||
|
46
utils/TravelBox.js
Normal file
46
utils/TravelBox.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/* Pop up Purchase Server Box */
|
||||||
|
function travelBoxInit() {
|
||||||
|
if (Engine.Debug) {
|
||||||
|
console.log("Travel box Initialized");
|
||||||
|
}
|
||||||
|
var cancelButton = document.getElementById("travel-box-cancel");
|
||||||
|
|
||||||
|
//Close Dialog box
|
||||||
|
cancelButton.addEventListener("click", function() {
|
||||||
|
travelBoxClose();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", travelBoxInit, false);
|
||||||
|
|
||||||
|
travelBoxClose = function() {
|
||||||
|
var travelBox = document.getElementById("travel-box-container");
|
||||||
|
travelBox.style.display = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
travelBoxOpen = function() {
|
||||||
|
var travelBox = document.getElementById("travel-box-container");
|
||||||
|
travelBox.style.display = "block";
|
||||||
|
}
|
||||||
|
|
||||||
|
travelBoxSetText = function(txt) {
|
||||||
|
var travelBoxText = document.getElementById("travel-box-text");
|
||||||
|
travelBoxText.innerHTML = txt;
|
||||||
|
}
|
||||||
|
|
||||||
|
travelBoxCreate = function(destCityName, cost) {
|
||||||
|
travelBoxSetText("Would you like to travel to " + destCityName + "? The trip will cost $" + cost + ".");
|
||||||
|
|
||||||
|
//Clear old event listeners from Confirm button
|
||||||
|
var confirmButton = document.getElementById("travel-box-confirm");
|
||||||
|
var newConfirmButton = confirmButton.cloneNode(true);
|
||||||
|
confirmButton.parentNode.replaceChild(newConfirmButton, confirmButton);
|
||||||
|
newConfirmButton.addEventListener("click", function() {
|
||||||
|
travelBoxClose();
|
||||||
|
travelToCity(destCityName, cost);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
travelBoxOpen();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user