This commit is contained in:
aozhiwei 2022-09-08 17:23:59 +08:00
parent f91dc31972
commit 3d483e73e9

View File

@ -57,15 +57,11 @@ public:
void Init() void Init()
{ {
#if 0
DefaultInit();
#else
if (hero_dto) { if (hero_dto) {
DtoInit(); DtoInit();
} else { } else {
DefaultInit(); DefaultInit();
} }
#endif
} }
private: private:
@ -195,15 +191,11 @@ public:
void Init() void Init()
{ {
#if 1
DefaultInit();
#else
if (weapon_dto) { if (weapon_dto) {
DtoInit(); DtoInit();
} else { } else {
DefaultInit(); DefaultInit();
} }
#endif
} }
private: private:
@ -226,6 +218,9 @@ private:
std::array<float, kHAT_End> chip_attr_abs = {0}; std::array<float, kHAT_End> chip_attr_abs = {0};
std::array<float, kHAT_End> chip_attr_rate = {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 = weapon_dto->At("attr_base"); std::shared_ptr<a8::XObject> attr_base_xobj = weapon_dto->At("attr_base");
if (attr_base_xobj && attr_base_xobj->IsArray()) { if (attr_base_xobj && attr_base_xobj->IsArray()) {
@ -244,7 +239,33 @@ private:
AttrHelper::ParseAttr(attr_chip_xobj, chip_attr_abs, chip_attr_rate); AttrHelper::ParseAttr(attr_chip_xobj, chip_attr_abs, chip_attr_rate);
} }
} }
{
std::shared_ptr<a8::XObject> attr_core_xobj = weapon_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] += 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];
}
atk_ = finaly_attr_abs[kHAT_Atk] + base_attr_abs[kHAT_Atk] * finaly_attr_rate[kHAT_ATK_RATE];
crit_atk_ = finaly_attr_rate[kHAT_CRIT] * 1000;
crit_atk_ratio_ = finaly_attr_rate[kHAT_CRIT_DAMAGE_RATE];
} }
private: private: