1
This commit is contained in:
parent
cb9a52f6c9
commit
ed80cb3fe8
@ -842,7 +842,37 @@ float BattleDataContext::CalcReceiveDmg(Creature* sender, float normal_dmg)
|
|||||||
|
|
||||||
float BattleDataContext::CalcSkillReceiveDmg(Creature* sender, float normal_dmg)
|
float BattleDataContext::CalcSkillReceiveDmg(Creature* sender, float normal_dmg)
|
||||||
{
|
{
|
||||||
|
g_calc_dmg_context = {0};
|
||||||
|
g_calc_dmg_context.is_crit = 0;
|
||||||
|
|
||||||
|
float vEbc = 1.0f;
|
||||||
|
float vEd = 1 - GetDef();
|
||||||
|
float X = (1 + sender->GetNetData()->GetHeroAbility()->GetCrit()) * (1 - GetBlock()) - 1;
|
||||||
|
if (X > 0.00001f) {
|
||||||
|
//触发暴击
|
||||||
|
float vCritBon = sender->GetNetData()->GetHeroAbility()->hero_meta->GetBasicMeta()->vOrigCriBon();
|
||||||
|
float E = ProEffect(X, vCritBon); //E >= 0
|
||||||
|
if (E > 0.00001f) {
|
||||||
|
vEbc = 1 + E;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//触发格挡 0,-1
|
||||||
|
float vBlock = GetHeroAbility()->hero_meta->GetBasicMeta()->vOrigBloDef();
|
||||||
|
float E = ProEffect(X, -vBlock); //E >= 0
|
||||||
|
if (E < 0.00001f) {
|
||||||
|
vEbc = 1 + E;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
float BDM = 100;
|
||||||
|
|
||||||
|
float vSkillDamageDealtRateIn = 0.0f;
|
||||||
|
float vSkillDamageTakenRateIn = 0.0f;
|
||||||
|
float vDmg = normal_dmg * (1 + vSkillDamageDealtRateIn) * (1 + vSkillDamageTakenRateIn);
|
||||||
|
|
||||||
|
float DDR = 0.0f;
|
||||||
|
float DTR = 0.0f;
|
||||||
|
float finaly_dmg = vDmg * vEbc * vEd * (1 + DDR) * (1 + DTR);
|
||||||
|
return std::max(1.0f, std::round(finaly_dmg));
|
||||||
}
|
}
|
||||||
|
|
||||||
float BattleDataContext::CalcDmg(Explosion* e)
|
float BattleDataContext::CalcDmg(Explosion* e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user