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!
+
+
Hacking Contracts
-
+
Complete hacking contracts for your faction! Speed and effectiveness determined by hacking skill. Gain hacking exp.
+
+
Field Work
-
+
+
Carry out field missions for your faction. Speed and effectiveness determined by all stats. Gains exp for all stats.
+
-
+
Security Work
-
+
+
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");