Small UI improvements, small bug fix with NeuroFlux cost, added tooltips to Crimes

This commit is contained in:
Daniel Xie 2017-05-08 12:40:53 -05:00
parent 94aafba04b
commit c35e08b4d5
7 changed files with 73 additions and 107 deletions

@ -2,62 +2,22 @@
Netburner Idle Game Netburner Idle Game
TESTING TODO: TESTING TODO:
hack() and sleep() in a script
hack() seems to be working
Sleep() seems to be working
Creating the foreign server network doesn't seem to be working
--Seems to be fixed
Script RAM Usage and corresponding terminal commands
If a server has no more money available it cannot be hacked anymore If a server has no more money available it cannot be hacked anymore
Should work automatically...because your money gained percentage will be multiplied by 0 Should work automatically...because your money gained percentage will be multiplied by 0
When the game is loaded re-load all of the scripts in runningScripts When the game is loaded re-load all of the scripts in runningScripts
- Seems to be working - Seems to be working
Update skill level on cycle
If a script has bad syntax...it fucks everything up when you try to run it so fix that
Try catch for script?
Check that killing scripts still works fine (TESTED - LOoks to work fine)
Check that if script has bad syntax it wont run at all and everthing works normally (Seems to work fine)
Check if script throws during runtime it shuts down correctly (seems to work fine)
Adjust leveling formula. Goes up way too high at first Adjust leveling formula. Goes up way too high at first
http://gamedev.stackexchange.com/questions/55151/rpg-logarithmic-leveling-formula http://gamedev.stackexchange.com/questions/55151/rpg-logarithmic-leveling-formula
- might be too slow now? - might be too slow now?
Scripts tab that shows script stats
Seems to work, at least the basics (for online production)
Script offline progress
Delete a script from Active scripts when the WorkerScript is deleted
Seems to work
Server growth
Implemented but it might need to be balance/formula readjusted
ctrl+C functionality for all running command like hack(), analyze(), and tail
Implemented for hack() and analyze(). Seems to work
Saving/Loading factions
No errors thrown when saving/loading game at the start
Scroll all the way down when something is post()ed
Purchasing Servers
Work
Companies
Add possible CompanyPositions for every Company
Applying/working for companies
Factions
Change Company pages to display "apply for promotion" and other stuff when you are already employed there Change Company pages to display "apply for promotion" and other stuff when you are already employed there
Augmentations
rm command seems to work rm command seems to work
Make it so that a script cannot be edited if it is running
+ Traveling + Traveling
@ -76,7 +36,6 @@ Tasks TODO:
New server hostname in Purchase Server Pop-up Box needs limits..don't think the ones set in HTML work 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
Secret Servers Secret Servers
Hack time formula needs rebalancing I think, so does hack exp formula Hack time formula needs rebalancing I think, so does hack exp formula

@ -209,11 +209,8 @@
text-decoration: none; text-decoration: none;
background-color: #555; background-color: #555;
color: #FFFFFF; color: #FFFFFF;
padding: 4px 4px 4px 4px; padding: 4px;
border-top: 1px solid #333333; border: 1px solid #333333;
border-right: 1px solid #333333;
border-bottom: 1px solid #333333;
border-left: 1px solid #333333;
width: 50%; width: 50%;
} }

