Fixed issue in Hacking Missions where nodes weren't easily selectable

This commit is contained in:
danielyxie
2017-10-13 10:19:42 -05:00
parent 4186326771
commit 8f0dad0d10
5 changed files with 140 additions and 46 deletions
+40 -23
View File
@@ -3616,7 +3616,8 @@ let CONSTANTS = {
"-Rebalanced BitNode-2 so that Crime and Infiltration are more profitable but hacking is less profitable. Infiltration also gives more faction rep<br>" +
"-Rebalanced BitNode-4 so that hacking is slightly less profitable<br>" +
"-Rebalanced BitNode-5 so that Infiltration is more profitable and gives more faction rep<br>" +
"-Rebalanced BitNode-11 so that Crime and Infiltration are more profitable. Infiltration also gives more faction rep.<br>"
"-Rebalanced BitNode-11 so that Crime and Infiltration are more profitable. Infiltration also gives more faction rep.<br>" +
"-Fixed an annoying issue in Hacking Missions where sometimes you would click a Node but it wouldnt actually get selected<br>"
}
@@ -36461,12 +36462,12 @@ HackingMission.prototype.createNodeDomElement = function(nodeObj) {
var txt;
switch (nodeObj.type) {
case NodeTypes.Core:
txt = "CPU Core<br>" + "HP: " +
txt = "<p>CPU Core<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
nodeDiv.classList.add("hack-mission-cpu-node");
break;
case NodeTypes.Firewall:
txt = "Firewall<br>" + "HP: " +
txt = "<p>Firewall<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
nodeDiv.classList.add("hack-mission-firewall-node");
break;
@@ -36476,7 +36477,7 @@ HackingMission.prototype.createNodeDomElement = function(nodeObj) {
nodeDiv.classList.add("hack-mission-database-node");
break;
case NodeTypes.Spam:
txt = "Spam<br>" + "HP: " +
txt = "<p>Spam<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
nodeDiv.classList.add("hack-mission-spam-node");
break;
@@ -36487,14 +36488,14 @@ HackingMission.prototype.createNodeDomElement = function(nodeObj) {
break;
case NodeTypes.Shield:
default:
txt = "<br>Shield<br>" + "HP: " +
txt = "<p>Shield<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
nodeDiv.classList.add("hack-mission-shield-node");
break;
}
txt += "<br>Atk: " + Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.atk, 1) +
"<br>Def: " + Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.def, 1);
"<br>Def: " + Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.def, 1) + "</p>";
nodeDiv.innerHTML = txt;
}
@@ -36512,11 +36513,11 @@ HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
var txt;
switch (nodeObj.type) {
case NodeTypes.Core:
txt = "CPU Core<br>" + "HP: " +
txt = "<p>CPU Core<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
break;
case NodeTypes.Firewall:
txt = "Firewall<br>" + "HP: " +
txt = "<p>Firewall<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
break;
case NodeTypes.Database:
@@ -36524,7 +36525,7 @@ HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
break;
case NodeTypes.Spam:
txt = "Spam<br>" + "HP: " +
txt = "<p>Spam<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
break;
case NodeTypes.Transfer:
@@ -36533,7 +36534,7 @@ HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
break;
case NodeTypes.Shield:
default:
txt = "<br>Shield<br>" + "HP: " +
txt = "<p>Shield<br>" + "HP: " +
Object(__WEBPACK_IMPORTED_MODULE_6__utils_StringHelperFunctions_js__["c" /* formatNumber */])(nodeObj.hp, 1);
break;
}
@@ -36543,8 +36544,11 @@ HackingMission.prototype.updateNodeDomElement = function(nodeObj) {
if (nodeObj.action) {
txt += "<br>" + nodeObj.action;
}
//txt += "</p>";
txt += "</p>";
nodeDiv.innerHTML = txt;
if (nodeObj.type === NodeTypes.Core || nodeObj.type === NodeTypes.Transfer) {
this.configurePlayerNodeElement(nodeObj.el, true);
}
}
//Gets a Node DOM element's corresponding Node object using its
@@ -36571,23 +36575,38 @@ HackingMission.prototype.getNodeFromElement = function(el) {
return this.map[x][y];
}
function selectNode(hackMissionInst, el) {
var nodeObj = hackMissionInst.getNodeFromElement(el);
if (nodeObj === null) {console.log("Error getting Node object");}
if (!nodeObj.plyrCtrl) {return;}
if (hackMissionInst.selectedNode instanceof Node) {
hackMissionInst.selectedNode.deselect(hackMissionInst.actionButtons);
hackMissionInst.selectedNode = null;
}
console.log("Selecting node :" + el.id);
nodeObj.select(hackMissionInst.actionButtons);
hackMissionInst.selectedNode = nodeObj;
}
//Configures a DOM element representing a player-owned node to
//be selectable and actionable
//Note: Does NOT change its css class. This is handled by Node.setControlledBy...
HackingMission.prototype.configurePlayerNodeElement = function(el) {
HackingMission.prototype.configurePlayerNodeElement = function(el, reconfigureChildOnly=false) {
var nodeObj = this.getNodeFromElement(el);
if (nodeObj === null) {console.log("Error getting Node object");}
//Add event listener
el.addEventListener("click", ()=>{
if (this.selectedNode instanceof Node) {
this.selectedNode.deselect(this.actionButtons);
this.selectedNode = null;
}
console.log("Selecting node :" + el.id);
nodeObj.select(this.actionButtons);
this.selectedNode = nodeObj;
});
function selectNodeWrapper() {
selectNode(this, el);
}
if (!reconfigureChildOnly) {
el.addEventListener("click", selectNodeWrapper);
}
if (el.firstChild) {
el.firstChild.addEventListener("click", selectNodeWrapper);
}
}
//Configures a DOM element representing an enemy-node by removing
@@ -36598,8 +36617,6 @@ HackingMission.prototype.configureEnemyNodeElement = function(el) {
if (this.selectedNode == nodeObj) {
nodeObj.deselect(this.actionButtons);
}
//TODO Need to remove event listeners
}
//Returns bool indicating whether a node is reachable by player