This commit is contained in:
aozhiwei 2023-03-27 20:52:24 +08:00
parent 08e2e1e119
commit ac8bb968bf
2 changed files with 15 additions and 3 deletions

View File

@ -548,6 +548,17 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet)
g_calc_dmg_context = {0}; g_calc_dmg_context = {0};
g_calc_dmg_context.is_crit = IsCrit(bullet) ? 1 : 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(kHAT_Atk)); //连加
finaly_dmg *= target->GetAbility()->GetAttrRuduce(kHAT_Atk); //(1-减免) 连乘
#else
float total_atk = GetTotalAtk(bullet); float total_atk = GetTotalAtk(bullet);
if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) { if (bullet->GetSkillMeta() && bullet->GetSkillMeta()->_number_meta) {
switch (bullet->GetSkillMeta()->GetMagicId()) { switch (bullet->GetSkillMeta()->GetMagicId()) {
@ -590,6 +601,7 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet)
}); });
owner_.Get()->SendDebugMsg(data); owner_.Get()->SendDebugMsg(data);
} }
#endif
#endif #endif
finaly_dmg = std::max(1.0f, finaly_dmg); finaly_dmg = std::max(1.0f, finaly_dmg);
if (g_calc_dmg_context.is_crit) { if (g_calc_dmg_context.is_crit) {
@ -650,7 +662,7 @@ float BattleDataContext::CalcDmg(Explosion* e)
float BattleDataContext::GetTotalAtk(IBullet* bullet) float BattleDataContext::GetTotalAtk(IBullet* bullet)
{ {
float total_atk = (GetHeroTotalAtk() / 100 + 0) * GetWeaponAtk(bullet); float total_atk = (GetHeroTotalAtk() / 100) * GetWeaponAtk(bullet);
return total_atk; return total_atk;
} }

View File

@ -3130,8 +3130,8 @@ void Human::ProcGemStoneItem(AddItemDTO& dto)
gemstone, gemstone,
false); false);
GetAbility()->AddAtkAddition(dto.item_meta->_atk); GetAbility()->AddAtkAddition(dto.item_meta->_atk);
SetMaxHP(GetMaxHP() + dto.item_meta->_max_hp * GetMaxHP()); SetMaxHP(GetMaxHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP());
SetHP(GetHP() + dto.item_meta->_max_hp * GetMaxHP()); SetHP(GetHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP());
room->frame_event.AddPropChg room->frame_event.AddPropChg
( (
GetWeakPtrRef(), GetWeakPtrRef(),