From 478adbfb07d3ab0fa28b8e437edf47e9174881c9 Mon Sep 17 00:00:00 2001 From: Florrie Date: Sun, 12 Aug 2018 13:38:32 -0300 Subject: Show target menu once queue is filled --- index.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 42aed58..d02dcf6 100644 --- a/index.js +++ b/index.js @@ -290,7 +290,7 @@ class BaseBattleMenu { } class ActionMenu extends BaseBattleMenu { - constructor() { + constructor(battle) { super({options: [ ['Fire', 'Fira', 'Firaga'], ['Blizz', 'Blizza', 'Blizzaga'], @@ -300,6 +300,7 @@ class ActionMenu extends BaseBattleMenu { ['Stun', 'Stunra', 'Stunga'] ].map(arr => ({levelTexts: arr}))}) + this.battle = battle this.uiLevel = 1 // 1-3 -- which of "fire", "fira", "firaga" is selected. } @@ -358,6 +359,10 @@ class ActionMenu extends BaseBattleMenu { label: option.levelTexts[effectiveLevel - 1], size: effectiveLevel }) + + if (effectiveLevel === remainingSpace) { + this.battle.showTargetMenu() + } } else { // TODO: Feedback } @@ -365,12 +370,13 @@ class ActionMenu extends BaseBattleMenu { } class TargetMenu extends BaseBattleMenu { - constructor() { + constructor(battle) { super({options: []}) + this.battle = battle } - buildOptions(battle) { - this.options = battle.playerCharacter.getValidOffenseTargets() + buildOptions() { + this.options = this.battle.playerCharacter.getValidOffenseTargets() .map(char => ({label: char.name, battleCharacter: char})) } } @@ -495,7 +501,7 @@ class Battle { this.playerCharacter = this.teams[0].characters[0] - this.actionMenu = new ActionMenu() + this.actionMenu = new ActionMenu(this) this.targetMenu = new TargetMenu(this) this.backdrop = new Backdrop() @@ -596,6 +602,12 @@ class Battle { } } + showTargetMenu() { + this.changeMenuAnim = {old: this.currentMenu, direction: 1, time: 1} + this.currentMenu = this.targetMenu + this.targetMenu.buildOptions() + } + getAllBattleCharacters() { return this.teams.reduce((acc, team) => acc.concat(team.characters), []) } @@ -706,9 +718,7 @@ canvas.addEventListener('keypress', evt => { atbBar.dequeue() } else if (evt.keyCode === 13 || evt.key.toLowerCase() === 'e') { if (battle.playerCharacter.atbBar.queuedActions.length) { - battle.currentMenu = targetMenu - battle.changeMenuAnim = {old: actionMenu, direction: 1, time: 1} - targetMenu.buildOptions(battle) + battle.showTargetMenu() } } } else if (currentMenu === targetMenu) { -- cgit 1.3.0-6-gf8a5