Exemple #1
0
    private IEnumerator StandardAttack()
    {
        animationController.Play("Attack Animation");

        yield return(new WaitForSeconds(1));

        if (turnController.GetForestConversion())
        {
            damageText.text = "FOREST CONVERSION";

            damageText.enabled = true;

            yield return(new WaitForSeconds(1));

            StartCoroutine(TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2)), false));

            yield return(new WaitForSeconds(1));

            damageText.enabled = false;

            turnController.SetForestConversion(true);
        }
        else
        {
            chance = Random.Range(1, 3);

            switch (chance)
            {
            case 1:
                paladinController.StartCoroutine(paladinController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2))));
                break;

            case 2:
                valkyrieController.StartCoroutine(valkyrieController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2))));
                break;

            case 3:
                sageController.StartCoroutine(sageController.TakeDamage(Random.Range(attackPower - (attackPower / 2), attackPower + (attackPower / 2))));
                break;
            }
        }
    }
Exemple #2
0
    public IEnumerator TakeDamage(int damage)
    {
        if (turnController.GetForestConversion())
        {
            increaseText.text = "forest conversion";
        }
        else
        {
            damage -= (damage * (defencePower)) / 100;

            increaseText.color = Color.white;
            health            -= damage;

            damageStart = damage - 50;

            animationController.Play("Damaged Animation");
            takeDamageSound.Play();

            increaseText.enabled = true;

            while (damageStart != damage + 1)
            {
                increaseText.text = " " + damageStart;
                damageStart++;
                yield return(new WaitForSeconds(0.00000001f));
            }

            chance = Random.Range(0, 99);

            if (chance > 80)
            {
                special += 2;
            }
            else if (chance > 50)
            {
                special++;
            }

            if (special > MAX_SPECIAL)
            {
                special = MAX_SPECIAL;
            }

            if (health <= 0)
            {
                b_isDead = true;
                health   = 0;
                if (b_isWounded)
                {
                    woundedImage.enabled = false;
                    b_isWounded          = false;
                }
                else
                {
                    spriteImage.material.color = transparent;
                }

                deadImage.enabled = true;
            }
            else if (health < (MAX_HEALTH * 20) / 100)
            {
                b_isWounded = true;
                spriteImage.material.color = transparent;
                woundedImage.enabled       = true;
            }

            UpdateStats();
        }



        yield return(new WaitForSeconds(1));

        increaseText.enabled = false;
    }