diff --git a/README.md b/README.md
index 3bddf0751..9376c5fb4 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@ TESTING TODO:
Can see log with tail.
Should add something where if you click it in the "Active Scripts" GUI you can see the logs too
Tasks TODO:
- Tutorial and help
+ Tutorial and help - INTERACTIVE TUTORIAL
Secret Servers
Hack time formula needs rebalancing I think
diff --git a/src/Constants.js b/src/Constants.js
index fadb59989..0289c8f4e 100644
--- a/src/Constants.js
+++ b/src/Constants.js
@@ -18,7 +18,7 @@ CONSTANTS = {
MaxLogCapacity: 20,
//Programs
- PortHackProgram: "PortHack.exe",
+ NukeProgram: "NUKE.exe",
BruteSSHProgram: "BruteSSH.exe",
FTPCrackProgram: "FTPCrack.exe",
RelaySMTPProgram: "relaySMTP.exe",
@@ -30,7 +30,7 @@ CONSTANTS = {
"clear Clear all text on the terminal
" +
"cls See 'clear' command
" +
"connect [ip/hostname] Connects to the machine given by its IP or hostname
" +
- "free Check the machine's memory usage
" +
+ "free Check the machine's memory (RAM) usage
" +
"hack Hack the current machine
" +
"help Display this list
" +
"hostname Displays the hostname of the machine
" +
@@ -43,16 +43,59 @@ CONSTANTS = {
"rm Delete a script/program from the machine. (WARNING: Permanent)
" +
"run [script/program] Execute a program or a script
" +
"scan See 'netstat' command
" +
- "tail 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
" +
"top Display all running scripts and their RAM usage
",
/* Tutorial related things */
- TutorialGettingStartedText:
+ TutorialGettingStartedText: "Todo...",
- TutorialNetworkingText:
- TutorialHackingText:
- TutorialScriptsText:
+ TutorialNetworkingText: "Servers are a central part of the game. You start with a single personal server (your home computer) " +
+ "and you can purchase additional servers as you progress through the game. Connecting to other servers " +
+ "and hacking them can be a major source of income and experience. Servers can also be used to run " +
+ "scripts which can automatically hack servers for you.
" +
+ "In order to navigate between machines, use the 'scan' or 'netstat' commands to see all servers " +
+ "that are reachable from your current server. Then, you can use the 'connect [hostname/ip]' or " +
+ "'telnet [hostname/ip]' commands to connect to one of the available machines.
" +
+ "The 'hostname' and 'ifconfig' commands can be used to display the hostname/IP of the " +
+ "server you are currently connected to.",
+
+ TutorialHackingText: "In the year 2077, currency has become digital and decentralized. People and corporations " +
+ "store their money on servers. By hacking these servers, you can steal their money and gain " +
+ "experience.
" +
+ "Gaining root access
" +
+ "The key to hacking a server is to gain root access to that server. This can be done using " +
+ "the NUKE virus (NUKE.exe). You start the game with a copy of the NUKE virus on your home " +
+ "computer. The NUKE virus attacks the target server's open ports using buffer overflow " +
+ "exploits. When successful, you are granted root administrative access to the machine.
" +
+ "Typically, in order for the NUKE virus to succeed, the target server needs to have at least " +
+ "one of its ports opened. Some servers have no security and will not need any ports opened. Some " +
+ "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 " +
+ "can be coded once your hacking skill gets high enough, or they can be purchased if you can find " +
+ "a seller.
"
+ "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 " +
+ "opened.
" +
+ "Once you have enough ports opened and have ran the NUKE virus to gain root access, the server " +
+ "can then be hacked by simply calling the 'hack' command, or by using a script.
" +
+ "Hacking mechanics
" +
+ ,
+
+ //TODO Add stuff about only hacking a percentage and so if you keep hacking a server it'll go down, and
+ //Hacking percentage
+
+ TutorialScriptsText: "Scripts can be used to automate the hacking process. Scripts must be written in the Netscript language " +
+ "and are saved as a file. Running a script requires RAM. The more complex a script is, the more RAM " +
+ "it requires to run. Scripts can be run on any server you have root access to.
" +
+ "Here are some commands that are useful when working with scripts:
" +
+ "free - Shows the current server's RAM usage
" +
+ "kill [script] - Stops a script that is running
" +
+ "nano [script] - Edit the script
" +
+ "ps - Displays all scripts that are actively running on the current server
" +
+ "run [script] - Run a script
" +
+ "tail [script] - Displays a script's logs
" +
+ "top - Displays all active scripts and their RAM usage
"
TutorialTravelingText:
TutorialJobsText:
TutorialFactionsText:
diff --git a/src/CreateProgram.js b/src/CreateProgram.js
index ca80b38a9..f6b82c36c 100644
--- a/src/CreateProgram.js
+++ b/src/CreateProgram.js
@@ -17,7 +17,7 @@ function displayCreateProgramContent() {
//TODO These addEventListeners should only happen once so I guess just put them in Engine.init()
//PortHack.exe (in case you delete it lol)
- if (Player.getHomeComputer().programs.indexOf(CONSTANTS.PortHackProgram) == -1) {
+ if (Player.getHomeComputer().programs.indexOf(CONSTANTS.NukeProgram) == -1) {
portHackALink.style.display = "block";
portHackALink.addEventListener("click", function() {
createProgram(CONSTANTS.PortHackProgram);
diff --git a/src/Terminal.js b/src/Terminal.js
index 979989d00..6bee6f4e3 100644
--- a/src/Terminal.js
+++ b/src/Terminal.js
@@ -140,7 +140,7 @@ var Terminal = {
post("Estimated chance to hack: " + Math.round(Player.calculateHackingChance() * 100) + "%");
post("Estimated time to hack: " + Math.round(Player.calculateHackingTime()) + " seconds");
post("Estimed total money available on server: $" + Player.getCurrentServer().moneyAvailable);
- post("Required number of open ports for PortHack: " +Player.getCurrentServer().numOpenPortsRequired);
+ post("Required number of open ports for NUKE: " +Player.getCurrentServer().numOpenPortsRequired);
if (Player.getCurrentServer().sshPortOpen) {
post("SSH port: Open")
} else {
@@ -471,17 +471,17 @@ var Terminal = {
//Contains the implementations of all possible programs
executeProgram: function(programName) {
switch (programName) {
- case CONSTANTS.PortHackProgram:
+ case CONSTANTS.NukeProgram:
if (Player.getCurrentServer().hasAdminRights) {
- post("You already have root access to this computer. There is no reason to run PortHack.exe");
+ post("You already have root access to this computer. There is no reason to run NUKE.exe");
} else {
- console.log("Running PortHack executable");
+ console.log("Running NUKE executable");
if (Player.getCurrentServer().openPortCount >= Player.getCurrentServer().numOpenPortsRequired) {
Player.getCurrentServer().hasAdminRights = true;
- post("PortHack successful! Gained root access to " + Player.getCurrentServer().hostname);
+ post("NUKE successful! Gained root access to " + Player.getCurrentServer().hostname);
//TODO Make this take time rather than be instant
} else {
- post("PortHack unsuccessful. Not enough ports have been opened");
+ post("NUKE unsuccessful. Not enough ports have been opened");
}
}
break;