diff --git a/dist/bundle.js b/dist/bundle.js index c38c6d15a..85e1f27bc 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -2454,7 +2454,7 @@ function dialogBoxCreate(txt) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CONSTANTS; }); let CONSTANTS = { - Version: "0.28.1", + Version: "0.28.2", //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then @@ -2851,7 +2851,7 @@ let CONSTANTS = { "there is no required hacking level to run the command. Returns " + "0.1. Works offline at a slower rate
Example: weaken('foodnstuff');

" + "print(x)
Prints a value or a variable to the scripts logs (which can be viewed with the 'tail [script]' terminal command ).

" + - "tprint(x)
Prints a value or a variable to the Terminal

" + + "tprint(x)
Prints a value or a variable to the Terminal

" + "clearLog()
Clears the script's logs.

" + "scan(hostname/ip)
Returns an array containing the hostnames of all servers that are one node away from the specified server. " + "The argument must be a string containing the IP or hostname of the target server. The hostnames in the returned array are strings.

" + @@ -3314,6 +3314,12 @@ let CONSTANTS = { "World Stock Exchange account and TIX API Access
", LatestUpdate: + "v0.28.2
" + + "-Added a few script editor configuration options. Includes key bindings, themes, etc.
" + + "-Certain menu options will now be hidden until their relevant gameplay is unlocked. This " + + "really only affects new players
" + + "-Most unrecognized or un-implemented syntax errors in a script will now include line number in error message
" + + "-Various bug fixes

" + "v0.28.1
" + "-The script editor now uses the open-source Ace editor, which provides a much better experience when coding!
" + "-Added tprint() Netscript function

" + @@ -25745,7 +25751,7 @@ function iTutorialEvaluateStep() { iTutorialSetText("Welcome to Bitburner, a cyberpunk-themed incremental RPG! " + "The game takes place in a dark, dystopian future...The year is 2077...

" + - "This tutorial will show you the basics of the game to help you get started. " + + "This tutorial will show you the basics of the game. " + "You may skip the tutorial at any time."); var next = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["b" /* clearEventListeners */])("interactive-tutorial-next"); next.style.display = "inline-block"; @@ -25786,7 +25792,7 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.CharacterGoToTerminalPage: iTutorialSetText("Let's head to your computer's terminal by clicking the 'Terminal' tab on the " + - "main navigation menu"); + "main navigation menu."); //No next button var next = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["b" /* clearEventListeners */])("interactive-tutorial-next"); next.style.display = "none"; @@ -25804,8 +25810,7 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.TerminalIntro: iTutorialSetText("The Terminal is used to interface with your home computer as well as " + - "all of the other machines around the world. A lot of content in the game is " + - "accessible only through the Terminal, and is necessary for progressing. "); + "all of the other machines around the world."); var next = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["b" /* clearEventListeners */])("interactive-tutorial-next"); next.style.display = "inline-block"; next.addEventListener("click", function() { @@ -25821,14 +25826,14 @@ function iTutorialEvaluateStep() { //next step triggered by terminal command break; case iTutorialSteps.TerminalLs: - iTutorialSetText("The 'help' command displays a list of all available commands, how to use them, " + + iTutorialSetText("The 'help' command displays a list of all available Terminal commands, how to use them, " + "and a description of what they do.

Let's try another command. Enter the 'ls' command"); //next step triggered by terminal command break; case iTutorialSteps.TerminalScan: iTutorialSetText("'ls' is a basic command that shows all of the contents (programs/scripts) " + "on the computer. Right now, it shows that you have a program called 'NUKE.exe' on your computer. " + - "We'll get to what this does later.

Through your home computer's terminal, you can connect " + + "We'll get to what this does later.

Using your home computer's terminal, you can connect " + "to other machines throughout the world. Let's do that now by first entering " + "the 'scan' command. "); //next step triggered by terminal command @@ -25869,7 +25874,7 @@ function iTutorialEvaluateStep() { case iTutorialSteps.TerminalNuke: iTutorialSetText("When the 'analyze' command finishes running it will show useful information " + "about hacking the server.

For this server, the required hacking skill is only 1, " + - "which means you are able to hack it right now. However, in order to hack a server " + + "which means you can hack it right now. However, in order to hack a server " + "you must first gain root access. The 'NUKE.exe' program that we saw earlier on your " + "home computer is a virus that will grant you root access to a machine if there are enough " + "open ports.

The 'analyze' results shows that there do not need to be any open ports " + @@ -25879,19 +25884,19 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.TerminalManualHack: iTutorialSetText("You now have root access! You can hack the server using the 'hack' command. " + - "Try doing that now. "); + "Try doing that now."); //next step triggered by terminal command break; case iTutorialSteps.TerminalHackingMechanics: iTutorialSetText("You are now attempting to hack the server. Note that performing a hack takes time and " + "only has a certain percentage chance " + "of success. This time and success chance is determined by a variety of factors, including " + - "your hacking skill and the server's security level.

" + + "your hacking skill and the server's security level.

" + "If your attempt to hack the server is successful, you will steal a certain percentage " + "of the server's total money. This percentage is affected by your hacking skill and " + - "the server's security level.

The amount of money on a server is not limitless. So, if " + + "the server's security level.

The amount of money on a server is not limitless. So, if " + "you constantly hack a server and deplete its money, then you will encounter " + - "diminishing returns in your hacking.
"); + "diminishing returns in your hacking."); var next = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["b" /* clearEventListeners */])("interactive-tutorial-next"); next.style.display = "inline-block"; next.addEventListener("click", function() { @@ -25902,7 +25907,7 @@ function iTutorialEvaluateStep() { case iTutorialSteps.TerminalCreateScript: iTutorialSetText("Hacking is the core mechanic of the game and is necessary for progressing. However, " + "you don't want to be hacking manually the entire time. You can automate your hacking " + - "by writing scripts!

To create a new script or edit an existing one, you can use the 'nano' " + + "by writing scripts!

To create a new script or edit an existing one, you can use the 'nano' " + "command. Scripts must end with the '.script' extension. Let's make a script now by " + "entering 'nano foodnstuff.script' after the hack command finishes running (Sidenote: Pressing ctrl + c" + " will end a command like hack early)"); @@ -25921,14 +25926,14 @@ function iTutorialEvaluateStep() { "  hack('foodnstuff');
" + "}

