This commit is contained in:
aozhiwei 2023-03-28 11:01:44 +08:00
parent daa4c26099
commit 23eb5728ac

View File

@ -450,9 +450,14 @@ float Ability::GetFixedSped()
AttrAdditionHandle Ability::AddAttr(int attr_id, float rate)
{
if (IsValidHumanAttr(attr_id)) {
if (IsValidHumanAttr(attr_id) ||
IsValidHumanVirtualAttr(attr_id)) {
auto p = new AttrAddition(attr_id, rate);
list_add_tail(&p->entry, &std::get<1>(attr_add_[attr_id]));
if (IsValidHumanAttr(attr_id)) {
list_add_tail(&p->entry, &std::get<1>(attr_add_[attr_id]));
} else {
list_add_tail(&p->entry, &std::get<1>(vattr_add_[attr_id]));
}
RecalcAttrAddition(attr_id);
return p->ptr;
}
@ -471,9 +476,14 @@ void Ability::RemoveAttrAddition(AttrAdditionHandle handle)
AttrRuduceHandle Ability::DecAttr(int attr_id, float rate)
{
if (IsValidHumanAttr(attr_id)) {
if (IsValidHumanAttr(attr_id) ||
IsValidHumanVirtualAttr(attr_id)) {
auto p = new AttrRuduce(attr_id, rate);
list_add_tail(&p->entry, &std::get<1>(attr_dec_[attr_id]));
if (IsValidHumanAttr(attr_id)) {
list_add_tail(&p->entry, &std::get<1>(attr_dec_[attr_id]));
} else {
list_add_tail(&p->entry, &std::get<1>(vattr_dec_[attr_id]));
}
RecalcAttrRuduce(attr_id);
return p->ptr;
}
@ -528,16 +538,22 @@ void Ability::RecalcAttrRuduce(int attr_id)
float Ability::GetAttrAddition(int attr_id)
{
if (!IsValidHumanAttr(attr_id)) {
if (IsValidHumanAttr(attr_id)) {
return std::get<0>(attr_add_[attr_id]);
} else if (IsValidHumanVirtualAttr(attr_id)) {
return std::get<0>(vattr_add_[attr_id]);
} else {
return 0.0f;
}
return std::get<0>(attr_add_[attr_id]);
}
float Ability::GetAttrRuduce(int attr_id)
{
if (!IsValidHumanAttr(attr_id)) {
if (IsValidHumanAttr(attr_id)) {
return std::get<0>(attr_dec_[attr_id]);
} else if (IsValidHumanVirtualAttr(attr_id)) {
return std::get<0>(vattr_dec_[attr_id]);
} else {
return 0.0f;
}
return std::get<0>(attr_dec_[attr_id]);
}