示例#1
0
    public float CalculateTakenDamage(Unit enemy)
    {
        //Actual Function we use to calculate damage
        Advantadge modifierIndex = CalculateTypeAdvantage(enemy.unitFlavor);
        float      damage        = ((2 * enemy.unitLevel / 10 + 2) * 5 * (enemy.attack / this.defense) / 50 + 2) * advantageMultiplier[(int)modifierIndex] * Random.Range(0.85f, 1.0f);

        return(damage);
    }
示例#2
0
    Advantadge CalculateTypeAdvantage(Flavor enemy_flavor)
    {
        Advantadge ret = Advantadge.NEUTRAL;

        //Using our flavour, and calculate wheter the enemy has advantage or disadvantage against us
        Flavor advantage1 = this.unitFlavor + 2;

        if ((int)advantage1 > 4)
        {
            advantage1 -= 5;
        }

        Flavor advantage2 = this.unitFlavor + 4;

        if ((int)advantage2 > 4)
        {
            advantage2 -= 5;
        }

        Flavor disadvantage1 = this.unitFlavor + 1;

        if ((int)disadvantage1 > 4)
        {
            disadvantage1 -= 5;
        }

        Flavor disadvantage2 = this.unitFlavor + 3;

        if ((int)disadvantage2 > 4)
        {
            disadvantage2 -= 5;
        }

        //Determine Advantage or disadvantage
        if (this.unitFlavor == enemy_flavor) //Enemy is of our same flavor
        {
            ret = Advantadge.NEUTRAL;
        }
        else if (enemy_flavor == advantage1 || enemy_flavor == advantage2) //The enemy has advantage on us
        {
            ret = Advantadge.ADVANTAGE;
        }
        else if (enemy_flavor == disadvantage1 || enemy_flavor == disadvantage2) //The enemy has disadvantage against us
        {
            ret = Advantadge.DISADVANTAGE;
        }

        return(ret);
    }