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

View File

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