Added 3 more crimes..home computer no longer reset on prestige

This commit is contained in:
Daniel Xie 2017-05-08 11:00:34 -05:00
parent 20d8a40e17
commit 94aafba04b
10 changed files with 163 additions and 22 deletions

@ -582,13 +582,34 @@
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"> Shoplift </a> <a href="#" id="location-slums-shoplift" class="a-link-button tooltip"> Shoplift
<a href="#" id="location-slums-mug" class="a-link-button"> Mug someone </a> <span class="tooltiptext"> Attempt to shoplift from a low-end retailers </span>
<a href="#" id="location-slums-deal-drugs" class="a-link-button"> Deal Drugs </a> </a>
<a href="#" id="location-slums-traffic-arms" class="a-link-button"> Traffick Illegal Arms </a> <a href="#" id="location-slums-mug" class="a-link-button tooltip"> Mug someone
<a href="#" id="location-slums-homicide" class="a-link-button"> Homicide </a> <span class="tooltiptext"> Attempt to mug a random person on the street </span>
<a href="#" id="location-slums-kidnap" class="a-link-button"> Kidnap and Ransom </a> </a>
<a href="#" id="location-slums-deal-drugs" class="a-link-button tooltip"> Deal Drugs
<span class="tooltiptext"> Attempt to deal drugs </span>
</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 -->