" + "For anyone with basic programming experience, this code should be straightforward. " + - "This script will continuously hack the 'foodnstuff' server.

" + + "This script will continuously hack the 'foodnstuff' server.

" + "To save and close the script editor, press the button in the bottom left, or press ctrl + b."); //next step triggered in saveAndCloseScriptEditor() (Script.js) break; case iTutorialSteps.TerminalFree: iTutorialSetText("Now we'll run the script. Scripts require a certain amount of RAM to run, and can be " + "run on any machine which you have root access to. Different servers have different " + - "amounts of RAM. You can also purchase more RAM for your home server.

To check how much " + + "amounts of RAM. You can also purchase more RAM for your home server.

To check how much " + "RAM is available on this machine, enter the 'free' command."); //next step triggered by terminal commmand break; @@ -25944,8 +25949,8 @@ function iTutorialEvaluateStep() { "runs an infinite loop).

These scripts can passively earn you income and hacking experience. " + "Your scripts will also earn money and experience while you are offline, although at a " + "much slower rate.

" + - "Let's check out some statistics of our active, running scripts by clicking the " + - "'Active Scripts' link in the main navigation menu. "); + "Let's check out some statistics for our running scripts by clicking the " + + "'Active Scripts' link in the main navigation menu."); document.getElementById("active-scripts-menu-link").setAttribute("class", "flashing-button"); var activeScriptsMainMenuButton = document.getElementById("active-scripts-menu-link"); activeScriptsMainMenuButton.addEventListener("click", function() { @@ -26014,7 +26019,7 @@ function iTutorialEvaluateStep() { iTutorialSetText("You just purchased a Hacknet Node! This Hacknet Node will passively " + "earn you money over time, both online and offline. When you get enough " + " money, you can upgrade " + - "your newly-purchased Hacknet Node below.

" + + "your newly-purchased Hacknet Node below.

