Merge pull request #30 from danielyxie/dev

Dev v0.17.6
This commit is contained in:
danielyxie 2017-05-30 16:01:28 -05:00 committed by GitHub
commit 6d7bccb208
5 changed files with 201 additions and 186 deletions

@ -60,51 +60,62 @@
<script src="src/engine.js"></script> <script src="src/engine.js"></script>
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-100157497-1', 'auto');
ga('send', 'pageview');
</script>
</head> </head>
<body> <body>
<div id="mainmenu-container"> <div id="mainmenu-container">
<!-- Main menu --> <!-- Main menu -->
<ul class="mainmenu"> <ul class="mainmenu">
<li class="terminal-tab"> <li class="terminal-tab">
<a href="#" id="terminal-menu-link"> Terminal </a> <a id="terminal-menu-link"> Terminal </a>
</li> </li>
<li class="character-tab"> <li class="character-tab">
<a href="#" id="character-menu-link"> Character </a> <a id="character-menu-link"> Character </a>
</li> </li>
<!-- These scripts stuff should be hidden until level 2, but leave them visible for now to test --> <!-- These scripts stuff should be hidden until level 2, but leave them visible for now to test -->
<li class="create-script-tab"> <li class="create-script-tab">
<a href="#" id="create-script-menu-link"> Create Script </a> <a id="create-script-menu-link"> Create Script </a>
</li> </li>
<li class="active-scripts-tab"> <li class="active-scripts-tab">
<a href="#" id="active-scripts-menu-link"> Active Scripts </a> <a id="active-scripts-menu-link"> Active Scripts </a>
</li> </li>
<li class="hacknet-nodes-tab"> <li class="hacknet-nodes-tab">
<a href="#" id="hacknet-nodes-menu-link"> Hacknet Nodes </a> <a id="hacknet-nodes-menu-link"> Hacknet Nodes </a>
</li> </li>
<li class="world-tab"> <li class="world-tab">
<a href="#" id="world-menu-link"> World </a> <a id="world-menu-link"> World </a>
</li> </li>
<li class="create-program-tab"> <li class="create-program-tab">
<a href="#" id="create-program-menu-link"> Create Program </a> <a id="create-program-menu-link"> Create Program </a>
<span id="create-program-notification" class="notification-off"> </span> <span id="create-program-notification" class="notification-off"> </span>
</li> </li>
<li class="factions-tab"> <li class="factions-tab">
<a href="#" id="factions-menu-link"> Factions </a> <a id="factions-menu-link"> Factions </a>
</li> </li>
<li class="augmentations-tab"> <li class="augmentations-tab">
<a href="#" id="augmentations-menu-link"> Augmentations </a> <a id="augmentations-menu-link"> Augmentations </a>
</li> </li>
<li class="tutorial-tab"> <li class="tutorial-tab">
<a href="#" id="tutorial-menu-link"> Tutorial </a> <a id="tutorial-menu-link"> Tutorial </a>
</li> </li>
<li class="options-tab"> <li class="options-tab">
@ -174,7 +185,7 @@
Each Hacknet Node you purchase will passively earn you money. Each Hacknet Node can be upgraded Each Hacknet Node you purchase will passively earn you money. Each Hacknet Node can be upgraded
in order to increase its computing power and thereby increase the profit you earn from it. in order to increase its computing power and thereby increase the profit you earn from it.
</p> </p>
<a href="#" id="hacknet-nodes-purchase-button" class="a-link-button"> Purchase Hacknet Node </a> <a id="hacknet-nodes-purchase-button" class="a-link-button"> Purchase Hacknet Node </a>
<br> <br>
<div id="hacknet-nodes-money-multipliers-div">" <div id="hacknet-nodes-money-multipliers-div">"
<p id="hacknet-nodes-money"> </p> <p id="hacknet-nodes-money"> </p>
@ -195,193 +206,193 @@
<p id="world-city-desc"> </p> <p id="world-city-desc"> </p>
<ul id="aevum-locations-list"> <ul id="aevum-locations-list">
<li id="aevum-travelagency-li"> <li id="aevum-travelagency-li">
<a href="#" id="aevum-travelagency" class="a-link-button"> Travel Agency </a> <a id="aevum-travelagency" class="a-link-button"> Travel Agency </a>
</li> </li>
<li id="aevum-summituniversity-li"> <li id="aevum-summituniversity-li">
<a href="#" id="aevum-summituniversity" class="a-link-button"> Summit University </a> <a id="aevum-summituniversity" class="a-link-button"> Summit University </a>
</li> </li>
<li id="aevum-ecorp-li"> <li id="aevum-ecorp-li">
<a href="#" id="aevum-ecorp" class="a-link-button"> ECorp </a> <a id="aevum-ecorp" class="a-link-button"> ECorp </a>
</li> </li>
<li id="aevum-bachmanandassociates-li"> <li id="aevum-bachmanandassociates-li">
<a href="#" id="aevum-bachmanandassociates" class="a-link-button"> Bachman & Associates</a> <a id="aevum-bachmanandassociates" class="a-link-button"> Bachman & Associates</a>
</li> </li>
<li id="aevum-clarkeincorporated-li"> <li id="aevum-clarkeincorporated-li">
<a href="#" id="aevum-clarkeincorporated" class="a-link-button"> Clarke Incorporated </a> <a id="aevum-clarkeincorporated" class="a-link-button"> Clarke Incorporated </a>
</li> </li>
<li id="aevum-fulcrumtechnologies-li"> <li id="aevum-fulcrumtechnologies-li">
<a href="#" id="aevum-fulcrumtechnologies" class="a-link-button"> Fulcrum Technologies </a> <a id="aevum-fulcrumtechnologies" class="a-link-button"> Fulcrum Technologies </a>
</li> </li>
<li id="aevum-aerocorp-li"> <li id="aevum-aerocorp-li">
<a href="#" id="aevum-aerocorp" class="a-link-button"> AeroCorp </a> <a id="aevum-aerocorp" class="a-link-button"> AeroCorp </a>
</li> </li>
<li id="aevum-galacticcybersystems-li"> <li id="aevum-galacticcybersystems-li">
<a href="#" id="aevum-galacticcybersystems" class="a-link-button"> Galactic Cybersystems </a> <a id="aevum-galacticcybersystems" class="a-link-button"> Galactic Cybersystems </a>
</li> </li>
<li id="aevum-watchdogsecurity-li"> <li id="aevum-watchdogsecurity-li">
<a href="#" id="aevum-watchdogsecurity" class="a-link-button">Watchdog Security </a> <a id="aevum-watchdogsecurity" class="a-link-button">Watchdog Security </a>
</li> </li>
<li id="aevum-rhoconstruction-li"> <li id="aevum-rhoconstruction-li">
<a href="#" id="aevum-rhoconstruction" class="a-link-button">Rho Construction </a> <a id="aevum-rhoconstruction" class="a-link-button">Rho Construction </a>
</li> </li>
<li id="aevum-aevumpolice-li"> <li id="aevum-aevumpolice-li">
<a href="#" id="aevum-aevumpolice" class="a-link-button">Aevum Police</a> <a id="aevum-aevumpolice" class="a-link-button">Aevum Police</a>
</li> </li>
<li id="aevum-netlinktechnologies-li"> <li id="aevum-netlinktechnologies-li">
<a href="#" id="aevum-netlinktechnologies" class="a-link-button">NetLink Technologies</a> <a id="aevum-netlinktechnologies" class="a-link-button">NetLink Technologies</a>
</li> </li>
<li id="aevum-crushfitnessgym-li"> <li id="aevum-crushfitnessgym-li">
<a href="#" id="aevum-crushfitnessgym" class="a-link-button">Crush Fitness Gym </a> <a id="aevum-crushfitnessgym" class="a-link-button">Crush Fitness Gym </a>
</li> </li>
<li id="aevum-snapfitnessgym-li"> <li id="aevum-snapfitnessgym-li">
<a href="#" id="aevum-snapfitnessgym" class="a-link-button">Snap Fitness Gym</a> <a id="aevum-snapfitnessgym" class="a-link-button">Snap Fitness Gym</a>
</li> </li>
<li id="aevum-slums-li"> <li id="aevum-slums-li">
<a href="#" id="aevum-slums" class="a-link-button">The Slums</a> <a id="aevum-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
<ul id="chongqing-locations-list"> <ul id="chongqing-locations-list">
<li id="chongqing-travelagency-li"> <li id="chongqing-travelagency-li">
<a href="#" id="chongqing-travelagency" class="a-link-button"> Travel Agency </a> <a id="chongqing-travelagency" class="a-link-button"> Travel Agency </a>
</li> </li>
<li id="chonqging-kuaigonginternational-li"> <li id="chonqging-kuaigonginternational-li">
<a href="#" id="chongqing-kuaigonginternational" class="a-link-button">KuaiGong International </a> <a id="chongqing-kuaigonginternational" class="a-link-button">KuaiGong International </a>
</li> </li>
<li id="chongqing-solarisspacesystems-li"> <li id="chongqing-solarisspacesystems-li">
<a href="#" id="chongqing-solarisspacesystems" class="a-link-button">Solaris Space Systems</a> <a id="chongqing-solarisspacesystems" class="a-link-button">Solaris Space Systems</a>
</li> </li>
<li id="chongqing-slums-li"> <li id="chongqing-slums-li">
<a href="#" id="chongqing-slums" class="a-link-button">The Slums</a> <a id="chongqing-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
<ul id="sector12-locations-list"> <ul id="sector12-locations-list">
<li id="sector12-travelagency-li"> <li id="sector12-travelagency-li">
<a href="#" id="sector12-travelagency" class="a-link-button">Travel Agency </a> <a id="sector12-travelagency" class="a-link-button">Travel Agency </a>
</li> </li>
<li id="sector12-rothmanuniversity-li"> <li id="sector12-rothmanuniversity-li">
<a href="#" id="sector12-rothmanuniversity" class="a-link-button"> Rothman University</a> <a id="sector12-rothmanuniversity" class="a-link-button"> Rothman University</a>
</li> </li>
<li id="sector12-megacorp-li"> <li id="sector12-megacorp-li">
<a href="#" id="sector12-megacorp" class="a-link-button">MegaCorp</a> <a id="sector12-megacorp" class="a-link-button">MegaCorp</a>
</li> </li>
<li id="sector12-bladeindustries-li"> <li id="sector12-bladeindustries-li">
<a href="#" id="sector12-bladeindustries" class="a-link-button"> Blade Industries</a> <a id="sector12-bladeindustries" class="a-link-button"> Blade Industries</a>
</li> </li>
<li id="sector12-foursigma-li"> <li id="sector12-foursigma-li">
<a href="#" id="sector12-foursigma" class="a-link-button">Four Sigma</a> <a id="sector12-foursigma" class="a-link-button">Four Sigma</a>
</li> </li>
<li id="sector12-icarusmicrosystems-li"> <li id="sector12-icarusmicrosystems-li">
<a href="#" id="sector12-icarusmicrosystems" class="a-link-button"> Icarus Microsystems</a> <a id="sector12-icarusmicrosystems" class="a-link-button"> Icarus Microsystems</a>
</li> </li>
<li id="sector12-universalenergy-li"> <li id="sector12-universalenergy-li">
<a href="#" id="sector12-universalenergy" class="a-link-button">Universal Energy </a> <a id="sector12-universalenergy" class="a-link-button">Universal Energy </a>
</li> </li>
<li id="sector12-deltaone-li"> <li id="sector12-deltaone-li">
<a href="#" id="sector12-deltaone" class="a-link-button">DeltaOne </a> <a id="sector12-deltaone" class="a-link-button">DeltaOne </a>
</li> </li>
<li id="sector12-cia-li"> <li id="sector12-cia-li">
<a href="#" id="sector12-cia" class="a-link-button">Central Intelligence Agency </a> <a id="sector12-cia" class="a-link-button">Central Intelligence Agency </a>
</li> </li>
<li id="sector12-nsa-li"> <li id="sector12-nsa-li">
<a href="#" id="sector12-nsa" class="a-link-button">National Security Agency </a> <a id="sector12-nsa" class="a-link-button">National Security Agency </a>
</li> </li>
<li id="sector12-alphaenterprises-li"> <li id="sector12-alphaenterprises-li">
<a href="#" id="sector12-alphaenterprises" class="a-link-button">Alpha Enterprises</a> <a id="sector12-alphaenterprises" class="a-link-button">Alpha Enterprises</a>
</li> </li>
<li id="sector12-carmichaelsecurity-li"> <li id="sector12-carmichaelsecurity-li">
<a href="#" id="sector12-carmichaelsecurity" class="a-link-button"> Carmichael Security</a> <a id="sector12-carmichaelsecurity" class="a-link-button"> Carmichael Security</a>
</li> </li>
<li id="sector12-foodnstuff-li"> <li id="sector12-foodnstuff-li">
<a href="#" id="sector12-foodnstuff" class="a-link-button">FoodNStuff</a> <a id="sector12-foodnstuff" class="a-link-button">FoodNStuff</a>
</li> </li>
<li id="sector12-joesguns-li"> <li id="sector12-joesguns-li">
<a href="#" id="sector12-joesguns" class="a-link-button"> Joe's Guns</a> <a id="sector12-joesguns" class="a-link-button"> Joe's Guns</a>
</li> </li>
<li id="sector12-irongym-li"> <li id="sector12-irongym-li">
<a href="#" id="sector12-irongym" class="a-link-button">Iron Gym </a> <a id="sector12-irongym" class="a-link-button">Iron Gym </a>
</li> </li>
<li id="sector12-powerhousegym-li"> <li id="sector12-powerhousegym-li">
<a href="#" id="sector12-powerhousegym" class="a-link-button">Powerhouse Gym</a> <a id="sector12-powerhousegym" class="a-link-button">Powerhouse Gym</a>
</li> </li>
<li id="sector12-slums-li"> <li id="sector12-slums-li">
<a href="#" id="sector12-slums" class="a-link-button">The Slums</a> <a id="sector12-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
<ul id="newtokyo-locations-list"> <ul id="newtokyo-locations-list">
<li id="newtokyo-travelagency-li"> <li id="newtokyo-travelagency-li">
<a href="#" id="newtokyo-travelagency" class="a-link-button"> Travel Agency</a> <a id="newtokyo-travelagency" class="a-link-button"> Travel Agency</a>
</li> </li>
<li id="newtokyo-defcomm-li"> <li id="newtokyo-defcomm-li">
<a href="#" id="newtokyo-defcomm" class="a-link-button"> DefComm</a> <a id="newtokyo-defcomm" class="a-link-button"> DefComm</a>
</li> </li>
<li id="newtokyo-vitalife-li"> <li id="newtokyo-vitalife-li">
<a href="#" id="newtokyo-vitalife" class="a-link-button">VitaLife </a> <a id="newtokyo-vitalife" class="a-link-button">VitaLife </a>
</li> </li>
<li id="newtokyo-globalpharmaceuticals-li"> <li id="newtokyo-globalpharmaceuticals-li">
<a href="#" id="newtokyo-globalpharmaceuticals" class="a-link-button">Global Pharmaceuticals</a> <a id="newtokyo-globalpharmaceuticals" class="a-link-button">Global Pharmaceuticals</a>
</li> </li>
<li id="newtokyo-noodlebar-li"> <li id="newtokyo-noodlebar-li">
<a href="#" id="newtokyo-noodlebar" class="a-link-button">Noodle Bar </a> <a id="newtokyo-noodlebar" class="a-link-button">Noodle Bar </a>
</li> </li>
<li id="newtokyo-slums-li"> <li id="newtokyo-slums-li">
<a href="#" id="newtokyo-slums" class="a-link-button">The Slums</a> <a id="newtokyo-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
<ul id="ishima-locations-list"> <ul id="ishima-locations-list">
<li id="ishima-travelagency-li"> <li id="ishima-travelagency-li">
<a href="#" id="ishima-travelagency" class="a-link-button">Travel Agency </a> <a id="ishima-travelagency" class="a-link-button">Travel Agency </a>
</li> </li>
<li id="ishima-stormtechnologies-li"> <li id="ishima-stormtechnologies-li">
<a href="#" id="ishima-stormtechnologies" class="a-link-button">Storm Technologies</a> <a id="ishima-stormtechnologies" class="a-link-button">Storm Technologies</a>
</li> </li>
<li id="ishima-novamedical-li"> <li id="ishima-novamedical-li">
<a href="#" id="ishima-novamedical" class="a-link-button">Nova Medical</a> <a id="ishima-novamedical" class="a-link-button">Nova Medical</a>
</li> </li>
<li id="ishima-omegasoftware-li"> <li id="ishima-omegasoftware-li">
<a href="#" id="ishima-omegasoftware" class="a-link-button">Omega Software </a> <a id="ishima-omegasoftware" class="a-link-button">Omega Software </a>
</li> </li>
<li id="ishima-slums-li"> <li id="ishima-slums-li">
<a href="#" id="ishima-slums" class="a-link-button">The Slums</a> <a id="ishima-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
<ul id="volhaven-locations-list"> <ul id="volhaven-locations-list">
<li id="volhaven-travelagency-li"> <li id="volhaven-travelagency-li">
<a href="#" id="volhaven-travelagency" class="a-link-button">Travel Agency </a> <a id="volhaven-travelagency" class="a-link-button">Travel Agency </a>
</li> </li>
<li id="volhaven-zbinstituteoftechnology-li"> <li id="volhaven-zbinstituteoftechnology-li">
<a href="#" id="volhaven-zbinstituteoftechnology" class="a-link-button">ZB Insitute of Technology</a> <a id="volhaven-zbinstituteoftechnology" class="a-link-button">ZB Insitute of Technology</a>
</li> </li>
<li id="volhaven-omnitekincorporated-li"> <li id="volhaven-omnitekincorporated-li">
<a href="#" id="volhaven-omnitekincorporated" class="a-link-button">OmniTek Incorporated </a> <a id="volhaven-omnitekincorporated" class="a-link-button">OmniTek Incorporated </a>
</li> </li>
<li id="volhaven-nwo-li"> <li id="volhaven-nwo-li">
<a href="#" id="volhaven-nwo" class="a-link-button">NWO</a> <a id="volhaven-nwo" class="a-link-button">NWO</a>
</li> </li>
<li id="volhaven-helislabs-li"> <li id="volhaven-helislabs-li">
<a href="#" id="volhaven-helioslabs" class="a-link-button">Helios Labs</a> <a id="volhaven-helioslabs" class="a-link-button">Helios Labs</a>
</li> </li>
<li id="volhaven-omniacybersystems-li"> <li id="volhaven-omniacybersystems-li">
<a href="#" id="volhaven-omniacybersystems" class="a-link-button">Omnia Cybersystems</a> <a id="volhaven-omniacybersystems" class="a-link-button">Omnia Cybersystems</a>
</li> </li>
<li id="volhaven-lexocorp-li"> <li id="volhaven-lexocorp-li">
<a href="#" id="volhaven-lexocorp" class="a-link-button">LexoCorp</a> <a id="volhaven-lexocorp" class="a-link-button">LexoCorp</a>
</li> </li>
<li id="volhaven-syscoresecurities-li"> <li id="volhaven-syscoresecurities-li">
<a href="#" id="volhaven-syscoresecurities" class="a-link-button">SysCore Securities</a> <a id="volhaven-syscoresecurities" class="a-link-button">SysCore Securities</a>
</li> </li>
<li id="volhaven-computek-li"> <li id="volhaven-computek-li">
<a href="#" id="volhaven-computek" class="a-link-button">CompuTek</a> <a id="volhaven-computek" class="a-link-button">CompuTek</a>
</li> </li>
<li id="volhaven-milleniumfitnessgym-li"> <li id="volhaven-milleniumfitnessgym-li">
<a href="#" id="volhaven-milleniumfitnessgym" class="a-link-button">Millenium Fitness Gym</a> <a id="volhaven-milleniumfitnessgym" class="a-link-button">Millenium Fitness Gym</a>
</li> </li>
<li id="volhaven-slums-li"> <li id="volhaven-slums-li">
<a href="#" id="volhaven-slums" class="a-link-button">The Slums</a> <a id="volhaven-slums" class="a-link-button">The Slums</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -454,7 +465,7 @@
<div id="faction-hack-div"> <div id="faction-hack-div">
<div id="faction-hack-div-wrapper"> <div id="faction-hack-div-wrapper">
<a href="#" id="faction-hack-button" class="a-link-button">Hacking Contracts</a> <a id="faction-hack-button" class="a-link-button">Hacking Contracts</a>
<p id="faction-hack-text"> <p id="faction-hack-text">
Complete hacking contracts for your faction. Complete hacking contracts for your faction.
Your effectiveness, which determines how much reputation you gain for this faction, is based on your hacking skill. Your effectiveness, which determines how much reputation you gain for this faction, is based on your hacking skill.
@ -466,7 +477,7 @@
<div id="faction-fieldwork-div"> <div id="faction-fieldwork-div">
<div id="faction-fieldwork-div-wrapper"> <div id="faction-fieldwork-div-wrapper">
<a href="#" id="faction-fieldwork-button" class="a-link-button">Field Work</a> <a id="faction-fieldwork-button" class="a-link-button">Field Work</a>
<p id="faction-fieldwork-text"> <p id="faction-fieldwork-text">
Carry out field missions for your faction. Carry out field missions for your faction.
Your effectiveness, which determines how much reputation you gain for this faction, is based on all of your stats. Your effectiveness, which determines how much reputation you gain for this faction, is based on all of your stats.
@ -478,7 +489,7 @@
<div id="faction-securitywork-div"> <div id="faction-securitywork-div">
<div id="faction-securitywork-div-wrapper"> <div id="faction-securitywork-div-wrapper">
<a href="#" id="faction-securitywork-button" class="a-link-button">Security Work</a> <a id="faction-securitywork-button" class="a-link-button">Security Work</a>
<p id="faction-securitywork-text"> <p id="faction-securitywork-text">
Serve in a security detail for your faction. Serve in a security detail for your faction.
Your effectiveness, which determines how much reputation you gain for this faction, is based on your combat stats. Your effectiveness, which determines how much reputation you gain for this faction, is based on your combat stats.
@ -490,7 +501,7 @@
<div id="faction-donate-div"> <div id="faction-donate-div">
<div id="faction-donate-div-wrapper"> <div id="faction-donate-div-wrapper">
<a href="#" id="faction-donate-button" class="a-link-button">Donate Money</a> <a id="faction-donate-button" class="a-link-button">Donate Money</a>
<p id="faction-donate-text"> <p id="faction-donate-text">
Donate money to your faction. You will gain reputation based on how much money you donate Donate money to your faction. You will gain reputation based on how much money you donate
</p> </p>
@ -510,11 +521,11 @@
can purchase to enhance your abilities. can purchase to enhance your abilities.
<br><br> <br><br>
</p> </p>
<a href="#" id="faction-purchase-augmentations" class="a-link-button">Purchase Augmentations</a> <a id="faction-purchase-augmentations" class="a-link-button">Purchase Augmentations</a>
</div> </div>
<div id="faction-augmentations-container"> <div id="faction-augmentations-container">
<a href="#" id="faction-augmentations-back-button" class="a-link-button"> Back </a> <a id="faction-augmentations-back-button" class="a-link-button"> Back </a>
<h1> Faction Augmentations </h1> <h1> Faction Augmentations </h1>
<p id="faction-augmentations-page-desc"> Lists all augmentations that are available to purchase from </p> <p id="faction-augmentations-page-desc"> Lists all augmentations that are available to purchase from </p>
@ -532,23 +543,23 @@
<!-- Tutorial content --> <!-- Tutorial content -->
<div id="tutorial-container"> <div id="tutorial-container">
<a href="#" id="tutorial-getting-started-link" class="a-link-button"> Getting Started </a> <a id="tutorial-getting-started-link" class="a-link-button"> Getting Started </a>
<a href="#" id="tutorial-networking-link" class="a-link-button"> Servers & Networking </a> <a id="tutorial-networking-link" class="a-link-button"> Servers & Networking </a>
<a href="#" id="tutorial-hacking-link" class="a-link-button"> Hacking </a> <a id="tutorial-hacking-link" class="a-link-button"> Hacking </a>
<a href="#" id="tutorial-scripts-link" class="a-link-button"> Scripts </a> <a id="tutorial-scripts-link" class="a-link-button"> Scripts </a>
<a href="#" id="tutorial-netscript-link" class="a-link-button"> Netscript Programming Language </a> <a id="tutorial-netscript-link" class="a-link-button"> Netscript Programming Language </a>
<a href="#" id="tutorial-traveling-link" class="a-link-button"> Traveling </a> <a id="tutorial-traveling-link" class="a-link-button"> Traveling </a>
<a href="#" id="tutorial-jobs-link" class="a-link-button"> Jobs </a> <a id="tutorial-jobs-link" class="a-link-button"> Jobs </a>
<a href="#" id="tutorial-factions-link" class="a-link-button"> Factions </a> <a id="tutorial-factions-link" class="a-link-button"> Factions </a>
<a href="#" id="tutorial-augmentations-link" class="a-link-button"> Augmentations </a> <a id="tutorial-augmentations-link" class="a-link-button"> Augmentations </a>
<a href="#" id="tutorial-back-button" class="a-link-button"> Back </a> <a id="tutorial-back-button" class="a-link-button"> Back </a>
<p id="tutorial-text"> </p> <p id="tutorial-text"> </p>
</div> </div>
<!-- Location (visiting a location in World) --> <!-- Location (visiting a location in World) -->
<div id="location-container"> <div id="location-container">
<a href="#" id="location-return-to-world-button" class="a-link-button"> Return to World </a> <a id="location-return-to-world-button" class="a-link-button"> Return to World </a>
<h1 id="location-name"></h1> <h1 id="location-name"></h1>
<p id="location-info"> </p> <p id="location-info"> </p>
@ -556,61 +567,61 @@
<p id="location-job-reputation"> </p> <p id="location-job-reputation"> </p>
<!-- Jobs/Work at a company --> <!-- Jobs/Work at a company -->
<a href="#" id="location-software-job" class="a-link-button"> Apply for Software Job</a> <a id="location-software-job" class="a-link-button"> Apply for Software Job</a>
<a href="#" id="location-software-consultant-job" class="a-link-button"> Apply for Software Consultant Job</a> <a id="location-software-consultant-job" class="a-link-button"> Apply for Software Consultant Job</a>
<a href="#" id="location-it-job" class="a-link-button"> Apply for IT Job </a> <a id="location-it-job" class="a-link-button"> Apply for IT Job </a>
<a href="#" id="location-security-engineer-job" class="a-link-button"> Apply for Security Engineer Job</a> <a id="location-security-engineer-job" class="a-link-button"> Apply for Security Engineer Job</a>
<a href="#" id="location-network-engineer-job" class="a-link-button"> Apply for Network Engineer Job</a> <a id="location-network-engineer-job" class="a-link-button"> Apply for Network Engineer Job</a>
<a href="#" id="location-business-job" class="a-link-button"> Apply for Business Job</a> <a id="location-business-job" class="a-link-button"> Apply for Business Job</a>
<a href="#" id="location-business-consultant-job" class="a-link-button"> Apply for Business Consultant Job </a> <a id="location-business-consultant-job" class="a-link-button"> Apply for Business Consultant Job </a>
<a href="#" id="location-security-job" class="a-link-button"> Apply for Security Job</a> <a id="location-security-job" class="a-link-button"> Apply for Security Job</a>
<a href="#" id="location-agent-job" class="a-link-button"> Apply to be an Agent</a> <a id="location-agent-job" class="a-link-button"> Apply to be an Agent</a>
<a href="#" id="location-employee-job" class="a-link-button"> Apply to be an Employee </a> <a id="location-employee-job" class="a-link-button"> Apply to be an Employee </a>
<a href="#" id="location-parttime-employee-job" class="a-link-button"> Apply to be a Part-time Employee </a> <a id="location-parttime-employee-job" class="a-link-button"> Apply to be a Part-time Employee </a>
<a href="#" id="location-waiter-job" class="a-link-button"> Apply to be a Waiter</a> <a id="location-waiter-job" class="a-link-button"> Apply to be a Waiter</a>
<a href="#" id="location-parttime-waiter-job" class="a-link-button"> Apply to be a Part-time Waiter</a> <a id="location-parttime-waiter-job" class="a-link-button"> Apply to be a Part-time Waiter</a>
<a href="#" id="location-work" class="a-link-button"> Work </a> <a id="location-work" class="a-link-button"> Work </a>
<!-- Gym --> <!-- Gym -->
<a href="#" id="location-gym-train-str" class="a-link-button">Train Strength</a> <a id="location-gym-train-str" class="a-link-button">Train Strength</a>
<a href="#" id="location-gym-train-def" class="a-link-button">Train Defense </a> <a id="location-gym-train-def" class="a-link-button">Train Defense </a>
<a href="#" id="location-gym-train-dex" class="a-link-button">Train Dexterity</a> <a id="location-gym-train-dex" class="a-link-button">Train Dexterity</a>
<a href="#" id="location-gym-train-agi" class="a-link-button">Train Agility</a> <a id="location-gym-train-agi" class="a-link-button">Train Agility</a>
<!-- Study/Take classes at a university --> <!-- Study/Take classes at a university -->
<a href="#" id="location-study-computer-science" class="a-link-button">Study Computer Science (free)</a> <a id="location-study-computer-science" class="a-link-button">Study Computer Science (free)</a>
<a href="#" id="location-data-structures-class" class="a-link-button">Take Data Structures course</a> <a id="location-data-structures-class" class="a-link-button">Take Data Structures course</a>
<a href="#" id="location-networks-class" class="a-link-button">Take Networks course</a> <a id="location-networks-class" class="a-link-button">Take Networks course</a>
<a href="#" id="location-algorithms-class" class="a-link-button">Take Algorithms course</a> <a id="location-algorithms-class" class="a-link-button">Take Algorithms course</a>
<a href="#" id="location-management-class" class="a-link-button">Take Management course</a> <a id="location-management-class" class="a-link-button">Take Management course</a>
<a href="#" id="location-leadership-class" class="a-link-button">Take Leadership course</a> <a id="location-leadership-class" class="a-link-button">Take Leadership course</a>
<!-- Purchase servers --> <!-- Purchase servers -->
<a href="#" id="location-purchase-1gb" class="a-link-button"> Purchase 1GB Server - $75,000</a> <a id="location-purchase-1gb" class="a-link-button"> Purchase 1GB Server - $75,000</a>
<a href="#" id="location-purchase-2gb" class="a-link-button"> Purchase 2GB Server - $150,000</a> <a id="location-purchase-2gb" class="a-link-button"> Purchase 2GB Server - $150,000</a>
<a href="#" id="location-purchase-4gb" class="a-link-button"> Purchase 4GB Server - $300,000</a> <a id="location-purchase-4gb" class="a-link-button"> Purchase 4GB Server - $300,000</a>
<a href="#" id="location-purchase-8gb" class="a-link-button"> Purchase 8GB Server - $600,000</a> <a id="location-purchase-8gb" class="a-link-button"> Purchase 8GB Server - $600,000</a>
<a href="#" id="location-purchase-16gb" class="a-link-button"> Purchase 16GB Server - $1,200,000</a> <a id="location-purchase-16gb" class="a-link-button"> Purchase 16GB Server - $1,200,000</a>
<a href="#" id="location-purchase-32gb" class="a-link-button"> Purchase 32GB Server - $2,400,000</a> <a id="location-purchase-32gb" class="a-link-button"> Purchase 32GB Server - $2,400,000</a>
<a href="#" id="location-purchase-64gb" class="a-link-button"> Purchase 64GB Server - $4,800,000</a> <a id="location-purchase-64gb" class="a-link-button"> Purchase 64GB Server - $4,800,000</a>
<a href="#" id="location-purchase-128gb" class="a-link-button"> Purchase 128GB Server - $9,600,000</a> <a id="location-purchase-128gb" class="a-link-button"> Purchase 128GB Server - $9,600,000</a>
<a href="#" id="location-purchase-256gb" class="a-link-button"> Purchase 256GB Server - $19,200,000</a> <a id="location-purchase-256gb" class="a-link-button"> Purchase 256GB Server - $19,200,000</a>
<a href="#" id="location-purchase-512gb" class="a-link-button"> Purchase 512GB Server - $38,400,000</a> <a id="location-purchase-512gb" class="a-link-button"> Purchase 512GB Server - $38,400,000</a>
<a href="#" id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $75,000,000</a> <a id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $75,000,000</a>
<a href="#" id="location-purchase-tor" class="a-link-button"> Purchase TOR Router - $100,000</a> <a id="location-purchase-tor" class="a-link-button"> Purchase TOR Router - $100,000</a>
<a href="#" id="location-purchase-home-ram" class="a-link-button"> Purchase additional RAM for Home computer </a> <a id="location-purchase-home-ram" class="a-link-button"> Purchase additional RAM for Home computer </a>
<!-- Travel agency --> <!-- Travel agency -->
<p id="location-travel-agency-text"> <p id="location-travel-agency-text">
From here, you can travel to any other city! A ticket costs $200,000. From here, you can travel to any other city! A ticket costs $200,000.
</p> </p>
<a href="#" id="location-travel-to-aevum" class="a-link-button"> Travel to Aevum </a> <a 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 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 id="location-travel-to-sector12" class="a-link-button"> Travel to Sector-12</a>
<a href="#" id="location-travel-to-newtokyo" class="a-link-button"> Travel to New Tokyo</a> <a id="location-travel-to-newtokyo" class="a-link-button"> Travel to New Tokyo</a>
<a href="#" id="location-travel-to-ishima" class="a-link-button"> Travel to Ishima</a> <a id="location-travel-to-ishima" class="a-link-button"> Travel to Ishima</a>
<a href="#" id="location-travel-to-volhaven" class="a-link-button"> Travel to Volhaven</a> <a id="location-travel-to-volhaven" class="a-link-button"> Travel to Volhaven</a>
<!-- Slums --> <!-- Slums -->
<p id="location-slums-description"> <p id="location-slums-description">
@ -620,15 +631,15 @@
In the Slums you can commit crimes to earn money and experience. Crime attempts are not always In the Slums you can commit crimes to earn money and experience. Crime attempts are not always
successful. Your chance at successfully committing a crime is determined by your stats. successful. Your chance at successfully committing a crime is determined by your stats.
</p> </p>
<a class="a-link-button tooltip" href="#" id="location-slums-shoplift"> Shoplift </a> <a class="a-link-button tooltip" id="location-slums-shoplift"> Shoplift </a>
<a href="#" id="location-slums-mug" class="a-link-button tooltip"> Mug someone </a> <a id="location-slums-mug" class="a-link-button tooltip"> Mug someone </a>
<a href="#" id="location-slums-deal-drugs" class="a-link-button tooltip"> Deal Drugs </a> <a id="location-slums-deal-drugs" class="a-link-button tooltip"> Deal Drugs </a>
<a href="#" id="location-slums-traffic-arms" class="a-link-button tooltip"> Traffick Illegal Arms </a> <a id="location-slums-traffic-arms" class="a-link-button tooltip"> Traffick Illegal Arms </a>
<a href="#" id="location-slums-homicide" class="a-link-button tooltip"> Homicide </a> <a id="location-slums-homicide" class="a-link-button tooltip"> Homicide </a>
<a href="#" id="location-slums-gta" class="a-link-button tooltip"> Grand Theft Auto </a> <a id="location-slums-gta" class="a-link-button tooltip"> Grand Theft Auto </a>
<a href="#" id="location-slums-kidnap" class="a-link-button tooltip"> Kidnap and Ransom </a> <a id="location-slums-kidnap" class="a-link-button tooltip"> Kidnap and Ransom </a>
<a href="#" id="location-slums-assassinate" class="a-link-button tooltip"> Assassinate </a> <a id="location-slums-assassinate" class="a-link-button tooltip"> Assassinate </a>
<a href="#" id="location-slums-heist" class="a-link-button tooltip"> Heist </a> <a id="location-slums-heist" class="a-link-button tooltip"> Heist </a>
</div> </div>
<!-- Dialog Box, displays status text only --> <!-- Dialog Box, displays status text only -->

