|
@@ -43,6 +43,9 @@ namespace XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator
|
|
//神器属性
|
|
//神器属性
|
|
private const float Coefficient_Artifact = 1.1f;
|
|
private const float Coefficient_Artifact = 1.1f;
|
|
|
|
|
|
|
|
+ //随从受伤K系数
|
|
|
|
+ private static readonly float PET_HIT_DAMAGE_K = 0.5f;
|
|
|
|
+
|
|
//万分比.
|
|
//万分比.
|
|
public static float PERER = 10000.0f;
|
|
public static float PERER = 10000.0f;
|
|
|
|
|
|
@@ -394,10 +397,21 @@ namespace XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator
|
|
damage = CUtils.CastInt(damage * (1 + (attacker.mUnit.Level - hitter.mUnit.Level) * BOSS_LEVEL_SUBDUE));
|
|
damage = CUtils.CastInt(damage * (1 + (attacker.mUnit.Level - hitter.mUnit.Level) * BOSS_LEVEL_SUBDUE));
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
return Math.Max(damage, 1);
|
|
return Math.Max(damage, 1);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static int GetPetDamage(int damageBaseValue, XmdsVirtual pet)
|
|
|
|
+ {
|
|
|
|
+ //防御属性
|
|
|
|
+ float ingoreDmg = 1.0f - pet.MirrorProp.Defence / (pet.MirrorProp.Defence + GetDefenceAddition(pet.GetStateLv()));
|
|
|
|
+
|
|
|
|
+ //伤害变更(免伤,受伤加深)
|
|
|
|
+ float allDmgChg = GetFinalDamageValue(pet.MirrorProp.AllDmgAdd - pet.MirrorProp.AllDmgReduce);
|
|
|
|
+
|
|
|
|
+ int finalDmg = Math.Max(1, (int)(damageBaseValue * PET_HIT_DAMAGE_K * ingoreDmg * allDmgChg));
|
|
|
|
+ return finalDmg;
|
|
|
|
+ }
|
|
|
|
+
|
|
private static float GetFinalDamageValue(int value)
|
|
private static float GetFinalDamageValue(int value)
|
|
{
|
|
{
|
|
if (value < 0)
|
|
if (value < 0)
|