1
This commit is contained in:
parent
71e5161e96
commit
dc574f3739
@ -99,6 +99,14 @@ struct AttrRuduce
|
|||||||
|
|
||||||
Ability::Ability(CreatureWeakPtr owner)
|
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_) {
|
for (auto& tuple : attr_add_) {
|
||||||
std::get<0>(tuple) = .0f;
|
std::get<0>(tuple) = .0f;
|
||||||
INIT_LIST_HEAD(&std::get<1>(tuple));
|
INIT_LIST_HEAD(&std::get<1>(tuple));
|
||||||
@ -115,45 +123,34 @@ Ability::Ability(CreatureWeakPtr owner)
|
|||||||
std::get<0>(tuple) = .0f;
|
std::get<0>(tuple) = .0f;
|
||||||
INIT_LIST_HEAD(&std::get<1>(tuple));
|
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()
|
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_) {
|
for (auto& tuple : attr_add_) {
|
||||||
std::get<0>(tuple) = 0.0f;
|
std::get<0>(tuple) = 0.0f;
|
||||||
while (!list_empty(&std::get<1>(tuple))) {
|
while (!list_empty(&std::get<1>(tuple))) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user