This commit is contained in:
aozhiwei 2023-03-28 15:37:21 +08:00
parent 71e5161e96
commit dc574f3739

View File

@ -99,6 +99,14 @@ struct AttrRuduce
Ability::Ability(CreatureWeakPtr owner)
{
for (auto& tuple : attr_abs_) {
std::get<0>(tuple) = .0f;
INIT_LIST_HEAD(&std::get<1>(tuple));
}
for (auto& tuple : attr_rate_) {
std::get<0>(tuple) = .0f;
INIT_LIST_HEAD(&std::get<1>(tuple));
}
for (auto& tuple : attr_add_) {
std::get<0>(tuple) = .0f;
INIT_LIST_HEAD(&std::get<1>(tuple));
@ -115,45 +123,34 @@ Ability::Ability(CreatureWeakPtr owner)
std::get<0>(tuple) = .0f;
INIT_LIST_HEAD(&std::get<1>(tuple));
}
Clear();
}
#if 0
float Ability::GetAttrAbs(int attr_id)
{
float attr_abs_val = GetBuffAttrAbs(attr_id);
if (attr_id == kHAT_Atk || attr_id == kHAT_Def) {
if (owner_.Get()) {
}
}
return attr_abs_val;
}
float Ability::GetAttrRate(int attr_id)
{
float attr_rate_val = GetBuffAttrRate(attr_id) / 100.0f;
return attr_rate_val;
}
float Ability::GetBuffAttrAbs(int attr_id)
{
if (IsValidHumanAttr(attr_id)) {
return buff_attr_abs_[attr_id];
}
return 0;
}
float Ability::GetBuffAttrRate(int attr_id)
{
if (IsValidHumanAttr(attr_id)) {
return buff_attr_rate_[attr_id];
}
return 0;
}
#endif
void Ability::Clear()
{
for (auto& tuple : attr_abs_) {
std::get<0>(tuple) = 0.0f;
while (!list_empty(&std::get<1>(tuple))) {
AttrAbs* e = list_first_entry(&std::get<1>(tuple),
AttrAbs,
entry);
e->ptr->data = nullptr;
list_del_init(&e->entry);
delete e;
}
}
for (auto& tuple : attr_rate_) {
std::get<0>(tuple) = 0.0f;
while (!list_empty(&std::get<1>(tuple))) {
AttrRate* e = list_first_entry(&std::get<1>(tuple),
AttrRate,
entry);
e->ptr->data = nullptr;
list_del_init(&e->entry);
delete e;
}
}
for (auto& tuple : attr_add_) {
std::get<0>(tuple) = 0.0f;
while (!list_empty(&std::get<1>(tuple))) {