Exemple #1
0
    /// <summary>
    /// 物理伤害公式
    /// </summary>
    /// <param name="s1_skillpercent">技能伤害千分比</param>
    /// <param name="s1_phyattack">物理攻击</param>
    /// <param name="ReducePhyDefend">物理穿透护甲</param>
    /// <param name="s2_phydefend">防御方护甲</param>
    /// <param name="ReducePhyDamage">物理减免伤害</param>
    /// <param name="s1_skilldamage">技能伤害固定值</param>
    /// <returns>物理伤害</returns>
    private static int CALC_SOLDIER_PHYDAMAGE(int s1_skillpercent,
                                              int s1_phyattack,
                                              int ReducePhyDefend,
                                              int s2_phydefend,
                                              int ReducePhyDamage,
                                              int s1_skilldamage)
    {
        float k13          = ConfigM.GetWhiteNinjaK(1) * 0.001f;
        float k14          = ConfigM.GetWhiteNinjaK(2) * 0.001f;
        float SkillPercent = s1_skillpercent * 0.001f;
        //绝对防御值。扣除穿透护甲
        int Defense = s2_phydefend - ReducePhyDefend;

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

        float f = Defense * k13;
        float g = 1.0f + Defense * k14;

        float ff = 1.0f - (f / g);

        float value = SkillPercent * (s1_phyattack * ff - ReducePhyDamage) + s1_skilldamage;

        return((int)value);
    }
Exemple #2
0
    /// <summary>
    /// 魔法伤害公式
    /// </summary>
    /// <param name="s1_skillpercent">技能伤害千分比</param>
    /// <param name="s1_magicattack">魔法攻击</param>
    /// <param name="ReduceMagicDefend">魔法忽视防御</param>
    /// <param name="s2_magicdefend">防御方护甲</param>
    /// <param name="ReduceMagicDamage">魔法减免伤害</param>
    /// <param name="s1_skilldamage">技能伤害固定值</param>
    /// <returns>物理伤害</returns>
    private static int CALC_SOLDIER_MAGICDAMAGE(int s1_skillpercent,
                                                int s1_magicattack,
                                                int ReduceMagicDefend,
                                                int s2_magicdefend,
                                                int ReduceMagicDamage,
                                                int s1_skilldamage)
    {
        float k15          = ConfigM.GetWhiteNinjaK(3) * 0.001f;
        float SkillPercent = s1_skillpercent * 0.001f;
        //魔方伤害减免百分比
        float ReducePercent = ConfigM.GetReduceMagicPercent(s2_magicdefend);

        float ff = 1.0f + ReduceMagicDefend * k15 - ReducePercent;

        if (ff < 0.0f)
        {
            UnityEngine.Debug.LogError("出现负值");
        }


        float value = SkillPercent * (s1_magicattack * ff - ReduceMagicDamage) + s1_skilldamage;

        return((int)value);
    }