bitburner-src/src/Prestige.js
2017-05-10 15:21:15 -05:00

179 lines
5.7 KiB
JavaScript

/* Prestige functions */
//Prestige by purchasing augmentation
function prestigeAugmentation() {
//Sum up lifetime/total statistics
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;
//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;
Player.numTimesGrandTheftAutoTotal += Player.numTimesGrandTheftAuto;
Player.numTimesGrandTheftAutoLifetime += Player.numTimesGrandTheftAuto;
Player.numTimesGrandTheftAuto = 0;
Player.numTimesKidnappedTotal += Player.numTimesKidnapped;
Player.numTimesKidnappedLifetime += Player.numTimesKidnapped;
Player.numTimesKidnapped = 0;
Player.numTimesHeistTotal += Player.numTimesHeist;
Player.numTimesHeistLifetime += Player.numTimesHeist;
Player.numTimesHeist = 0;
Player.karma = 0;
//Reset stats
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;
Player.money = 1000;
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 = "";
this.createProgramName = "";
this.className = "";
this.crimeType = "";
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();
var homeComp = Player.getHomeComputer();
//Delete all servers except home computer
for (var member in AllServers) {
delete AllServers[member];
}
AllServers = {};
//Reset home computer (only the programs) and add to AllServers
homeComp.programs.length = 0;
homeComp.runningScripts = [];
homeComp.serversOnNetwork = [];
homeComp.isConnectedTo = true;
homeComp.isOnline = true;
homeComp.ramUsed = 0;
homeComp.programs.push(Programs.NukeProgram);
Player.currentServer = homeComp.ip;
Player.homeComputer = homeComp.ip;
AddToAllServers(homeComp);
//Reset statistics of all scripts on home computer
for (var i = 0; i < homeComp.scripts.length; ++i) {
var s = homeComp.scripts[i];
s.reset();
}
//Delete all running scripts objects
for (var i = 0; i < workerScripts.length; ++i) {
workerScripts[i].env.stopFlag = true;
}
//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;
Player.totalHacknetNodeProduction = 0;
//Delete Special Server IPs
for (var member in SpecialServerIps) {
delete SpecialServerIps[member];
}
SpecialServersIps = null;
//Delete Companies
for (var member in Companies) {
if (Companies.hasOwnProperty(member)) {
delete Companies[member];
}
}
Companies = {};
//Reset Factions
for (var member in Factions) {
if (Factions.hasOwnProperty(member)) {
Factions[member].reset();
}
}
//Re-initialize Augmentations - This will update any changes
initAugmentations();
//Inititialization
SpecialServerIps = new SpecialServerIpsMap();
initForeignServers();
initCompanies();
Engine.loadTerminalContent();
}