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; }
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; }