Beispiel #1
0
    //Checks and resolves resolution of Reflect, Echo, and Revenge
    public void AttackStatusChecks(HeroManager attacker, HeroManager defender)
    {
        int attackersDefense = attacker.defense;
        int defendersDefense = defender.defense;

        attackersAttack = attacker.attack;
        defendersAttack = defender.attack;

        if (attackersDefense < 0)
        {
            attackersDefense = 0;
        }

        if (defendersDefense < 0)
        {
            defendersDefense = 0;
        }

        if (attackersAttack < 0)
        {
            attackersAttack = 0;
        }

        if (defendersAttack < 0)
        {
            defendersAttack = 0;
        }

        CriticalStrikeCheck(attacker, defender);

        if (defender.hasReflect)
        {
            if (!defender.GetComponentInParent <Player>().isActive)
            {
                atk_damage = attackersAttack - attackersDefense;
                //attacker.TakeDamage (atk_damage, defender);
                DealDamage(atk_damage, defender, attacker);
                Debug.Log("Damage Reflected");
                attacker.DisplayDamageText(atk_damage);
            }
        }
        else
        {
            if (defender.hasDefend)
            {
                HeroManager defenderHero         = defender.GetComponent <Defend>().source.GetComponent <HeroManager>();
                int         defenderHerosDefense = defenderHero.defense;

                atk_damage = attackersAttack - defenderHerosDefense;
                DealDamage(atk_damage, attacker, defenderHero);
                defenderHero.DisplayDamageText(atk_damage);
                Debug.Log("Defend!");
            }
            else
            {
                //Normal Damage	route
                atk_damage = attackersAttack - defendersDefense;

                DealDamage(atk_damage, attacker, defender);
                defender.DisplayDamageText(atk_damage);
            }
        }

        //Revenge
        if (defender.hasRevenge)
        {
            if (!defender.GetComponentInParent <Player>().isActive)
            {
                Attack(defender, attacker);
                Debug.Log("Revenge!");
            }


            // atk_damage = defendersAttack-attackersDefense;
            // //attacker.TakeDamage (atk_damage, defender);
            // DealDamage(atk_damage, defender, attacker);
            // Debug.Log("Revenge!");
            // attacker.DisplayDamageText(atk_damage);
        }
    }    //Attack Status Checks