1
This commit is contained in:
parent
4d444476b3
commit
7a660c1f6c
@ -19,6 +19,36 @@ public:
|
|||||||
std::array<float, kHAT_End> attr_abs_ = {};
|
std::array<float, kHAT_End> attr_abs_ = {};
|
||||||
std::array<float, kHAT_End> attr_rate_ = {};
|
std::array<float, kHAT_End> attr_rate_ = {};
|
||||||
|
|
||||||
|
float GetAtk()
|
||||||
|
{
|
||||||
|
return hero_meta->i->damage();
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetDef()
|
||||||
|
{
|
||||||
|
return hero_meta->i->defence();
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetCritAtk()
|
||||||
|
{
|
||||||
|
return hero_meta->i->crit_atk();
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetCritAtkRatio()
|
||||||
|
{
|
||||||
|
return hero_meta->i->crit_atk_ratio();
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetDodge()
|
||||||
|
{
|
||||||
|
return hero_meta->i->miss();
|
||||||
|
}
|
||||||
|
|
||||||
|
float GetDodgeDamageRuduce()
|
||||||
|
{
|
||||||
|
return hero_meta->i->miss_damage_ruduce();
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class WeaponAbility
|
class WeaponAbility
|
||||||
@ -313,7 +343,7 @@ float BattleDataContext::CalcDmg(Creature* target, Bullet* bullet)
|
|||||||
float total_atk = GetTotalAtk(bullet);
|
float total_atk = GetTotalAtk(bullet);
|
||||||
float normal_dmg = total_atk * (1 - target->GetBattleContext()->GetDef() / 1000);
|
float normal_dmg = total_atk * (1 - target->GetBattleContext()->GetDef() / 1000);
|
||||||
float crit = IsCrit() ? GetCritRate() : 0;
|
float crit = IsCrit() ? GetCritRate() : 0;
|
||||||
float dodge = IsDodge() ? GetDodgeRate() : 0;
|
float dodge = IsDodge() ? GetDodgeRuduce() : 0;
|
||||||
float finaly_dmg = normal_dmg * (1.0f + crit + dodge);
|
float finaly_dmg = normal_dmg * (1.0f + crit + dodge);
|
||||||
return finaly_dmg;
|
return finaly_dmg;
|
||||||
}
|
}
|
||||||
@ -358,12 +388,12 @@ bool BattleDataContext::IsDodge()
|
|||||||
|
|
||||||
float BattleDataContext::GetCritRate()
|
float BattleDataContext::GetCritRate()
|
||||||
{
|
{
|
||||||
return crit_damage_rate;
|
return crit_damage_rate_;
|
||||||
}
|
}
|
||||||
|
|
||||||
float BattleDataContext::GetDodgeRate()
|
float BattleDataContext::GetDodgeRuduce()
|
||||||
{
|
{
|
||||||
return dodge_damage_rate;
|
return dodge_damage_ruduce_;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<WeaponAbility> BattleDataContext::GetWeaponByUniId(long long weapon_uuid)
|
std::shared_ptr<WeaponAbility> BattleDataContext::GetWeaponByUniId(long long weapon_uuid)
|
||||||
@ -404,4 +434,10 @@ void BattleDataContext::Init(Creature* c)
|
|||||||
if (!hero_ability_->hero_uniid_) {
|
if (!hero_ability_->hero_uniid_) {
|
||||||
hero_ability_->hero_uniid_ = App::Instance()->AllocTempHeroUniId();
|
hero_ability_->hero_uniid_ = App::Instance()->AllocTempHeroUniId();
|
||||||
}
|
}
|
||||||
|
atk_ = hero_ability_->GetAtk();
|
||||||
|
def_ = hero_ability_->GetDef();
|
||||||
|
crit_ = hero_ability_->GetCritAtk();
|
||||||
|
crit_damage_rate_ = hero_ability_->GetCritAtkRatio();
|
||||||
|
dodge_ = hero_ability_->GetDodge();
|
||||||
|
dodge_damage_ruduce_ = hero_ability_->GetDodgeDamageRuduce();
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ private:
|
|||||||
bool IsCrit();
|
bool IsCrit();
|
||||||
float GetCritRate();
|
float GetCritRate();
|
||||||
bool IsDodge();
|
bool IsDodge();
|
||||||
float GetDodgeRate();
|
float GetDodgeRuduce();
|
||||||
std::shared_ptr<WeaponAbility> GetWeaponByUniId(long long weapon_uniid);
|
std::shared_ptr<WeaponAbility> GetWeaponByUniId(long long weapon_uniid);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -89,7 +89,7 @@ private:
|
|||||||
float atk_ = 0;
|
float atk_ = 0;
|
||||||
float def_ = 0;
|
float def_ = 0;
|
||||||
float crit_ = 0;
|
float crit_ = 0;
|
||||||
float crit_damage_rate = 0;
|
float crit_damage_rate_ = 0;
|
||||||
float dodge_ = 0;
|
float dodge_ = 0;
|
||||||
float dodge_damage_rate = 0;
|
float dodge_damage_ruduce_ = 0;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user