« get me outta code hell

Cleanup, don't open target menu if there aren't any queued actions - csb-game - Pixelly spin-off of the Command Synergy Battle system used in Final Fantasy XIII
summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorrie <towerofnix@gmail.com>2018-08-12 11:33:02 -0300
committerFlorrie <towerofnix@gmail.com>2018-08-12 11:33:02 -0300
commitfeb7d1173d4a120edbfb9a348441fd2ebea7b9aa (patch)
tree534dd78cef6745d7dc37370ded33608b8859bab9
parent7b7d325595bdc2835c2bb556a334808fdefc864b (diff)
Cleanup, don't open target menu if there aren't any queued actions
-rw-r--r--index.js28
1 files changed, 18 insertions, 10 deletions
diff --git a/index.js b/index.js
index e312d32..02d5d9f 100644
--- a/index.js
+++ b/index.js
@@ -137,14 +137,7 @@ class ATBBar {
   activate() {
     if (this.queuedActions.length) {
       // Cut off the actions that we don't have enough ATB charge for
-      let cutoff = 0, segment = 0
-      while (cutoff < this.queuedActions.length) {
-        segment += this.queuedActions[cutoff].size
-        if (segment > this.progress * this.segmentCount) {
-          break
-        }
-        cutoff++
-      }
+      const cutoff = this.getCutoff()
       if (cutoff === 0) {
         // If we don't have enough charge to execute even one action, just don't do anything
         return
@@ -155,6 +148,19 @@ class ATBBar {
       this.battleCharacter.isExecutingChain = true
     }
   }
+
+  getCutoff() {
+    // Cutoff point in the action queue where ATB does not fill the action
+    let cutoff = 0, segment = 0
+    while (cutoff < this.queuedActions.length) {
+      segment += this.queuedActions[cutoff].size
+      if (segment > this.progress * this.segmentCount) {
+        break
+      }
+      cutoff++
+    }
+    return cutoff
+  }
 }
 
 class HPBar {
@@ -622,8 +628,10 @@ canvas.addEventListener('keypress', evt => {
       } else if (evt.keyCode === 8) {
         atbBar.dequeue()
       } else if (evt.keyCode === 13 || evt.key.toLowerCase() === 'e') {
-        battle.currentMenu = targetMenu
-        targetMenu.buildOptions(battle)
+        if (battle.playerCharacter.atbBar.queuedActions.length) {
+          battle.currentMenu = targetMenu
+          targetMenu.buildOptions(battle)
+        }
       }
     } else if (currentMenu === targetMenu) {
       if (evt.keyCode === 13 || evt.key.toLowerCase() === 'e' || evt.which === 32) {