Example #1
0
    public static int CalculateElementDamageToPlayer(Monster m, Damage x, Resistance y) // When monster attacks player
    {
        x.RunCritDice(0, 100, 5, 1.5f);
        int d = 0;
        int r = y.GetResistanceAmount();

        int ele_halfsies = (int)(x.GetDamageAmount() / 2f);
        int arm_halfsies = ele_halfsies;

        int halfe = 0;
        int halfa = 0;

        if (y.GetResistanceType() != Damage.DamageType.Normal)
        {
            if ((int)x.GetDamageType() == (int)y.GetResistanceType())    // if the damage element is the same as players resistant element
            {
                if (r > 100)
                {
                    halfe = (int)((ele_halfsies - ((ele_halfsies * y.GetResistanceAmount()) / 100f)));
                }
                else if (r == 0)
                {
                    halfe = ele_halfsies;
                }
                else if (r != 0)
                {
                    halfe = (int)(ele_halfsies - ((ele_halfsies * y.GetResistanceAmount()) / 100));
                }
            }
        }
        else
        {
            arm_halfsies += ele_halfsies;
            halfe         = 0;
        }
        var ps = GameObject.Find("Player").GetComponent <Player_Stats>();

        // PLACE ARMOR FORMULA HERE

        if (m.level >= (ps.playerLevel - 10))
        {
            halfa = (arm_halfsies - (ps.armor));
        }
        else
        {
            halfa = ((arm_halfsies - (int)(ps.armor / (ps.playerLevel / (25f * ps.playerLevel)))));
        }

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

        d = halfa + halfe;

        return(d);
    }