From 9ffd43e9446ece72347fc38ed0a9a0f82d88b07c Mon Sep 17 00:00:00 2001 From: jude Date: Mon, 13 Feb 2023 15:52:17 +0000 Subject: [PATCH] Fleshed out stub. Added fortify and stub for attack. --- static/js/player.js | 49 ++++++++++++++++++++++++++++++++++++ whitepaper/Dissertation.pdf | Bin 282517 -> 282463 bytes whitepaper/Dissertation.tex | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/static/js/player.js b/static/js/player.js index 431b0c4..e3b22a1 100644 --- a/static/js/player.js +++ b/static/js/player.js @@ -91,6 +91,55 @@ class Player { this.turnPhase = PHASE_ATTACK; } + return false; + } else { + // End turn prematurely. + if (data.action === "END") { + return true; + } + + if (this.turnPhase === PHASE_ATTACK && data.action === "ATTACK") { + if (this.attack(data)) { + this.turnPhase = PHASE_FORTIFY; + } + + return false; + } + + this.turnPhase = PHASE_FORTIFY; + + if (data.action === "FORTIFY") { + return this.fortify(data); + } + } + return false; + } + + /** + * Process an action which is to attack another region. + * + * @param data Data received via socket + */ + attack(data) {} + + /** + * Process an action which is to attack another region. + * + * @param data Data received via socket + */ + fortify(data) { + let sender = Region.getRegion(data.sender); + let receiver = Region.getRegion(data.receiver); + + if ( + sender.owner === this && + receiver.owner === this && + sender.strength > data.strength + ) { + receiver.reinforce(data.strength); + sender.strength -= data.strength; + return true; + } else { return false; } } diff --git a/whitepaper/Dissertation.pdf b/whitepaper/Dissertation.pdf index 71ce28cac4d1113afc0aca80310ebc7acd7f6079..7443681a389ed75a5bb1f4bf2ec57cb974fc1570 100644 GIT binary patch delta 10576 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