diff --git a/index.html b/index.html index a2571434b..ee91bb9ca 100644 --- a/index.html +++ b/index.html @@ -123,7 +123,171 @@ -
+
+ + + + + + + + + + +
@@ -143,19 +307,32 @@

+

+ Perform work/carry out assignments for your faction to help further its cause! Each + task takes a certain amount of time to complete, which is dependent on your stats. Completing + a task will earn you exp and increase your reputation with the faction. Note that you cannot + use your terminal or create scripts when you are performing a task! +

+
-

+

Complete hacking contracts for your faction! Speed and effectiveness determined by hacking skill. Gain hacking exp.

+
+
-

+
+

Carry out field missions for your faction. Speed and effectiveness determined by all stats. Gains exp for all stats.

+
-
+
-

+
+

Serve in a security detail for your faction. Speed and effectiveness determined by combat stats. Gains exp for all combat stats.

+
diff --git a/src/Faction.js b/src/Faction.js index b663a1f2b..a9b08e597 100644 --- a/src/Faction.js +++ b/src/Faction.js @@ -80,8 +80,8 @@ initFactions = function() { AddToFactions(Chongqing); var Sector12 = new Faction("Sector-12"); AddToFactions(Sector12); - var HongKong = new Faction("New Tokyo"); - AddToFactions(HongKong); + var NewTokyo = new Faction("New Tokyo"); + AddToFactions(NewTokyo); var Aevum = new Faction("Aevum"); AddToFactions(Aevum); var Ishima = new Faction("Ishima"); @@ -140,134 +140,134 @@ displayFactionContent = function(factionName) { if (faction.isMember) { switch(faction.name) { case "Illuminati": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "none"; break; case "Daedalus": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "none"; break; case "The Covenant": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "none"; break; case "ECorp": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "MegaCorp": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Bachman & Associates": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Blade Industries": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "NWO": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Clarke Incorporated": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "OmniTek Incorporated": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Four Sigma": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "KuaiGong International": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "BitRunners": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "hidden"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "none"; + securityWorkDiv.style.display = "none"; break; case "The Black Hand": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "none"; break; case "NiteSec": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "hidden"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "none"; + securityWorkDiv.style.display = "none"; break; case "Chongqing": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Sector-12": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "New Tokyo": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Aevum": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Ishima": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Volhaven": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Speakers for the Dead": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "The Dark Army": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "none"; break; case "The Syndicate": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "visible"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "inline"; + securityWorkDiv.style.display = "inline"; break; case "Tian Di Hui": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "hidden"; - securityWorkDiv.style.visibility = "visible"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "none"; + securityWorkDiv.style.display = "inline"; break; case "CyberSec": - hackDiv.style.visibility = "visible"; - fieldWorkDiv.style.visibility = "hidden"; - securityWorkDiv.style.visibility = "hidden"; + hackDiv.style.display = "inline"; + fieldWorkDiv.style.display = "none"; + securityWorkDiv.style.display = "none"; break; default: console.log("Faction does not exist"); diff --git a/src/Player.js b/src/Player.js index 18223bc19..1ceb7580f 100644 --- a/src/Player.js +++ b/src/Player.js @@ -11,6 +11,7 @@ function PlayerObject() { //Labor stats this.charisma = 1; + //Intelligence, perhaps? //Hacking multipliers this.hacking_chance_multiplier = 2; //Increase through ascensions/augmentations @@ -56,10 +57,14 @@ function PlayerObject() { this.lifetime_money = 0; //IP Address of Starting (home) computer - this.homeComputer = null; + this.homeComputer = ""; + + //Cities: Aevum, ChongQing, Sector12, New Tokyo, Ishima, Volhaven + this.city = "Aevum"; + this.location = ""; //Servers - this.currentServer = null; //IP address of Server currently being accessed through terminal + this.currentServer = ""; //IP address of Server currently being accessed through terminal this.discoveredServers = []; //IP addresses of secret servers not in the network that you have discovered this.purchasedServers = []; diff --git a/src/engine.js b/src/engine.js index 0d033b766..38af5a013 100644 --- a/src/engine.js +++ b/src/engine.js @@ -168,6 +168,7 @@ var Engine = { loadWorldContent: function() { Engine.hideAllContent(); Engine.Display.worldContent.style.visibility = "visible"; + Engine.displayWorldInfo(); Engine.currentPage = Engine.Page.World; } @@ -226,6 +227,47 @@ var Engine = { 'Hacking Experience: ' + Player.hacking_exp.toFixed(4) + '

'; }, + /* Display locations in the world*/ + aevumLocationsList: null, + chongqingLocationsList: null, + sector12LocationsList: null, + newTokyoLocationsList: null, + ishimaLocationsList: null, + volhavenLocationsList: null, + + displayWorldInfo: function() { + Engine.aevumLocationsList.style.display = "none"; + Engine.chongqingLocationsList.style.display = "none"; + Engine.sector12LocationsList.style.display = "none"; + Engine.newTokyoLocationsList.style.display = "none"; + Engine.ishimaLocationsList.style.display = "none"; + Engine.volhavenLocationsList.style.display = "none"; + + switch(Player.city) { + case "Aevum": + Engine.aevumLocationsList.style.display = "inline"; + break; + case "ChongQing": + Engine.chongqingLocationsList.style.display = "inline"; + break; + case "Sector-12": + Engine.sector12LocationsList.style.display = "inline"; + break; + case "New Tokyo": + Engine.newTokyoLocationsList.style.display = "inline"; + break; + case "Ishima": + Engine.ishimaLocationsList.style.display = "inline"; + break; + case "Volhaven": + Engine.volhavenLocationsList.style.display = "inline"; + break; + default: + console.log("Invalid city value in Player object!"); + break; + } + } + /* Functions used to update information on the Active Scripts page */ ActiveScriptsList: null, @@ -557,6 +599,13 @@ var Engine = { //Character info Engine.Display.characterInfo = document.getElementById("character-info"); + //Location lists + Engine.aevumLocationsList = document.getElementById("aevum-locations-list"); + Engine.chongqingLocationsList = document.getElementById("chongqing-locations-list"); + Engine.sector12LocationsList = document.getElementById("sector12-locations-list"); + Engine.newTokyoLocationsList = document.getElementById("newtokyo-locations-list"); + Engine.ishimaLocationsList = document.getElementById("ishima-locations-list"); + Engine.volhavenLocationsList = document.getElementById("volhaven-locations-list"); //Script editor Engine.Display.scriptEditorText = document.getElementById("script-editor-text");