" + "Let's go to the 'City' page through the main navigation menu."); document.getElementById("city-menu-link").setAttribute("class", "flashing-button"); var worldButton = Object(__WEBPACK_IMPORTED_MODULE_2__utils_HelperFunctions_js__["b" /* clearEventListeners */])("city-menu-link"); diff --git a/src/Constants.js b/src/Constants.js index d78348273..a07ede7e9 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -1,5 +1,5 @@ let CONSTANTS = { - Version: "0.28.1", + Version: "0.28.2", //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then @@ -396,7 +396,7 @@ let CONSTANTS = { "there is no required hacking level to run the command. Returns " + "0.1. Works offline at a slower rate
Example: weaken('foodnstuff');

" + "print(x)
Prints a value or a variable to the scripts logs (which can be viewed with the 'tail [script]' terminal command ).

" + - "tprint(x)
Prints a value or a variable to the Terminal

" + + "tprint(x)
Prints a value or a variable to the Terminal

" + "clearLog()
Clears the script's logs.

" + "scan(hostname/ip)
Returns an array containing the hostnames of all servers that are one node away from the specified server. " + "The argument must be a string containing the IP or hostname of the target server. The hostnames in the returned array are strings.

" + @@ -859,6 +859,12 @@ let CONSTANTS = { "World Stock Exchange account and TIX API Access
", LatestUpdate: + "v0.28.2
" + + "-Added a few script editor configuration options. Includes key bindings, themes, etc.
" + + "-Certain menu options will now be hidden until their relevant gameplay is unlocked. This " + + "really only affects new players
" + + "-Most unrecognized or un-implemented syntax errors in a script will now include line number in error message
" + + "-Various bug fixes

" + "v0.28.1
" + "-The script editor now uses the open-source Ace editor, which provides a much better experience when coding!
" + "-Added tprint() Netscript function

" + diff --git a/src/InteractiveTutorial.js b/src/InteractiveTutorial.js index 665f560d6..3bbd431ad 100644 --- a/src/InteractiveTutorial.js +++ b/src/InteractiveTutorial.js @@ -73,7 +73,7 @@ function iTutorialEvaluateStep() { iTutorialSetText("Welcome to Bitburner, a cyberpunk-themed incremental RPG! " + "The game takes place in a dark, dystopian future...The year is 2077...

" + - "This tutorial will show you the basics of the game to help you get started. " + + "This tutorial will show you the basics of the game. " + "You may skip the tutorial at any time."); var next = clearEventListeners("interactive-tutorial-next"); next.style.display = "inline-block"; @@ -114,7 +114,7 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.CharacterGoToTerminalPage: iTutorialSetText("Let's head to your computer's terminal by clicking the 'Terminal' tab on the " + - "main navigation menu"); + "main navigation menu."); //No next button var next = clearEventListeners("interactive-tutorial-next"); next.style.display = "none"; @@ -132,8 +132,7 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.TerminalIntro: iTutorialSetText("The Terminal is used to interface with your home computer as well as " + - "all of the other machines around the world. A lot of content in the game is " + - "accessible only through the Terminal, and is necessary for progressing. "); + "all of the other machines around the world."); var next = clearEventListeners("interactive-tutorial-next"); next.style.display = "inline-block"; next.addEventListener("click", function() { @@ -149,14 +148,14 @@ function iTutorialEvaluateStep() { //next step triggered by terminal command break; case iTutorialSteps.TerminalLs: - iTutorialSetText("The 'help' command displays a list of all available commands, how to use them, " + + iTutorialSetText("The 'help' command displays a list of all available Terminal commands, how to use them, " + "and a description of what they do.

Let's try another command. Enter the 'ls' command"); //next step triggered by terminal command break; case iTutorialSteps.TerminalScan: iTutorialSetText("'ls' is a basic command that shows all of the contents (programs/scripts) " + "on the computer. Right now, it shows that you have a program called 'NUKE.exe' on your computer. " + - "We'll get to what this does later.

Through your home computer's terminal, you can connect " + + "We'll get to what this does later.

Using your home computer's terminal, you can connect " + "to other machines throughout the world. Let's do that now by first entering " + "the 'scan' command. "); //next step triggered by terminal command @@ -197,7 +196,7 @@ function iTutorialEvaluateStep() { case iTutorialSteps.TerminalNuke: iTutorialSetText("When the 'analyze' command finishes running it will show useful information " + "about hacking the server.

