2017-02-20 23:06:16 +01:00
|
|
|
/* Prestige functions */
|
|
|
|
|
|
|
|
//Prestige by purchasing augmentation
|
|
|
|
function prestigeAugmentation() {
|
2017-05-05 03:08:44 +02:00
|
|
|
//Sum up lifetime/total statistics
|
2017-02-20 23:06:16 +01:00
|
|
|
Player.total_hacking += Player.hacking_skill;
|
|
|
|
Player.lifetime_hacking += Player.hacking_skill;
|
|
|
|
Player.total_strength += Player.strength;
|
|
|
|
Player.lifetime_strength += Player.strength;
|
|
|
|
Player.total_defense += Player.defense;
|
|
|
|
Player.lifetime_defense += Player.defense;
|
|
|
|
Player.total_dexterity += Player.dexterity;
|
|
|
|
Player.lifetime_dexterity += Player.dexterity;
|
|
|
|
Player.total_agility += Player.agility;
|
|
|
|
Player.lifetime_agility += Player.agility;
|
|
|
|
Player.total_charisma += Player.charisma;
|
|
|
|
Player.lifetime_charisma += Player.charisma;
|
|
|
|
|
2017-05-05 03:08:44 +02:00
|
|
|
//Crime statistics
|
|
|
|
Player.numTimesShopliftedTotal += Player.numTimesShoplifted;
|
|
|
|
Player.numTimesShopliftedLifetime += Player.numTimesShoplifted;
|
|
|
|
Player.numTimesShoplifted = 0;
|
|
|
|
Player.numPeopleMuggedTotal += Player.numPeopleMugged;
|
|
|
|
Player.numPeopleMuggedLifetime += Player.numPeopleMugged;
|
|
|
|
Player.numPeopleMugged = 0;
|
|
|
|
Player.numTimesDealtDrugsTotal += Player.numTimesDealtDrugs;
|
|
|
|
Player.numTimesDealtDrugsLifetime += Player.numTimesDealtDrugs;
|
|
|
|
Player.numTimesDealtDrugs = 0;
|
|
|
|
Player.numTimesTraffickArmsTotal += Player.numTimesTraffickArms;
|
|
|
|
Player.numTimesTraffickArmsLifetime += Player.numTimesTraffickArms;
|
|
|
|
Player.numTimesTraffickArms = 0;
|
|
|
|
Player.numPeopleKilledTotal += Player.numPeopleKilled;
|
|
|
|
Player.numPeopleKilledLifetime += Player.numPeopleKilled;
|
|
|
|
Player.numPeopleKilled = 0;
|
2017-05-08 18:00:34 +02:00
|
|
|
Player.numTimesGrandTheftAutoTotal += Player.numTimesGrandTheftAuto;
|
|
|
|
Player.numTimesGrandTheftAutoLifetime += Player.numTimesGrandTheftAuto;
|
|
|
|
Player.numTimesGrandTheftAuto = 0;
|
2017-05-05 03:08:44 +02:00
|
|
|
Player.numTimesKidnappedTotal += Player.numTimesKidnapped;
|
|
|
|
Player.numTimesKidnappedLifetime += Player.numTimesKidnapped;
|
|
|
|
Player.numTimesKidnapped = 0;
|
2017-05-08 18:00:34 +02:00
|
|
|
Player.numTimesHeistTotal += Player.numTimesHeist;
|
|
|
|
Player.numTimesHeistLifetime += Player.numTimesHeist;
|
|
|
|
Player.numTimesHeist = 0;
|
|
|
|
|
|
|
|
Player.karma = 0;
|
2017-05-05 03:08:44 +02:00
|
|
|
|
|
|
|
//Reset stats
|
2017-02-20 23:06:16 +01:00
|
|
|
Player.hacking_skill = 1;
|
|
|
|
|
|
|
|
Player.strength = 1;
|
|
|
|
Player.defense = 1;
|
|
|
|
Player.dexterity = 1;
|
|
|
|
Player.agility = 1;
|
|
|
|
|
|
|
|
Player.charisma = 1;
|
|
|
|
|
|
|
|
Player.hacking_exp = 0;
|
|
|
|
Player.strength_exp = 0;
|
|
|
|
Player.defense_exp = 0;
|
|
|
|
Player.dexterity_exp = 0;
|
|
|
|
Player.agility_exp = 0;
|
|
|
|
Player.charisma_exp = 0;
|
|
|
|
|
2017-05-07 00:19:18 +02:00
|
|
|
Player.money = 1000;
|
2017-05-08 16:33:26 +02:00
|
|
|
|
2017-02-20 23:06:16 +01:00
|
|
|
Player.city = Locations.Sector12;
|
|
|
|
Player.location = "";
|
|
|
|
|
|
|
|
Player.companyName = "";
|
|
|
|
Player.companyPosition = "";
|
|
|
|
|
|
|
|
Player.currentServer = "";
|
|
|
|
Player.discoveredServers = [];
|
|
|
|
Player.purchasedServers = [];
|
|
|
|
|
|
|
|
Player.factions = [];
|
|
|
|
|
|
|
|
Player.startAction = false;
|
|
|
|
Player.actionTime = 0;
|
|
|
|
|
|
|
|
Player.isWorking = false;
|
|
|
|
Player.currentWorkFactionName = "";
|
|
|
|
Player.currentWorkFactionDescription = "";
|
2017-05-05 03:08:44 +02:00
|
|
|
this.createProgramName = "";
|
|
|
|
this.className = "";
|
|
|
|
this.crimeType = "";
|
2017-02-20 23:06:16 +01:00
|
|
|
|
|
|
|
Player.workHackExpGainRate = 0;
|
|
|
|
Player.workStrExpGainRate = 0;
|
|
|
|
Player.workDefExpGainRate = 0;
|
|
|
|
Player.workDexExpGainRate = 0;
|
|
|
|
Player.workAgiExpGainRate = 0;
|
|
|
|
Player.workChaExpGainRate = 0;
|
|
|
|
Player.workRepGainRate = 0;
|
|
|
|
Player.workMoneyGainRate = 0;
|
|
|
|
|
|
|
|
Player.workHackExpGained = 0;
|
|
|
|
Player.workStrExpGained = 0;
|
|
|
|
Player.workDefExpGained = 0;
|
|
|
|
Player.workDexExpGained = 0;
|
|
|
|
Player.workAgiExpGained = 0;
|
|
|
|
Player.workChaExpGained = 0;
|
|
|
|
Player.workRepGained = 0;
|
|
|
|
Player.workMoneyGained = 0;
|
|
|
|
|
|
|
|
Player.timeWorked = 0;
|
|
|
|
|
|
|
|
Player.lastUpdate = new Date().getTime();
|
|
|
|
|
2017-05-30 05:52:06 +02:00
|
|
|
//Delete all running scripts objects
|
|
|
|
for (var i = 0; i < workerScripts.length; ++i) {
|
|
|
|
workerScripts[i].env.stopFlag = true;
|
|
|
|
}
|
|
|
|
|
2017-05-08 18:00:34 +02:00
|
|
|
var homeComp = Player.getHomeComputer();
|
2017-05-08 16:33:26 +02:00
|
|
|
//Delete all servers except home computer
|
2017-02-20 23:06:16 +01:00
|
|
|
for (var member in AllServers) {
|
|
|
|
delete AllServers[member];
|
|
|
|
}
|
|
|
|
AllServers = {};
|
2017-05-13 06:40:12 +02:00
|
|
|
//Delete Special Server IPs
|
|
|
|
for (var member in SpecialServerIps) {
|
|
|
|
delete SpecialServerIps[member];
|
|
|
|
}
|
|
|
|
SpecialServersIps = null;
|
2017-05-12 20:12:32 +02:00
|
|
|
|
2017-05-08 16:33:26 +02:00
|
|
|
//Reset home computer (only the programs) and add to AllServers
|
|
|
|
homeComp.programs.length = 0;
|
2017-05-08 18:00:34 +02:00
|
|
|
homeComp.runningScripts = [];
|
|
|
|
homeComp.serversOnNetwork = [];
|
|
|
|
homeComp.isConnectedTo = true;
|
|
|
|
homeComp.isOnline = true;
|
|
|
|
homeComp.ramUsed = 0;
|
2017-05-08 16:33:26 +02:00
|
|
|
homeComp.programs.push(Programs.NukeProgram);
|
2017-05-18 22:00:37 +02:00
|
|
|
if (augmentationExists(AugmentationNames.Neurolink) &&
|
|
|
|
Augmentations[AugmentationNames.Neurolink].owned) {
|
|
|
|
homeComp.programs.push(Programs.FTPCrackProgram);
|
|
|
|
homeComp.programs.push(Programs.RelaySMTPProgram);
|
|
|
|
}
|
|
|
|
if (augmentationExists(AugmentationNames.CashRoot) &&
|
|
|
|
Augmentations[AugmentationNames.CashRoot].owned) {
|
|
|
|
Player.money = 1000000;
|
|
|
|
homeComp.programs.push(Programs.BruteSSHProgram);
|
|
|
|
}
|
2017-05-08 18:00:34 +02:00
|
|
|
Player.currentServer = homeComp.ip;
|
|
|
|
Player.homeComputer = homeComp.ip;
|
|
|
|
AddToAllServers(homeComp);
|
2017-05-12 20:12:32 +02:00
|
|
|
|
|
|
|
//Re-create foreign servers
|
2017-05-12 20:52:02 +02:00
|
|
|
SpecialServerIps = new SpecialServerIpsMap(); //Must be done before initForeignServers()
|
2017-05-12 20:12:32 +02:00
|
|
|
initForeignServers();
|
|
|
|
|
2017-05-16 00:22:17 +02:00
|
|
|
//Darkweb is purchase-able
|
|
|
|
document.getElementById("location-purchase-tor").setAttribute("class", "a-link-button");
|
|
|
|
|
2017-05-10 19:42:46 +02:00
|
|
|
//Reset statistics of all scripts on home computer
|
|
|
|
for (var i = 0; i < homeComp.scripts.length; ++i) {
|
|
|
|
var s = homeComp.scripts[i];
|
2017-05-10 22:21:15 +02:00
|
|
|
s.reset();
|
2017-05-10 19:42:46 +02:00
|
|
|
}
|
2017-05-08 16:33:26 +02:00
|
|
|
|
2017-05-05 03:08:44 +02:00
|
|
|
//Delete active scripts display elements
|
|
|
|
var list = Engine.ActiveScriptsList.querySelectorAll('#active-scripts-list li');
|
|
|
|
for (var i = list.length-1; i >= 0; --i) {
|
|
|
|
Engine.deleteActiveScriptsItem(i);
|
|
|
|
}
|
|
|
|
workerScripts.length = 0;
|
|
|
|
|
|
|
|
//Delete Hacknet Nodes
|
|
|
|
Player.hacknetNodes.length = 0;
|
2017-05-10 19:42:46 +02:00
|
|
|
Player.totalHacknetNodeProduction = 0;
|
2017-05-05 03:08:44 +02:00
|
|
|
|
2017-02-20 23:06:16 +01:00
|
|
|
//Delete Companies
|
|
|
|
for (var member in Companies) {
|
2017-05-10 22:21:15 +02:00
|
|
|
if (Companies.hasOwnProperty(member)) {
|
|
|
|
delete Companies[member];
|
|
|
|
}
|
2017-02-20 23:06:16 +01:00
|
|
|
}
|
|
|
|
Companies = {};
|
|
|
|
|
2017-05-05 23:27:35 +02:00
|
|
|
//Reset Factions
|
2017-02-20 23:06:16 +01:00
|
|
|
for (var member in Factions) {
|
2017-05-10 22:21:15 +02:00
|
|
|
if (Factions.hasOwnProperty(member)) {
|
2017-05-12 20:12:32 +02:00
|
|
|
delete Factions[member];
|
2017-05-10 22:21:15 +02:00
|
|
|
}
|
2017-02-20 23:06:16 +01:00
|
|
|
}
|
2017-05-12 20:12:32 +02:00
|
|
|
Factions = {};
|
2017-02-20 23:06:16 +01:00
|
|
|
|
2017-05-12 20:12:32 +02:00
|
|
|
//Stop a Terminal action if there is onerror
|
|
|
|
if (Engine._actionInProgress) {
|
|
|
|
Engine._actionInProgress = false;
|
|
|
|
Terminal.finishAction(true);
|
|
|
|
}
|
2017-05-07 10:22:50 +02:00
|
|
|
|
2017-05-12 20:12:32 +02:00
|
|
|
//Re-initialize things - This will update any changes
|
|
|
|
initFactions();
|
|
|
|
initAugmentations();
|
2017-02-20 23:06:16 +01:00
|
|
|
initCompanies();
|
2017-05-05 03:08:44 +02:00
|
|
|
|
2017-05-15 02:14:13 +02:00
|
|
|
//Clear terminal
|
|
|
|
$("#terminal tr:not(:last)").remove();
|
|
|
|
postNetburnerText();
|
|
|
|
|
2017-05-05 03:08:44 +02:00
|
|
|
Engine.loadTerminalContent();
|
2017-02-20 23:06:16 +01:00
|
|
|
}
|