Beispiel #1
0
    IEnumerator SelectAbility(Being being) //should perhaps be called Select ability
    {
        Debug.Log("starting " + being.beingName + "'s turn" + " HP:" + being.GetResourceValue("HP", 1) + " STAMINA:" + being.GetResourceValue("STAMINA", 1));

        //Any looking for passive or some such would go here

        being.GetUseableActiveAbilities();

        if (being.useableAbilities.Count > 0)
        {
            if (being.playerControlled == true)
            {
                for (int i = 0; i < being.useableAbilities.Count; i++)
                {
                    Debug.Log(i + ". " + being.useableAbilities[i].abilityName);
                }

                if (playerSelection > -1)
                {
                    being.SelectTargets(being.useableAbilities[playerSelection - 1]);
                }
                if (being.selectedAbility == null)
                {
                    currentState = CombatStates.WAITFORPLAYERINPUT;
                }
                savedState = CombatStates.SELECTABILITY;
            }
            if (being.playerControlled == false)
            {
                being.SelectAnAbility();
                being.SelectTargets(being.selectedAbility);
                Debug.Log(being.beingName + " chooses " + being.selectedAbility.abilityName);
                yield return(new WaitForSeconds(textSpeed));

                CalculateToHit(being, being.selectedAbility, being.selectedTargets);
                yield return(new WaitForSeconds(textSpeed));

                nextTurnDone = false;
            }
        }
        else
        {
            Debug.Log(being.beingName + " can't do anything! (is this an error?)");
            nextTurnDone = false;
            yield return(null);
        }
    }