mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2025-04-01 16:04:36 +02:00
Refactored Code to make Save/Load work. This included re-structuring classes so that they contained only native objects/arrays of native objects and using a Reviver function in the JSON.parse. Cleaned up some code that was no longer needed
This commit is contained in:
21
index.html
21
index.html
@ -11,6 +11,11 @@
|
|||||||
the Google CDN (Content Delivery Network). -->
|
the Google CDN (Content Delivery Network). -->
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||||
|
|
||||||
|
<!-- Utils -->
|
||||||
|
<script src="utils/IPAddress.js"></script>
|
||||||
|
<script src="utils/JSONReviver.js"></script>
|
||||||
|
|
||||||
|
<!-- Netscript -->
|
||||||
<script src="src/netscript/NetScriptWorker.js"></script>
|
<script src="src/netscript/NetScriptWorker.js"></script>
|
||||||
<script src="src/netscript/InputStream.js"></script>
|
<script src="src/netscript/InputStream.js"></script>
|
||||||
<script src="src/netscript/Tokenizer.js"></script>
|
<script src="src/netscript/Tokenizer.js"></script>
|
||||||
@ -18,6 +23,7 @@
|
|||||||
<script src="src/netscript/Evaluator.js"></script>
|
<script src="src/netscript/Evaluator.js"></script>
|
||||||
<script src="src/netscript/Environment.js"></script>
|
<script src="src/netscript/Environment.js"></script>
|
||||||
|
|
||||||
|
<!-- Main game files -->
|
||||||
<script src="src/Constants.js"></script>
|
<script src="src/Constants.js"></script>
|
||||||
<script src="src/Server.js"></script>
|
<script src="src/Server.js"></script>
|
||||||
<script src="src/Player.js"></script>
|
<script src="src/Player.js"></script>
|
||||||
@ -28,9 +34,6 @@
|
|||||||
|
|
||||||
<script src="src/engine.js"></script>
|
<script src="src/engine.js"></script>
|
||||||
|
|
||||||
<!-- Utils -->
|
|
||||||
<script src="utils/JSONReviver.js"></script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="mainmenu-container">
|
<div id="mainmenu-container">
|
||||||
@ -48,10 +51,6 @@
|
|||||||
<a href="#" id="create-script-menu-link"> Create Script </a>
|
<a href="#" id="create-script-menu-link"> Create Script </a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="gym-tab" style="display:none">
|
|
||||||
<a href="#" id="gym-menu-link"> Gym </a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="world-tab" style="display:none">
|
<li class="world-tab" style="display:none">
|
||||||
<a href="#" id="world-menu-link"> World </a>
|
<a href="#" id="world-menu-link"> World </a>
|
||||||
</li>
|
</li>
|
||||||
@ -59,6 +58,14 @@
|
|||||||
<li class="develop-gui-tab" style="display:none">
|
<li class="develop-gui-tab" style="display:none">
|
||||||
<a href="#" id="develop-gui-menu-link"> Develop GUI </a>
|
<a href="#" id="develop-gui-menu-link"> Develop GUI </a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="save-game-tab">
|
||||||
|
<a href="#" id="save-game-link"> Save Game </a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="delete-game-tab">
|
||||||
|
<a href="#" id="delete-game-link"> Delete Game </a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -5,4 +5,26 @@ CONSTANTS = {
|
|||||||
|
|
||||||
//Time (ms) it takes to run one operation in Netscript.
|
//Time (ms) it takes to run one operation in Netscript.
|
||||||
CodeInstructionRunTime: 1500,
|
CodeInstructionRunTime: 1500,
|
||||||
|
|
||||||
|
//Text that is displayed when the 'help' command is ran in Terminal
|
||||||
|
HelpText: "analyze Get statistics and information about current machine\n" +
|
||||||
|
"clear Clear all text on the terminal\n" +
|
||||||
|
"cls See 'clear' command\n" +
|
||||||
|
"connect [ip/hostname] Connects to the machine given by its IP or hostname\n" +
|
||||||
|
"free Check the machine's memory usage\n" +
|
||||||
|
"hack Hack the current machine\n" +
|
||||||
|
"help Display this list\n" +
|
||||||
|
"hostname Displays the hostname of the machine\n" +
|
||||||
|
"ifconfig Displays the IP address of the machine\n" +
|
||||||
|
"kill [script name] Stops a script that is running\n" +
|
||||||
|
"ls Displays all programs and scripts on the machine\n" +
|
||||||
|
"nano [script name] Text editor - Open up and edit a script\n" +
|
||||||
|
"netstat Displays all available network connections\n" +
|
||||||
|
"ps Display all scripts that are currently running\n" +
|
||||||
|
"rm Delete a script/program from the machine. (WARNING: Permanent)\n" +
|
||||||
|
"run [script/program] Execute a program or a script\n" +
|
||||||
|
"scan See 'netstat' command\n" +
|
||||||
|
"telnet [ip/hostname] See 'connect' command\n" +
|
||||||
|
"top Display all running scripts and their RAM usage\n"
|
||||||
|
|
||||||
}
|
}
|
192
src/Player.js
192
src/Player.js
@ -1,95 +1,99 @@
|
|||||||
//Netburner Player class
|
//Netburner Player class
|
||||||
|
function PlayerObject() {
|
||||||
var Player = {
|
|
||||||
//Skills and stats
|
//Skills and stats
|
||||||
hacking_skill: 1,
|
this.hacking_skill = 1;
|
||||||
|
|
||||||
//Fighting
|
//Fighting
|
||||||
strength: 1, //Damage dealt
|
this.strength = 1; //Damage dealt
|
||||||
defense: 1, //Damage received
|
this.defense = 1; //Damage received
|
||||||
dexterity: 1, //Accuracy
|
this.dexterity = 1; //Accuracy
|
||||||
agility: 1, //Dodge %
|
this.agility = 1; //Dodge %
|
||||||
|
|
||||||
//Labor stats
|
//Labor stats
|
||||||
charisma: 1,
|
this.charisma = 1;
|
||||||
|
|
||||||
//Hacking multipliers
|
//Hacking multipliers
|
||||||
hacking_chance_multiplier: 2, //Increase through ascensions/augmentations
|
this.hacking_chance_multiplier = 2; //Increase through ascensions/augmentations
|
||||||
//hacking_speed_multiplier: 5, //Decrease through ascensions/augmentations
|
//this.hacking_speed_multiplier = 5; //Decrease through ascensions/augmentations
|
||||||
hacking_speed_multiplier: 1, //Make it faster for debugging
|
this.hacking_speed_multiplier = 1; //Make it faster for debugging
|
||||||
hacking_money_multiplier: .01, //Increase through ascensions/augmentations. Can't go above 1
|
this.hacking_money_multiplier = .01; //Increase through ascensions/augmentations. Can't go above 1
|
||||||
|
|
||||||
//Note: "Lifetime" refers to current ascension, "total" refers to the entire game history
|
//Note: "Lifetime" refers to current ascension, "total" refers to the entire game history
|
||||||
//Accumulative stats and skills
|
//Accumulative stats and skills
|
||||||
total_hacking: 1,
|
this.total_hacking = 1;
|
||||||
total_strength: 1,
|
this.total_strength = 1;
|
||||||
total_defense: 1,
|
this.total_defense = 1;
|
||||||
total_dexterity: 1,
|
this.total_dexterity = 1;
|
||||||
total_agility: 1,
|
this.total_agility = 1;
|
||||||
total_charisma: 1,
|
this.total_charisma = 1;
|
||||||
lifetime_hacking: 1,
|
this.lifetime_hacking = 1;
|
||||||
lifetime_strength: 1,
|
this.lifetime_strength = 1;
|
||||||
lifetime_defense: 1,
|
this.lifetime_defense = 1;
|
||||||
lifetime_dexterity: 1,
|
this.lifetime_dexterity = 1;
|
||||||
lifetime_agility: 1,
|
this.lifetime_agility = 1;
|
||||||
lifetime_charisma: 1,
|
this.lifetime_charisma = 1;
|
||||||
|
|
||||||
//Experience and multipliers
|
//Experience and multipliers
|
||||||
hacking_exp: 0,
|
this.hacking_exp = 0;
|
||||||
strength_exp: 0,
|
this.strength_exp = 0;
|
||||||
defense_exp: 0,
|
this.defense_exp = 0;
|
||||||
dexterity_exp: 0,
|
this.dexterity_exp = 0;
|
||||||
agility_exp: 0,
|
this.agility_exp = 0;
|
||||||
charisma_exp: 0,
|
this.charisma_exp = 0;
|
||||||
|
|
||||||
hacking_exp_mult: 1,
|
this.hacking_exp_mult = 1;
|
||||||
strength_exp_mult: 1,
|
this.strength_exp_mult = 1;
|
||||||
defense_exp_mult: 1,
|
this.defense_exp_mult = 1;
|
||||||
dexterity_exp_mult: 1,
|
this.dexterity_exp_mult = 1;
|
||||||
agility_exp_mult: 1,
|
this.agility_exp_mult = 1;
|
||||||
charisma_exp_mult: 1,
|
this.charisma_exp_mult = 1;
|
||||||
|
|
||||||
company_rep_mult: 1, //Multiplier for how fast the player gains reputation at a company
|
this.company_rep_mult = 1; //Multiplier for how fast the player gains reputation at a company
|
||||||
|
|
||||||
//Money
|
//Money
|
||||||
money: 0,
|
this.money = 0;
|
||||||
total_money: 0,
|
this.total_money = 0;
|
||||||
lifetime_money: 0,
|
this.lifetime_money = 0;
|
||||||
|
|
||||||
//Starting (home) computer
|
//Starting (home) computer
|
||||||
homeComputer: new Server(),
|
this.homeComputer = null;
|
||||||
|
|
||||||
//Servers
|
//Servers
|
||||||
currentServer: null, //Server currently being accessed through terminal
|
this.currentServer = null; //Server currently being accessed through terminal
|
||||||
discoveredServers: [],
|
this.discoveredServers = []; //Secret servers not in the network that you have discovered
|
||||||
purchasedServers: [],
|
this.purchasedServers = [];
|
||||||
|
|
||||||
//Achievements and achievement progress
|
//Achievements and achievement progress
|
||||||
|
|
||||||
|
|
||||||
//Flag to let the engine know the player is starting a hack
|
//Flag to let the engine know the player is starting a hack
|
||||||
startAction: false,
|
this.startAction = false;
|
||||||
actionTime: 0,
|
this.actionTime = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
PlayerObject.prototype.init = function() {
|
||||||
|
/* Initialize Player's home computer */
|
||||||
|
var t_homeComp = new Server();
|
||||||
|
t_homeComp.init(createRandomIp(), "home", "Home PC", true, true, true, true, 1);
|
||||||
|
this.homeComputer = t_homeComp.ip;
|
||||||
|
this.currentServer = t_homeComp.ip;
|
||||||
|
AddToAllServers(t_homeComp);
|
||||||
|
|
||||||
init: function() {
|
this.getHomeComputer().programs.push("PortHack.exe");
|
||||||
/* Initialize properties of Player's home computer */
|
}
|
||||||
Player.homeComputer.init("19.42.93.219", "home", "Home PC", true, true, true, true, 1);
|
|
||||||
Player.currentServer = Player.homeComputer;
|
PlayerObject.prototype.getCurrentServer = function() {
|
||||||
|
return AllServers[this.currentServer];
|
||||||
Player.homeComputer.programs.push("PortHack.exe");
|
}
|
||||||
|
|
||||||
var NetworkGroup1 = [ForeignServers.IronGym, ForeignServers.FoodNStuff, ForeignServers.SigmaCosmetics, ForeignServers.JoesGuns, ForeignServers.HongFangTeaHouse, ForeignServers.HaraKiriSushiBar];
|
PlayerObject.prototype.getHomeComputer = function() {
|
||||||
for (var i = 0; i < NetworkGroup1.length; i++) {
|
return AllServers[this.homeComputer];
|
||||||
Player.homeComputer.serversOnNetwork.push(NetworkGroup1[i]);
|
|
||||||
NetworkGroup1[i].serversOnNetwork.push(Player.homeComputer);
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
|
|
||||||
//Calculates skill level based on experience. The same formula will be used for every skill
|
//Calculates skill level based on experience. The same formula will be used for every skill
|
||||||
// At the maximum possible exp (MAX_INT = 9007199254740991), the hacking skill will be 1796
|
// At the maximum possible exp (MAX_INT = 9007199254740991), the hacking skill will be 1796
|
||||||
// Gets to level 1000 hacking skill at ~1,100,000,000 exp
|
// Gets to level 1000 hacking skill at ~1,100,000,000 exp
|
||||||
calculateSkill: function(exp) {
|
PlayerObject.prototype.calculateSkill = function(exp) {
|
||||||
return Math.max(Math.floor(50 * log(9007199254740991+ 2.270) - 40), 1);
|
return Math.max(Math.floor(50 * log(9007199254740991+ 2.270) - 40), 1);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -98,10 +102,10 @@ var Player = {
|
|||||||
// (hacking_chance_multiplier * hacking_skill - requiredLevel) 100 - difficulty
|
// (hacking_chance_multiplier * hacking_skill - requiredLevel) 100 - difficulty
|
||||||
// ----------------------------------------------------------- * -----------------
|
// ----------------------------------------------------------- * -----------------
|
||||||
// (hacking_chance_multiplier * hacking_skill) 100
|
// (hacking_chance_multiplier * hacking_skill) 100
|
||||||
calculateHackingChance: function() {
|
PlayerObject.prototype.calculateHackingChance = function() {
|
||||||
var difficultyMult = (100 - Player.currentServer.hackDifficulty) / 100;
|
var difficultyMult = (100 - this.getCurrentServer().hackDifficulty) / 100;
|
||||||
var skillMult = (Player.hacking_chance_multiplier * Player.hacking_skill);
|
var skillMult = (this.hacking_chance_multiplier * this.hacking_skill);
|
||||||
var skillChance = (skillMult - Player.currentServer.requiredHackingSkill) / skillMult;
|
var skillChance = (skillMult - this.getCurrentServer().requiredHackingSkill) / skillMult;
|
||||||
return (skillChance * difficultyMult);
|
return (skillChance * difficultyMult);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -110,47 +114,61 @@ var Player = {
|
|||||||
// (requiredLevel * difficulty)
|
// (requiredLevel * difficulty)
|
||||||
// ------------------------------- * hacking_speed_multiplier
|
// ------------------------------- * hacking_speed_multiplier
|
||||||
// hacking_skill
|
// hacking_skill
|
||||||
calculateHackingTime: function() {
|
PlayerObject.prototype.calculateHackingTime = function() {
|
||||||
var difficultyMult = Player.currentServer.requiredHackingSkill * Player.currentServer.hackDifficulty;
|
var difficultyMult = this.getCurrentServer().requiredHackingSkill * this.getCurrentServer().hackDifficulty;
|
||||||
var skillFactor = difficultyMult / Player.hacking_skill;
|
var skillFactor = difficultyMult / this.hacking_skill;
|
||||||
return skillFactor * Player.hacking_speed_multiplier;
|
return skillFactor * this.hacking_speed_multiplier;
|
||||||
},
|
}
|
||||||
|
|
||||||
//Calculates the PERCENTAGE of a server's money that the player will hack from the server if successful
|
//Calculates the PERCENTAGE of a server's money that the player will hack from the server if successful
|
||||||
//The formula is:
|
//The formula is:
|
||||||
// (hacking_skill - (requiredLevel-1)) 100 - difficulty
|
// (hacking_skill - (requiredLevel-1)) 100 - difficulty
|
||||||
// --------------------------------------* ----------------------- * hacking_money_multiplier
|
// --------------------------------------* ----------------------- * hacking_money_multiplier
|
||||||
// hacking_skill 100
|
// hacking_skill 100
|
||||||
calculatePercentMoneyHacked: function() {
|
PlayerObject.prototype.calculatePercentMoneyHacked = function() {
|
||||||
var difficultyMult = (100 - Player.currentServer.hackDifficulty) / 100;
|
var difficultyMult = (100 - this.getCurrentServer().hackDifficulty) / 100;
|
||||||
var skillMult = (Player.hacking_skill - (Player.currentServer.requiredHackingSkill - 1)) / Player.hacking_skill;
|
var skillMult = (this.hacking_skill - (this.getCurrentServer().requiredHackingSkill - 1)) / this.hacking_skill;
|
||||||
var percentMoneyHacked = difficultyMult * skillMult * Player.hacking_money_multiplier;
|
var percentMoneyHacked = difficultyMult * skillMult * this.hacking_money_multiplier;
|
||||||
console.log("Percent money hacked calculated to be: " + percentMoneyHacked);
|
console.log("Percent money hacked calculated to be: " + percentMoneyHacked);
|
||||||
return percentMoneyHacked;
|
return percentMoneyHacked;
|
||||||
},
|
}
|
||||||
|
|
||||||
//Returns how much EXP the player gains on a successful hack
|
//Returns how much EXP the player gains on a successful hack
|
||||||
//The formula is:
|
//The formula is:
|
||||||
// difficulty * requiredLevel * hacking_multiplier
|
// difficulty * requiredLevel * hacking_multiplier
|
||||||
//
|
//
|
||||||
// Note: Keep it at an integer for now,
|
// Note: Keep it at an integer for now,
|
||||||
calculateExpGain: function() {
|
PlayerObject.prototype.calculateExpGain = function() {
|
||||||
return Math.round(Player.currentServer.hackDifficulty * Player.currentServer.requiredHackingSkill * Player.hacking_exp_mult);
|
return Math.round(this.getCurrentServer().hackDifficulty * this.getCurrentServer().requiredHackingSkill * this.hacking_exp_mult);
|
||||||
},
|
}
|
||||||
|
|
||||||
//Hack/Analyze a server. Return the amount of time the hack will take. This lets the Terminal object know how long to disable itself for
|
//Hack/Analyze a server. Return the amount of time the hack will take. This lets the Terminal object know how long to disable itself for
|
||||||
//This assumes that the server being hacked is not purchased by the player, that the player's hacking skill is greater than the
|
//This assumes that the server being hacked is not purchased by the player, that the player's hacking skill is greater than the
|
||||||
//required hacking skill and that the player has admin rights.
|
//required hacking skill and that the player has admin rights.
|
||||||
hack: function() {
|
PlayerObject.prototype.hack = function() {
|
||||||
Player.actionTime = Player.calculateHackingTime();
|
this.actionTime = this.calculateHackingTime();
|
||||||
console.log("Hacking time: " + Player.actionTime);
|
console.log("Hacking time: " + this.actionTime);
|
||||||
//Set the startHack flag so the engine starts the hacking process
|
//Set the startHack flag so the engine starts the hacking process
|
||||||
Player.startAction = true;
|
this.startAction = true;
|
||||||
},
|
|
||||||
|
|
||||||
analyze: function() {
|
|
||||||
//TODO Analyze only takes 5 seconds for now..maybe change this in the future?
|
|
||||||
Player.actionTime = 5;
|
|
||||||
Player.startAction = true;
|
|
||||||
}
|
}
|
||||||
};
|
PlayerObject.prototype.analyze = function() {
|
||||||
|
//TODO Analyze only takes 5 seconds for now..maybe change this in the future?
|
||||||
|
this.actionTime = 5;
|
||||||
|
this.startAction = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Functions for saving and loading the Player data
|
||||||
|
PlayerObject.prototype.toJSON = function() {
|
||||||
|
return Generic_toJSON("PlayerObject", this);
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerObject.fromJSON = function(value) {
|
||||||
|
return Generic_fromJSON(PlayerObject, value.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
Reviver.constructors.PlayerObject = PlayerObject;
|
||||||
|
|
||||||
|
Player = new PlayerObject();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,17 +16,17 @@ $(document).keydown(function(e) {
|
|||||||
filename += ".script";
|
filename += ".script";
|
||||||
|
|
||||||
//If the current script matches one thats currently running, throw an error
|
//If the current script matches one thats currently running, throw an error
|
||||||
for (var i = 0; i < Player.currentServer.runningScripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().runningScripts.length; i++) {
|
||||||
if (filename == Player.currentServer.runningScripts[i].filename) {
|
if (filename == Player.getCurrentServer().runningScripts[i].filename) {
|
||||||
postScriptEditorStatus("Cannot write to script that is currently running!");
|
postScriptEditorStatus("Cannot write to script that is currently running!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//If the current script already exists on the server, overwrite it
|
//If the current script already exists on the server, overwrite it
|
||||||
for (var i = 0; i < Player.currentServer.scripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().scripts.length; i++) {
|
||||||
if (filename == Player.currentServer.scripts[i].filename) {
|
if (filename == Player.getCurrentServer().scripts[i].filename) {
|
||||||
Player.currentServer.scripts[i].saveScript();
|
Player.getCurrentServer().scripts[i].saveScript();
|
||||||
Engine.loadTerminalContent();
|
Engine.loadTerminalContent();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -35,7 +35,7 @@ $(document).keydown(function(e) {
|
|||||||
//If the current script does NOT exist, create a new one
|
//If the current script does NOT exist, create a new one
|
||||||
var script = new Script();
|
var script = new Script();
|
||||||
script.saveScript();
|
script.saveScript();
|
||||||
Player.currentServer.scripts.push(script);
|
Player.getCurrentServer().scripts.push(script);
|
||||||
Engine.loadTerminalContent();
|
Engine.loadTerminalContent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -63,15 +63,10 @@ function postScriptEditorStatus(text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Script() {
|
function Script() {
|
||||||
//Function queue that holds the next functions to be
|
|
||||||
//executed in this script. A function from this queue
|
|
||||||
//is executed every second (this may change)
|
|
||||||
this.functionQueue = [];
|
|
||||||
|
|
||||||
this.filename = "";
|
this.filename = "";
|
||||||
this.code = "";
|
this.code = "";
|
||||||
this.ramUsage = 0;
|
this.ramUsage = 0;
|
||||||
this.server = null; //Which server this script is on
|
this.server = null; //IP of server this script is on
|
||||||
|
|
||||||
/* Properties to calculate offline progress. Only applies for infinitely looping scripts */
|
/* Properties to calculate offline progress. Only applies for infinitely looping scripts */
|
||||||
|
|
||||||
@ -111,29 +106,3 @@ Script.prototype.saveScript = function() {
|
|||||||
//TODO Calculate/update number of instructions, ram usage, execution time, etc.
|
//TODO Calculate/update number of instructions, ram usage, execution time, etc.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Script.prototype.queueEvaluate = function(exp, env) {
|
|
||||||
var fooObj = functionObject(evaluate, this, [exp, env]);
|
|
||||||
this.functionQueue.push(fooObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Wrapper object that wraps a function with its arguments.
|
|
||||||
* These objects are pushed onto a Script object's function queue.
|
|
||||||
* The functions can be called with the standard () operator
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* //Define the function
|
|
||||||
* var fooFunc = function(a1, a2, a3) {
|
|
||||||
* return a1 + a2 + a3;
|
|
||||||
* }
|
|
||||||
* //Wrap the function in the wrapper object
|
|
||||||
* var fooObj = functionObject(fooFunc, this, [2, 3, 4]);
|
|
||||||
* //Call the function
|
|
||||||
* fooObj();
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function functionObject(fn, context, params) {
|
|
||||||
return function() {
|
|
||||||
fn.apply(context, params);
|
|
||||||
}
|
|
||||||
}
|
|
738
src/Server.js
738
src/Server.js
@ -39,7 +39,8 @@ function Server() {
|
|||||||
this.serverGrowth = 1; //Affects how the moneyAvailable increases (1-100)
|
this.serverGrowth = 1; //Affects how the moneyAvailable increases (1-100)
|
||||||
this.timesHacked = 0;
|
this.timesHacked = 0;
|
||||||
|
|
||||||
//All servers reachable from this one (what shows up if you run scan/netstat)
|
//The IP's of all servers reachable from this one (what shows up if you run scan/netstat)
|
||||||
|
// NOTE: Only contains IP and not the Server objects themselves
|
||||||
this.serversOnNetwork = [];
|
this.serversOnNetwork = [];
|
||||||
|
|
||||||
//Port information, required for porthacking servers to get admin rights
|
//Port information, required for porthacking servers to get admin rights
|
||||||
@ -78,469 +79,544 @@ Server.prototype.setPortProperties = function(numOpenPortsReq) {
|
|||||||
this.numOpenPortsRequired = numOpenPortsReq;
|
this.numOpenPortsRequired = numOpenPortsReq;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Generate a random IP address. Used for the foreign servers
|
//The serverOnNetwork array holds the IP of all the servers. This function
|
||||||
createRandomIp = function() {
|
//returns the actual Server objects
|
||||||
var ip = createRandomByte() +'.' +
|
Server.prototype.getServerOnNetwork = function(i) {
|
||||||
createRandomByte() +'.' +
|
if (i > this.serversOnNetwork.length) {
|
||||||
createRandomByte() +'.' +
|
console.log("Tried to get server on network that was out of range");
|
||||||
createRandomByte();
|
return;
|
||||||
return ip;
|
}
|
||||||
|
return AllServers[this.serversOnNetwork[i]];
|
||||||
}
|
}
|
||||||
|
|
||||||
createRandomByte = function() {
|
//Functions for loading and saving a Server
|
||||||
return Math.round(Math.random()*256);
|
Server.prototype.toJSON = function() {
|
||||||
|
return Generic_toJSON("Server", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create all "foreign" servers that exist in the game. This does not include
|
Server.fromJSON = function(value) {
|
||||||
//servers that the player can purchase or the player's starting computer
|
return Generic_fromJSON(Server, value.data);
|
||||||
ForeignServers = {
|
}
|
||||||
//TODO add "secret" servers for factions and anything else? These are servers
|
|
||||||
//that do not get connected to anything in the createNetwork() function
|
Reviver.constructors.Server = Server;
|
||||||
//Secret Servers
|
|
||||||
|
|
||||||
|
|
||||||
world_daemon: new Server(), //Final server for 2nd tier prestige. Discover that the world is a simulation
|
world_daemon: new Server(), //Final server for 2nd tier prestige. Discover that the world is a simulation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Megacorporations (each one forms its own faction?)
|
|
||||||
ECorp: new Server(), //Group15
|
|
||||||
MegaCorp: new Server(), //Group15
|
|
||||||
BachmanAndAssociates: new Server(), //Group14
|
|
||||||
BladeIndustries: new Server(), //Group14
|
|
||||||
NWO: new Server(), //Group14
|
|
||||||
ClarkeIncorporated: new Server(), //Group14
|
|
||||||
OmniTekIncorporated: new Server(), //Group13
|
|
||||||
FourSigma: new Server(), //Group13
|
|
||||||
KuaiGongInternational: new Server(), //Group13
|
|
||||||
|
|
||||||
//Technology and communication companies ("Large" targets)
|
|
||||||
FulcrumTechnologies: new Server(), //Group12
|
|
||||||
FulcrumSecretTechnologies: new Server(), //Group15
|
|
||||||
StormTechnologies: new Server(), //Group12
|
|
||||||
DefComm: new Server(), //Group9
|
|
||||||
InfoComm: new Server(), //Group10
|
|
||||||
HeliosLabs: new Server(), //Group12
|
|
||||||
VitaLife: new Server(), //Group12
|
|
||||||
IcarusMicrosystems: new Server(), //Group9
|
|
||||||
UniversalEnergy: new Server(), //Group9
|
|
||||||
TitanLabs: new Server(), //Group11
|
|
||||||
MicrodyneTechnologies: new Server(), //Group11
|
|
||||||
TaiYangDigital: new Server(), //Group10
|
|
||||||
GalacticCybersystems: new Server(), //Group7
|
|
||||||
|
|
||||||
//Defense Companies ("Large" Companies)
|
|
||||||
AeroCorp: new Server(), //Group7
|
|
||||||
OmniaCybersystems: new Server(), //Group8
|
|
||||||
ZBDefense: new Server(), //Group10
|
|
||||||
AppliedEnergetics: new Server(), //Group11
|
|
||||||
SolarisSpaceSystems: new Server(), //Group9
|
|
||||||
DeltaOne: new Server(), //Group8
|
|
||||||
|
|
||||||
//Health, medicine, pharmaceutical companies ("Large" targets)
|
|
||||||
GlobalPharmaceuticals: new Server(), //Group7
|
|
||||||
NovaMedical: new Server(), //Group10
|
|
||||||
ZeusMedical: new Server(), //Group9
|
|
||||||
UnitaLifeGroup: new Server(), //Group8
|
|
||||||
|
|
||||||
//"Medium level" targets
|
|
||||||
LexoCorp: new Server(), //Group6
|
|
||||||
RhoConstruction: new Server(), //Group6
|
|
||||||
AlphaEnterprises: new Server(), //Group6
|
|
||||||
AevumPolice: new Server(), //Group6
|
|
||||||
RothmanUniversity: new Server(), //Group5
|
|
||||||
ZBInstituteOfTechnology: new Server(), //Group5
|
|
||||||
SummitUniversity: new Server(), //Group5
|
|
||||||
SysCoreSecurities: new Server(), //Group5
|
|
||||||
CatalystVentures: new Server(), //Group5
|
|
||||||
TheHub: new Server(), //Group4
|
|
||||||
CompuTek: new Server(), //Group4
|
|
||||||
NetLinkTechnologies: new Server(), //Group4
|
|
||||||
JohnsonOrthopedics: new Server(), //Group4
|
|
||||||
|
|
||||||
//"Low level" targets
|
|
||||||
FoodNStuff: new Server(), //Group1
|
|
||||||
SigmaCosmetics: new Server(), //Group1
|
|
||||||
JoesGuns: new Server(), //Group1
|
|
||||||
Zer0Nightclub: new Server(), //Group2
|
|
||||||
NectarNightclub: new Server(), //Group2
|
|
||||||
NeoNightclub: new Server(), //Group3
|
|
||||||
SilverHelix: new Server(), //Group3
|
|
||||||
HongFangTeaHouse: new Server(), //Group1
|
|
||||||
HaraKiriSushiBar: new Server(), //Group1
|
|
||||||
Phantasy: new Server(), //Group3
|
|
||||||
MaxHardware: new Server(), //Group2
|
|
||||||
OmegaSoftware: new Server(), //Group3
|
|
||||||
|
|
||||||
//Gyms
|
|
||||||
CrushFitnessGym: new Server(), //Group4
|
|
||||||
IronGym: new Server(), //Group1
|
|
||||||
MilleniumFitnessGym: new Server(), //Group6
|
|
||||||
PowerhouseGym: new Server(), //Group14
|
|
||||||
SnapFitnessGym: new Server(), //Group7
|
|
||||||
|
|
||||||
/* Initialization */
|
/* Initialization */
|
||||||
init: function() {
|
initForeignServers = function() {
|
||||||
//MegaCorporations
|
//MegaCorporations
|
||||||
ForeignServers.ECorp.init(createRandomIp(), "ecorp", "ECorp", true, false, false, false, 512);
|
var ECorpServer = new Server();
|
||||||
ForeignServers.ECorp.setHackingParameters(900, 100000000000, 99, 99);
|
ECorpServer.init(createRandomIp(), "ecorp", "ECorp", true, false, false, false, 512);
|
||||||
ForeignServers.ECorp.setPortProperties(5);
|
ECorpServer.setHackingParameters(900, 100000000000, 99, 99);
|
||||||
|
ECorpServer.setPortProperties(5);
|
||||||
|
AddToAllServers(ECorpServer);
|
||||||
|
|
||||||
ForeignServers.MegaCorp.init(createRandomIp(), "megacorp", "MegaCorp", true, false, false, false, 512);
|
var MegaCorpServer = new Server();
|
||||||
ForeignServers.MegaCorp.setHackingParameters(900, 80000000000, 99, 99);
|
MegaCorpServer.init(createRandomIp(), "megacorp", "MegaCorp", true, false, false, false, 512);
|
||||||
ForeignServers.MegaCorp.setPortProperties(5);
|
MegaCorpServer.setHackingParameters(900, 80000000000, 99, 99);
|
||||||
|
MegaCorpServer.setPortProperties(5);
|
||||||
|
AddToAllServers(MegaCorpServer);
|
||||||
|
|
||||||
ForeignServers.BachmanAndAssociates.init(createRandomIp(), "b-and-a", "Bachman & Associates", true, false, false, false, 480);
|
var BachmanAndAssociatesServer = new Server();
|
||||||
ForeignServers.BachmanAndAssociates.setHackingParameters(900, 32000000000, 80, 70);
|
BachmanAndAssociatesServer.init(createRandomIp(), "b-and-a", "Bachman & Associates", true, false, false, false, 480);
|
||||||
ForeignServers.BachmanAndAssociates.setPortProperties(5);
|
BachmanAndAssociatesServer.setHackingParameters(900, 32000000000, 80, 70);
|
||||||
|
BachmanAndAssociatesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(BachmanAndAssociatesServer);
|
||||||
|
|
||||||
ForeignServers.BladeIndustries.init(createRandomIp(), "blade", "Blade Industries", true, false, false, false, 480);
|
var BladeIndustriesServer = new Server();
|
||||||
ForeignServers.BladeIndustries.setHackingParameters(900, 20000000000, 90, 65);
|
BladeIndustriesServer.init(createRandomIp(), "blade", "Blade Industries", true, false, false, false, 480);
|
||||||
ForeignServers.BladeIndustries.setPortProperties(5);
|
BladeIndustriesServer.setHackingParameters(900, 20000000000, 90, 65);
|
||||||
|
BladeIndustriesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(BladeIndustriesServer);
|
||||||
|
|
||||||
ForeignServers.NWO.init(createRandomIp(), "nwo", "New World Order", true, false, false, false, 512);
|
var NWOServer = new Server();
|
||||||
ForeignServers.NWO.setHackingParameters(900, 40000000000, 99, 80);
|
NWOServer.init(createRandomIp(), "nwo", "New World Order", true, false, false, false, 512);
|
||||||
ForeignServers.NWO.setPortProperties(5);
|
NWOServer.setHackingParameters(900, 40000000000, 99, 80);
|
||||||
|
NWOServer.setPortProperties(5);
|
||||||
|
AddToAllServers(NWOServer);
|
||||||
|
|
||||||
ForeignServers.ClarkeIncorporated.init(createRandomIp(), "clarkeinc", "Clarke Incorporated", true, false, false, false, 448);
|
var ClarkeIncorporatedServer = new Server();
|
||||||
ForeignServers.ClarkeIncorporated.setHackingParameters(900, 15000000000, 50, 60);
|
ClarkeIncorporatedServer.init(createRandomIp(), "clarkeinc", "Clarke Incorporated", true, false, false, false, 448);
|
||||||
ForeignServers.ClarkeIncorporated.setPortProperties(5);
|
ClarkeIncorporatedServer.setHackingParameters(900, 15000000000, 50, 60);
|
||||||
|
ClarkeIncorporatedServer.setPortProperties(5);
|
||||||
|
AddToAllServers(ClarkeIncorporatedServer);
|
||||||
|
|
||||||
ForeignServers.OmniTekIncorporated.init(createRandomIp(), "omnitek", "OmniTek Incorporated", true, false, false, false, 1024);
|
var OmniTekIncorporatedServer = new Server();
|
||||||
ForeignServers.OmniTekIncorporated.setHackingParameters(900, 50000000000, 95, 99);
|
OmniTekIncorporatedServer.init(createRandomIp(), "omnitek", "OmniTek Incorporated", true, false, false, false, 1024);
|
||||||
ForeignServers.OmniTekIncorporated.setPortProperties(5);
|
OmniTekIncorporatedServer.setHackingParameters(900, 50000000000, 95, 99);
|
||||||
|
OmniTekIncorporatedServer.setPortProperties(5);
|
||||||
|
AddToAllServers(OmniTekIncorporatedServer);
|
||||||
|
|
||||||
ForeignServers.FourSigma.init(createRandomIp(), "4sigma", "FourSigma", true, false, false, false, 448);
|
var FourSigmaServer = new Server();
|
||||||
ForeignServers.FourSigma.setHackingParameters(900, 25000000000, 60, 80);
|
FourSigmaServer.init(createRandomIp(), "4sigma", "FourSigma", true, false, false, false, 448);
|
||||||
ForeignServers.FourSigma.setPortProperties(5);
|
FourSigmaServer.setHackingParameters(900, 25000000000, 60, 80);
|
||||||
|
FourSigmaServer.setPortProperties(5);
|
||||||
|
AddToAllServers(FourSigmaServer);
|
||||||
|
|
||||||
ForeignServers.KuaiGongInternational.init(createRandomIp(), "kuai-gong", "KuaiGong International", true, false, false, false, 512);
|
var KuaiGongInternationalServer = new Server();
|
||||||
ForeignServers.KuaiGongInternational.setHackingParameters(925, 75000000000, 99, 99);
|
KuaiGongInternationalServer.init(createRandomIp(), "kuai-gong", "KuaiGong International", true, false, false, false, 512);
|
||||||
ForeignServers.KuaiGongInternational.setPortProperties(5);
|
KuaiGongInternationalServer.setHackingParameters(925, 75000000000, 99, 99);
|
||||||
|
KuaiGongInternationalServer.setPortProperties(5);
|
||||||
|
AddToAllServers(KuaiGongInternationalServer);
|
||||||
|
|
||||||
//Technology and communications companies (large targets)
|
//Technology and communications companies (large targets)
|
||||||
ForeignServers.FulcrumTechnologies.init(createRandomIp(), "fulcrumtech", "Fulcrum Technologies", true, false, false, false, 512);
|
var FulcrumTechnologiesServer = new Server();
|
||||||
ForeignServers.FulcrumTechnologies.setHackingParameters(900, 2000000000, 90, 85);
|
FulcrumTechnologiesServer.init(createRandomIp(), "fulcrumtech", "Fulcrum Technologies", true, false, false, false, 512);
|
||||||
ForeignServers.FulcrumTechnologies.setPortProperties(5);
|
FulcrumTechnologiesServer.setHackingParameters(900, 2000000000, 90, 85);
|
||||||
|
FulcrumTechnologiesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(FulcrumTechnologiesServer);
|
||||||
|
|
||||||
ForeignServers.FulcrumSecretTechnologies.init(createRandomIp(), "fulcrumassets", "Fulcrum Technologies Assets", true, false, false, false, 1024);
|
var FulcrumSecretTechnologiesServer = new Server();
|
||||||
ForeignServers.FulcrumSecretTechnologies.setHackingParameters(999, 1000000, 99, 1);
|
FulcrumSecretTechnologiesServer.init(createRandomIp(), "fulcrumassets", "Fulcrum Technologies Assets", true, false, false, false, 1024);
|
||||||
ForeignServers.FulcrumSecretTechnologies.setPortProperties(5);
|
FulcrumSecretTechnologiesServer.setHackingParameters(999, 1000000, 99, 1);
|
||||||
|
FulcrumSecretTechnologiesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(FulcrumSecretTechnologiesServer);
|
||||||
|
|
||||||
ForeignServers.StormTechnologies.init(createRandomIp(), "stormtech", "Storm Technologies", true, false, false, false, 256);
|
var StormTechnologiesServer = new Server();
|
||||||
ForeignServers.StormTechnologies.setHackingParameters(850, 1500000000, 85, 80);
|
StormTechnologiesServer.init(createRandomIp(), "stormtech", "Storm Technologies", true, false, false, false, 256);
|
||||||
ForeignServers.StormTechnologies.setPortProperties(5);
|
StormTechnologiesServer.setHackingParameters(850, 1500000000, 85, 80);
|
||||||
|
StormTechnologiesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(StormTechnologiesServer);
|
||||||
|
|
||||||
ForeignServers.DefComm.init(createRandomIp(), "defcomm", "DefComm", true, false, false, false, 256);
|
var DefCommServer = new Server();
|
||||||
ForeignServers.DefComm.setHackingParameters(825, 900000000, 90, 60);
|
DefCommServer.init(createRandomIp(), "defcomm", "DefComm", true, false, false, false, 256);
|
||||||
ForeignServers.DefComm.setPortProperties(5);
|
DefCommServer.setHackingParameters(825, 900000000, 90, 60);
|
||||||
|
DefCommServer.setPortProperties(5);
|
||||||
|
AddToAllServers(DefCommServer);
|
||||||
|
|
||||||
ForeignServers.InfoComm.init(createRandomIp(), "infocomm", "InfoComm", true, false, false, false, 256);
|
var InfoCommServer = new Server();
|
||||||
ForeignServers.InfoComm.setHackingParameters(830, 750000000, 80, 50);
|
InfoCommServer.init(createRandomIp(), "infocomm", "InfoComm", true, false, false, false, 256);
|
||||||
ForeignServers.InfoComm.setPortProperties(5);
|
InfoCommServer.setHackingParameters(830, 750000000, 80, 50);
|
||||||
|
InfoCommServer.setPortProperties(5);
|
||||||
|
AddToAllServers(InfoCommServer);
|
||||||
|
|
||||||
ForeignServers.HeliosLabs.init(createRandomIp(), "helios", "Helios Labs", true, false, false, false, 288);
|
var HeliosLabsServer = new Server();
|
||||||
ForeignServers.HeliosLabs.setHackingParameters(800, 500000000, 90, 75);
|
HeliosLabsServer.init(createRandomIp(), "helios", "Helios Labs", true, false, false, false, 288);
|
||||||
ForeignServers.HeliosLabs.setPortProperties(5);
|
HeliosLabsServer.setHackingParameters(800, 500000000, 90, 75);
|
||||||
|
HeliosLabsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(HeliosLabsServer);
|
||||||
|
|
||||||
ForeignServers.VitaLife.init(createRandomIp(), "vitalife", "VitaLife", true, false, false, false, 224);
|
var VitaLifeServer = new Server();
|
||||||
ForeignServers.VitaLife.setHackingParameters(775, 800000000, 85, 70);
|
VitaLifeServer.init(createRandomIp(), "vitalife", "VitaLife", true, false, false, false, 224);
|
||||||
ForeignServers.VitaLife.setPortProperties(5);
|
VitaLifeServer.setHackingParameters(775, 800000000, 85, 70);
|
||||||
|
VitaLifeServer.setPortProperties(5);
|
||||||
|
AddToAllServers(VitaLifeServer);
|
||||||
|
|
||||||
ForeignServers.IcarusMicrosystems.init(createRandomIp(), "icarus", "Icarus Microsystems", true, false, false, false, 256);
|
var IcarusMicrosystemsServer = new Server();
|
||||||
ForeignServers.IcarusMicrosystems.setHackingParameters(810, 1100000000, 90, 90);
|
IcarusMicrosystemsServer.init(createRandomIp(), "icarus", "Icarus Microsystems", true, false, false, false, 256);
|
||||||
ForeignServers.IcarusMicrosystems.setPortProperties(5);
|
IcarusMicrosystemsServer.setHackingParameters(810, 1100000000, 90, 90);
|
||||||
|
IcarusMicrosystemsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(IcarusMicrosystemsServer);
|
||||||
|
|
||||||
ForeignServers.UniversalEnergy.init(createRandomIp(), "univ-energy", "Universal Energy", true, false, false, false, 256);
|
var UniversalEnergyServer = new Server();
|
||||||
ForeignServers.UniversalEnergy.setHackingParameters(790, 1500000000, 85, 85);
|
UniversalEnergyServer.init(createRandomIp(), "univ-energy", "Universal Energy", true, false, false, false, 256);
|
||||||
ForeignServers.UniversalEnergy.setPortProperties(4);
|
UniversalEnergyServer.setHackingParameters(790, 1500000000, 85, 85);
|
||||||
|
UniversalEnergyServer.setPortProperties(4);
|
||||||
|
AddToAllServers(UniversalEnergyServer);
|
||||||
|
|
||||||
ForeignServers.TitanLabs.init(createRandomIp(), "titan-labs", "Titan Laboratories", true, false, false, false, 256);
|
var TitanLabsServer = new Server();
|
||||||
ForeignServers.TitanLabs.setHackingParameters(795, 1000000000, 75, 70);
|
TitanLabsServer.init(createRandomIp(), "titan-labs", "Titan Laboratories", true, false, false, false, 256);
|
||||||
ForeignServers.TitanLabs.setPortProperties(5);
|
TitanLabsServer.setHackingParameters(795, 1000000000, 75, 70);
|
||||||
|
TitanLabsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(TitanLabsServer);
|
||||||
|
|
||||||
ForeignServers.MicrodyneTechnologies.init(createRandomIp(), "microdyne", "Microdyne Technologies", true, false, false, false, 288);
|
var MicrodyneTechnologiesServer = new Server();
|
||||||
ForeignServers.MicrodyneTechnologies.setHackingParameters(800, 900000000, 70, 80);
|
MicrodyneTechnologiesServer.init(createRandomIp(), "microdyne", "Microdyne Technologies", true, false, false, false, 288);
|
||||||
ForeignServers.MicrodyneTechnologies.setPortProperties(5);
|
MicrodyneTechnologiesServer.setHackingParameters(800, 900000000, 70, 80);
|
||||||
|
MicrodyneTechnologiesServer.setPortProperties(5);
|
||||||
|
AddToAllServers(MicrodyneTechnologiesServer);
|
||||||
|
|
||||||
ForeignServers.TaiYangDigital.init(createRandomIp(), "taiyang-digital", "Taiyang Digital", true, false, false, false, 256);
|
var TaiYangDigitalServer = new Server();
|
||||||
ForeignServers.TaiYangDigital.setHackingParameters(850, 1100000000, 75, 75);
|
TaiYangDigitalServer.init(createRandomIp(), "taiyang-digital", "Taiyang Digital", true, false, false, false, 256);
|
||||||
ForeignServers.TaiYangDigital.setPortProperties(5);
|
TaiYangDigitalServer.setHackingParameters(850, 1100000000, 75, 75);
|
||||||
|
TaiYangDigitalServer.setPortProperties(5);
|
||||||
|
AddToAllServers(TaiYangDigitalServer);
|
||||||
|
|
||||||
ForeignServers.GalacticCybersystems.init(createRandomIp(), "galactic-cyber", "Galactic Cybersystems", true, false, false, false, 288);
|
var GalacticCyberSystemsServer = new Server();
|
||||||
ForeignServers.GalacticCybersystems.setHackingParameters(825, 500000000, 60, 80);
|
GalacticCyberSystemsServer.init(createRandomIp(), "galactic-cyber", "Galactic Cybersystems", true, false, false, false, 288);
|
||||||
ForeignServers.GalacticCybersystems.setPortProperties(5);
|
GalacticCyberSystemsServer.setHackingParameters(825, 500000000, 60, 80);
|
||||||
|
GalacticCyberSystemsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(GalacticCyberSystemsServer);
|
||||||
|
|
||||||
//Defense Companies ("Large" Companies)
|
//Defense Companies ("Large" Companies)
|
||||||
ForeignServers.AeroCorp.init(createRandomIp(), "aerocorp", "AeroCorp", true, false, false, false, 320);
|
var AeroCorpServer = new Server();
|
||||||
ForeignServers.AeroCorp.setHackingParameters(850, 1500000000, 85, 60);
|
AeroCorpServer.init(createRandomIp(), "aerocorp", "AeroCorp", true, false, false, false, 320);
|
||||||
ForeignServers.AeroCorp.setPortProperties(5);
|
AeroCorpServer.setHackingParameters(850, 1500000000, 85, 60);
|
||||||
|
AeroCorpServer.setPortProperties(5);
|
||||||
|
AddToAllServers(AeroCorpServer);
|
||||||
|
|
||||||
ForeignServers.OmniaCybersystems.init(createRandomIp(), "omnia", "Omnia Cybersystems", true, false, false, false, 320);
|
var OmniaCybersystemsServer = new Server();
|
||||||
ForeignServers.OmniaCybersystems.setHackingParameters(825, 1200000000, 90, 65);
|
OmniaCybersystemsServer.init(createRandomIp(), "omnia", "Omnia Cybersystems", true, false, false, false, 320);
|
||||||
ForeignServers.OmniaCybersystems.setPortProperties(5);
|
OmniaCybersystemsServer.setHackingParameters(825, 1200000000, 90, 65);
|
||||||
|
OmniaCybersystemsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(OmniaCybersystemsServer);
|
||||||
|
|
||||||
ForeignServers.ZBDefense.init(createRandomIp(), "zb-def", "ZB Defense Industries", true, false, false, false, 288);
|
var ZBDefenseServer = new Server();
|
||||||
ForeignServers.ZBDefense.setHackingParameters(800, 1000000000, 60, 70);
|
ZBDefenseServer.init(createRandomIp(), "zb-def", "ZB Defense Industries", true, false, false, false, 288);
|
||||||
ForeignServers.ZBDefense.setPortProperties(4);
|
ZBDefenseServer.setHackingParameters(800, 1000000000, 60, 70);
|
||||||
|
ZBDefenseServer.setPortProperties(4);
|
||||||
|
AddToAllServers(ZBDefenseServer);
|
||||||
|
|
||||||
ForeignServers.AppliedEnergetics.init(createRandomIp(), "applied-energetics", "Applied Energetics", true, false, false, false, 288);
|
var AppliedEnergeticsServer = new Server();
|
||||||
ForeignServers.AppliedEnergetics.setHackingParameters(775, 1200000000, 70, 72);
|
AppliedEnergeticsServer.init(createRandomIp(), "applied-energetics", "Applied Energetics", true, false, false, false, 288);
|
||||||
ForeignServers.AppliedEnergetics.setPortProperties(4);
|
AppliedEnergeticsServer.setHackingParameters(775, 1200000000, 70, 72);
|
||||||
|
AppliedEnergeticsServer.setPortProperties(4);
|
||||||
|
AddToAllServers(AppliedEnergeticsServer);
|
||||||
|
|
||||||
ForeignServers.SolarisSpaceSystems.init(createRandomIp(), "solaris", "Solaris Space Systems", true, false, false, false, 288);
|
var SolarisSpaceSystemsServer = new Server();
|
||||||
ForeignServers.SolarisSpaceSystems.setHackingParameters(800, 900000000, 75, 75);
|
SolarisSpaceSystemsServer.init(createRandomIp(), "solaris", "Solaris Space Systems", true, false, false, false, 288);
|
||||||
ForeignServers.SolarisSpaceSystems.setPortProperties(5);
|
SolarisSpaceSystemsServer.setHackingParameters(800, 900000000, 75, 75);
|
||||||
|
SolarisSpaceSystemsServer.setPortProperties(5);
|
||||||
|
AddToAllServers(SolarisSpaceSystemsServer);
|
||||||
|
|
||||||
ForeignServers.DeltaOne.init(createRandomIp(), "deltaone", "Delta One", true, false, false, false, 288);
|
var DeltaOneServer = new Server();
|
||||||
ForeignServers.DeltaOne.setHackingParameters(810, 1500000000, 80, 60);
|
DeltaOneServer.init(createRandomIp(), "deltaone", "Delta One", true, false, false, false, 288);
|
||||||
ForeignServers.DeltaOne.setPortProperties(5);
|
DeltaOneServer.setHackingParameters(810, 1500000000, 80, 60);
|
||||||
|
DeltaOneServer.setPortProperties(5);
|
||||||
|
AddToAllServers(DeltaOneServer);
|
||||||
|
|
||||||
//Health, medicine, pharmaceutical companies ("Large" targets)
|
//Health, medicine, pharmaceutical companies ("Large" targets)
|
||||||
ForeignServers.GlobalPharmaceuticals.init(createRandomIp(), "global-pharm", "Global Pharmaceuticals", true, false, false, false, 256);
|
var GlobalPharmaceuticalsServer = new Server();
|
||||||
ForeignServers.GlobalPharmaceuticals.setHackingParameters(775, 2000000000, 80, 85);
|
GlobalPharmaceuticalsServer.init(createRandomIp(), "global-pharm", "Global Pharmaceuticals", true, false, false, false, 256);
|
||||||
ForeignServers.GlobalPharmaceuticals.setPortProperties(4);
|
GlobalPharmaceuticalsServer.setHackingParameters(775, 2000000000, 80, 85);
|
||||||
|
GlobalPharmaceuticalsServer.setPortProperties(4);
|
||||||
|
AddToAllServers(GlobalPharmaceuticalsServer);
|
||||||
|
|
||||||
ForeignServers.NovaMedical.init(createRandomIp(), "nova-med", "Nova Medical", true, false, false, false, 288);
|
var NovaMedicalServer = new Server();
|
||||||
ForeignServers.NovaMedical.setHackingParameters(800, 1500000000, 70, 75);
|
NovaMedicalServer.init(createRandomIp(), "nova-med", "Nova Medical", true, false, false, false, 288);
|
||||||
ForeignServers.NovaMedical.setPortProperties(4);
|
NovaMedicalServer.setHackingParameters(800, 1500000000, 70, 75);
|
||||||
|
NovaMedicalServer.setPortProperties(4);
|
||||||
|
AddToAllServers(NovaMedicalServer);
|
||||||
|
|
||||||
ForeignServers.ZeusMedical.init(createRandomIp(), "zeud-med", "Zeus Medical", true, false, false, false, 320);
|
var ZeusMedicalServer = new Server();
|
||||||
ForeignServers.ZeusMedical.setHackingParameters(810, 1750000000, 80, 75);
|
ZeusMedicalServer.init(createRandomIp(), "zeud-med", "Zeus Medical", true, false, false, false, 320);
|
||||||
ForeignServers.ZeusMedical.setPortProperties(5);
|
ZeusMedicalServer.setHackingParameters(810, 1750000000, 80, 75);
|
||||||
|
ZeusMedicalServer.setPortProperties(5);
|
||||||
|
AddToAllServers(ZeusMedicalServer);
|
||||||
|
|
||||||
ForeignServers.UnitaLifeGroup.init(createRandomIp(), "unitalife", "UnitaLife Group", true, false, false, false, 288);
|
var UnitaLifeGroupServer = new Server();
|
||||||
ForeignServers.UnitaLifeGroup.setHackingParameters(790, 1400000000, 75, 75);
|
UnitaLifeGroupServer.init(createRandomIp(), "unitalife", "UnitaLife Group", true, false, false, false, 288);
|
||||||
ForeignServers.UnitaLifeGroup.setPortProperties(4);
|
UnitaLifeGroupServer.setHackingParameters(790, 1400000000, 75, 75);
|
||||||
|
UnitaLifeGroupServer.setPortProperties(4);
|
||||||
|
AddToAllServers(UnitaLifeGroupServer);
|
||||||
|
|
||||||
//"Medium level" targets
|
//"Medium level" targets
|
||||||
ForeignServers.LexoCorp.init(createRandomIp(), "lexo-corp", "Lexo Corporation", true, false, false, false, 256);
|
var LexoCorpServer = new Server();
|
||||||
ForeignServers.LexoCorp.setHackingParameters(700, 1000000000, 70, 60);
|
LexoCorpServer.init(createRandomIp(), "lexo-corp", "Lexo Corporation", true, false, false, false, 256);
|
||||||
ForeignServers.LexoCorp.setPortProperties(4);
|
LexoCorpServer.setHackingParameters(700, 1000000000, 70, 60);
|
||||||
|
LexoCorpServer.setPortProperties(4);
|
||||||
|
AddToAllServers(LexoCorpServer);
|
||||||
|
|
||||||
ForeignServers.RhoConstruction.init(createRandomIp(), "rho-construction", "Rho Construction", true, false, false, false, 128);
|
var RhoConstructionServer = new Server();
|
||||||
ForeignServers.RhoConstruction.setHackingParameters(500, 750000000, 50, 50);
|
RhoConstructionServer.init(createRandomIp(), "rho-construction", "Rho Construction", true, false, false, false, 128);
|
||||||
ForeignServers.RhoConstruction.setPortProperties(3);
|
RhoConstructionServer.setHackingParameters(500, 750000000, 50, 50);
|
||||||
|
RhoConstructionServer.setPortProperties(3);
|
||||||
|
AddToAllServers(RhoConstructionServer);
|
||||||
|
|
||||||
ForeignServers.AlphaEnterprises.init(createRandomIp(), "alpha-ent", "Alpha Enterprises", true, false, false, false, 192);
|
var AlphaEnterprisesServer = new Server();
|
||||||
ForeignServers.AlphaEnterprises.setHackingParameters(550, 800000000, 60, 55);
|
AlphaEnterprisesServer.init(createRandomIp(), "alpha-ent", "Alpha Enterprises", true, false, false, false, 192);
|
||||||
ForeignServers.AlphaEnterprises.setPortProperties(4);
|
AlphaEnterprisesServer.setHackingParameters(550, 800000000, 60, 55);
|
||||||
|
AlphaEnterprisesServer.setPortProperties(4);
|
||||||
|
AddToAllServers(AlphaEnterprisesServer);
|
||||||
|
|
||||||
ForeignServers.AevumPolice.init(createRandomIp(), "aevum-police", "Aevum Police Network", true, false, false, false, 160);
|
|
||||||
ForeignServers.AevumPolice.setHackingParameters(425, 100000000, 75, 40);
|
|
||||||
ForeignServers.AevumPolice.setPortProperties(4);
|
|
||||||
|
|
||||||
ForeignServers.RothmanUniversity.init(createRandomIp(), "rothman-uni", "Rothman University Network", true, false, false, false, 160);
|
var AevumPoliceServer = new Server();
|
||||||
ForeignServers.RothmanUniversity.setHackingParameters(400, 250000000, 50, 40);
|
AevumPoliceServer.init(createRandomIp(), "aevum-police", "Aevum Police Network", true, false, false, false, 160);
|
||||||
ForeignServers.RothmanUniversity.setPortProperties(3);
|
AevumPoliceServer.setHackingParameters(425, 100000000, 75, 40);
|
||||||
|
AevumPoliceServer.setPortProperties(4);
|
||||||
|
AddToAllServers(AevumPoliceServer);
|
||||||
|
|
||||||
ForeignServers.ZBInstituteOfTechnology.init(createRandomIp(), "zb-institute", "ZB Institute of Technology Network", true, false, false, false, 256);
|
var RothmanUniversityServer = new Server();
|
||||||
ForeignServers.ZBInstituteOfTechnology.setHackingParameters(750, 1000000000, 75, 80);
|
RothmanUniversityServer.init(createRandomIp(), "rothman-uni", "Rothman University Network", true, false, false, false, 160);
|
||||||
ForeignServers.ZBInstituteOfTechnology.setPortProperties(5);
|
RothmanUniversityServer.setHackingParameters(400, 250000000, 50, 40);
|
||||||
|
RothmanUniversityServer.setPortProperties(3);
|
||||||
|
AddToAllServers(RothmanUniversityServer);
|
||||||
|
|
||||||
ForeignServers.SummitUniversity.init(createRandomIp(), "summit-uni", "Summit University Network", true, false, false, false, 128);
|
var ZBInstituteOfTechnologyServer = new Server();
|
||||||
ForeignServers.SummitUniversity.setHackingParameters(450, 200000000, 55, 50);
|
ZBInstituteOfTechnologyServer.init(createRandomIp(), "zb-institute", "ZB Institute of Technology Network", true, false, false, false, 256);
|
||||||
ForeignServers.SummitUniversity.setPortProperties(3);
|
ZBInstituteOfTechnologyServer.setHackingParameters(750, 1000000000, 75, 80);
|
||||||
|
ZBInstituteOfTechnologyServer.setPortProperties(5);
|
||||||
|
AddToAllServers(ZBInstituteOfTechnologyServer);
|
||||||
|
|
||||||
ForeignServers.SysCoreSecurities.init(createRandomIp(), "syscore", "SysCore Securities", true, false, false, false, 192);
|
var SummitUniversityServer = new Server();
|
||||||
ForeignServers.SysCoreSecurities.setHackingParameters(600, 600000000, 70, 65);
|
SummitUniversityServer.init(createRandomIp(), "summit-uni", "Summit University Network", true, false, false, false, 128);
|
||||||
ForeignServers.SysCoreSecurities.setPortProperties(4);
|
SummitUniversityServer.setHackingParameters(450, 200000000, 55, 50);
|
||||||
|
SummitUniversityServer.setPortProperties(3);
|
||||||
|
AddToAllServers(SummitUniversityServer);
|
||||||
|
|
||||||
ForeignServers.CatalystVentures.init(createRandomIp(), "catalyst", "Catalyst Ventures", true, false, false, false, 160);
|
var SysCoreSecuritiesServer = new Server();
|
||||||
ForeignServers.CatalystVentures.setHackingParameters(425, 900000000, 65, 40);
|
SysCoreSecuritiesServer.init(createRandomIp(), "syscore", "SysCore Securities", true, false, false, false, 192);
|
||||||
ForeignServers.CatalystVentures.setPortProperties(3);
|
SysCoreSecuritiesServer.setHackingParameters(600, 600000000, 70, 65);
|
||||||
|
SysCoreSecuritiesServer.setPortProperties(4);
|
||||||
|
AddToAllServers(SysCoreSecuritiesServer);
|
||||||
|
|
||||||
ForeignServers.TheHub.init(createRandomIp(), "the-hub", "The Hub", true, false, false, false, 128);
|
var CatalystVenturesServer = new Server();
|
||||||
ForeignServers.TheHub.setHackingParameters(300, 250000000, 40, 50);
|
CatalystVenturesServer.init(createRandomIp(), "catalyst", "Catalyst Ventures", true, false, false, false, 160);
|
||||||
ForeignServers.TheHub.setPortProperties(2);
|
CatalystVenturesServer.setHackingParameters(425, 900000000, 65, 40);
|
||||||
|
CatalystVenturesServer.setPortProperties(3);
|
||||||
|
AddToAllServers(CatalystVenturesServer);
|
||||||
|
|
||||||
ForeignServers.CompuTek.init(createRandomIp(), "comptek", "CompuTek", true, false, false, false, 192);
|
var TheHubServer = new Server();
|
||||||
ForeignServers.CompuTek.setHackingParameters(350, 300000000, 60, 55);
|
TheHubServer.init(createRandomIp(), "the-hub", "The Hub", true, false, false, false, 128);
|
||||||
ForeignServers.CompuTek.setPortProperties(3);
|
TheHubServer.setHackingParameters(300, 250000000, 40, 50);
|
||||||
|
TheHubServer.setPortProperties(2);
|
||||||
|
AddToAllServers(TheHubServer);
|
||||||
|
|
||||||
ForeignServers.NetLinkTechnologies.init(createRandomIp(), "netlink", "NetLink Technologies", true, false, false, false, 192);
|
var CompuTekServer = new Server();
|
||||||
ForeignServers.NetLinkTechnologies.setHackingParameters(400, 350000000, 70, 60);
|
CompuTekServer.init(createRandomIp(), "comptek", "CompuTek", true, false, false, false, 192);
|
||||||
ForeignServers.NetLinkTechnologies.setPortProperties(3);
|
CompuTekServer.setHackingParameters(350, 300000000, 60, 55);
|
||||||
|
CompuTekServer.setPortProperties(3);
|
||||||
|
AddToAllServers(CompuTekServer);
|
||||||
|
|
||||||
ForeignServers.JohnsonOrthopedics.init(createRandomIp(), "johnson-ortho", "Johnson Orthopedics", true, false, false, false, 128);
|
var NetLinkTechnologiesServer = new Server();
|
||||||
ForeignServers.JohnsonOrthopedics.setHackingParameters(275, 100000000, 50, 50);
|
NetLinkTechnologiesServer.init(createRandomIp(), "netlink", "NetLink Technologies", true, false, false, false, 192);
|
||||||
ForeignServers.JohnsonOrthopedics.setPortProperties(2);
|
NetLinkTechnologiesServer.setHackingParameters(400, 350000000, 70, 60);
|
||||||
|
NetLinkTechnologiesServer.setPortProperties(3);
|
||||||
|
AddToAllServers(NetLinkTechnologiesServer);
|
||||||
|
|
||||||
|
var JohnsonOrthopedicsServer = new Server();
|
||||||
|
JohnsonOrthopedicsServer.init(createRandomIp(), "johnson-ortho", "Johnson Orthopedics", true, false, false, false, 128);
|
||||||
|
JohnsonOrthopedicsServer.setHackingParameters(275, 100000000, 50, 50);
|
||||||
|
JohnsonOrthopedicsServer.setPortProperties(2);
|
||||||
|
AddToAllServers(JohnsonOrthopedicsServer);
|
||||||
|
|
||||||
//"Low level" targets
|
//"Low level" targets
|
||||||
ForeignServers.FoodNStuff.init(createRandomIp(), "foodnstuff", "Food N Stuff Supermarket", true, false, false, false, 8);
|
var FoodNStuffServer = new Server();
|
||||||
ForeignServers.FoodNStuff.setHackingParameters(1, 1000000, 10, 20);
|
FoodNStuffServer.init(createRandomIp(), "foodnstuff", "Food N Stuff Supermarket", true, false, false, false, 8);
|
||||||
ForeignServers.FoodNStuff.setPortProperties(0);
|
FoodNStuffServer.setHackingParameters(1, 1000000, 10, 20);
|
||||||
|
FoodNStuffServer.setPortProperties(0);
|
||||||
|
AddToAllServers(FoodNStuffServer);
|
||||||
|
|
||||||
ForeignServers.SigmaCosmetics.init(createRandomIp(), "sigma-cosmetics", "Sigma Cosmetics", true, false, false, false, 16);
|
var SigmaCosmeticsServer = new Server();
|
||||||
ForeignServers.SigmaCosmetics.setHackingParameters(5, 500000, 5, 10);
|
SigmaCosmeticsServer.init(createRandomIp(), "sigma-cosmetics", "Sigma Cosmetics", true, false, false, false, 16);
|
||||||
ForeignServers.SigmaCosmetics.setPortProperties(0);
|
SigmaCosmeticsServer.setHackingParameters(5, 500000, 5, 10);
|
||||||
|
SigmaCosmeticsServer.setPortProperties(0);
|
||||||
|
AddToAllServers(SigmaCosmeticsServer);
|
||||||
|
|
||||||
ForeignServers.JoesGuns.init(createRandomIp(), "joesguns", "Joe's Guns", true, false, false, false, 16);
|
var JoesGunsServer = new Server();
|
||||||
ForeignServers.JoesGuns.setHackingParameters(10, 200000, 20, 20);
|
JoesGunsServer.init(createRandomIp(), "joesguns", "Joe's Guns", true, false, false, false, 16);
|
||||||
ForeignServers.JoesGuns.setPortProperties(0);
|
JoesGunsServer.setHackingParameters(10, 200000, 20, 20);
|
||||||
|
JoesGunsServer.setPortProperties(0);
|
||||||
|
AddToAllServers(JoesGunsServer);
|
||||||
|
|
||||||
ForeignServers.Zer0Nightclub.init(createRandomIp(), "zer0", "ZER0 Nightclub", true, false, false, false, 32);
|
var Zer0NightclubServer = new Server();
|
||||||
ForeignServers.Zer0Nightclub.setHackingParameters(50, 750000, 25, 40);
|
Zer0NightclubServer.init(createRandomIp(), "zer0", "ZER0 Nightclub", true, false, false, false, 32);
|
||||||
ForeignServers.Zer0Nightclub.setPortProperties(1);
|
Zer0NightclubServer.setHackingParameters(50, 750000, 25, 40);
|
||||||
|
Zer0NightclubServer.setPortProperties(1);
|
||||||
|
AddToAllServers(Zer0NightclubServer);
|
||||||
|
|
||||||
ForeignServers.NectarNightclub.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 16);
|
var NectarNightclubServer = new Server();
|
||||||
ForeignServers.NectarNightclub.setHackingParameters(25, 400000, 20, 25);
|
NectarNightclubServer.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 16);
|
||||||
ForeignServers.NectarNightclub.setPortProperties(0);
|
NectarNightclubServer.setHackingParameters(25, 400000, 20, 25);
|
||||||
|
NectarNightclubServer.setPortProperties(0);
|
||||||
|
AddToAllServers(NectarNightclubServer);
|
||||||
|
|
||||||
ForeignServers.NeoNightclub.init(createRandomIp(), "neo-net", "Neo Nightclub Network", true, false, false, false, 32);
|
var NeoNightclubServer = new Server();
|
||||||
ForeignServers.NeoNightclub.setHackingParameters(75, 500000, 25, 25);
|
NeoNightclubServer.init(createRandomIp(), "neo-net", "Neo Nightclub Network", true, false, false, false, 32);
|
||||||
ForeignServers.NeoNightclub.setPortProperties(1);
|
NeoNightclubServer.setHackingParameters(75, 500000, 25, 25);
|
||||||
|
NeoNightclubServer.setPortProperties(1);
|
||||||
|
AddToAllServers(NeoNightclubServer);
|
||||||
|
|
||||||
ForeignServers.SilverHelix.init(createRandomIp(), "silver-helix", "Silver Helix", true, false, false, false, 16);
|
var SilverHelixServer = new Server();
|
||||||
ForeignServers.SilverHelix.setHackingParameters(150, 1000000, 30, 30);
|
SilverHelixServer.init(createRandomIp(), "silver-helix", "Silver Helix", true, false, false, false, 16);
|
||||||
ForeignServers.SilverHelix.setPortProperties(2);
|
SilverHelixServer.setHackingParameters(150, 1000000, 30, 30);
|
||||||
|
SilverHelixServer.setPortProperties(2);
|
||||||
|
AddToAllServers(SilverHelixServer);
|
||||||
|
|
||||||
ForeignServers.HongFangTeaHouse.init(createRandomIp(), "hong-fang-tea", "HongFang Teahouse", true, false, false, false, 16);
|
var HongFangTeaHouseServer = new Server();
|
||||||
ForeignServers.HongFangTeaHouse.setHackingParameters(60, 250000, 15, 10);
|
HongFangTeaHouseServer.init(createRandomIp(), "hong-fang-tea", "HongFang Teahouse", true, false, false, false, 16);
|
||||||
ForeignServers.HongFangTeaHouse.setPortProperties(1);
|
HongFangTeaHouseServer.setHackingParameters(60, 250000, 15, 10);
|
||||||
|
HongFangTeaHouseServer.setPortProperties(1);
|
||||||
|
AddToAllServers(HongFangTeaHouseServer);
|
||||||
|
|
||||||
ForeignServers.HaraKiriSushiBar.init(createRandomIp(), "harakiri-sushi", "HaraKiri Sushi Bar Network", true, false, false, false, 8);
|
var HaraKiriSushiBarServer = new Server();
|
||||||
ForeignServers.HaraKiriSushiBar.setHackingParameters(50, 100000, 15, 40);
|
HaraKiriSushiBarServer.setHackingParameters(50, 100000, 15, 40);
|
||||||
ForeignServers.HaraKiriSushiBar.setPortProperties(1);
|
HaraKiriSushiBarServer.init(createRandomIp(), "harakiri-sushi", "HaraKiri Sushi Bar Network", true, false, false, false, 8);
|
||||||
|
HaraKiriSushiBarServer.setPortProperties(1);
|
||||||
|
AddToAllServers(HaraKiriSushiBarServer);
|
||||||
|
|
||||||
ForeignServers.Phantasy.init(createRandomIp(), "phantasy", "Phantasy Club", true, false, false, false, 16);
|
var PhantasyServer = new Server();
|
||||||
ForeignServers.Phantasy.setHackingParameters(100, 300000, 20, 35);
|
PhantasyServer.init(createRandomIp(), "phantasy", "Phantasy Club", true, false, false, false, 16);
|
||||||
ForeignServers.Phantasy.setPortProperties(2);
|
PhantasyServer.setHackingParameters(100, 300000, 20, 35);
|
||||||
|
PhantasyServer.setPortProperties(2);
|
||||||
|
AddToAllServers(PhantasyServer);
|
||||||
|
|
||||||
ForeignServers.MaxHardware.init(createRandomIp(), "max-hardware", "Max Hardware Store", true, false, false, false, 16);
|
var MaxHardwareServer = new Server();
|
||||||
ForeignServers.MaxHardware.setHackingParameters(80, 150000, 15, 10);
|
MaxHardwareServer.init(createRandomIp(), "max-hardware", "Max Hardware Store", true, false, false, false, 16);
|
||||||
ForeignServers.MaxHardware.setPortProperties(1);
|
MaxHardwareServer.setHackingParameters(80, 150000, 15, 10);
|
||||||
|
MaxHardwareServer.setPortProperties(1);
|
||||||
|
AddToAllServers(MaxHardwareServer);
|
||||||
|
|
||||||
ForeignServers.OmegaSoftware.init(createRandomIp(), "omega-net", "Omega Software", true, false, false, false, 64);
|
var OmegaSoftwareServer = new Server();
|
||||||
ForeignServers.OmegaSoftware.setHackingParameters(200, 1000000, 30, 30);
|
OmegaSoftwareServer.init(createRandomIp(), "omega-net", "Omega Software", true, false, false, false, 64);
|
||||||
ForeignServers.OmegaSoftware.setPortProperties(2);
|
OmegaSoftwareServer.setHackingParameters(200, 1000000, 30, 30);
|
||||||
|
OmegaSoftwareServer.setPortProperties(2);
|
||||||
|
AddToAllServers(OmegaSoftwareServer);
|
||||||
|
|
||||||
//Gyms
|
//Gyms
|
||||||
ForeignServers.CrushFitnessGym.init(createRandomIp(), "crush-fitness", "Crush Fitness", true, false, false, false, 8);
|
var CrushFitnessGymServer = new Server();
|
||||||
ForeignServers.CrushFitnessGym.setHackingParameters(250, 500000, 40, 25);
|
CrushFitnessGymServer.init(createRandomIp(), "crush-fitness", "Crush Fitness", true, false, false, false, 8);
|
||||||
ForeignServers.CrushFitnessGym.setPortProperties(2);
|
CrushFitnessGymServer.setHackingParameters(250, 500000, 40, 25);
|
||||||
|
CrushFitnessGymServer.setPortProperties(2);
|
||||||
|
AddToAllServers(CrushFitnessGymServer);
|
||||||
|
|
||||||
ForeignServers.IronGym.init(createRandomIp(), "iron-gym", "Iron Gym Network", true, false, false, false, 8);
|
var IronGymServer = new Server();
|
||||||
ForeignServers.IronGym.setHackingParameters(100, 250000, 30, 15);
|
IronGymServer.init(createRandomIp(), "iron-gym", "Iron Gym Network", true, false, false, false, 8);
|
||||||
ForeignServers.IronGym.setPortProperties(1);
|
IronGymServer.setHackingParameters(100, 250000, 30, 15);
|
||||||
|
IronGymServer.setPortProperties(1);
|
||||||
|
AddToAllServers(IronGymServer);
|
||||||
|
|
||||||
ForeignServers.MilleniumFitnessGym.init(createRandomIp(), "millenium-fitness", "Millenium Fitness Network", true, false, false, false, 16);
|
var MilleniumFitnessGymServer = new Server();
|
||||||
ForeignServers.MilleniumFitnessGym.setHackingParameters(500, 600000, 50, 30);
|
MilleniumFitnessGymServer.init(createRandomIp(), "millenium-fitness", "Millenium Fitness Network", true, false, false, false, 16);
|
||||||
ForeignServers.MilleniumFitnessGym.setPortProperties(3);
|
MilleniumFitnessGymServer.setHackingParameters(500, 600000, 50, 30);
|
||||||
|
MilleniumFitnessGymServer.setPortProperties(3);
|
||||||
|
AddToAllServers(MilleniumFitnessGymServer);
|
||||||
|
|
||||||
ForeignServers.PowerhouseGym.init(createRandomIp(), "powerhouse-fitness", "Powerhouse Fitness", true, false, false, false, 16);
|
var PowerhouseGymServer = new Server();
|
||||||
ForeignServers.PowerhouseGym.setHackingParameters(1000, 2000000, 60, 50);
|
PowerhouseGymServer.init(createRandomIp(), "powerhouse-fitness", "Powerhouse Fitness", true, false, false, false, 16);
|
||||||
ForeignServers.PowerhouseGym.setPortProperties(5);
|
PowerhouseGymServer.setHackingParameters(1000, 2000000, 60, 50);
|
||||||
|
PowerhouseGymServer.setPortProperties(5);
|
||||||
|
AddToAllServers(PowerhouseGymServer);
|
||||||
|
|
||||||
ForeignServers.SnapFitnessGym.init(createRandomIp(), "snap-fitness", "Snap Fitness", true, false, false, false, 16);
|
var SnapFitnessGymServer = new Server();
|
||||||
ForeignServers.SnapFitnessGym.setHackingParameters(750, 1000000, 50, 45);
|
SnapFitnessGymServer.init(createRandomIp(), "snap-fitness", "Snap Fitness", true, false, false, false, 16);
|
||||||
ForeignServers.SnapFitnessGym.setPortProperties(4);
|
SnapFitnessGymServer.setHackingParameters(750, 1000000, 50, 45);
|
||||||
|
SnapFitnessGymServer.setPortProperties(4);
|
||||||
|
AddToAllServers(SnapFitnessGymServer);
|
||||||
|
|
||||||
ForeignServers.createNetwork();
|
/* Create a randomized network for all the foreign servers */
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Create a randomized network of all foreign servers */
|
|
||||||
createNetwork: function() {
|
|
||||||
//Groupings for creating a randomized network
|
//Groupings for creating a randomized network
|
||||||
var NetworkGroup1 = [ForeignServers.IronGym, ForeignServers.FoodNStuff, ForeignServers.SigmaCosmetics, ForeignServers.JoesGuns, ForeignServers.HongFangTeaHouse, ForeignServers.HaraKiriSushiBar];
|
var NetworkGroup1 = [IronGymServer, FoodNStuffServer, SigmaCosmeticsServer, JoesGunsServer, HongFangTeaHouseServer, HaraKiriSushiBarServer];
|
||||||
var NetworkGroup2 = [ForeignServers.MaxHardware, ForeignServers.NectarNightclub, ForeignServers.Zer0Nightclub];
|
var NetworkGroup2 = [MaxHardwareServer, NectarNightclubServer, Zer0NightclubServer];
|
||||||
var NetworkGroup3 = [ForeignServers.OmegaSoftware, ForeignServers.Phantasy, ForeignServers.SilverHelix, ForeignServers.NeoNightclub];
|
var NetworkGroup3 = [OmegaSoftwareServer, PhantasyServer, SilverHelixServer, NeoNightclubServer];
|
||||||
var NetworkGroup4 = [ForeignServers.CrushFitnessGym, ForeignServers.NetLinkTechnologies, ForeignServers.CompuTek, ForeignServers.TheHub, ForeignServers.JohnsonOrthopedics];
|
var NetworkGroup4 = [CrushFitnessGymServer, NetLinkTechnologiesServer, CompuTekServer, TheHubServer, JohnsonOrthopedicsServer];
|
||||||
var NetworkGroup5 = [ForeignServers.CatalystVentures, ForeignServers.SysCoreSecurities, ForeignServers.SummitUniversity, ForeignServers.ZBInstituteOfTechnology, ForeignServers.RothmanUniversity];
|
var NetworkGroup5 = [CatalystVenturesServer, SysCoreSecuritiesServer, SummitUniversityServer, ZBInstituteOfTechnologyServer, RothmanUniversityServer];
|
||||||
var NetworkGroup6 = [ForeignServers.LexoCorp, ForeignServers.RhoConstruction, ForeignServers.AlphaEnterprises, ForeignServers.AevumPolice, ForeignServers.MilleniumFitnessGym];
|
var NetworkGroup6 = [LexoCorpServer, RhoConstructionServer, AlphaEnterprisesServer, AevumPoliceServer, MilleniumFitnessGymServer];
|
||||||
var NetworkGroup7 = [ForeignServers.GlobalPharmaceuticals, ForeignServers.AeroCorp, ForeignServers.GalacticCybersystems, ForeignServers.SnapFitnessGym];
|
var NetworkGroup7 = [GlobalPharmaceuticalsServer, AeroCorpServer, GalacticCyberSystemsServer, SnapFitnessGymServer];
|
||||||
var NetworkGroup8 = [ForeignServers.DeltaOne, ForeignServers.UnitaLifeGroup, ForeignServers.OmniaCybersystems];
|
var NetworkGroup8 = [DeltaOneServer, UnitaLifeGroupServer, OmniaCybersystemsServer];
|
||||||
var NetworkGroup9 = [ForeignServers.ZeusMedical, ForeignServers.SolarisSpaceSystems, ForeignServers.UniversalEnergy, ForeignServers.IcarusMicrosystems, ForeignServers.DefComm];
|
var NetworkGroup9 = [ZeusMedicalServer, SolarisSpaceSystemsServer, UniversalEnergyServer, IcarusMicrosystemsServer, DefCommServer];
|
||||||
var NetworkGroup10 = [ForeignServers.NovaMedical, ForeignServers.ZBDefense, ForeignServers.TaiYangDigital, ForeignServers.InfoComm];
|
var NetworkGroup10 = [NovaMedicalServer, ZBDefenseServer, TaiYangDigitalServer, InfoCommServer];
|
||||||
var NetworkGroup11 = [ForeignServers.AppliedEnergetics, ForeignServers.MicrodyneTechnologies, ForeignServers.TitanLabs];
|
var NetworkGroup11 = [AppliedEnergeticsServer, MicrodyneTechnologiesServer, TitanLabsServer];
|
||||||
var NetworkGroup12 = [ForeignServers.VitaLife, ForeignServers.HeliosLabs, ForeignServers.StormTechnologies, ForeignServers.FulcrumTechnologies];
|
var NetworkGroup12 = [VitaLifeServer, HeliosLabsServer, StormTechnologiesServer, FulcrumTechnologiesServer];
|
||||||
var NetworkGroup13 = [ForeignServers.KuaiGongInternational, ForeignServers.FourSigma, ForeignServers.OmniTekIncorporated];
|
var NetworkGroup13 = [KuaiGongInternationalServer, FourSigmaServer, OmniTekIncorporatedServer];
|
||||||
var NetworkGroup14 = [ForeignServers.PowerhouseGym, ForeignServers.ClarkeIncorporated, ForeignServers.NWO, ForeignServers.BladeIndustries, ForeignServers.BachmanAndAssociates];
|
var NetworkGroup14 = [PowerhouseGymServer, ClarkeIncorporatedServer, NWOServer, BladeIndustriesServer, BachmanAndAssociatesServer];
|
||||||
var NetworkGroup15 = [ForeignServers.FulcrumSecretTechnologies, ForeignServers.MegaCorp, ForeignServers.ECorp];
|
var NetworkGroup15 = [FulcrumSecretTechnologiesServer, MegaCorpServer, ECorpServer];
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup2.length; i++) {
|
for (var i = 0; i < NetworkGroup2.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup1[Math.floor(Math.random() * NetworkGroup1.length)];
|
var randomServerFromPrevGroup = NetworkGroup1[Math.floor(Math.random() * NetworkGroup1.length)];
|
||||||
NetworkGroup2[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup2[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup2[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup2[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup3.length; i++) {
|
for (var i = 0; i < NetworkGroup3.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup2[Math.floor(Math.random() * NetworkGroup2.length)];
|
var randomServerFromPrevGroup = NetworkGroup2[Math.floor(Math.random() * NetworkGroup2.length)];
|
||||||
NetworkGroup3[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup3[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup3[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup3[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup4.length; i++) {
|
for (var i = 0; i < NetworkGroup4.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup3[Math.floor(Math.random() * NetworkGroup3.length)];
|
var randomServerFromPrevGroup = NetworkGroup3[Math.floor(Math.random() * NetworkGroup3.length)];
|
||||||
NetworkGroup4[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup4[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup4[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup4[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup5.length; i++) {
|
for (var i = 0; i < NetworkGroup5.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup4[Math.floor(Math.random() * NetworkGroup4.length)];
|
var randomServerFromPrevGroup = NetworkGroup4[Math.floor(Math.random() * NetworkGroup4.length)];
|
||||||
NetworkGroup5[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup5[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup5[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup5[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup6.length; i++) {
|
for (var i = 0; i < NetworkGroup6.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup5[Math.floor(Math.random() * NetworkGroup5.length)];
|
var randomServerFromPrevGroup = NetworkGroup5[Math.floor(Math.random() * NetworkGroup5.length)];
|
||||||
NetworkGroup6[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup6[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup6[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup6[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup7.length; i++) {
|
for (var i = 0; i < NetworkGroup7.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup6[Math.floor(Math.random() * NetworkGroup6.length)];
|
var randomServerFromPrevGroup = NetworkGroup6[Math.floor(Math.random() * NetworkGroup6.length)];
|
||||||
NetworkGroup7[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup7[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup7[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup7[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup8.length; i++) {
|
for (var i = 0; i < NetworkGroup8.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup7[Math.floor(Math.random() * NetworkGroup7.length)];
|
var randomServerFromPrevGroup = NetworkGroup7[Math.floor(Math.random() * NetworkGroup7.length)];
|
||||||
NetworkGroup8[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup8[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup8[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup8[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup9.length; i++) {
|
for (var i = 0; i < NetworkGroup9.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup8[Math.floor(Math.random() * NetworkGroup8.length)];
|
var randomServerFromPrevGroup = NetworkGroup8[Math.floor(Math.random() * NetworkGroup8.length)];
|
||||||
NetworkGroup9[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup9[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup9[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup9[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup10.length; i++) {
|
for (var i = 0; i < NetworkGroup10.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup9[Math.floor(Math.random() * NetworkGroup9.length)];
|
var randomServerFromPrevGroup = NetworkGroup9[Math.floor(Math.random() * NetworkGroup9.length)];
|
||||||
NetworkGroup10[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup10[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup10[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup10[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup11.length; i++) {
|
for (var i = 0; i < NetworkGroup11.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup10[Math.floor(Math.random() * NetworkGroup10.length)];
|
var randomServerFromPrevGroup = NetworkGroup10[Math.floor(Math.random() * NetworkGroup10.length)];
|
||||||
NetworkGroup11[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup11[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup11[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup11[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup12.length; i++) {
|
for (var i = 0; i < NetworkGroup12.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup11[Math.floor(Math.random() * NetworkGroup11.length)];
|
var randomServerFromPrevGroup = NetworkGroup11[Math.floor(Math.random() * NetworkGroup11.length)];
|
||||||
NetworkGroup12[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup12[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup12[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup12[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup13.length; i++) {
|
for (var i = 0; i < NetworkGroup13.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup12[Math.floor(Math.random() * NetworkGroup12.length)];
|
var randomServerFromPrevGroup = NetworkGroup12[Math.floor(Math.random() * NetworkGroup12.length)];
|
||||||
NetworkGroup13[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup13[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup13[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup13[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup14.length; i++) {
|
for (var i = 0; i < NetworkGroup14.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup13[Math.floor(Math.random() * NetworkGroup13.length)];
|
var randomServerFromPrevGroup = NetworkGroup13[Math.floor(Math.random() * NetworkGroup13.length)];
|
||||||
NetworkGroup14[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup14[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup14[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup14[i].hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < NetworkGroup15.length; i++) {
|
for (var i = 0; i < NetworkGroup15.length; i++) {
|
||||||
var randomServerFromPrevGroup = NetworkGroup14[Math.floor(Math.random() * NetworkGroup14.length)];
|
var randomServerFromPrevGroup = NetworkGroup14[Math.floor(Math.random() * NetworkGroup14.length)];
|
||||||
NetworkGroup15[i].serversOnNetwork.push(randomServerFromPrevGroup);
|
NetworkGroup15[i].serversOnNetwork.push(randomServerFromPrevGroup.hostname);
|
||||||
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup15[i]);
|
randomServerFromPrevGroup.serversOnNetwork.push(NetworkGroup15[i].hostname);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Connect the first tier of servers to the player's home computer
|
||||||
|
for (var i = 0; i < NetworkGroup1.length; i++) {
|
||||||
|
Player.getHomeComputer().serversOnNetwork.push(NetworkGroup1[i].ip);
|
||||||
|
NetworkGroup1[i].serversOnNetwork.push(Player.homeComputer);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//List of all servers that exist in the game, indexed by their ip
|
||||||
|
AllServers = {};
|
||||||
|
|
||||||
|
//Add a server onto the map of all servers in the game
|
||||||
|
AddToAllServers = function(server) {
|
||||||
|
var serverIp = server.ip;
|
||||||
|
if (ipExists(serverIp)) {
|
||||||
|
console.log("IP of server that's being added: " + serverIp);
|
||||||
|
console.log("Hostname of the server thats being added: " + server.hostname);
|
||||||
|
console.log("The server that already has this IP is: " + AllServers[serverIp].hostname);
|
||||||
|
throw new Error("Error: Trying to add a server with an existing IP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AllServers[serverIp] = server;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Debugging tool
|
||||||
|
PrintAllServers = function() {
|
||||||
|
for (var ip in AllServers) {
|
||||||
|
if (AllServers.hasOwnProperty(ip)) {
|
||||||
|
console.log("Ip: " + ip + ", hostname: " + AllServers[ip].hostname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
135
src/Terminal.js
135
src/Terminal.js
@ -1,11 +1,23 @@
|
|||||||
function TestObj() {
|
function TestObj() {
|
||||||
this.value = 1;
|
this.num = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
TestObj.prototype.setValue = function(val) {
|
TestObj.prototype.setValue = function(val) {
|
||||||
this.value = val;
|
this.num = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestObj.prototype.toJSON = function() {
|
||||||
|
console.log("toJSON() called");
|
||||||
|
return Generic_toJSON("TestObj", this);
|
||||||
|
}
|
||||||
|
|
||||||
|
TestObj.fromJSON = function(value) {
|
||||||
|
console.log("fromJSON() called");
|
||||||
|
return Generic_fromJSON(TestObj, value.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
Reviver.constructors.TestObj = TestObj;
|
||||||
|
|
||||||
var testObj = new TestObj();
|
var testObj = new TestObj();
|
||||||
|
|
||||||
//Terminal
|
//Terminal
|
||||||
@ -83,9 +95,9 @@ var Terminal = {
|
|||||||
var expGainedOnFailure = Math.round(expGainedOnSuccess / 4);
|
var expGainedOnFailure = Math.round(expGainedOnSuccess / 4);
|
||||||
if (rand < hackChance) { //Success!
|
if (rand < hackChance) { //Success!
|
||||||
var moneyGained = Player.calculatePercentMoneyHacked();
|
var moneyGained = Player.calculatePercentMoneyHacked();
|
||||||
moneyGained = Math.floor(Player.currentServer.moneyAvailable * moneyGained);
|
moneyGained = Math.floor(Player.getCurrentServer().moneyAvailable * moneyGained);
|
||||||
|
|
||||||
Player.currentServer.moneyAvailable -= moneyGained;
|
Player.getCurrentServer().moneyAvailable -= moneyGained;
|
||||||
Player.money += moneyGained;
|
Player.money += moneyGained;
|
||||||
|
|
||||||
Player.hacking_exp += expGainedOnSuccess;
|
Player.hacking_exp += expGainedOnSuccess;
|
||||||
@ -94,7 +106,7 @@ var Terminal = {
|
|||||||
} else { //Failure
|
} else { //Failure
|
||||||
//Player only gains 25% exp for failure? TODO Can change this later to balance
|
//Player only gains 25% exp for failure? TODO Can change this later to balance
|
||||||
Player.hacking_exp += expGainedOnFailure;
|
Player.hacking_exp += expGainedOnFailure;
|
||||||
post("Failed to hack " + Player.currentServer.hostname + ". Gained " + expGainedOnFailure + " hacking EXP");
|
post("Failed to hack " + Player.getCurrentServer().hostname + ". Gained " + expGainedOnFailure + " hacking EXP");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Rename the progress bar so that the next hacks dont trigger it. Re-enable terminal
|
//Rename the progress bar so that the next hacks dont trigger it. Re-enable terminal
|
||||||
@ -107,38 +119,38 @@ var Terminal = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
finishAnalyze: function() {
|
finishAnalyze: function() {
|
||||||
post(Player.currentServer.hostname + ": ");
|
post(Player.getCurrentServer().hostname + ": ");
|
||||||
post("Required hacking skill: " + Player.currentServer.requiredHackingSkill);
|
post("Required hacking skill: " + Player.getCurrentServer().requiredHackingSkill);
|
||||||
//TODO Make these actual estimates by adding a random offset to result?
|
//TODO Make these actual estimates by adding a random offset to result?
|
||||||
//TODO Change the text to sound better
|
//TODO Change the text to sound better
|
||||||
post("Estimated chance to hack: " + Math.round(Player.calculateHackingChance() * 100) + "%");
|
post("Estimated chance to hack: " + Math.round(Player.calculateHackingChance() * 100) + "%");
|
||||||
post("Estimated time to hack: " + Math.round(Player.calculateHackingTime()) + " seconds");
|
post("Estimated time to hack: " + Math.round(Player.calculateHackingTime()) + " seconds");
|
||||||
post("Required number of open ports for PortHack: " +Player.currentServer.numOpenPortsRequired);
|
post("Required number of open ports for PortHack: " +Player.getCurrentServer().numOpenPortsRequired);
|
||||||
if (Player.currentServer.sshPortOpen) {
|
if (Player.getCurrentServer().sshPortOpen) {
|
||||||
post("SSH port: Open")
|
post("SSH port: Open")
|
||||||
} else {
|
} else {
|
||||||
post("SSH port: Closed")
|
post("SSH port: Closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Player.currentServer.ftpPortOpen) {
|
if (Player.getCurrentServer().ftpPortOpen) {
|
||||||
post("FTP port: Open")
|
post("FTP port: Open")
|
||||||
} else {
|
} else {
|
||||||
post("FTP port: Closed")
|
post("FTP port: Closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Player.currentServer.smtpPortOpen) {
|
if (Player.getCurrentServer().smtpPortOpen) {
|
||||||
post("SMTP port: Open")
|
post("SMTP port: Open")
|
||||||
} else {
|
} else {
|
||||||
post("SMTP port: Closed")
|
post("SMTP port: Closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Player.currentServer.httpPortOpen) {
|
if (Player.getCurrentServer().httpPortOpen) {
|
||||||
post("HTTP port: Open")
|
post("HTTP port: Open")
|
||||||
} else {
|
} else {
|
||||||
post("HTTP port: Closed")
|
post("HTTP port: Closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Player.currentServer.sqlPortOpen) {
|
if (Player.getCurrentServer().sqlPortOpen) {
|
||||||
post("SQL port: Open")
|
post("SQL port: Open")
|
||||||
} else {
|
} else {
|
||||||
post("SQL port: Closed")
|
post("SQL port: Closed")
|
||||||
@ -196,10 +208,10 @@ var Terminal = {
|
|||||||
|
|
||||||
var ip = commandArray[1];
|
var ip = commandArray[1];
|
||||||
|
|
||||||
for (var i = 0; i < Player.currentServer.serversOnNetwork.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().serversOnNetwork.length; i++) {
|
||||||
if (Player.currentServer.serversOnNetwork[i].ip == ip || Player.currentServer.serversOnNetwork[i].hostname == ip) {
|
if (Player.getCurrentServer().getServerOnNetwork(i).ip == ip || Player.getCurrentServer().getServerOnNetwork(i).hostname == ip) {
|
||||||
Player.currentServer.isConnectedTo = false;
|
Player.getCurrentServer().isConnectedTo = false;
|
||||||
Player.currentServer = Player.currentServer.serversOnNetwork[i];
|
Player.currentServer = Player.getCurrentServer().getServerOnNetwork(i).ip;
|
||||||
post("Connected to " + ip);
|
post("Connected to " + ip);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -207,14 +219,14 @@ var Terminal = {
|
|||||||
|
|
||||||
post("Host not found");
|
post("Host not found");
|
||||||
break;
|
break;
|
||||||
case "df":
|
case "free":
|
||||||
if (commandArray.length != 1) {
|
if (commandArray.length != 1) {
|
||||||
post("Incorrect usage of df command. Usage: df"); return;
|
post("Incorrect usage of df command. Usage: df"); return;
|
||||||
}
|
}
|
||||||
console.log("df terminal command called");
|
console.log("df terminal command called");
|
||||||
post("Total: " + Player.currentServer.maxRam.toString() + " GB");
|
post("Total: " + Player.getCurrentServer().maxRam.toString() + " GB");
|
||||||
post("Used: " + Player.currentServer.ramUsed.toString() + " GB");
|
post("Used: " + Player.getCurrentServer().ramUsed.toString() + " GB");
|
||||||
post("Available: " + (Player.currentServer.maxRam - Player.currentServer.ramUsed).toString() + " GB");
|
post("Available: " + (Player.getCurrentServer().maxRam - Player.getCurrentServer().ramUsed).toString() + " GB");
|
||||||
break;
|
break;
|
||||||
case "hack":
|
case "hack":
|
||||||
if (commandArray.length != 1) {
|
if (commandArray.length != 1) {
|
||||||
@ -222,11 +234,11 @@ var Terminal = {
|
|||||||
}
|
}
|
||||||
//Hack the current PC (usually for money)
|
//Hack the current PC (usually for money)
|
||||||
//You can't hack your home pc or servers you purchased
|
//You can't hack your home pc or servers you purchased
|
||||||
if (Player.currentServer.purchasedByPlayer) {
|
if (Player.getCurrentServer().purchasedByPlayer) {
|
||||||
post("Cannot hack your own machines! You are currently connected to your home PC or one of your purchased servers");
|
post("Cannot hack your own machines! You are currently connected to your home PC or one of your purchased servers");
|
||||||
} else if (Player.currentServer.hasAdminRights == false ) {
|
} else if (Player.getCurrentServer().hasAdminRights == false ) {
|
||||||
post("You do not have admin rights for this machine! Cannot hack");
|
post("You do not have admin rights for this machine! Cannot hack");
|
||||||
} else if (Player.currentServer.requiredHackingSkill > Player.hacking_skill) {
|
} else if (Player.getCurrentServer().requiredHackingSkill > Player.hacking_skill) {
|
||||||
post("Your hacking skill is not high enough to attempt hacking this machine. Try analyzing the machine to determine the required hacking skill");
|
post("Your hacking skill is not high enough to attempt hacking this machine. Try analyzing the machine to determine the required hacking skill");
|
||||||
} else {
|
} else {
|
||||||
Terminal.hackFlag = true;
|
Terminal.hackFlag = true;
|
||||||
@ -248,14 +260,14 @@ var Terminal = {
|
|||||||
post("Incorrect usage of hostname command. Usage: hostname"); return;
|
post("Incorrect usage of hostname command. Usage: hostname"); return;
|
||||||
}
|
}
|
||||||
//Print the hostname of current system
|
//Print the hostname of current system
|
||||||
post(Player.currentServer.hostname);
|
post(Player.getCurrentServer().hostname);
|
||||||
break;
|
break;
|
||||||
case "ifconfig":
|
case "ifconfig":
|
||||||
if (commandArray.length != 1) {
|
if (commandArray.length != 1) {
|
||||||
post("Incorrect usage of ifconfig command. Usage: ifconfig"); return;
|
post("Incorrect usage of ifconfig command. Usage: ifconfig"); return;
|
||||||
}
|
}
|
||||||
//Print the IP address of the current system
|
//Print the IP address of the current system
|
||||||
post(Player.currentServer.ip);
|
post(Player.getCurrentServer().ip);
|
||||||
break;
|
break;
|
||||||
case "kill":
|
case "kill":
|
||||||
//TODO
|
//TODO
|
||||||
@ -269,11 +281,11 @@ var Terminal = {
|
|||||||
var allFiles = [];
|
var allFiles = [];
|
||||||
|
|
||||||
//Get all of the programs and scripts on the machine into one temporary array
|
//Get all of the programs and scripts on the machine into one temporary array
|
||||||
for (var i = 0; i < Player.currentServer.programs.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().programs.length; i++) {
|
||||||
allFiles.push(Player.currentServer.programs[i]);
|
allFiles.push(Player.getCurrentServer().programs[i]);
|
||||||
}
|
}
|
||||||
for (var i = 0; i < Player.currentServer.scripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().scripts.length; i++) {
|
||||||
allFiles.push(Player.currentServer.scripts[i].filename);
|
allFiles.push(Player.getCurrentServer().scripts[i].filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Sort the files alphabetically then print each
|
//Sort the files alphabetically then print each
|
||||||
@ -299,16 +311,16 @@ var Terminal = {
|
|||||||
var scriptname = filename.substr(0, filename.indexOf(".script"));
|
var scriptname = filename.substr(0, filename.indexOf(".script"));
|
||||||
|
|
||||||
//Cannot edit scripts that are currently running
|
//Cannot edit scripts that are currently running
|
||||||
for (var i = 0; i < Player.currentServer.runningScripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().runningScripts.length; i++) {
|
||||||
if (filename == Player.currentServer.runningScripts[i].filename) {
|
if (filename == Player.getCurrentServer().runningScripts[i].filename) {
|
||||||
post("Cannot open/edit scripts that are currently running!"); return;
|
post("Cannot open/edit scripts that are currently running!"); return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check if the script already exists
|
//Check if the script already exists
|
||||||
for (var i = 0; i < Player.currentServer.scripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().scripts.length; i++) {
|
||||||
if (filename == Player.currentServer.scripts[i].filename) {
|
if (filename == Player.getCurrentServer().scripts[i].filename) {
|
||||||
Engine.loadScriptEditorContent(scriptname, Player.currentServer.scripts[i].code);
|
Engine.loadScriptEditorContent(scriptname, Player.getCurrentServer().scripts[i].code);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,24 +334,24 @@ var Terminal = {
|
|||||||
//Displays available network connections using TCP
|
//Displays available network connections using TCP
|
||||||
console.log("netstat/scan terminal command called");
|
console.log("netstat/scan terminal command called");
|
||||||
post("Hostname IP Root Access");
|
post("Hostname IP Root Access");
|
||||||
for (var i = 0; i < Player.currentServer.serversOnNetwork.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().serversOnNetwork.length; i++) {
|
||||||
//Add hostname
|
//Add hostname
|
||||||
var entry = Player.currentServer.serversOnNetwork[i].hostname;
|
var entry = Player.getCurrentServer().getServerOnNetwork(i).hostname;
|
||||||
|
|
||||||
//Calculate padding and add IP
|
//Calculate padding and add IP
|
||||||
var numSpaces = 21 - entry.length;
|
var numSpaces = 21 - entry.length;
|
||||||
var spaces = Array(numSpaces+1).join(" ");
|
var spaces = Array(numSpaces+1).join(" ");
|
||||||
entry += spaces;
|
entry += spaces;
|
||||||
entry += Player.currentServer.serversOnNetwork[i].ip;
|
entry += Player.getCurrentServer().getServerOnNetwork(i).ip;
|
||||||
|
|
||||||
//Calculate padding and add root access info
|
//Calculate padding and add root access info
|
||||||
var hasRoot;
|
var hasRoot;
|
||||||
if (Player.currentServer.serversOnNetwork[i].hasAdminRights) {
|
if (Player.getCurrentServer().getServerOnNetwork(i).hasAdminRights) {
|
||||||
hasRoot = 'Y';
|
hasRoot = 'Y';
|
||||||
} else {
|
} else {
|
||||||
hasRoot = 'N';
|
hasRoot = 'N';
|
||||||
}
|
}
|
||||||
numSpaces = 21 - Player.currentServer.serversOnNetwork[i].ip.length;
|
numSpaces = 21 - Player.getCurrentServer().getServerOnNetwork(i).ip.length;
|
||||||
spaces = Array(numSpaces+1).join(" ");
|
spaces = Array(numSpaces+1).join(" ");
|
||||||
entry += spaces;
|
entry += spaces;
|
||||||
entry += hasRoot;
|
entry += hasRoot;
|
||||||
@ -373,13 +385,15 @@ var Terminal = {
|
|||||||
case "scp":
|
case "scp":
|
||||||
//TODO
|
//TODO
|
||||||
break;
|
break;
|
||||||
|
case "top":
|
||||||
|
//TODO List each's script RAM usage
|
||||||
|
break;
|
||||||
case "test":
|
case "test":
|
||||||
post(testObj.value.toString());
|
post(testObj.num.toString());
|
||||||
testObj.setValue(testObj.value + 1);
|
testObj.setValue(testObj.num + 1);
|
||||||
break;
|
break;
|
||||||
case "testSave":
|
case "testSave":
|
||||||
var testSave = JSONfn.stringify(testObj);
|
var testSave = JSON.stringify(testObj);
|
||||||
window.localStorage.setItem("netburnerTest", testSave);
|
window.localStorage.setItem("netburnerTest", testSave);
|
||||||
console.log("Netburner TestSave saved");
|
console.log("Netburner TestSave saved");
|
||||||
break;
|
break;
|
||||||
@ -387,8 +401,9 @@ var Terminal = {
|
|||||||
if (!window.localStorage.getItem("netburnerTest")) {
|
if (!window.localStorage.getItem("netburnerTest")) {
|
||||||
console.log("No TestSave file to load");
|
console.log("No TestSave file to load");
|
||||||
} else {
|
} else {
|
||||||
|
console.log("Here");
|
||||||
var testSave = window.localStorage.getItem("netburnerTest");
|
var testSave = window.localStorage.getItem("netburnerTest");
|
||||||
testObj = JSONfn.parse(testSave);
|
testObj = JSON.parse(testSave, Reviver);
|
||||||
console.log("TestSave loaded");
|
console.log("TestSave loaded");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -410,8 +425,8 @@ var Terminal = {
|
|||||||
runProgram: function(programName) {
|
runProgram: function(programName) {
|
||||||
//Check if you have the program on your computer. If you do, execute it, otherwise
|
//Check if you have the program on your computer. If you do, execute it, otherwise
|
||||||
//display an error message
|
//display an error message
|
||||||
for (var i = 0; i < Player.homeComputer.programs.length; i++) {
|
for (var i = 0; i < Player.getHomeComputer().programs.length; i++) {
|
||||||
if (Player.homeComputer.programs[i] == programName) {
|
if (Player.getHomeComputer().programs[i] == programName) {
|
||||||
Terminal.executeProgram(programName);
|
Terminal.executeProgram(programName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -423,13 +438,13 @@ var Terminal = {
|
|||||||
executeProgram: function(programName) {
|
executeProgram: function(programName) {
|
||||||
switch (programName) {
|
switch (programName) {
|
||||||
case "PortHack.exe":
|
case "PortHack.exe":
|
||||||
if (Player.currentServer.hasAdminRights) {
|
if (Player.getCurrentServer().hasAdminRights) {
|
||||||
post("You already have root access to this computer. There is no reason to run PortHack.exe");
|
post("You already have root access to this computer. There is no reason to run PortHack.exe");
|
||||||
} else {
|
} else {
|
||||||
console.log("Running PortHack executable");
|
console.log("Running PortHack executable");
|
||||||
if (Player.currentServer.openPortCount >= Player.currentServer.numOpenPortsRequired) {
|
if (Player.getCurrentServer().openPortCount >= Player.getCurrentServer().numOpenPortsRequired) {
|
||||||
Player.currentServer.hasAdminRights = true;
|
Player.getCurrentServer().hasAdminRights = true;
|
||||||
post("PortHack successful! Gained root access to " + Player.currentServer.hostname);
|
post("PortHack successful! Gained root access to " + Player.getCurrentServer().hostname);
|
||||||
//TODO Make this take time rather than be instant
|
//TODO Make this take time rather than be instant
|
||||||
} else {
|
} else {
|
||||||
post("PortHack unsuccessful. Not enough ports have been opened");
|
post("PortHack unsuccessful. Not enough ports have been opened");
|
||||||
@ -444,29 +459,29 @@ var Terminal = {
|
|||||||
|
|
||||||
runScript: function(scriptName) {
|
runScript: function(scriptName) {
|
||||||
//Check if this script is already running
|
//Check if this script is already running
|
||||||
for (var i = 0; i < Player.currentServer.runningScripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().runningScripts.length; i++) {
|
||||||
if (Player.currentServer.runningScripts[i] == scriptName) {
|
if (Player.getCurrentServer().runningScripts[i] == scriptName) {
|
||||||
post("ERROR: This script is already running. Cannot run multiple instances");
|
post("ERROR: This script is already running. Cannot run multiple instances");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check if the script exists and if it does run it
|
//Check if the script exists and if it does run it
|
||||||
for (var i = 0; i < Player.currentServer.scripts.length; i++) {
|
for (var i = 0; i < Player.getCurrentServer().scripts.length; i++) {
|
||||||
if (Player.currentServer.scripts[i].filename == scriptName) {
|
if (Player.getCurrentServer().scripts[i].filename == scriptName) {
|
||||||
if (Player.currentServer.hasAdminRights == false) {
|
if (Player.getCurrentServer().hasAdminRights == false) {
|
||||||
post("Need root access to run script");
|
post("Need root access to run script");
|
||||||
} else {
|
} else {
|
||||||
var filename = Player.currentServer.scripts[i].filename;
|
var filename = Player.getCurrentServer().scripts[i].filename;
|
||||||
|
|
||||||
//Add to current server's runningScripts
|
//Add to current server's runningScripts
|
||||||
Player.currentServer.runningScripts.push(filename)
|
Player.getCurrentServer().runningScripts.push(filename)
|
||||||
|
|
||||||
//Create WorkerScript
|
//Create WorkerScript
|
||||||
var s = new WorkerScript();
|
var s = new WorkerScript();
|
||||||
s.name = filename;
|
s.name = filename;
|
||||||
s.code = Player.currentServer.scripts[i].code;
|
s.code = Player.getCurrentServer().scripts[i].code;
|
||||||
s.hostname = Player.currentServer.hostname;
|
s.hostname = Player.getCurrentServer().hostname;
|
||||||
workerScripts.push(s);
|
workerScripts.push(s);
|
||||||
console.log("Pushed script onto workerScripts");
|
console.log("Pushed script onto workerScripts");
|
||||||
return;
|
return;
|
||||||
|
@ -12,15 +12,12 @@ var Engine = {
|
|||||||
Clickables: {
|
Clickables: {
|
||||||
hackButton: null,
|
hackButton: null,
|
||||||
|
|
||||||
//Load, save, and delete
|
|
||||||
saveButton: null,
|
|
||||||
loadButton: null,
|
|
||||||
deleteButton: null,
|
|
||||||
|
|
||||||
//Main menu buttons
|
//Main menu buttons
|
||||||
terminalMainMenuButton: null,
|
terminalMainMenuButton: null,
|
||||||
characterMainMenuButton: null,
|
characterMainMenuButton: null,
|
||||||
scriptEditorMainMenuButton: null,
|
scriptEditorMainMenuButton: null,
|
||||||
|
saveMainMenuButton: null,
|
||||||
|
deleteMainMenuButton: null,
|
||||||
},
|
},
|
||||||
|
|
||||||
//Display objects
|
//Display objects
|
||||||
@ -61,11 +58,11 @@ var Engine = {
|
|||||||
//Save function
|
//Save function
|
||||||
saveGame: function() {
|
saveGame: function() {
|
||||||
var PlayerSave = JSON.stringify(Player);
|
var PlayerSave = JSON.stringify(Player);
|
||||||
var ForeignServersSave = JSON.stringify(ForeignServers);
|
var AllServersSave = JSON.stringify(AllServers);
|
||||||
//TODO Add factions + companies here when they're done
|
//TODO Add factions + companies here when they're done
|
||||||
|
|
||||||
window.localStorage.setItem("netburnerPlayerSave", PlayerSave);
|
window.localStorage.setItem("netburnerPlayerSave", PlayerSave);
|
||||||
window.localStorage.setItem("netburnerForeignServersSave", ForeignServersSave)
|
window.localStorage.setItem("netburnerAllServersSave", AllServersSave);
|
||||||
console.log("Game saved to local storage");
|
console.log("Game saved to local storage");
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -75,14 +72,14 @@ var Engine = {
|
|||||||
if (!window.localStorage.getItem("netburnerPlayerSave")) {
|
if (!window.localStorage.getItem("netburnerPlayerSave")) {
|
||||||
console.log("No Player save to load");
|
console.log("No Player save to load");
|
||||||
return false;
|
return false;
|
||||||
} else if (!window.localStorage.getItem("netburnerForeignServersSave")) {
|
} else if (!window.localStorage.getItem("netburnerAllServersSave")) {
|
||||||
console.log("No ForeignServers save to load");
|
console.log("No AllServers save to load");
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
var PlayerSave = window.localStorage.getItem("netburnerPlayerSave");
|
var PlayerSave = window.localStorage.getItem("netburnerPlayerSave");
|
||||||
var ForeignServersSave = window.localStorage.getItem("netburnerForeignServersSave");
|
var AllServersSave = window.localStorage.getItem("netburnerAllServersSave");
|
||||||
Player = JSON.parse(PlayerSave);
|
Player = JSON.parse(PlayerSave, Reviver);
|
||||||
ForeignServers = JSON.parse(ForeignServersSave);
|
AllServers = JSON.parse(AllServersSave, Reviver);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -92,12 +89,11 @@ var Engine = {
|
|||||||
if (!window.localStorage.getItem("netburnerPlayerSave")) {
|
if (!window.localStorage.getItem("netburnerPlayerSave")) {
|
||||||
console.log("No Player Save to delete");
|
console.log("No Player Save to delete");
|
||||||
return false;
|
return false;
|
||||||
} else if (!window.localStorage.getItem("netburnerForeignServersSave")) {
|
} else if (!window.localStorage.getItem("netburnerAllServersSave")) {
|
||||||
console.log("No ForeignServers Save to delete");
|
console.log("No AllServers Save to delete");
|
||||||
return false;
|
|
||||||
} else {
|
} else {
|
||||||
window.localStorage.removeItem("netburnerPlayerSave");
|
window.localStorage.removeItem("netburnerPlayerSave");
|
||||||
window.localStorage.removeItem("netburnerForeignServersSave");
|
window.localStorage.removeItem("netburnerAllServersSave");
|
||||||
console.log("Deleted saves")
|
console.log("Deleted saves")
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -231,33 +227,12 @@ var Engine = {
|
|||||||
//No save found, start new game
|
//No save found, start new game
|
||||||
console.log("Initializing new game");
|
console.log("Initializing new game");
|
||||||
Player.init();
|
Player.init();
|
||||||
ForeignServers.init();
|
initForeignServers();
|
||||||
Companies.init();
|
Companies.init();
|
||||||
CompanyPositions.init();
|
CompanyPositions.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (window.Worker) {
|
PrintAllServers();
|
||||||
// Engine._scriptWebWorker = new Worker("netscript/NetscriptWorker.js");
|
|
||||||
//}
|
|
||||||
|
|
||||||
//Load, save, and delete buttons
|
|
||||||
//Engine.Clickables.saveButton = document.getElementById("save");
|
|
||||||
//Engine.Clickables.saveButton.addEventListener("click", function() {
|
|
||||||
// Engine.saveFile();
|
|
||||||
// return false;
|
|
||||||
//});
|
|
||||||
|
|
||||||
//Engine.Clickables.loadButton = document.getElementById("load");
|
|
||||||
//Engine.Clickables.loadButton.addEventListener("click", function() {
|
|
||||||
// Engine.loadSave();
|
|
||||||
// return false;
|
|
||||||
//});
|
|
||||||
|
|
||||||
//Engine.Clickables.deleteButton = document.getElementById("delete");
|
|
||||||
//Engine.Clickables.deleteButton.addEventListener("click", function() {
|
|
||||||
// Engine.deleteSave();
|
|
||||||
// return false;
|
|
||||||
//});
|
|
||||||
|
|
||||||
//Main menu buttons and content
|
//Main menu buttons and content
|
||||||
Engine.Clickables.terminalMainMenuButton = document.getElementById("terminal-menu-link");
|
Engine.Clickables.terminalMainMenuButton = document.getElementById("terminal-menu-link");
|
||||||
@ -278,6 +253,18 @@ var Engine = {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Engine.Clickables.saveMainMenuButton = document.getElementById("save-game-link");
|
||||||
|
Engine.Clickables.saveMainMenuButton.addEventListener("click", function() {
|
||||||
|
Engine.saveGame();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
Engine.Clickables.deleteMainMenuButton = document.getElementById("delete-game-link");
|
||||||
|
Engine.Clickables.deleteMainMenuButton.addEventListener("click", function() {
|
||||||
|
Engine.deleteSave();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
Engine.Display.terminalContent = document.getElementById("terminal-container");
|
Engine.Display.terminalContent = document.getElementById("terminal-container");
|
||||||
Engine.currentPage = Engine.Page.Terminal;
|
Engine.currentPage = Engine.Page.Terminal;
|
||||||
Engine.Display.characterContent = document.getElementById("character-container");
|
Engine.Display.characterContent = document.getElementById("character-container");
|
||||||
|
41
utils/IPAddress.js
Normal file
41
utils/IPAddress.js
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/* Functions to deal with manipulating IP addresses*/
|
||||||
|
|
||||||
|
//Generate a random IP address
|
||||||
|
//Will not return an IP address that already exists in the AllServers array
|
||||||
|
createRandomIp = function() {
|
||||||
|
var ip = createRandomByte() +'.' +
|
||||||
|
createRandomByte() +'.' +
|
||||||
|
createRandomByte() +'.' +
|
||||||
|
createRandomByte();
|
||||||
|
|
||||||
|
//If the Ip already exists, recurse to create a new one
|
||||||
|
if (ipExists(ip)) {
|
||||||
|
return createRandomIp();
|
||||||
|
}
|
||||||
|
return ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Returns true if the IP already exists in one of the game's servers
|
||||||
|
ipExists = function(ip) {
|
||||||
|
for (var property in AllServers) {
|
||||||
|
if (AllServers.hasOwnProperty(property)) {
|
||||||
|
if (property == ip) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
createRandomByte = function() {
|
||||||
|
return Math.round(Math.random()*256);
|
||||||
|
}
|
||||||
|
|
||||||
|
isValidIPAddress = function(ipaddress) {
|
||||||
|
if (/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ipaddress))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
console.log("Invalid IP address");
|
||||||
|
return false ;
|
||||||
|
}
|
@ -7,13 +7,14 @@
|
|||||||
// off to that `fromJSON` fuunction, passing in the value.
|
// off to that `fromJSON` fuunction, passing in the value.
|
||||||
function Reviver(key, value) {
|
function Reviver(key, value) {
|
||||||
var ctor;
|
var ctor;
|
||||||
|
//console.log("Reviver called with key: " + key + ", and value: " + value);
|
||||||
if (typeof value === "object" &&
|
if (typeof value === "object" &&
|
||||||
typeof value.ctor === "string" &&
|
typeof value.ctor === "string" &&
|
||||||
typeof value.data !== "undefined") {
|
typeof value.data !== "undefined") {
|
||||||
ctor = Reviver.constructors[value.ctor] || window[value.ctor];
|
ctor = Reviver.constructors[value.ctor] || window[value.ctor];
|
||||||
if (typeof ctor === "function" &&
|
if (typeof ctor === "function" &&
|
||||||
typeof ctor.fromJSON === "function") {
|
typeof ctor.fromJSON === "function") {
|
||||||
|
|
||||||
return ctor.fromJSON(value);
|
return ctor.fromJSON(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -35,6 +36,7 @@ Reviver.constructors = {}; // A list of constructors the smart reviver should kn
|
|||||||
function Generic_toJSON(ctorName, obj, keys) {
|
function Generic_toJSON(ctorName, obj, keys) {
|
||||||
var data, index, key;
|
var data, index, key;
|
||||||
|
|
||||||
|
console.log("Generic_toJSON() called");
|
||||||
if (!keys) {
|
if (!keys) {
|
||||||
keys = Object.keys(obj); // Only "own" properties are included
|
keys = Object.keys(obj); // Only "own" properties are included
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user