public void LoadAttacks(Fighter fighter) { ResetSelections(); for (int i = 0; i < fighter.FighterData.AttackList.Count; i++) { // Add buttons if more are needed if (ActionButtonPool.Count == i) { ActionButtonPool.Add(Instantiate(ActionButtonPrefab, ButtonContainter)); ActionButtonPool[i].transform.SetAsLastSibling(); // Set button nav if (i == 0) { ActionButtonPool[0].Button.navigation = new Navigation() { mode = Navigation.Mode.None }; } else { ActionButtonPool[i].Button.navigation = new Navigation() { mode = Navigation.Mode.Explicit, selectOnUp = ActionButtonPool[i - 1].Button, selectOnDown = ActionButtonPool[0].Button }; } // adjust previous button nav if (i > 0) { ActionButtonPool[i - 1].Button.navigation = new Navigation() { mode = Navigation.Mode.Explicit, selectOnUp = i == 1 ? ActionButtonPool[i].Button : ActionButtonPool[i - 2].Button, selectOnDown = ActionButtonPool[i].Button }; } } ActionButtonPool[i].Populate(this, fighter.FighterData.AttackList[i]); ActionButtonPool[i].SetSelectable( BattleManager.Instance.PlayerTeam.AvailableActionPoints >= fighter.FighterData.AttackList[i].Cost && BattleTargetting.ValidTargetsFoundForAction(fighter, fighter.FighterData.AttackList[i].TargetData)); } }
public void BeginTargettingForAction(int actionIndex) { SetSelectionLevel(MenuSelectionLevel.Target, true); switch (currentCategorySelection) { case CategorySelection.Attack: currentTargetingAction = currentFighter.FighterData.AttackList[actionIndex]; break; case CategorySelection.Item: break; case CategorySelection.Special: break; case CategorySelection.Tactics: break; } targetableFighters = BattleTargetting.GetTargettableFighters(currentFighter, currentTargetingAction.TargetData); if (currentTargetingAction.TargetData.TargetCount == BattleTargetting.TargetCount.Single) // single target { targetableFighters[0].SetAsTargeted(true); UpdateTargetedFighter(targetableFighters[0]); currentTargetSelectionIndex = 0; } else // Target all at once { for (int i = 0; i < targetableFighters.Count; i++) { targetableFighters[i].SetAsTargeted(true); } UpdateTargetedFighter(targetableFighters); } }