@ -90,10 +90,8 @@ tr:focus {
color: #FFFFFF; color: #FFFFFF;
padding: 6px; padding: 6px;
margin: 6px; margin: 6px;
border-top: 1px solid #333333; border: 1px solid #333333;
border-right: 1px solid #333333; width: 50%;
border-bottom: 1px solid #333333;
border-left: 1px solid #333333;
} }
.a-link-button:hover { .a-link-button:hover {
@ -113,6 +111,7 @@ tr:focus {
border-left: 1px solid #333333; border-left: 1px solid #333333;
pointer-events: none; pointer-events: none;
cursor: default; cursor: default;
width: 50%;
} }

@ -499,7 +499,7 @@
<!-- 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 href="#" id="tutorial-getting-started-link" class="a-link-button"> Getting Started </a>
<a href="#" id="tutorial-networking-link" class="a-link-button"> Networking </a> <a href="#" id="tutorial-networking-link" class="a-link-button"> Servers & Networking </a>
<a href="#" id="tutorial-hacking-link" class="a-link-button"> Hacking </a> <a href="#" id="tutorial-hacking-link" class="a-link-button"> Hacking </a>
<a href="#" id="tutorial-scripts-link" class="a-link-button"> Scripts </a> <a href="#" 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 href="#" id="tutorial-netscript-link" class="a-link-button"> Netscript Programming Language </a>
@ -582,34 +582,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 href="#" id="location-slums-shoplift" class="a-link-button tooltip"> Shoplift <a class="a-link-button tooltip" href="#" id="location-slums-shoplift"> Shoplift </a>
<span class="tooltiptext"> Attempt to shoplift from a low-end retailers </span> <a href="#" id="location-slums-mug" class="a-link-button tooltip"> Mug someone </a>
</a> <a href="#" id="location-slums-deal-drugs" class="a-link-button tooltip"> Deal Drugs </a>
<a href="#" id="location-slums-mug" class="a-link-button tooltip"> Mug someone <a href="#" id="location-slums-traffic-arms" class="a-link-button tooltip"> Traffick Illegal Arms </a>
<span class="tooltiptext"> Attempt to mug a random person on the street </span> <a href="#" id="location-slums-homicide" class="a-link-button tooltip"> Homicide </a>
</a> <a href="#" id="location-slums-gta" class="a-link-button tooltip"> Grand Theft Auto </a>
<a href="#" id="location-slums-deal-drugs" class="a-link-button tooltip"> Deal Drugs <a href="#" id="location-slums-kidnap" class="a-link-button tooltip"> Kidnap and Ransom </a>
<span class="tooltiptext"> Attempt to deal drugs </span> <a href="#" id="location-slums-assassinate" class="a-link-button tooltip"> Assassinate </a>
</a> <a href="#" id="location-slums-heist" class="a-link-button tooltip"> Heist </a>
<a href="#" id="location-slums-traffic-arms" class="a-link-button tooltip"> Traffick Illegal Arms
<span class="tooltiptext"> Attempt to smuggle illegal arms into the city and sell them to gangs and criminal organizations </span>
</a>
<a href="#" id="location-slums-homicide" class="a-link-button tooltip"> Homicide
<span class="tooltiptext"> Attempt to murder a random person on the street</span>
</a>
<a href="#" id="location-slums-gta" class="a-link-button tooltip"> Grand Theft Auto
<span class="tooltiptext"> Attempt to commit grand theft auto </span>
</a>
<a href="#" id="location-slums-kidnap" class="a-link-button tooltip"> Kidnap and Ransom
<span class="tooltiptext"> Attempt to kidnap and ransom a high-profile target </span>
</a>
<a href="#" id="location-slums-assassinate" class="a-link-button tooltip"> Assassinate
<span class="tooltiptext"> Attempt to assassinate a high-profile target </span>
</a>
<a href="#" id="location-slums-heist" class="a-link-button tooltip"> Heist
<span class="tooltiptext"> Attempt to pull off the ultimate heist </span>
</a>
</div> </div>
<!-- Dialog Box, displays status text only --> <!-- Dialog Box, displays status text only -->
@ -661,14 +642,16 @@
<h2 id="purchase-augmentation-box-aug-name"> </h2> <h2 id="purchase-augmentation-box-aug-name"> </h2>
<p id="purchase-augmentation-box-aug-info"> </p> <p id="purchase-augmentation-box-aug-info"> </p>
<p id="purchase-augmentation-box-text"> </p> <p id="purchase-augmentation-box-text"> </p>
<p> <br> WARNING: Purchasing an Augmentation resets most of your progress, including: <br> <p> <br> WARNING: Purchasing an Augmentation resets most of your progress, including: <br><br>
Stats/Skill levels and Experience <br> Stats/Skill levels and Experience <br>
Money <br> Money <br>
Scripts <br> Scripts on every computer but your home computer<br>
Purchased servers <br>
Hacknet Nodes <br>
Faction/Company reputation <br><br> Faction/Company reputation <br><br>
Purchasing an Augmentation lets you start over with the perks and benefits granted by all Purchasing an Augmentation lets you start over with the perks and benefits granted by all
of the Augmentations you have ever purchased (purchasing an Augmentation does not reset the benefits of the Augmentations you have ever purchased. Also, you will keep any scripts and RAM upgrades
of Augmentations you have previously purchased). on your home computer (but you will lose all programs besides NUKE.exe).
</p> </p>
<span id="purchase-augmentation-box-confirm"> Purchase </span> <span id="purchase-augmentation-box-confirm"> Purchase </span>
<span id="purchase-augmentation-box-cancel"> Cancel </span> <span id="purchase-augmentation-box-cancel"> Cancel </span>

@ -776,7 +776,10 @@ initAugmentations = function() {
var oldAug = Augmentations[AugmentationNames.NeuroFluxGovernor]; var oldAug = Augmentations[AugmentationNames.NeuroFluxGovernor];
NeuroFluxGovernor.owned = oldAug.owned; NeuroFluxGovernor.owned = oldAug.owned;
NeuroFluxGovernor.level = oldAug.level; NeuroFluxGovernor.level = oldAug.level;
var mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, NeuroFluxGovernor.level-1); var mult = 1;
if (NeuroFluxGovernor.level > 1) {
mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, NeuroFluxGovernor.level-1);
}
NeuroFluxGovernor.setRequirements(1000 * mult, 1000000 * mult); NeuroFluxGovernor.setRequirements(1000 * mult, 1000000 * mult);
delete Augmentations[AugmentationNames.NeuroFluxGovernor]; delete Augmentations[AugmentationNames.NeuroFluxGovernor];
} else { } else {

@ -139,7 +139,7 @@ CONSTANTS = {
TutorialHackingText: "In the year 2077, currency has become digital and decentralized. People and corporations " + 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 " + "store their money on servers. By hacking these servers, you can steal their money and gain " +
"experience. <br><br>" + "experience. <br><br>" +
"Gaining root access <br>" + "<strong>Gaining root access</strong> <br>" +
"The key to hacking a server is to gain root access to that server. This can be done using " + "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 " + "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 " + "computer. The NUKE virus attacks the target server's open ports using buffer overflow " +
@ -155,7 +155,7 @@ CONSTANTS = {
"opened. <br>" + "opened. <br>" +
"Once you have enough ports opened and have ran the NUKE virus to gain root access, the server " + "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 through terminal, or by using a script.<br><br>" + "can then be hacked by simply calling the 'hack' command through terminal, or by using a script.<br><br>" +
"Hacking mechanics <br>" + "<strong>Hacking mechanics</strong><br>" +
"When you execute the hack command, either manually through the terminal or automatically through " + "When you execute the hack command, either manually through the terminal or automatically through " +
"a script, you attempt to hack the server. This action takes time. The more advanced a server's " + "a script, you attempt to hack the server. This action takes time. The more advanced a server's " +
"security is, the more time it will take. Your hacking skill level also affects the hacking time, " + "security is, the more time it will take. Your hacking skill level also affects the hacking time, " +
@ -172,12 +172,12 @@ CONSTANTS = {
TutorialScriptsText: "Scripts can be used to automate the hacking process. Scripts must be written in the Netscript language. " + TutorialScriptsText: "Scripts can be used to automate the hacking process. Scripts must be written in the Netscript language. " +
"Documentation about the Netscript language can be found in the 'Netscript Programming Language' " + "Documentation about the Netscript language can be found in the 'Netscript Programming Language' " +
"section of the 'Tutorial' tab. Running a script requires RAM. The more complex a script is, the more RAM " + "section of this 'Tutorial' page. <br><br>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. <br><br>" + "it requires to run. Scripts can be run on any server you have root access to. <br><br>" +
"Here are some Terminal commands that are useful when working with scripts: <br>" + "Here are some Terminal commands that are useful when working with scripts: <br>" +
"free - Shows the current server's RAM usage <br>" + "free - Shows the current server's RAM usage <br>" +
"kill [script] - Stops a script that is running <br>" + "kill [script] - Stops a script that is running <br>" +
"nano [script] - Edit a script <br>" + "nano [script] - Create/Edit a script <br>" +
"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>" +
@ -223,6 +223,7 @@ CONSTANTS = {
"while (<i>[cond]</i>) {<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>[code]</i><br>}<br><br>" + "while (<i>[cond]</i>) {<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>[code]</i><br>}<br><br>" +
"As long as <i>[cond]</i> remains true, the code block <i>[code]</i> will continuously execute. Example: <br><br>" + "As long as <i>[cond]</i> remains true, the code block <i>[code]</i> will continuously execute. Example: <br><br>" +
"i = 0; <br> while (i < 10) { <br>&nbsp;&nbsp;&nbsp;&nbsp;hack('foodnstuff');<br>&nbsp;&nbsp;&nbsp;&nbsp;i = i + 1;<br> }; <br><br>" + "i = 0; <br> while (i < 10) { <br>&nbsp;&nbsp;&nbsp;&nbsp;hack('foodnstuff');<br>&nbsp;&nbsp;&nbsp;&nbsp;i = i + 1;<br> }; <br><br>" +
"This code repeat the 'hack('foodnstuff')' command 10 times before it stops and exits. " +
"Note that a semicolon is needed at closing bracket of the while loop, UNLESS it is at the end of the code<br><br> " + "Note that a semicolon is needed at closing bracket of the while loop, UNLESS it is at the end of the code<br><br> " +
"<strong>For loop</strong><br>" + "<strong>For loop</strong><br>" +
"A for loop is another control flow statement that allows code to by repeated by iterations. The structure is: <br><br> " + "A for loop is another control flow statement that allows code to by repeated by iterations. The structure is: <br><br> " +
@ -241,17 +242,18 @@ CONSTANTS = {
" Ishima<br>" + " Ishima<br>" +
" Volhaven<br><br>" + " Volhaven<br><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><br>" +
"Each city has its own set of companies and unique locations. ", "Each city has its own set of companies and unique locations. Also, certain content is only available to you " +
"if you are in certain cities, so get exploring!",
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><br> " +
"To apply for a job, visit the company you want to work for through the 'World' menu. The company " + "To apply for a job, visit the company you want to work for through the 'World' menu. The company " +
"page will have options that let you apply to positions in the company. There might be several different" + "page will have options that let you apply to positions in the company. There might be several different" +
"positions you can apply for, ranging from software engineer to business analyst to security officer. <br> " + "positions you can apply for, ranging from software engineer to business analyst to security officer. <br><br> " +
"When you apply for a job, you will get the offer if your stats are high enough. Your first position at " + "When you apply for a job, you will get the offer if your stats are high enough. Your first position at " +
"a company will be an entry-level position such as 'intern'. Once you get the job, an button will appear on " + "a company will be an entry-level position such as 'intern'. Once you get the job, an button will appear on " +
"the company page that allows you to work for the company. Click this button to start working. <br>" + "the company page that allows you to work for the company. Click this button to start working. <br><br>" +
"Working occurs in 8 hour shifts. Once you start working, you will begin earning money, experience, " + "Working occurs in 8 hour shifts. Once you start working, you will begin earning money, experience, " +
"and reputation. The rate at which you money and experience depends on the company and your position. " + "and reputation. The rate at which you money and experience depends on the company and your position. " +
"The amount of reputation you gain for your company is based on your job performance, which is affected by " + "The amount of reputation you gain for your company is based on your job performance, which is affected by " +
@ -259,22 +261,23 @@ 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><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.",
TutorialFactionsText: "Throughout the game you may receive invitations from factions. There are many different factions, and each faction " + TutorialFactionsText: "Throughout the game you may receive invitations from factions. There are many different factions, and each faction " +
"has different criteria for determining its potential members. Joining a faction and furthering its cause is crucial " + "has different criteria for determining its potential members. Joining a faction and furthering its cause is crucial " +
"to progressing in the game and unlocking endgame content. <br> " + "to progressing in the game and unlocking endgame content. <br><br> " +
"It is possible to join multiple factions if you receive invitations from them. However, note that joining a faction " + "It is possible to join multiple factions if you receive invitations from them. However, note that joining a faction " +
"may prevent you from joining other rival factions. <br> " + "may prevent you from joining other rival factions. <br><br> " +
"The 'Factions' link on the menu brings up a list of all factions that you have joined. " + "The 'Factions' link on the menu brings up a list of all factions that you have joined. " +
"You can select a Faction on this list to go to that Faction page. This page displays general " + "You can select a Faction on this list to go to that Faction page. This page displays general " +
"information about the Faction and also lets you perform work for the faction. " + "information about the Faction and also lets you perform work for the faction. " +
"Working for a Faction is similar to working for a company except that you don't get paid a salary. " + "Working for a Faction is similar to working for a company except that you don't get paid a salary. " +
"You will only earn reputation in your Faction and train your stats. Also, cancelling work early " + "You will only earn reputation in your Faction and train your stats. Also, cancelling work early " +
"when working for a Faction does not result in reduced experience/reputation earnings. <br>" + "when working for a Faction does NOT result in reduced experience/reputation earnings. <br>" +
"Earning reputation for a Faction unlocks powerful upgrades. These upgrades vary from faction to faction. ", "Earning reputation for a Faction unlocks powerful Augmentations. Purchasing and installing these Augmentations will " +
"upgrade your abilities. The Augmentations that are available to unlock vary from faction to faction.",
TutorialAugmentationsText: "Advances in science and medicine have lead to powerful new technologies that allow people to augment themselves " + TutorialAugmentationsText: "Advances in science and medicine have lead to powerful new technologies that allow people to augment themselves " +
"beyond normal human capabilities. There are many different types of Augmentations, ranging from cybernetic to " + "beyond normal human capabilities. There are many different types of Augmentations, ranging from cybernetic to " +
"genetic to biological. Acquiring these Augmentations enhances the user's physical and mental faculties. <br>" + "genetic to biological. Acquiring these Augmentations enhances the user's physical and mental faculties. <br>" +
@ -282,11 +285,24 @@ CONSTANTS = {
"corporations and organizations that create them. Therefore, the only way for the player to obtain Augmentations is " + "corporations and organizations that create them. Therefore, the only way for the player to obtain Augmentations is " +
"through Factions. After joining a Faction and earning enough reputation in it, you will be able to purchase " + "through Factions. After joining a Faction and earning enough reputation in it, you will be able to purchase " +
"its Augmentations. Different Factions offer different Augmentations. Augmentations must be purchased in order to be installed, " + "its Augmentations. Different Factions offer different Augmentations. Augmentations must be purchased in order to be installed, " +
"and they are fairly expensive. <br>" + "and they are fairly expensive. <br><br>" +
"Unfortunately, installing an Augmentation has side effects. All of your stats and experience will be reset to 1. " + "Unfortunately, installing an Augmentation has side effects. You will lose most of the progress you've made, including your " +
"You will lose all of your digital assets as well, such as your money, programs, scripts, and purchased servers. " + "skills, stats, and money. You will have to start over, but you will have all of the Augmentations you have installed to " +
"You will lose all of the reputation you have earned from every company and faction and will no longer be an employee " + "help you progress. <br><br> " +
"or member of any. The only thing you will keep when you install an Augmentation is all of the past Augmentations " + "To summarize, here is a list of everything you will LOSE when you install an Augmentation: <br><br>" +
"you have installed. ", "Stats/Skills<br>" +
"Money<br>" +
"Scripts on all servers EXCEPT your home computer<br>" +
"Purchased servers<br>" +
"Hacknet Nodes<br>" +
"Company/faction reputation<br>" +
"Jobs and Faction memberships<br>" +
"Programs<br>" +
"TOR router<br>" +
"Gym memberships<br><br>" +
"Here is everything you will KEEP when you install an Augmentation: <br><br>" +
"Every Augmentation you have installed<br>" +
"Scripts on your home computer<br>" +
"RAM Upgrades on your home computer",
} }

@ -833,22 +833,31 @@ displayLocationContent = function() {
slumsDescText.style.display = "block"; slumsDescText.style.display = "block";
slumsShoplift.style.display = "block"; slumsShoplift.style.display = "block";
slumsShoplift.innerHTML = "Shoplift (" + (shopliftChance*100).toFixed(3) + "% chance of success)"; slumsShoplift.innerHTML = "Shoplift (" + (shopliftChance*100).toFixed(3) + "% chance of success)";
slumsShoplift.innerHTML += '<span class="tooltiptext"> Attempt to shoplift from a low-end retailers </span>';
slumsMug.style.display = "block"; slumsMug.style.display = "block";
slumsMug.innerHTML = "Mug someone (" + (mugChance*100).toFixed(3) + "% chance of success)"; slumsMug.innerHTML = "Mug someone (" + (mugChance*100).toFixed(3) + "% chance of success)";
slumsMug.innerHTML += '<span class="tooltiptext"> Attempt to mug a random person on the street </span>';
slumsDealDrugs.style.display = "block"; slumsDealDrugs.style.display = "block";
slumsDealDrugs.innerHTML = "Deal Drugs (" + (drugsChance*100).toFixed(3) + "% chance of success)"; slumsDealDrugs.innerHTML = "Deal Drugs (" + (drugsChance*100).toFixed(3) + "% chance of success)";
slumsDealDrugs.innerHTML += '<span class="tooltiptext"> Attempt to deal drugs </span>';
slumsTrafficArms.style.display = "block"; slumsTrafficArms.style.display = "block";
slumsTrafficArms.innerHTML = "Traffick Illegal Arms (" + (armsChance*100).toFixed(3) + "% chance of success)"; slumsTrafficArms.innerHTML = "Traffick Illegal Arms (" + (armsChance*100).toFixed(3) + "% chance of success)";
slumsTrafficArms.innerHTML += '<span class="tooltiptext"> Attempt to smuggle illegal arms into the city and sell them to gangs and criminal organizations </span>';
slumsHomicide.style.display = "block"; slumsHomicide.style.display = "block";
slumsHomicide.innerHTML = "Homicide (" + (homicideChance*100).toFixed(3) + "% chance of success)"; slumsHomicide.innerHTML = "Homicide (" + (homicideChance*100).toFixed(3) + "% chance of success)";
slumsHomicide.innerHTML += '<span class="tooltiptext"> Attempt to murder a random person on the street</span>';
slumsGta.style.display = "block"; slumsGta.style.display = "block";
slumsGta.innerHTML = "Grand Theft Auto (" + (gtaChance*100).toFixed(3) + "% chance of success)"; slumsGta.innerHTML = "Grand Theft Auto (" + (gtaChance*100).toFixed(3) + "% chance of success)";
slumsGta.innerHTML += '<span class="tooltiptext"> Attempt to commit grand theft auto </span>';
slumsKidnap.style.display = "block"; slumsKidnap.style.display = "block";
slumsKidnap.innerHTML = "Kidnap and Ransom (" + (kidnapChance*100).toFixed(3) + "% chance of success)"; slumsKidnap.innerHTML = "Kidnap and Ransom (" + (kidnapChance*100).toFixed(3) + "% chance of success)";
slumsKidnap.innerHTML += '<span class="tooltiptext"> Attempt to kidnap and ransom a high-profile target </span>';
slumsAssassinate.style.display = "block"; slumsAssassinate.style.display = "block";
slumsAssassinate.innerHTML = "Assassinate (" + (assassinateChance*100).toFixed(3) + "% chance of success)"; slumsAssassinate.innerHTML = "Assassinate (" + (assassinateChance*100).toFixed(3) + "% chance of success)";
slumsAssassinate.innerHTML += '<span class="tooltiptext"> Attempt to assassinate a high-profile target </span>';
slumsHeist.style.display = "block"; slumsHeist.style.display = "block";
slumsHeist.innerHTML = "Heist (" + (heistChance*100).toFixed(3) + "% chance of success)"; slumsHeist.innerHTML = "Heist (" + (heistChance*100).toFixed(3) + "% chance of success)";
slumsHeist.innerHTML += '<span class="tooltiptext"> Attempt to pull off the ultimate heist </span>';
break; break;
default: default:
console.log("ERROR: INVALID LOCATION"); console.log("ERROR: INVALID LOCATION");