2016-11-03 22:36:01 +01:00
|
|
|
//Netburner Faction class
|
|
|
|
function Faction(name) {
|
|
|
|
this.name = name;
|
2017-01-28 04:10:16 +01:00
|
|
|
this.augmentations = []; //Name of faction only
|
2016-12-22 18:13:00 +01:00
|
|
|
this.information = ""; //Introductory/informational text about the faction
|
2016-11-03 22:36:01 +01:00
|
|
|
|
|
|
|
//Player-related properties for faction
|
|
|
|
this.isMember = false; //Whether player is member
|
|
|
|
this.playerReputation = 0; //"Reputation" within faction
|
|
|
|
};
|
|
|
|
|
2016-11-17 23:25:40 +01:00
|
|
|
Faction.prototype.setAugmentations = function(augs) {
|
2016-11-03 22:36:01 +01:00
|
|
|
for (var i = 0; i < augs.length; i++) {
|
|
|
|
this.augmentations.push(augs[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-28 04:10:16 +01:00
|
|
|
Faction.prototype.setInformation = function(info) {
|
2016-12-22 18:13:00 +01:00
|
|
|
this.information = info;
|
|
|
|
}
|
|
|
|
|
2016-12-21 19:36:42 +01:00
|
|
|
Faction.prototype.toJSON = function() {
|
|
|
|
return Generic_toJSON("Faction", this);
|
|
|
|
}
|
|
|
|
|
|
|
|
Faction.fromJSON = function(value) {
|
|
|
|
return Generic_fromJSON(Faction, value.data);
|
|
|
|
}
|
|
|
|
|
|
|
|
Reviver.constructors.Faction = Faction;
|
|
|
|
|
2016-12-20 21:31:41 +01:00
|
|
|
//Map of factions indexed by faction name
|
2016-12-20 21:18:34 +01:00
|
|
|
Factions = {}
|
2016-12-20 21:31:41 +01:00
|
|
|
|
|
|
|
AddToFactions = function(faction) {
|
|
|
|
var name = faction.name;
|
|
|
|
Factions[name] = faction;
|
|
|
|
}
|
|
|
|
|
2016-12-22 18:13:00 +01:00
|
|
|
//TODO Add faction information
|
2016-12-20 21:31:41 +01:00
|
|
|
initFactions = function() {
|
2016-11-03 22:36:01 +01:00
|
|
|
//Endgame
|
2016-12-20 21:31:41 +01:00
|
|
|
var Illuminati = new Faction("Illuminati");
|
|
|
|
AddToFactions(Illuminati);
|
|
|
|
var Daedalus = new Faction("Daedalus");
|
|
|
|
AddToFactions(Daedalus);
|
|
|
|
var Covenant = new Faction("The Covenant");
|
|
|
|
AddToFactions(Covenant);
|
2016-11-03 22:36:01 +01:00
|
|
|
|
|
|
|
//Megacorporations, each forms its own faction
|
2016-12-20 21:31:41 +01:00
|
|
|
var ECorp = new Faction("ECorp");
|
|
|
|
AddToFactions(ECorp);
|
|
|
|
var MegaCorp = new Faction("MegaCorp");
|
|
|
|
AddToFactions(MegaCorp);
|
|
|
|
var BachmanAndAssociates = new Faction("Bachman & Associates");
|
|
|
|
AddToFactions(BachmanAndAssociates);
|
|
|
|
var BladeIndustries = new Faction("Blade Industries");
|
|
|
|
AddToFactions(BladeIndustries);
|
|
|
|
var NWO = new Faction("NWO");
|
|
|
|
AddToFactions(NWO);
|
|
|
|
var ClarkeIncorporated = new Faction("Clarke Incorporated");
|
|
|
|
AddToFactions(ClarkeIncorporated);
|
|
|
|
var OmniTekIncorporated = new Faction("OmniTek Incorporated");
|
|
|
|
AddToFactions(OmniTekIncorporated);
|
|
|
|
var FourSigma = new Faction("Four Sigma");
|
|
|
|
AddToFactions(FourSigma);
|
|
|
|
var KuaiGongInternational = new Faction("KuaiGong International");
|
|
|
|
AddToFactions(KuaiGongInternational);
|
2016-11-03 22:36:01 +01:00
|
|
|
|
|
|
|
//Hacker groups
|
2016-12-20 21:31:41 +01:00
|
|
|
var BitRunners = new Faction("BitRunners");
|
|
|
|
AddToFactions(BitRunners);
|
|
|
|
var BlackHand = new Faction("The Black Hand");
|
|
|
|
AddToFactions(BlackHand);
|
|
|
|
var NiteSec = new Faction("NiteSec");
|
|
|
|
AddToFactions(NiteSec);
|
2016-11-03 22:36:01 +01:00
|
|
|
|
|
|
|
//City factions, essentially governments
|
2016-12-20 21:31:41 +01:00
|
|
|
var Chongqing = new Faction("Chongqing");
|
|
|
|
AddToFactions(Chongqing);
|
|
|
|
var Sector12 = new Faction("Sector-12");
|
|
|
|
AddToFactions(Sector12);
|
2017-01-11 21:00:51 +01:00
|
|
|
var NewTokyo = new Faction("New Tokyo");
|
|
|
|
AddToFactions(NewTokyo);
|
2016-12-20 21:31:41 +01:00
|
|
|
var Aevum = new Faction("Aevum");
|
|
|
|
AddToFactions(Aevum);
|
|
|
|
var Ishima = new Faction("Ishima");
|
|
|
|
AddToFactions(Ishima);
|
|
|
|
var Volhaven = new Faction("Volhaven");
|
|
|
|
AddToFactions(Volhaven);
|
2016-11-17 16:31:52 +01:00
|
|
|
|
|
|
|
//Criminal Organizations/Gangs
|
2016-12-22 17:19:02 +01:00
|
|
|
var SpeakersForTheDead = new Faction("Speakers for the Dead");
|
2016-12-22 16:56:15 +01:00
|
|
|
AddToFactions(SpeakersForTheDead);
|
|
|
|
var DarkArmy = new Faction("The Dark Army");
|
|
|
|
AddToFactions(DarkArmy);
|
|
|
|
var TheSyndicate = new Faction("The Syndicate");
|
|
|
|
AddToFactions(TheSyndicate);
|
2016-11-17 16:31:52 +01:00
|
|
|
|
|
|
|
//Earlygame factions - factions the player will prestige with early on that don't
|
|
|
|
//belong in other categories
|
2016-12-22 16:56:15 +01:00
|
|
|
var TianDiHui = new Faction("Tian Di Hui"); //Society of the Heaven and Earth
|
|
|
|
AddToFactions(TianDiHui);
|
2016-12-22 17:19:02 +01:00
|
|
|
var CyberSec = new Faction("CyberSec");
|
|
|
|
AddToFactions(CyberSec);
|
2016-12-22 18:13:00 +01:00
|
|
|
}
|
|
|
|
|
2017-01-10 23:23:17 +01:00
|
|
|
joinFaction = function(faction) {
|
|
|
|
faction.isMember = true;
|
|
|
|
|
|
|
|
//Add the faction to the Factions page content
|
|
|
|
var item = document.createElement("li");
|
|
|
|
var aElem = document.createElement("a");
|
|
|
|
aElem.setAttribute("href", "#");
|
|
|
|
aElem.innerHTML = faction.name;
|
|
|
|
aElem.addEventListener("click", function() {
|
|
|
|
displayFactionContent(faction.name);
|
|
|
|
return false;
|
2017-01-28 04:10:16 +01:00
|
|
|
});
|
2017-01-10 23:23:17 +01:00
|
|
|
item.appendChild(aElem);
|
|
|
|
|
|
|
|
var factionsList = document.getElementById("factions-list");
|
|
|
|
factionsList.appendChild(item);
|
|
|
|
}
|
|
|
|
|
2016-12-22 18:13:00 +01:00
|
|
|
//Displays the HTML content for this faction
|
2017-01-10 23:23:17 +01:00
|
|
|
displayFactionContent = function(factionName) {
|
|
|
|
var faction = Factions[factionName];
|
|
|
|
|
2017-01-09 23:14:18 +01:00
|
|
|
var hackDiv = document.getElementById("faction-hack-div");
|
|
|
|
var fieldWorkDiv = document.getElementById("faction-fieldwork-div");
|
|
|
|
var securityWorkDiv = document.getElementById("faction-securitywork-div");
|
|
|
|
|
|
|
|
var hackButton = document.getElementById("faction-hack-button");
|
|
|
|
var fieldWorkButton = document.getElementById("faction-fieldwork-button");
|
|
|
|
var securityWorkButton = document.getElementById("faction-securitywork-button");
|
|
|
|
|
|
|
|
//TODO Add event listeners for the buttons
|
|
|
|
|
2016-12-22 18:13:00 +01:00
|
|
|
if (faction.isMember) {
|
2017-01-09 23:14:18 +01:00
|
|
|
switch(faction.name) {
|
|
|
|
case "Illuminati":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Daedalus":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "The Covenant":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "ECorp":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "MegaCorp":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Bachman & Associates":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Blade Industries":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "NWO":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Clarke Incorporated":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "OmniTek Incorporated":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Four Sigma":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "KuaiGong International":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "BitRunners":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "none";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "The Black Hand":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "NiteSec":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "none";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Chongqing":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Sector-12":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "New Tokyo":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Aevum":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Ishima":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Volhaven":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Speakers for the Dead":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "The Dark Army":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "The Syndicate":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "inline";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "Tian Di Hui":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "none";
|
|
|
|
securityWorkDiv.style.display = "inline";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
case "CyberSec":
|
2017-01-11 21:00:51 +01:00
|
|
|
hackDiv.style.display = "inline";
|
|
|
|
fieldWorkDiv.style.display = "none";
|
|
|
|
securityWorkDiv.style.display = "none";
|
2017-01-09 23:14:18 +01:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
console.log("Faction does not exist");
|
|
|
|
break;
|
|
|
|
}
|
2016-12-22 18:13:00 +01:00
|
|
|
} else {
|
|
|
|
console.log("Not a member of this faction, cannot display faction information");
|
|
|
|
}
|
2016-11-03 22:36:01 +01:00
|
|
|
}
|