// Helper Coroutines IEnumerator HeroMoveSelection() { FightingEntity hero = this._field.GetHeroPlayer(); if (!hero.HasModifier(ModifierAilment.MODIFIER_CANNOT_USE_ACTION)) { this._heroMenuActions.Push(new HeroMenuAction(MenuState.MOVE)); InitializeCommandCardActionUI(GetHeroActionChoices(ActionType.BASIC)); } else { this.HeroActionConfirmed(); this._heroMenuActions.Push(new HeroMenuAction(MenuState.WAITING)); } while (true) { HeroMenuAction menuAction = this.GetHeroMenuAction(); MenuState menuState = menuAction.menuState; switch (menuState) { case MenuState.MOVE: if (Input.GetKeyDown(KeyCode.Z)) { SetHeroAction(); } break; case MenuState.TARGET: if (Input.GetKeyDown(KeyCode.Z)) { SetHeroTarget(); } break; case MenuState.MAGIC: if (Input.GetKeyDown(KeyCode.Z)) { SetHeroAction(); } break; default: break; } if (_heroMenuActions.Count > 1) { // Go back a menu if (Input.GetKeyDown(KeyCode.X)) { GoBackToLastHeroAction(); } } if (Input.GetKeyDown(KeyCode.L)) { _playerActionCounter = this.maxTimeBeforeAction; } if (hero.HasSetCommand()) { _playerActionCounter += Time.deltaTime; } if (this.CheckExecuteTurn()) { break; } yield return(null); } }