For this server, the required hacking skill is only 1, " + - "which means you are able to hack it right now. However, in order to hack a server " + + "which means you can hack it right now. However, in order to hack a server " + "you must first gain root access. The 'NUKE.exe' program that we saw earlier on your " + "home computer is a virus that will grant you root access to a machine if there are enough " + "open ports.

The 'analyze' results shows that there do not need to be any open ports " + @@ -207,19 +206,19 @@ function iTutorialEvaluateStep() { break; case iTutorialSteps.TerminalManualHack: iTutorialSetText("You now have root access! You can hack the server using the 'hack' command. " + - "Try doing that now. "); + "Try doing that now."); //next step triggered by terminal command break; case iTutorialSteps.TerminalHackingMechanics: iTutorialSetText("You are now attempting to hack the server. Note that performing a hack takes time and " + "only has a certain percentage chance " + "of success. This time and success chance is determined by a variety of factors, including " + - "your hacking skill and the server's security level.

" + + "your hacking skill and the server's security level.

" + "If your attempt to hack the server is successful, you will steal a certain percentage " + "of the server's total money. This percentage is affected by your hacking skill and " + - "the server's security level.

The amount of money on a server is not limitless. So, if " + + "the server's security level.

The amount of money on a server is not limitless. So, if " + "you constantly hack a server and deplete its money, then you will encounter " + - "diminishing returns in your hacking.
"); + "diminishing returns in your hacking."); var next = clearEventListeners("interactive-tutorial-next"); next.style.display = "inline-block"; next.addEventListener("click", function() { @@ -230,7 +229,7 @@ function iTutorialEvaluateStep() { case iTutorialSteps.TerminalCreateScript: iTutorialSetText("Hacking is the core mechanic of the game and is necessary for progressing. However, " + "you don't want to be hacking manually the entire time. You can automate your hacking " + - "by writing scripts!

To create a new script or edit an existing one, you can use the 'nano' " + + "by writing scripts!

To create a new script or edit an existing one, you can use the 'nano' " + "command. Scripts must end with the '.script' extension. Let's make a script now by " + "entering 'nano foodnstuff.script' after the hack command finishes running (Sidenote: Pressing ctrl + c" + " will end a command like hack early)"); @@ -249,14 +248,14 @@ function iTutorialEvaluateStep() { "  hack('foodnstuff');
" + "}

" + "For anyone with basic programming experience, this code should be straightforward. " + - "This script will continuously hack the 'foodnstuff' server.

" + + "This script will continuously hack the 'foodnstuff' server.

" + "To save and close the script editor, press the button in the bottom left, or press ctrl + b."); //next step triggered in saveAndCloseScriptEditor() (Script.js) break; case iTutorialSteps.TerminalFree: iTutorialSetText("Now we'll run the script. Scripts require a certain amount of RAM to run, and can be " + "run on any machine which you have root access to. Different servers have different " + - "amounts of RAM. You can also purchase more RAM for your home server.

To check how much " + + "amounts of RAM. You can also purchase more RAM for your home server.

To check how much " + "RAM is available on this machine, enter the 'free' command."); //next step triggered by terminal commmand break; @@ -272,8 +271,8 @@ function iTutorialEvaluateStep() { "runs an infinite loop).

These scripts can passively earn you income and hacking experience. " + "Your scripts will also earn money and experience while you are offline, although at a " + "much slower rate.

" + - "Let's check out some statistics of our active, running scripts by clicking the " + - "'Active Scripts' link in the main navigation menu. "); + "Let's check out some statistics for our running scripts by clicking the " + + "'Active Scripts' link in the main navigation menu."); document.getElementById("active-scripts-menu-link").setAttribute("class", "flashing-button"); var activeScriptsMainMenuButton = document.getElementById("active-scripts-menu-link"); activeScriptsMainMenuButton.addEventListener("click", function() { @@ -342,7 +341,7 @@ function iTutorialEvaluateStep() { iTutorialSetText("You just purchased a Hacknet Node! This Hacknet Node will passively " + "earn you money over time, both online and offline. When you get enough " + " money, you can upgrade " + - "your newly-purchased Hacknet Node below.

" + + "your newly-purchased Hacknet Node below.

" + "Let's go to the 'City' page through the main navigation menu."); document.getElementById("city-menu-link").setAttribute("class", "flashing-button"); var worldButton = clearEventListeners("city-menu-link");