This commit is contained in:
aozhiwei 2023-03-28 12:08:13 +08:00
parent 19dc2f68d2
commit 123aba42fc
2 changed files with 9 additions and 50 deletions

View File

@ -193,6 +193,7 @@ private:
{
hp_ = finaly_attr_abs[kHAT_Hp] + base_attr_abs[kHAT_Hp] * finaly_attr_rate[kHAT_HP_RATE];
atk_ = finaly_attr_abs[kHAT_Atk] + base_attr_abs[kHAT_Atk] * finaly_attr_rate[kHAT_ATK_RATE];
def_ = finaly_attr_abs[kHAT_Def] + base_attr_abs[kHAT_Def] * finaly_attr_rate[kHAT_DEF_RATE];
crit_atk_ = finaly_attr_rate[kHAT_CRIT] * 1000;
crit_atk_ratio_ = finaly_attr_rate[kHAT_CRIT_DAMAGE_RATE];
dodge_ = finaly_attr_rate[kHAT_DODGE];
@ -557,17 +558,6 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet)
g_calc_dmg_context = {0};
g_calc_dmg_context.is_crit = IsCrit(bullet) ? 1 : 0;
#if 1
float total_atk = GetTotalAtk(bullet);
float normal_dmg = total_atk *
(1 - target->GetBattleContext()->GetDef() / (target->GetBattleContext()->GetDef() + 200));
if (g_calc_dmg_context.is_crit) {
normal_dmg *= 1.5;
}
float finaly_dmg = normal_dmg;
finaly_dmg *= (1 + owner_.Get()->GetAbility()->GetAttrAddition(kHVAT_Dmg)); //连加
finaly_dmg *= target->GetAbility()->GetAttrRuduce(kHVAT_Dmg); //(1-减免) 连乘
#else
float total_atk = GetTotalAtk(bullet);
if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) {
switch (bullet->GetSkillMeta()->GetMagicId()) {
@ -584,34 +574,15 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet)
break;
}
}
float normal_dmg = total_atk * (1 - target->GetBattleContext()->GetDef() / (target->GetBattleContext()->GetDef() + 400));
normal_dmg *= 1 + bullet->GetStrengthenWall();
float crit = g_calc_dmg_context.is_crit ? GetCritRate(bullet) : 0;
float dodge = IsDodge(bullet) ? GetDodgeRuduce(bullet) : 0;
float finaly_dmg = normal_dmg * (1.0f + crit + dodge);
finaly_dmg *= (1 + owner_.Get()->GetAbility()->GetDmgAddition());
finaly_dmg *= (1 - target->GetAbility()->GetDmgRuduce());
#if 1
finaly_dmg *= (1 + bullet->GetStrengthenWall());
#endif
#ifdef DEBUG
if (owner_.Get()->IsPlayer()) {
std::string data = a8::Format
("数值: 子弹攻击怪物 total_atk:%f hero_atk:%f weapon_%f normal_dmg:%f crit:%f dodge:%f finaly_dmg:%f target_def:%f",
{
total_atk,
normal_dmg,
GetHeroTotalAtk(),
GetWeaponAtk(bullet),
crit,
dodge,
finaly_dmg,
target->GetBattleContext()->GetDef()
});
owner_.Get()->SendDebugMsg(data);
float normal_dmg = total_atk *
(1 - target->GetBattleContext()->GetDef() / (target->GetBattleContext()->GetDef() + 200));
if (g_calc_dmg_context.is_crit) {
normal_dmg *= 1.5;
}
#endif
#endif
float finaly_dmg = normal_dmg;
finaly_dmg *= (1 + owner_.Get()->GetAbility()->GetAttrAddition(kHVAT_Dmg)); //连加
finaly_dmg *= target->GetAbility()->GetAttrRuduce(kHVAT_Dmg); //(1-减免) 连乘
finaly_dmg = std::max(1.0f, finaly_dmg);
if (g_calc_dmg_context.is_crit) {
g_calc_dmg_context.crit_dmg = finaly_dmg;

View File

@ -2,18 +2,6 @@
#include "weakptr.h"
/*
1
2
3(),()
4
=*1-
=*
*/
namespace MetaData
{
struct Equip;