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)
|
||||
{
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user