1
This commit is contained in:
parent
40aebe83b6
commit
9df97b3262
@ -124,15 +124,10 @@ public:
|
||||
|
||||
void Init(Creature* c)
|
||||
{
|
||||
#ifdef NEW_NUM
|
||||
DefaultInit(c);
|
||||
#else
|
||||
if (hero_dto) {
|
||||
DtoInit(c);
|
||||
} else {
|
||||
DefaultInit(c);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void RecalcHp()
|
||||
@ -284,78 +279,6 @@ private:
|
||||
|
||||
void DtoInit(Creature* c)
|
||||
{
|
||||
std::array<float, kHAT_End> base_attr_abs = {0};
|
||||
std::array<float, kHAT_End> base_attr_rate = {0};
|
||||
|
||||
std::array<float, kHAT_End> pro_attr_abs = {0};
|
||||
std::array<float, kHAT_End> pro_attr_rate = {0};
|
||||
|
||||
std::array<float, kHAT_End> skill_attr_abs = {0};
|
||||
std::array<float, kHAT_End> skill_attr_rate = {0};
|
||||
|
||||
std::array<float, kHAT_End> chip_attr_abs = {0};
|
||||
std::array<float, kHAT_End> chip_attr_rate = {0};
|
||||
|
||||
std::array<float, kHAT_End> core_attr_abs = {0};
|
||||
std::array<float, kHAT_End> core_attr_rate = {0};
|
||||
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_base_xobj = hero_dto->At("attr_base");
|
||||
if (attr_base_xobj && attr_base_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_base_xobj, base_attr_abs, base_attr_rate);
|
||||
}
|
||||
}
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_base_xobj = hero_dto->At("rand_attr");
|
||||
if (attr_base_xobj && attr_base_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_base_xobj, base_attr_abs, base_attr_rate);
|
||||
}
|
||||
}
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_pro_xobj = hero_dto->At("attr_pro");
|
||||
if (attr_pro_xobj && attr_pro_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_pro_xobj, pro_attr_abs, pro_attr_rate);
|
||||
}
|
||||
}
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_skill_xobj = hero_dto->At("attr_skill");
|
||||
if (attr_skill_xobj && attr_skill_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_skill_xobj, skill_attr_abs, skill_attr_rate);
|
||||
}
|
||||
}
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_chip_xobj = hero_dto->At("attr_chip");
|
||||
if (attr_chip_xobj && attr_chip_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_chip_xobj, chip_attr_abs, chip_attr_rate);
|
||||
}
|
||||
}
|
||||
{
|
||||
std::shared_ptr<a8::XObject> attr_core_xobj = hero_dto->At("attr_core");
|
||||
if (attr_core_xobj && attr_core_xobj->IsArray()) {
|
||||
AttrHelper::ParseAttr(attr_core_xobj, core_attr_abs, core_attr_rate);
|
||||
}
|
||||
}
|
||||
|
||||
std::array<float, kHAT_End> finaly_attr_abs = base_attr_abs;
|
||||
std::array<float, kHAT_End> finaly_attr_rate = base_attr_rate;
|
||||
for (int i = 0; i < kHAT_End; ++i) {
|
||||
if (pro_attr_abs[i] > 0.000f) {
|
||||
finaly_attr_abs[i] = pro_attr_abs[i];
|
||||
}
|
||||
if (pro_attr_rate[i] > 0.000f) {
|
||||
finaly_attr_rate[i] = pro_attr_rate[i];
|
||||
}
|
||||
|
||||
finaly_attr_abs[i] += skill_attr_abs[i];
|
||||
finaly_attr_rate[i] += skill_attr_rate[i];
|
||||
|
||||
finaly_attr_abs[i] += chip_attr_abs[i];
|
||||
finaly_attr_rate[i] += chip_attr_rate[i];
|
||||
|
||||
finaly_attr_abs[i] += core_attr_abs[i];
|
||||
finaly_attr_rate[i] += core_attr_rate[i];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -861,8 +784,8 @@ float BattleDataContext::CalcDmg(Creature* target, IBullet* bullet)
|
||||
vDmg = owner_.Get()->GetAbility()->GetAttr(kHVAT_DirectAtk) * vBullet / BDM * (1 + vNormalDamageDealtRateIn) * ( 1 + vNormalDamageTakenRateIn);
|
||||
}
|
||||
|
||||
float DDR = 0.0f;
|
||||
float DTR = 0.0f;
|
||||
float DDR = owner_.Get()->GetAbility()->GetAttr(kHAT_vDamageDealtRateIn);
|
||||
float DTR = target->GetAbility()->GetAttr(kHAT_vDamageTakenRateIn);
|
||||
float finaly_dmg = vDmg * vEbc * vEd * (1 + DDR) * (1 + DTR);
|
||||
#ifdef MYDEBUG
|
||||
if (owner_.Get()->IsPlayer()) {
|
||||
@ -1276,7 +1199,7 @@ float BattleDataContext::GetDrugTimePct()
|
||||
|
||||
float BattleDataContext::GetDrugEfficacyPct()
|
||||
{
|
||||
return hero_ability_->GetDrugEfficacyPct();
|
||||
return owner_.Get()->GetAbility()->GetAttr(kHAT_vHealthGainRateIn);
|
||||
}
|
||||
|
||||
float BattleDataContext::GetTenacityPct()
|
||||
|
Loading…
x
Reference in New Issue
Block a user