Exemple #1
0
    public IEnumerator Turn()
    {
        is_turn_end = false;
        foreach (var unit in good_units)
        {
            unit.OnTurnStart();
            if (unit.stun)
            {
                unit.stun = false;
            }
            if (unit.poison > 0.0f)
            {
                unit.current_hp -= unit.poison;
            }

            ability_ui.gameObject.SetActive(true);
            yield return(ability_ui.WaitInput(unit, good_units, evil_units, OnAbilitySelected));

            ability_ui.gameObject.SetActive(false);
            yield return(new WaitForSeconds(1.0f));
        }
        RemoveDead();
        foreach (var unit in evil_units)
        {
            unit.OnTurnStart();
            if (unit.poison > 0)
            {
                unit.current_hp -= unit.poison;
            }
            if (unit.current_hp > 0.0f)
            {
                if (unit.stun)
                {
                    unit.stun = false;
                }
                if (unit.poison > 0.0f)
                {
                    unit.current_hp -= unit.poison;
                }
                else
                {
                    AI.MakeAction(unit, evil_units, good_units);
                }
            }
            yield return(new WaitForSeconds(1.0f));
        }
        RemoveDead();
        is_turn_end = true;
        yield return(null);
    }
Exemple #2
0
    public IEnumerator Turn()
    {
        is_turn_end = false;
        foreach (var unit in good_units)
        {
            if (unit.GetStunStatus() != null)
            {
                unit.OnTurnStart();
                if (unit.IsUnitStatuses())
                {
                    unit.StatusDamage();
                    yield return(new WaitForSeconds(1.0f));
                }
            }
            else
            {
                unit.OnTurnStart();
                boss.GetComponent <Button>().interactable = true;
                ability_ui.gameObject.SetActive(true);

                yield return(ability_ui.WaitInput(unit, good_units, evil_units, OnAbilitySelected));

                if (unit.IsUnitStatuses())
                {
                    unit.StatusDamage();
                    yield return(new WaitForSeconds(1.0f));
                }
                ability_ui.gameObject.SetActive(false);
                boss.GetComponent <Button>().interactable = false;
            }
            RemoveDead();
            if (GameIsEnd())
            {
                StopCoroutine(Turn());
                intWindow.ShowWindow();
            }
            yield return(new WaitForSeconds(1.0f));

            unit.OnTurnEnd();
        }

        RemoveDead();
        if (GameIsEnd())
        {
            StopCoroutine(Turn());
            intWindow.ShowWindow();
        }
        foreach (var unit in evil_units)
        {
            unit.OnTurnStart();
            if (unit.IsUnitStatuses())
            {
                if (unit.GetStunStatus() == null)
                {
                    AI.MakeAction(unit, evil_units, good_units);
                }
                else
                {
                    unit.StatusDamage();
                }
                yield return(new WaitForSeconds(1.0f));
            }
            else
            {
                //Debug.Log(unit.unit_name + " Нет статусов");
                AI.MakeAction(unit, evil_units, good_units);
            }
            if (unit.current_hp > 0.0f)
            {
                yield return(new WaitForSeconds(1.0f));
            }
            unit.OnTurnEnd();
        }
        RemoveDead();
        if (GameIsEnd())
        {
            StopCoroutine(Turn());
            intWindow.ShowWindow();
        }
        is_turn_end = true;
        yield return(null);
    }