Example #1
0
        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();
                }
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }