1
This commit is contained in:
parent
f91dc31972
commit
3d483e73e9
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user