From 9eecc1b66fdc6e02a8a98a129384c07c6d1cabe7 Mon Sep 17 00:00:00 2001 From: Alex Anderson Date: Sat, 7 Sep 2019 07:16:02 -0600 Subject: [PATCH 1/6] fix(Exocomps): Fixes a crash when trying to recall an exocomp while upgrading. Closes #2523 --- .../src/components/views/Exocomps/UpgradeScreen.js | 8 +++----- client/src/components/views/Exocomps/index.js | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/client/src/components/views/Exocomps/UpgradeScreen.js b/client/src/components/views/Exocomps/UpgradeScreen.js index c6e60c3a3..e1634c050 100644 --- a/client/src/components/views/Exocomps/UpgradeScreen.js +++ b/client/src/components/views/Exocomps/UpgradeScreen.js @@ -10,11 +10,9 @@ const COMPLETE_UPGRADE = gql` } `; const UpgradeScreen = React.memo( - ({ - exocompId, - clearUpgradeBoard, - destination: { upgradeBoard, displayName } - }) => { + ({ exocompId, clearUpgradeBoard, destination }) => { + if (!destination) return; + const { upgradeBoard, displayName } = destination; return (

Upgrading {displayName}

diff --git a/client/src/components/views/Exocomps/index.js b/client/src/components/views/Exocomps/index.js index b1f6dbe67..10da4d7bd 100644 --- a/client/src/components/views/Exocomps/index.js +++ b/client/src/components/views/Exocomps/index.js @@ -132,6 +132,7 @@ class Exocomps extends Component { const exocomp = exocomps.find(e => e.id === selectedExocomp); const exocompNum = exocomps.findIndex(e => e.id === selectedExocomp) + 1; const upgradedExocomp = exocomps.find(e => e.id === upgradeExocomp); + console.log(this.state); return ( { this.recall(e.id); - this.setState({ upgrade: false }); + this.setState({ + upgrade: false, + upgradeExocomp: null, + selectedExocomp: null + }); }} upgrade={ex => { this.setState({ upgradeExocomp: ex }); @@ -179,7 +184,12 @@ class Exocomps extends Component { this.setState({ selectedExocomp: null })} + cancel={() => + this.setState({ + selectedExocomp: null, + upgradeExocomp: null + }) + } number={exocompNum} deploy={this.deploy} upgrade={this.state.upgrade} From dbeb6609d7368e6cf4fcf9d380b5666dc5d909ff Mon Sep 17 00:00:00 2001 From: Alex Anderson Date: Sat, 7 Sep 2019 07:23:00 -0600 Subject: [PATCH 2/6] fix(Damage Reports): Repairing systems with a reactivation code now properly triggers any repair triggers. Closes #2521 --- server/src/classes/generic/index.js | 2 -- server/src/events/systems.js | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/src/classes/generic/index.js b/server/src/classes/generic/index.js index 360c89524..1e63ecfe6 100644 --- a/server/src/classes/generic/index.js +++ b/server/src/classes/generic/index.js @@ -416,8 +416,6 @@ ${report} reactivationCodeResponse(response) { this.damage.reactivationCode = null; this.damage.reactivationRequester = null; - // For now, lets repair the station when it is accepted - if (response) this.repair(); } // Damage Tasks // As a side note, can I just say how much more elegant diff --git a/server/src/events/systems.js b/server/src/events/systems.js index d2ec005ef..8d6606738 100644 --- a/server/src/events/systems.js +++ b/server/src/events/systems.js @@ -284,6 +284,9 @@ App.on("systemReactivationCodeResponse", ({ systemId, response }) => { color: response ? "success" : "danger" }); sys.reactivationCodeResponse(response); + + // If the responses is true, repair the system with an event + App.handleEvent({ systemId }, "repairSystem"); sendUpdate(sys); }); App.on("setCoolant", ({ systemId, coolant }) => { From 8eea8ef67a90ff32e2738d316d6476f5d2d52956 Mon Sep 17 00:00:00 2001 From: Alex Anderson Date: Sat, 7 Sep 2019 07:56:49 -0600 Subject: [PATCH 3/6] fix(Task Reports): Task reports are now better integrated with damaged systems. Repair task reports for systems show up as damage reports and disable the related system until the report is cleared. Clicking on the damaged system on the systems core will automatically clear the report. Closes #2502 --- .../components/views/DamageControl/core.js | 42 ++++++++++++++++++- client/src/components/views/Exocomps/index.js | 1 - .../src/components/views/TaskReports/core.js | 41 +++++++++++++----- server/src/classes/generic/index.js | 5 ++- server/src/events/systems.js | 4 ++ server/src/typeDefs/damage.js | 26 ++++++++++++ 6 files changed, 105 insertions(+), 14 deletions(-) diff --git a/client/src/components/views/DamageControl/core.js b/client/src/components/views/DamageControl/core.js index 9e77da0b4..ce349b0ec 100644 --- a/client/src/components/views/DamageControl/core.js +++ b/client/src/components/views/DamageControl/core.js @@ -40,6 +40,7 @@ const SYSTEMS_SUB = gql` report destroyed which + taskReportDamage } simulatorId type @@ -85,6 +86,9 @@ class DamageControlCore extends Component { if (sys.damage.damaged) { obj.color = "red"; } + if (sys.damage.taskReportDamage) { + obj.color = "orangered"; + } if (!sys.name) { obj.color = "purple"; } @@ -100,6 +104,40 @@ class DamageControlCore extends Component { } return obj; } + systemTitle(sys) { + if (sys.damage.taskReportDamage) { + return "Task Report Damage"; + } + if (sys.damage.destroyed) { + return "Destroyed"; + } + if (sys.damage.which === "engineering") { + return "Engineering"; + } + if (sys.damage.which === "rnd") { + return "Research & Development"; + } + if (sys.damage.damaged) { + return "Damaged"; + } + // Overloaded the power levels + if ( + sys.power && + sys.power.powerLevels && + sys.power.powerLevels.length > 0 && + sys.power.powerLevels[sys.power.powerLevels.length - 1] < sys.power.power + ) { + return "Overloaded Power"; + } + if ( + sys.power && + sys.power.powerLevels && + sys.power.powerLevels.length > 0 && + !sys.power.powerLevels.find(p => p <= sys.power.power) + ) { + return "Insufficient Power"; + } + } systemName(sys) { if (sys.type === "Shield" && sys.name !== "Shields") { return `${sys.name} Shields`; @@ -146,7 +184,7 @@ class DamageControlCore extends Component { which }; let mutation; - if (system.damage.damaged) { + if (system.damage.damaged || system.damage.taskReportDamage) { // Fix it mutation = gql` mutation RepairSystem($systemId: ID!) { @@ -298,6 +336,7 @@ class DamageControlCore extends Component { this.toggleDamage(e, s)} onContextMenu={e => this.setContext(e, s)} + title={this.systemTitle(s)} style={this.systemStyle(s)} > {this.systemName(s)} {this.renderEngineSpeed(s)} @@ -471,6 +510,7 @@ const SYSTEMS_QUERY = gql` report destroyed which + taskReportDamage } simulatorId type diff --git a/client/src/components/views/Exocomps/index.js b/client/src/components/views/Exocomps/index.js index 10da4d7bd..dbe2d6e01 100644 --- a/client/src/components/views/Exocomps/index.js +++ b/client/src/components/views/Exocomps/index.js @@ -132,7 +132,6 @@ class Exocomps extends Component { const exocomp = exocomps.find(e => e.id === selectedExocomp); const exocompNum = exocomps.findIndex(e => e.id === selectedExocomp) + 1; const upgradedExocomp = exocomps.find(e => e.id === upgradeExocomp); - console.log(this.state); return ( ({ + ...e, + type: "Exocomp", + name: `Exocomp ${i + 1}` + })) + ) + .find(s => s.id === systemId).name + } ${typeValue(type)}`; return (

Create New Task Report

- + +