private void ToPlayerAbilitySelectedState(Ability ability) { State = BattleGameStateType.AbilitySelected; SelectedAbility = ability; AbilitySelectedName.text = ability.Name.ToUpper(); AbilitySelectedRoot.gameObject.SetActive(true); foreach (var actor in Actors) { if (SelectedAbility.IsValidTarget(actor)) { actor.SetValidTargetState(EnemyParty.Contains(actor)); } else if (ability.User == actor) { actor.SetSelectedState(); } else { actor.SetNormalState(); } } }
private void ToIdleState() { EndTurnButton.interactable = !IsEnemyTurn; State = BattleGameStateType.PartyIdle; SelectedAbility = null; AbilitySelectedRoot.gameObject.SetActive(false); foreach (var a in Actors) { a.SetNormalState(); } foreach (var a in Abilities) { a.Toggled = false; } SelectedActor?.SetSelectedState(); }
private void ExecuteAbility(Ability ability, Actor target) { foreach (var actor in Actors) { actor.SetNormalState(); } State = BattleGameStateType.AbilityExecuting; EndTurnButton.interactable = false; foreach (var a in Abilities) { a.Disable = true; } ability.User.SetSelectedState(); AbilitySelectedName.text = ability.Name.ToUpper(); AbilitySelectedRoot.gameObject.SetActive(true); StartCoroutine(ExecuteAbilityCrt(ability, target)); }
private bool GameOverCheck() { if (!PlayerParty.First(p => p.Class == ClassType.Egg).IsAlive) { State = BattleGameStateType.GameOver; StartCoroutine(GameOverCrt()); return(true); } if (EnemyParty.All(p => !p.IsAlive)) { if (!VictoryScreen.gameObject.activeInHierarchy) { State = BattleGameStateType.GameOver; StartCoroutine(GameOverCrt()); return(true); } } return(false); }