1
This commit is contained in:
parent
71e5161e96
commit
dc574f3739
@ -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))) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user