Rebalancing, UI improvements

This commit is contained in:
Daniel Xie 2017-05-07 03:22:50 -05:00
parent 315940112c
commit cc21dd6fc7
9 changed files with 435 additions and 160 deletions

@ -538,7 +538,7 @@
<!-- 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 $1,000,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 href="#" 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 href="#" id="location-travel-to-chongqing" class="a-link-button"> Travel to Chongqing</a>

File diff suppressed because it is too large Load Diff

@ -204,18 +204,18 @@ CompanyPositions = {
//Software //Software
SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 1.2), SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 1.2),
JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 9000, 6), JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 6),
SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 36000, 15), SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 32000, 15),
LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 20), LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 20),
//IT //IT
ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 1), ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 1),
ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 9000, 4), ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 6000, 4),
ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 36000, 14), ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 24000, 14),
SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 144000, 14), SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 120000, 14),
SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 36000, 12), SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 28000, 12),
NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 36000, 12), NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 28000, 12),
NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 144000, 15), NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 120000, 15),
//Technology management //Technology management
HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 35), HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 35),
@ -225,8 +225,8 @@ CompanyPositions = {
//Business //Business
BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 1.2), BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 1.2),
BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 9000, 10), BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 10),
BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 36000, 18), BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 32000, 18),
OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 201, 144000, 22), OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 201, 144000, 22),
CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 50), CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 50),
CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 100), CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 100),
@ -234,14 +234,14 @@ CompanyPositions = {
//Non-tech/management jobs //Non-tech/management jobs
Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, .75), Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, .75),
Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, .75), Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, .75),
PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 9000, 5), PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 5),
PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 36000, 12), PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 32000, 12),
SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 4), SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 4),
SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 9000, 8), SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 8),
SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 36000, 15), SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 32000, 15),
HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 22), HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 22),
FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 9000, 6), FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 6),
SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 36000, 15), SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 32000, 15),
SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 25), SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 25),
init: function() { init: function() {

@ -174,7 +174,7 @@ CONSTANTS = {
"The following data types are supported by Netscript: <br>" + "The following data types are supported by Netscript: <br>" +
"numeric - Integers and floats (6, 10.4999)<br>" + "numeric - Integers and floats (6, 10.4999)<br>" +
"string - Encapsulated by single or double quotes ('this is a string')<br>" + "string - Encapsulated by single or double quotes ('this is a string')<br>" +
"boolean - True or False<br><br>" + "boolean - true or false<br><br>" +
"To create a variable, use the assign (=) operator. The language is not strongly typed. Examples: <br>" + "To create a variable, use the assign (=) operator. The language is not strongly typed. Examples: <br>" +
"i = 5;<br>" + "i = 5;<br>" +
"s = 'this game is awesome!';<br><br>" + "s = 'this game is awesome!';<br><br>" +

@ -47,7 +47,7 @@ listAllDarkwebItems = function() {
} }
buyDarkwebItem = function(itemName) { buyDarkwebItem = function(itemName) {
if (DarkWebItems.BruteSSHProgram.startsWith(itemName)) { if (itemName.toLowerCase() == "brutessh.exe") {
var price = parseDarkwebItemPrice(DarkWebItems.BruteSSHProgram); var price = parseDarkwebItemPrice(DarkWebItems.BruteSSHProgram);
if (price > 0 && Player.money >= price) { if (price > 0 && Player.money >= price) {
Player.loseMoney(price); Player.loseMoney(price);
@ -57,7 +57,7 @@ buyDarkwebItem = function(itemName) {
} else { } else {
post("Not enough money to purchase " + itemName); post("Not enough money to purchase " + itemName);
} }
} else if (DarkWebItems.FTPCrackProgram.startsWith(itemName)) { } else if (itemName.toLowerCase() == "ftpcrack.exe") {
var price = parseDarkwebItemPrice(DarkWebItems.FTPCrackProgram); var price = parseDarkwebItemPrice(DarkWebItems.FTPCrackProgram);
if (price > 0 && Player.money >= price) { if (price > 0 && Player.money >= price) {
Player.loseMoney(price); Player.loseMoney(price);
@ -67,7 +67,7 @@ buyDarkwebItem = function(itemName) {
} else { } else {
post("Not enough money to purchase " + itemName); post("Not enough money to purchase " + itemName);
} }
} else if (DarkWebItems.RelaySMTPProgram.startsWith(itemName)) { } else if (itemName.toLowerCase() == "relaysmtp.exe") {
var price = parseDarkwebItemPrice(DarkWebItems.RelaySMTPProgram); var price = parseDarkwebItemPrice(DarkWebItems.RelaySMTPProgram);
if (price > 0 && Player.money >= price) { if (price > 0 && Player.money >= price) {
Player.loseMoney(price); Player.loseMoney(price);
@ -77,7 +77,7 @@ buyDarkwebItem = function(itemName) {
} else { } else {
post("Not enough money to purchase " + itemName); post("Not enough money to purchase " + itemName);
} }
} else if (DarkWebItems.HTTPWormProgram.startsWith(itemName)) { } else if (itemName.toLowerCase() == "httpworm.exe") {
var price = parseDarkwebItemPrice(DarkWebItems.HTTPWormProgram); var price = parseDarkwebItemPrice(DarkWebItems.HTTPWormProgram);
if (price > 0 && Player.money >= price) { if (price > 0 && Player.money >= price) {
Player.loseMoney(price); Player.loseMoney(price);
@ -87,7 +87,7 @@ buyDarkwebItem = function(itemName) {
} else { } else {
post("Not enough money to purchase " + itemName); post("Not enough money to purchase " + itemName);
} }
} else if (DarkWebItems.SQLInjectProgram.startsWith(itemName)) { } else if (itemName.toLowerCase() == "sqlinject.exe") {
var price = parseDarkwebItemPrice(DarkWebItems.SQLInjectProgram); var price = parseDarkwebItemPrice(DarkWebItems.SQLInjectProgram);
if (price > 0 && Player.money >= price) { if (price > 0 && Player.money >= price) {
Player.loseMoney(price); Player.loseMoney(price);

@ -27,6 +27,7 @@ Faction.prototype.reset = function() {
this.isMember = false; this.isMember = false;
this.isBanned = false; this.isBanned = false;
this.playerReputation = 0; this.playerReputation = 0;
this.augmentations = [];
} }
Faction.prototype.toJSON = function() { Faction.prototype.toJSON = function() {
@ -775,7 +776,7 @@ displayFactionAugmentations = function(factionName) {
} }
function processPassiveFactionRepGain(numCycles) { function processPassiveFactionRepGain(numCycles) {
var numTimesGain = numCycles / 600; var numTimesGain = (numCycles / 600) * Player.faction_rep_mult;
for (var name in Factions) { for (var name in Factions) {
if (Factions.hasOwnProperty(name)) { if (Factions.hasOwnProperty(name)) {
var faction = Factions[name]; var faction = Factions[name];

@ -28,7 +28,7 @@ HacknetNode.prototype.updateMoneyGainRate = function() {
HacknetNode.prototype.calculateLevelUpgradeCost = function() { HacknetNode.prototype.calculateLevelUpgradeCost = function() {
//Upgrade cost = Base cost * multiplier ^ level //Upgrade cost = Base cost * multiplier ^ level
var mult = CONSTANTS.HacknetNodeUpgradeLevelMult; var mult = CONSTANTS.HacknetNodeUpgradeLevelMult;
return CONSTANTS.BaseCostForHacknetNode * Math.pow(mult, this.level) * Player.hacknet_node_level_cost_mult; return CONSTANTS.BaseCostForHacknetNode / 2 * Math.pow(mult, this.level) * Player.hacknet_node_level_cost_mult;
} }
HacknetNode.prototype.purchaseLevelUpgrade = function() { HacknetNode.prototype.purchaseLevelUpgrade = function() {

@ -1420,32 +1420,32 @@ initLocationButtons = function() {
}); });
travelToAevum.addEventListener("click", function() { travelToAevum.addEventListener("click", function() {
travelBoxCreate(Locations.Aevum, 1000000); travelBoxCreate(Locations.Aevum, 200000);
return false; return false;
}); });
travelToChongqing.addEventListener("click", function() { travelToChongqing.addEventListener("click", function() {
travelBoxCreate(Locations.Chongqing, 1000000); travelBoxCreate(Locations.Chongqing, 200000);
return false; return false;
}); });
travelToSector12.addEventListener("click", function() { travelToSector12.addEventListener("click", function() {
travelBoxCreate(Locations.Sector12, 1000000); travelBoxCreate(Locations.Sector12, 200000);
return false; return false;
}); });
travelToNewTokyo.addEventListener("click", function() { travelToNewTokyo.addEventListener("click", function() {
travelBoxCreate(Locations.NewTokyo, 1000000); travelBoxCreate(Locations.NewTokyo, 200000);
return false; return false;
}); });
travelToIshima.addEventListener("click", function() { travelToIshima.addEventListener("click", function() {
travelBoxCreate(Locations.Ishima, 1000000); travelBoxCreate(Locations.Ishima, 200000);
return false; return false;
}); });
travelToVolhaven.addEventListener("click", function() { travelToVolhaven.addEventListener("click", function() {
travelBoxCreate(Locations.Volhaven, 1000000); travelBoxCreate(Locations.Volhaven, 200000);
return false; return false;
}); });

@ -138,6 +138,9 @@ function prestigeAugmentation() {
Factions[member].reset(); Factions[member].reset();
} }
//Re-initialize Augmentations - This will update any changes
initAugmentations();
//Inititialization //Inititialization
SpecialServerIps = new SpecialServerIpsMap(); SpecialServerIps = new SpecialServerIpsMap();
Player.init(); Player.init();