diff --git a/css/popupboxes.css b/css/popupboxes.css
index b3c3b953f..50378b171 100644
--- a/css/popupboxes.css
+++ b/css/popupboxes.css
@@ -2,7 +2,7 @@
.popup-box-container {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
- z-index: 1; /* Sit on top */
+ z-index: 10; /* Sit on top */
left: 0;
top: 0;
width: 100%;
@@ -54,7 +54,7 @@
#log-box-container {
display: block;
position: absolute;
- z-index: 2;
+ z-index: 10;
width: 50%;
height: auto;
max-height: 40%;
diff --git a/dist/bundle.js b/dist/bundle.js
index 061ff7363..cebad8c91 100644
--- a/dist/bundle.js
+++ b/dist/bundle.js
@@ -2645,9 +2645,9 @@ let CONSTANTS = {
//Hacking Missions
HackingMissionRepToDiffConversion: 10000, //Faction rep is divided by this to get mission difficulty
HackingMissionRepToRewardConversion: 10, //Faction rep divided byt his to get mission rep reward
- HackingMissionSpamTimeIncrease: 20000, //How much time limit increase is gained when conquering a Spam Node (ms)
+ HackingMissionSpamTimeIncrease: 15000, //How much time limit increase is gained when conquering a Spam Node (ms)
HackingMissionTransferAttackIncrease: 1.05, //Multiplier by which the attack for all Core Nodes is increased when conquering a Transfer Node
- HackingMissionMiscDefenseIncrease: 5, //The amount by which every misc node's defense increases when one is conquered
+ HackingMissionMiscDefenseIncrease: 10, //The amount by which every misc node's defense increases when one is conquered
HackingMissionHowToPlay: "Hacking missions are a minigame that, if won, will reward you with faction reputation.
" +
"In this game you control a set of Nodes and use them to try and defeat an enemy. Your Nodes " +
"are colored blue, while the enemy's are red. There are also other nodes on the map colored gray " +
@@ -2686,7 +2686,10 @@ let CONSTANTS = {
"any Node that is adjacent to one of your Nodes (immediately above, below, or to the side. NOT diagonal). Furthermore, only CPU Cores and Transfer Nodes " +
"can target, since they are the only ones that can perform actions. To remove a target, you can simply click on the line that represents " +
"the connection between one of your Nodes and its target. Alternatively, you can select the 'source' Node and click the 'Drop Connection' button, " +
- "or press 'd',",
+ "or press 'd'.
" +
+ "Other Notes:
" +
+ "-Whenever you conquer a miscellenaous Node (not owned by the enemy), the defense of all remaining miscellaneous Nodes will increase " +
+ "by a smal fixed amount.",
//Gang constants
@@ -35192,7 +35195,7 @@ function HackingMission(rep, fac) {
this.faction = fac;
this.started = false;
- this.time = 300000; //5 minutes to start, milliseconds
+ this.time = 180000; //5 minutes to start, milliseconds
this.playerCores = [];
this.playerNodes = []; //Non-core nodes
@@ -35250,7 +35253,7 @@ HackingMission.prototype.init = function() {
}
//Randomly generate enemy nodes (CPU and Firewall) based on difficulty
- var numNodes = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(this.difficulty, this.difficulty + 1);
+ var numNodes = this.difficulty;
var numFirewalls = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(this.difficulty, this.difficulty + 1);
var numDatabases = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(this.difficulty, this.difficulty + 1);
var totalNodes = numNodes + numFirewalls + numDatabases;
@@ -35262,7 +35265,7 @@ HackingMission.prototype.init = function() {
var randMult = Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["a" /* addOffset */])(this.difficulty, 20);
for (var i = 0; i < numNodes; ++i) {
var stats = {
- atk: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(30, 50),
+ atk: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(40, 60),
def: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(20, 40),
hp: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(100, 120)
}
@@ -35282,7 +35285,7 @@ HackingMission.prototype.init = function() {
}
for (var i = 0; i < numDatabases; ++i) {
var stats = {
- atk: 0,
+ atk: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(10, 20),
def: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(20, 30),
hp: randMult * Object(__WEBPACK_IMPORTED_MODULE_5__utils_HelperFunctions_js__["d" /* getRandomInt */])(120, 150)
}
@@ -35945,6 +35948,10 @@ HackingMission.prototype.initJsPlumb = function() {
instance.bind("connection", (info)=>{
var targetNode = this.getNodeFromElement(info.target);
+ //Do not detach for enemy nodes
+ var thisNode = this.getNodeFromElement(info.source);
+ if (thisNode.enmyCtrl) {return;}
+
//If the node is not reachable, drop the connection
if (!this.nodeReachable(targetNode)) {
info.sourceEndpoint.detachFrom(info.targetEndpoint);
@@ -35961,14 +35968,6 @@ HackingMission.prototype.initJsPlumb = function() {
sourceNode.conn = null;
});
- //Set connection type for enemy connections
- instance.registerConnectionTypes({
- "basic": {
- paintStyle:{ stroke:"red", strokeWidth:5 },
- hoverPaintStyle:{ stroke:"red", strokeWidth:7 },
- anchor:"Continuous",
- },
- })
}
//Drops all connections where the specified node is the source
@@ -36284,7 +36283,6 @@ HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
nodeObj.conn = this.jsplumbinstance.connect({
source:nodeObj.el,
target:node.el,
- type:"basic"
});
}
}
diff --git a/src/Constants.js b/src/Constants.js
index 0ec092cf0..6d969344c 100644
--- a/src/Constants.js
+++ b/src/Constants.js
@@ -124,9 +124,9 @@ let CONSTANTS = {
//Hacking Missions
HackingMissionRepToDiffConversion: 10000, //Faction rep is divided by this to get mission difficulty
HackingMissionRepToRewardConversion: 10, //Faction rep divided byt his to get mission rep reward
- HackingMissionSpamTimeIncrease: 20000, //How much time limit increase is gained when conquering a Spam Node (ms)
+ HackingMissionSpamTimeIncrease: 15000, //How much time limit increase is gained when conquering a Spam Node (ms)
HackingMissionTransferAttackIncrease: 1.05, //Multiplier by which the attack for all Core Nodes is increased when conquering a Transfer Node
- HackingMissionMiscDefenseIncrease: 5, //The amount by which every misc node's defense increases when one is conquered
+ HackingMissionMiscDefenseIncrease: 10, //The amount by which every misc node's defense increases when one is conquered
HackingMissionHowToPlay: "Hacking missions are a minigame that, if won, will reward you with faction reputation.
" +
"In this game you control a set of Nodes and use them to try and defeat an enemy. Your Nodes " +
"are colored blue, while the enemy's are red. There are also other nodes on the map colored gray " +
@@ -165,7 +165,10 @@ let CONSTANTS = {
"any Node that is adjacent to one of your Nodes (immediately above, below, or to the side. NOT diagonal). Furthermore, only CPU Cores and Transfer Nodes " +
"can target, since they are the only ones that can perform actions. To remove a target, you can simply click on the line that represents " +
"the connection between one of your Nodes and its target. Alternatively, you can select the 'source' Node and click the 'Drop Connection' button, " +
- "or press 'd',",
+ "or press 'd'.
" +
+ "Other Notes:
" +
+ "-Whenever you conquer a miscellenaous Node (not owned by the enemy), the defense of all remaining miscellaneous Nodes will increase " +
+ "by a smal fixed amount.",
//Gang constants
diff --git a/src/Missions.js b/src/Missions.js
index c4200e218..53e26ad4b 100644
--- a/src/Missions.js
+++ b/src/Missions.js
@@ -156,7 +156,7 @@ function HackingMission(rep, fac) {
this.faction = fac;
this.started = false;
- this.time = 300000; //5 minutes to start, milliseconds
+ this.time = 180000; //5 minutes to start, milliseconds
this.playerCores = [];
this.playerNodes = []; //Non-core nodes
@@ -214,7 +214,7 @@ HackingMission.prototype.init = function() {
}
//Randomly generate enemy nodes (CPU and Firewall) based on difficulty
- var numNodes = getRandomInt(this.difficulty, this.difficulty + 1);
+ var numNodes = this.difficulty;
var numFirewalls = getRandomInt(this.difficulty, this.difficulty + 1);
var numDatabases = getRandomInt(this.difficulty, this.difficulty + 1);
var totalNodes = numNodes + numFirewalls + numDatabases;
@@ -226,7 +226,7 @@ HackingMission.prototype.init = function() {
var randMult = addOffset(this.difficulty, 20);
for (var i = 0; i < numNodes; ++i) {
var stats = {
- atk: randMult * getRandomInt(30, 50),
+ atk: randMult * getRandomInt(40, 60),
def: randMult * getRandomInt(20, 40),
hp: randMult * getRandomInt(100, 120)
}
@@ -246,7 +246,7 @@ HackingMission.prototype.init = function() {
}
for (var i = 0; i < numDatabases; ++i) {
var stats = {
- atk: 0,
+ atk: randMult * getRandomInt(10, 20),
def: randMult * getRandomInt(20, 30),
hp: randMult * getRandomInt(120, 150)
}
@@ -909,6 +909,10 @@ HackingMission.prototype.initJsPlumb = function() {
instance.bind("connection", (info)=>{
var targetNode = this.getNodeFromElement(info.target);
+ //Do not detach for enemy nodes
+ var thisNode = this.getNodeFromElement(info.source);
+ if (thisNode.enmyCtrl) {return;}
+
//If the node is not reachable, drop the connection
if (!this.nodeReachable(targetNode)) {
info.sourceEndpoint.detachFrom(info.targetEndpoint);
@@ -925,14 +929,6 @@ HackingMission.prototype.initJsPlumb = function() {
sourceNode.conn = null;
});
- //Set connection type for enemy connections
- instance.registerConnectionTypes({
- "basic": {
- paintStyle:{ stroke:"red", strokeWidth:5 },
- hoverPaintStyle:{ stroke:"red", strokeWidth:7 },
- anchor:"Continuous",
- },
- })
}
//Drops all connections where the specified node is the source
@@ -1248,7 +1244,6 @@ HackingMission.prototype.enemyAISelectAction = function(nodeObj) {
nodeObj.conn = this.jsplumbinstance.connect({
source:nodeObj.el,
target:node.el,
- type:"basic"
});
}
}