@ -11,7 +11,7 @@ function Augmentation(name) {
//Level - Only applicable for some augmentations //Level - Only applicable for some augmentations
// NeuroFlux Governor // NeuroFlux Governor
this.level = 0; this.level = 1;
} }
Augmentation.prototype.setInfo = function(inf) { Augmentation.prototype.setInfo = function(inf) {
@ -781,6 +781,7 @@ initAugmentations = function() {
delete Augmentations[AugmentationNames.NeuroFluxGovernor]; delete Augmentations[AugmentationNames.NeuroFluxGovernor];
} else { } else {
NeuroFluxGovernor.setRequirements(1000, 1000000); NeuroFluxGovernor.setRequirements(1000, 1000000);
NeuroFluxGovernor.level = 1;
} }
NeuroFluxGovernor.setInfo("A device that is embedded in the back of the neck. The NeuroFlux Governor " + NeuroFluxGovernor.setInfo("A device that is embedded in the back of the neck. The NeuroFlux Governor " +
"monitors and regulates nervous impulses coming to and from the spinal column, " + "monitors and regulates nervous impulses coming to and from the spinal column, " +

@ -94,7 +94,10 @@ CONSTANTS = {
CrimeDrugs: "deal drugs", CrimeDrugs: "deal drugs",
CrimeTraffickArms: "traffick illegal arms", CrimeTraffickArms: "traffick illegal arms",
CrimeHomicide: "commit homicide", CrimeHomicide: "commit homicide",
CrimeGrandTheftAuto: "commit grand theft auto",
CrimeKidnap: "kidnap someone for ransom", CrimeKidnap: "kidnap someone for ransom",
CrimeAssassination: "assassinate a high-profile target",
CrimeHeist: "pull off the ultimate heist",
//Text that is displayed when the 'help' command is ran in Terminal //Text that is displayed when the 'help' command is ran in Terminal
HelpText: "analyze Get statistics and information about current machine <br>" + HelpText: "analyze Get statistics and information about current machine <br>" +

@ -24,9 +24,24 @@ function commitHomicideCrime() {
Player.startCrime(0, 2, 2, 2, 2, 0, 1000, 3000); //$333.3/s, 0.66 combat exp/s Player.startCrime(0, 2, 2, 2, 2, 0, 1000, 3000); //$333.3/s, 0.66 combat exp/s
} }
function commitGrandTheftAutoCrime() {
Player.crimeType = CONSTANTS.CrimeGrandTheftAuto;
Player.startCrime(8, 8, 8, 40, 20, 150000, 80000); //$1875/2, .1 exp/s, .5 exp/s, .25 exp/s
}
function commitKidnapCrime() { function commitKidnapCrime() {
Player.crimeType = CONSTANTS.CrimeKidnap; Player.crimeType = CONSTANTS.CrimeKidnap;
Player.startCrime(0, 20, 20, 20, 20, 20, 200000, 120000); //$1666.666/s. .167 exp/s Player.startCrime(0, 20, 20, 20, 20, 20, 300000, 120000); //$2500/s. .167 exp/s
}
function commitAssassinationCrime() {
Player.crimeType = CONSTANTS.CrimeAssassination;
Player.startCrime(0, 75, 75, 75, 75, 0, 1000000, 300000); //$3333.33/s, .25 exp/s
}
function commitHeistCrime() {
Player.crimeType = CONSTANTS.CrimeHeist;
Player.startCrime(90, 90, 90, 90, 90, 90, 25000000, 600000); //$41,666.67/s, .15exp/s
} }
function determineCrimeSuccess(crime, moneyGained) { function determineCrimeSuccess(crime, moneyGained) {
@ -47,9 +62,18 @@ function determineCrimeSuccess(crime, moneyGained) {
case CONSTANTS.CrimeHomicide: case CONSTANTS.CrimeHomicide:
chance = determineCrimeChanceHomicide(); chance = determineCrimeChanceHomicide();
break; break;
case CONSTANTS.CrimeGrandTheftAuto:
chance = determineCrimeChanceGrandTheftAuto();
break;
case CONSTANTS.CrimeKidnap: case CONSTANTS.CrimeKidnap:
chance = determineCrimeChanceKidnap(); chance = determineCrimeChanceKidnap();
break; break;
case CONSTANTS.CrimeAssassination:
chance = determineCrimeChanceAssassination();
break;
case CONSTANTS.CrimeHeist:
chance = determineCrimeChanceHeist();
break;
default: default:
dialogBoxCreate("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); dialogBoxCreate("ERR: Unrecognized crime type. This is probably a bug please contact the developer");
return; return;
@ -107,11 +131,39 @@ function determineCrimeChanceHomicide() {
return Math.min(chance, 1); return Math.min(chance, 1);
} }
function determineCrimeChanceGrandTheftAuto() {
var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel +
Player.strength / CONSTANTS.MaxSkillLevel +
Player.defense / CONSTANTS.MaxSkillLevel +
4 * Player.dexterity / CONSTANTS.MaxSkillLevel +
Player.agility / CONSTANTS.MaxSkillLevel +
2 * Player.charisma / CONSTANTS.MaxSkillLevel)) / 8;
return Math.min(chance, 1);
}
function determineCrimeChanceKidnap() { function determineCrimeChanceKidnap() {
return ((Player.charisma / CONSTANTS.MaxSkillLevel + return ((Player.charisma / CONSTANTS.MaxSkillLevel +
Player.strength / CONSTANTS.MaxSkillLevel + Player.strength / CONSTANTS.MaxSkillLevel +
Player.defense / CONSTANTS.MaxSkillLevel + Player.defense / CONSTANTS.MaxSkillLevel +
Player.dexterity / CONSTANTS.MaxSkillLevel + Player.dexterity / CONSTANTS.MaxSkillLevel +
Player.agility / CONSTANTS.MaxSkillLevel)) / 4; Player.agility / CONSTANTS.MaxSkillLevel)) / 6;
return Math.min(chance, 1);
}
function determineCrimeChanceAssassination() {
var chance = ((Player.strength / CONSTANTS.MaxSkillLevel +
Player.defense / CONSTANTS.MaxSkillLevel +
Player.dexterity / CONSTANTS.MaxSkillLevel +
Player.agility / CONSTANTS.MaxSkillLevel)) / 8;
return Math.min(chance, 1);
}
function determineCrimeChanceHeist() {
var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel +
Player.strength / CONSTANTS.MaxSkillLevel +
Player.defense / CONSTANTS.MaxSkillLevel +
Player.dexterity / CONSTANTS.MaxSkillLevel +
Player.agility / CONSTANTS.MaxSkillLevel +
Player.charisma / CONSTANTS.MaxSkillLevel)) / 18;
return Math.min(chance, 1); return Math.min(chance, 1);
} }

@ -148,7 +148,10 @@ displayLocationContent = function() {
var slumsDealDrugs = document.getElementById("location-slums-deal-drugs"); var slumsDealDrugs = document.getElementById("location-slums-deal-drugs");
var slumsTrafficArms = document.getElementById("location-slums-traffic-arms"); var slumsTrafficArms = document.getElementById("location-slums-traffic-arms");
var slumsHomicide = document.getElementById("location-slums-homicide"); var slumsHomicide = document.getElementById("location-slums-homicide");
var slumsGta = document.getElementById("location-slums-gta");
var slumsKidnap = document.getElementById("location-slums-kidnap"); var slumsKidnap = document.getElementById("location-slums-kidnap");
var slumsAssassinate = document.getElementById("location-slums-assassinate");
var slumsHeist = document.getElementById("location-slums-heist");
var loc = Player.location; var loc = Player.location;
@ -223,7 +226,10 @@ displayLocationContent = function() {
slumsDealDrugs.style.display = "none"; slumsDealDrugs.style.display = "none";
slumsTrafficArms.style.display = "none"; slumsTrafficArms.style.display = "none";
slumsHomicide.style.display = "none"; slumsHomicide.style.display = "none";
slumsGta.style.display = "none";
slumsKidnap.style.display = "none"; slumsKidnap.style.display = "none";
slumsAssassinate.style.display = "none";
slumsHeist.style.display = "none";
//Check if the player is employed at this Location. If he is, display the "Work" button, //Check if the player is employed at this Location. If he is, display the "Work" button,
//update the job title, etc. //update the job title, etc.
@ -819,7 +825,10 @@ displayLocationContent = function() {
var drugsChance = determineCrimeChanceDealDrugs(); var drugsChance = determineCrimeChanceDealDrugs();
var armsChance = determineCrimeChanceTraffickArms(); var armsChance = determineCrimeChanceTraffickArms();
var homicideChance = determineCrimeChanceHomicide(); var homicideChance = determineCrimeChanceHomicide();
var gtaChance = determineCrimeChanceGrandTheftAuto();
var kidnapChance = determineCrimeChanceKidnap(); var kidnapChance = determineCrimeChanceKidnap();
var assassinateChance = determineCrimeChanceAssassination();
var heistChance = determineCrimeChanceHeist();
slumsDescText.style.display = "block"; slumsDescText.style.display = "block";
slumsShoplift.style.display = "block"; slumsShoplift.style.display = "block";
@ -832,9 +841,14 @@ displayLocationContent = function() {
slumsTrafficArms.innerHTML = "Traffick Illegal Arms (" + (armsChance*100).toFixed(3) + "% chance of success)"; slumsTrafficArms.innerHTML = "Traffick Illegal Arms (" + (armsChance*100).toFixed(3) + "% chance of success)";
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)";
slumsGta.style.display = "block";
slumsGta.innerHTML = "Grand Theft Auto (" + (gtaChance*100).toFixed(3) + "% chance of success)";
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)";
slumsAssassinate.style.display = "block";
slumsAssassinate.innerHTML = "Assassinate (" + (assassinateChance*100).toFixed(3) + "% chance of success)";
slumsHeist.style.display = "block";
slumsHeist.innerHTML = "Heist (" + (heistChance*100).toFixed(3) + "% chance of success)";
break; break;
default: default:
console.log("ERROR: INVALID LOCATION"); console.log("ERROR: INVALID LOCATION");
@ -1307,7 +1321,10 @@ initLocationButtons = function() {
var slumsDealDrugs = document.getElementById("location-slums-deal-drugs"); var slumsDealDrugs = document.getElementById("location-slums-deal-drugs");
var slumsTrafficArms = document.getElementById("location-slums-traffic-arms"); var slumsTrafficArms = document.getElementById("location-slums-traffic-arms");
var slumsHomicide = document.getElementById("location-slums-homicide"); var slumsHomicide = document.getElementById("location-slums-homicide");
var slumsGta = document.getElementById("location-slums-gta");
var slumsKidnap = document.getElementById("location-slums-kidnap"); var slumsKidnap = document.getElementById("location-slums-kidnap");
var slumsAssassinate = document.getElementById("location-slums-assassinate");
var slumsHeist = document.getElementById("location-slums-heist");
softwareJob.addEventListener("click", function() { softwareJob.addEventListener("click", function() {
Player.applyForSoftwareJob(); Player.applyForSoftwareJob();
@ -1474,10 +1491,25 @@ initLocationButtons = function() {
return false; return false;
}); });
slumsGta.addEventListener("click", function() {
commitGrandTheftAutoCrime();
return false;
});
slumsKidnap.addEventListener("click", function() { slumsKidnap.addEventListener("click", function() {
commitKidnapCrime(); commitKidnapCrime();
return false; return false;
}); });
slumsAssassinate.addEventListener("click", function() {
commitAssassinationCrime();
return false;
});
slumsHeist.addEventListener("click", function() {
commitHeistCrime();
return false;
});
} }
travelToCity = function(destCityName, cost) { travelToCity = function(destCityName, cost) {

@ -104,9 +104,15 @@ function PlayerObject() {
this.numPeopleKilled = 0; this.numPeopleKilled = 0;
this.numPeopleKilledTotal = 0; this.numPeopleKilledTotal = 0;
this.numPeopleKilledLifetime = 0; this.numPeopleKilledLifetime = 0;
this.numTimesGrandTheftAuto = 0;
this.numTimesGrandTheftAutoTotal = 0;
this.numTimesGrandTheftAutoLifetime = 0;
this.numTimesKidnapped = 0; this.numTimesKidnapped = 0;
this.numTimesKidnappedTotal = 0; this.numTimesKidnappedTotal = 0;
this.numTimesKidnappedLifetime = 0; this.numTimesKidnappedLifetime = 0;
this.numTimesHeist = 0;
this.numTimesHeistTotal = 0;
this.numTimesHeistLifetime = 0;
//Achievements and achievement progress //Achievements and achievement progress
@ -960,6 +966,7 @@ PlayerObject.prototype.commitCrime = function (numCycles) {
PlayerObject.prototype.finishCrime = function(cancelled) { PlayerObject.prototype.finishCrime = function(cancelled) {
//Determine crime success/failure //Determine crime success/failure
if (!cancelled) { if (!cancelled) {
var statusText = ""; //TODO, unique message for each crime when you succeed
if (determineCrimeSuccess(this.crimeType, this.workMoneyGained)) { if (determineCrimeSuccess(this.crimeType, this.workMoneyGained)) {
//Handle Karma and crime statistics //Handle Karma and crime statistics
switch(this.crimeType) { switch(this.crimeType) {
@ -983,9 +990,21 @@ PlayerObject.prototype.finishCrime = function(cancelled) {
++this.numPeopleKilled; ++this.numPeopleKilled;
this.karma -= 3; this.karma -= 3;
break; break;
case CONSTANTS.CrimeGrandTheftAuto:
++this.numTimesGrandTheftAuto;
this.karma -= 5;
break;
case CONSTANTS.CrimeKidnap: case CONSTANTS.CrimeKidnap:
++this.numTimesKidnapped; ++this.numTimesKidnapped;
this.karma -= 3; this.karma -= 6;
break;
case CONSTANTS.CrimeAssassination:
++this.numPeopleKilled;
this.karma -= 10;
break;
case CONSTANTS.CrimeHeist:
++this.numTimesHeist;
this.karma -= 15;
break; break;
default: default:
dialogBoxCreate("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); dialogBoxCreate("ERR: Unrecognized crime type. This is probably a bug please contact the developer");
@ -1019,9 +1038,11 @@ PlayerObject.prototype.finishCrime = function(cancelled) {
formatNumber(this.workAgiExpGained, 4) + " agility experience<br>" + formatNumber(this.workAgiExpGained, 4) + " agility experience<br>" +
formatNumber(this.workChaExpGained, 4) + " charisma experience"); formatNumber(this.workChaExpGained, 4) + " charisma experience");
} }
this.gainWorkExp();
} }
this.gainWorkExp();
var mainMenu = document.getElementById("mainmenu-container"); var mainMenu = document.getElementById("mainmenu-container");
mainMenu.style.visibility = "visible"; mainMenu.style.visibility = "visible";

@ -32,9 +32,17 @@ function prestigeAugmentation() {
Player.numPeopleKilledTotal += Player.numPeopleKilled; Player.numPeopleKilledTotal += Player.numPeopleKilled;
Player.numPeopleKilledLifetime += Player.numPeopleKilled; Player.numPeopleKilledLifetime += Player.numPeopleKilled;
Player.numPeopleKilled = 0; Player.numPeopleKilled = 0;
Player.numTimesGrandTheftAutoTotal += Player.numTimesGrandTheftAuto;
Player.numTimesGrandTheftAutoLifetime += Player.numTimesGrandTheftAuto;
Player.numTimesGrandTheftAuto = 0;
Player.numTimesKidnappedTotal += Player.numTimesKidnapped; Player.numTimesKidnappedTotal += Player.numTimesKidnapped;
Player.numTimesKidnappedLifetime += Player.numTimesKidnapped; Player.numTimesKidnappedLifetime += Player.numTimesKidnapped;
Player.numTimesKidnapped = 0; Player.numTimesKidnapped = 0;
Player.numTimesHeistTotal += Player.numTimesHeist;
Player.numTimesHeistLifetime += Player.numTimesHeist;
Player.numTimesHeist = 0;
Player.karma = 0;
//Reset stats //Reset stats
Player.hacking_skill = 1; Player.hacking_skill = 1;
@ -99,22 +107,24 @@ function prestigeAugmentation() {
Player.lastUpdate = new Date().getTime(); Player.lastUpdate = new Date().getTime();
var homeComp = null; var homeComp = Player.getHomeComputer();
//Delete all servers except home computer //Delete all servers except home computer
for (var member in AllServers) { for (var member in AllServers) {
//Don't delete home computer
if (member == Player.homeComputer) {
homeComp = AllServers[member];
continue;
}
delete AllServers[member]; delete AllServers[member];
} }
AllServers = {}; AllServers = {};
//Reset home computer (only the programs) and add to AllServers //Reset home computer (only the programs) and add to AllServers
homeComp.programs.length = 0; homeComp.programs.length = 0;
homeComp.runningScripts = [];
homeComp.serversOnNetwork = [];
homeComp.isConnectedTo = true;
homeComp.isOnline = true;
homeComp.ramUsed = 0;
homeComp.programs.push(Programs.NukeProgram); homeComp.programs.push(Programs.NukeProgram);
addToAllServers(homeComp); Player.currentServer = homeComp.ip;
Player.homeComputer = homeComp.ip;
AddToAllServers(homeComp);
//Delete all running scripts objects //Delete all running scripts objects
for (var i = 0; i < workerScripts.length; ++i) { for (var i = 0; i < workerScripts.length; ++i) {

@ -121,7 +121,6 @@ Reviver.constructors.Server = Server;
//world_daemon: new Server(), //Final server for 2nd tier prestige. Discover that the world is a simulation //world_daemon: new Server(), //Final server for 2nd tier prestige. Discover that the world is a simulation
/* Initialization. Called only when loading a new game( no save file) */
initForeignServers = function() { initForeignServers = function() {
//MegaCorporations //MegaCorporations
var ECorpServer = new Server(); var ECorpServer = new Server();

@ -765,7 +765,9 @@ var Terminal = {
post("Hostname IP Root Access"); post("Hostname IP Root Access");
for (var i = 0; i < Player.getCurrentServer().serversOnNetwork.length; i++) { for (var i = 0; i < Player.getCurrentServer().serversOnNetwork.length; i++) {
//Add hostname //Add hostname
var entry = Player.getCurrentServer().getServerOnNetwork(i).hostname; var entry = Player.getCurrentServer().getServerOnNetwork(i);
if (entry == null) {continue;}
entry = entry.hostname;
//Calculate padding and add IP //Calculate padding and add IP
var numSpaces = 21 - entry.length; var numSpaces = 21 - entry.length;

@ -458,7 +458,7 @@ var Engine = {
item.setAttribute("class", "installed-augmentation"); item.setAttribute("class", "installed-augmentation");
hElem.innerHTML = augName; hElem.innerHTML = augName;
if (augName == AugmentationNames.NeuroFluxGovernor) { if (augName == AugmentationNames.NeuroFluxGovernor) {
hElem += " - Level " + (aug.level); hElem.innerHTML += " - Level " + (aug.level);
} }
pElem.innerHTML = aug.info; pElem.innerHTML = aug.info;