@ -224,57 +224,57 @@ CompanyPositions = {
//Software //Software
SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 12), SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 12),
JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 25), JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 30),
SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 32000, 50), SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 32000, 60),
LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 150), LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 200),
//TODO Through darkweb, maybe? //TODO Through darkweb, maybe?
FreelanceDeveloper: new CompanyPosition("Freelance Developer", 0, 0, 0, 0, 0, 0, 0, 0), FreelanceDeveloper: new CompanyPosition("Freelance Developer", 0, 0, 0, 0, 0, 0, 0, 0),
SoftwareConsultant: new CompanyPosition("Software Consultant", 51, 0, 0, 0, 0, 0, 0, 16), SoftwareConsultant: new CompanyPosition("Software Consultant", 51, 0, 0, 0, 0, 0, 0, 20),
SeniorSoftwareConsultant: new CompanyPosition("Senior Software Consultant", 251, 0, 0, 0, 0, 51, 0, 32), SeniorSoftwareConsultant: new CompanyPosition("Senior Software Consultant", 251, 0, 0, 0, 0, 51, 0, 42),
//IT //IT
ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 10), ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 10),
ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 6000, 20), ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 6000, 25),
ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 24000, 35), ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 24000, 45),
SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 120000, 100), SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 120000, 150),
SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 28000, 38), SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 28000, 52),
NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 28000, 38), NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 28000, 52),
NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 120000, 100), NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 120000, 150),
//Technology management //Technology management
HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 275), HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 300),
HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 576000, 500), HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 576000, 600),
VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1152000, 750), VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1152000, 900),
CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 4608000, 900), CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 4608000, 1000),
//Business //Business
BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 13), BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 15),
BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 32), BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 40),
BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 32000, 75), BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 32000, 80),
OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 226, 144000, 220), OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 226, 144000, 250),
CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 675), CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 750),
CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 1100), CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 1400),
BusinessConsultant: new CompanyPosition("Business Consultant", 6, 0, 0, 0, 0, 51, 0, 21), BusinessConsultant: new CompanyPosition("Business Consultant", 6, 0, 0, 0, 0, 51, 0, 24),
SeniorBusinessConsultant: new CompanyPosition("Senior Business Consultant", 51, 0, 0, 0, 0, 226, 0, 150), SeniorBusinessConsultant: new CompanyPosition("Senior Business Consultant", 51, 0, 0, 0, 0, 226, 0, 160),
//Non-tech/management jobs //Non-tech/management jobs
PartTimeWaiter: new CompanyPosition("Part-time Waiter", 0, 0, 0, 0, 0, 0, 0, 7), PartTimeWaiter: new CompanyPosition("Part-time Waiter", 0, 0, 0, 0, 0, 0, 0, 8),
PartTimeEmployee: new CompanyPosition("Part-time Employee", 0, 0, 0, 0, 0, 0, 0, 7), PartTimeEmployee: new CompanyPosition("Part-time Employee", 0, 0, 0, 0, 0, 0, 0, 8),
Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, 9), Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, 10),
Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, 9), Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, 10),
PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 28), PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 32),
PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 32000, 110), PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 32000, 160),
SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 16), SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 18),
SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 50), SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 70),
SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 32000, 100), SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 32000, 250),
HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 250), HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 500),
FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 40), FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 50),
SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 32000, 150), SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 32000, 180),
SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 375), SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 400),
init: function() { init: function() {
//Argument order: hack, str, def, dex, agi, cha //Argument order: hack, str, def, dex, agi, cha

@ -1,5 +1,5 @@
CONSTANTS = { CONSTANTS = {
Version: "0.17.4", Version: "0.17.6",
//Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //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 //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then
@ -19,10 +19,10 @@ CONSTANTS = {
/* Hacknet Node constants */ /* Hacknet Node constants */
HacknetNodeMoneyGainPerLevel: 1.65, HacknetNodeMoneyGainPerLevel: 1.65,
HacknetNodePurchaseNextMult: 1.33, //Multiplier when purchasing an additional hacknet node HacknetNodePurchaseNextMult: 1.38, //Multiplier when purchasing an additional hacknet node
HacknetNodeUpgradeLevelMult: 1.04, //Multiplier for cost when upgrading level HacknetNodeUpgradeLevelMult: 1.04, //Multiplier for cost when upgrading level
HacknetNodeUpgradeRamMult: 1.22, //Multiplier for cost when upgrading RAM HacknetNodeUpgradeRamMult: 1.24, //Multiplier for cost when upgrading RAM
HacknetNodeUpgradeCoreMult: 1.45, //Multiplier for cost when buying another core HacknetNodeUpgradeCoreMult: 1.48, //Multiplier for cost when buying another core
HacknetNodeMaxLevel: 200, HacknetNodeMaxLevel: 200,
HacknetNodeMaxRam: 64, HacknetNodeMaxRam: 64,

@ -78,7 +78,8 @@ HacknetNode.prototype.purchaseLevelUpgrade = function(levels=1) {
Player.loseMoney(cost); Player.loseMoney(cost);
if (this.level + levels >= CONSTANTS.HacknetNodeMaxLevel) { if (this.level + levels >= CONSTANTS.HacknetNodeMaxLevel) {
this.level = CONSTANTS.HacknetNodeMaxLevel; this.level = CONSTANTS.HacknetNodeMaxLevel;
return false; this.updateMoneyGainRate();
return true;
} }
this.level += levels; this.level += levels;
this.updateMoneyGainRate(); this.updateMoneyGainRate();
@ -99,8 +100,8 @@ HacknetNode.prototype.purchaseRamUpgrade = function() {
var cost = this.calculateRamUpgradeCost(); var cost = this.calculateRamUpgradeCost();
if (isNaN(cost)) {return false;} if (isNaN(cost)) {return false;}
if (cost > Player.money) {return false;} if (cost > Player.money) {return false;}
Player.loseMoney(cost);
if (this.ram >= CONSTANTS.HacknetNodeMaxRam) {return false;} if (this.ram >= CONSTANTS.HacknetNodeMaxRam) {return false;}
Player.loseMoney(cost);
this.ram *= 2; //Ram is always doubled this.ram *= 2; //Ram is always doubled
this.updateMoneyGainRate(); this.updateMoneyGainRate();
return true; return true;
@ -116,8 +117,8 @@ HacknetNode.prototype.purchaseCoreUpgrade = function() {
var cost = this.calculateCoreUpgradeCost(); var cost = this.calculateCoreUpgradeCost();
if (isNaN(cost)) {return false;} if (isNaN(cost)) {return false;}
if (cost > Player.money) {return false;} if (cost > Player.money) {return false;}
Player.loseMoney(cost);
if (this.numCores >= CONSTANTS.HacknetNodeMaxCores) {return false;} if (this.numCores >= CONSTANTS.HacknetNodeMaxCores) {return false;}
Player.loseMoney(cost);
++this.numCores; ++this.numCores;
this.updateMoneyGainRate(); this.updateMoneyGainRate();
return true; return true;
@ -214,20 +215,21 @@ updateHacknetNodesMultiplierButtons = function() {
getMaxNumberLevelUpgrades = function(nodeObj) { getMaxNumberLevelUpgrades = function(nodeObj) {
if (nodeObj.calculateLevelUpgradeCost(1) > Player.money) {return 0;} if (nodeObj.calculateLevelUpgradeCost(1) > Player.money) {return 0;}
var min = 1; var min = 1;
var max = 199; var max = CONSTANTS.HacknetNodeMaxLevel-1;
var levelsToMax = CONSTANTS.HacknetNodeMaxLevel - nodeObj.level;
while (min <= max) { while (min <= max) {
var curr = (min + max) / 2 | 0; var curr = (min + max) / 2 | 0;
if (curr != 200 && if (curr != CONSTANTS.HacknetNodeMaxLevel &&
nodeObj.calculateLevelUpgradeCost(curr) < Player.money && nodeObj.calculateLevelUpgradeCost(curr) < Player.money &&
nodeObj.calculateLevelUpgradeCost(curr+1) > Player.money) { nodeObj.calculateLevelUpgradeCost(curr+1) > Player.money) {
return curr; return Math.min(levelsToMax, curr);
} else if (nodeObj.calculateLevelUpgradeCost(curr) > Player.money) { } else if (nodeObj.calculateLevelUpgradeCost(curr) > Player.money) {
max = curr - 1; max = curr - 1;
} else if (nodeObj.calculateLevelUpgradeCost(curr) < Player.money) { } else if (nodeObj.calculateLevelUpgradeCost(curr) < Player.money) {
min = curr + 1; min = curr + 1;
} else { } else {
return curr; return Math.min(levelsToMax, curr);
} }
} }
} }

@ -763,11 +763,13 @@ function evaluate(exp, workerScript) {
}); });
} else if (exp.func.value == "getHostname") { } else if (exp.func.value == "getHostname") {
if (env.stopFlag) {reject(workerScript); return;}
if (exp.args.length != 0) { if (exp.args.length != 0) {
reject(makeRuntimeRejectMsg(workerScript, "getHostname() call has incorrect number of arguments. Takes 0 arguments")); reject(makeRuntimeRejectMsg(workerScript, "getHostname() call has incorrect number of arguments. Takes 0 arguments"));
return; return;
} }
setTimeout(function() { setTimeout(function() {
if (env.stopFlag) {reject(workerScript); return;}
var scriptServer = getServer(workerScript.serverIp); var scriptServer = getServer(workerScript.serverIp);
if (scriptServer == null) { if (scriptServer == null) {
reject(makeRuntimeRejectMsg(workerScript, "Could not find server. This is a bug in the game. Report to game dev")); reject(makeRuntimeRejectMsg(workerScript, "Could not find server. This is a bug in the game. Report to game dev"));
@ -1274,6 +1276,6 @@ function scriptCalculatePercentMoneyHacked(server) {
function scriptCalculateGrowTime(server) { function scriptCalculateGrowTime(server) {
var difficultyMult = server.requiredHackingSkill * server.hackDifficulty; var difficultyMult = server.requiredHackingSkill * server.hackDifficulty;
var skillFactor = (2.5 * difficultyMult + 500) / (Player.hacking_skill + 50); var skillFactor = (2.5 * difficultyMult + 500) / (Player.hacking_skill + 50);
var growTime = skillFactor * 16; //This is in seconds var growTime = skillFactor * Player.hacking_speed_mult * 16; //This is in seconds
return growTime * 1000; return growTime * 1000;
} }