예제 #1
0
        public void FinalizeCharacterTurn()
        {
            if (ActualCharacterHasWalked != ActualCharacterHasAttacked)
            {
                characters[actualCharacter].ActionGauge -= 0.8f;
            }
            else if (ActualCharacterHasWalked && ActualCharacterHasAttacked)
            {
                characters[actualCharacter].ActionGauge -= 1f;
            }
            else
            {
                characters[actualCharacter].ActionGauge -= 0.5f;
            }

            ActualCharacter.CounterAttack = true;
            actualCharacter = null;
        }
예제 #2
0
        public void NextCharacterTurn()
        {
            LastAction = LastAction.None;
            var selectedCharacters = from key in characters.Keys
                                     where characters[key].ActionGauge > 1
                                     select key;
            int count = selectedCharacters.Count();

            while (count == 0)
            {
                IncreaseActionGauges();
                selectedCharacters = from key in characters.Keys
                                     where characters[key].ActionGauge > 1
                                     select key;
                count = selectedCharacters.Count();
            }

            // Dos personagens prontos para jogar, selecione aleatóriamente
            float index = RandomMath.RandomBetween(0, count);

            if (index == count)
            {
                index--;
            }

            actualCharacter = selectedCharacters.ElementAt((int)Math.Floor(index));
            if (ActualCharacter.Health.IsDead)
            {
                ActualCharacterHasAttacked = true;
                ActualCharacterHasWalked   = true;
                FinalizeCharacterTurn();
                NextCharacterTurn();
            }

            ActualCharacterHasAttacked = false;
            ActualCharacterHasWalked   = false;
        }