/// <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); }
/// <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); }