44 lines
958 B
C++
44 lines
958 B
C++
#include "precompile.h"
|
|
|
|
#include "buff/modify_base_attr.h"
|
|
|
|
#include "creature.h"
|
|
#include "human.h"
|
|
#include "car.h"
|
|
|
|
#include "mt/Buff.h"
|
|
|
|
void ModifyBaseAttrBuff::Activate()
|
|
{
|
|
int attr_id = meta->_int_buff_param1;
|
|
if (IsValidHumanAttr(attr_id)) {
|
|
float value = meta->GetBuffParam2(this);
|
|
switch (meta->_int_buff_param4) {
|
|
case 1:
|
|
{
|
|
rate_handle_ = owner->GetAbility()->AddAttrRate(attr_id, value);
|
|
}
|
|
break;
|
|
case 2:
|
|
{
|
|
abs_handle_ = owner->GetAbility()->AddAttrAbs(attr_id, value);
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void ModifyBaseAttrBuff::Deactivate()
|
|
{
|
|
if (!abs_handle_.expired()) {
|
|
owner->GetAbility()->RemoveAttrAbs(abs_handle_);
|
|
}
|
|
if (!rate_handle_.expired()) {
|
|
owner->GetAbility()->RemoveAttrRate(rate_handle_);
|
|
}
|
|
}
|