1
This commit is contained in:
parent
3dfa04f2c6
commit
72540b8569
@ -43,6 +43,7 @@
|
||||
#include "buff/modify_attr.h"
|
||||
#include "buff/modify_base_attr.h"
|
||||
#include "buff/modify_grow_attr.h"
|
||||
#include "buff/direct_set_attr.h"
|
||||
#include "buff/vertigo.h"
|
||||
#include "buff/cond_add.h"
|
||||
#include "buff/distance_dmg_addition.h"
|
||||
@ -56,6 +57,8 @@ std::shared_ptr<Buff> BuffFactory::MakeBuff(const mt::Buff* buff_meta)
|
||||
return std::make_shared<ModifyBaseAttrBuff>();
|
||||
case kBET_ModifyGrowAttr:
|
||||
return std::make_shared<ModifyGrowAttrBuff>();
|
||||
case kBET_DirectSetAttr:
|
||||
return std::make_shared<DirectSetAttrBuff>();
|
||||
case kBET_SummonLoot:
|
||||
return std::make_shared<SummonLootBuff>();
|
||||
case kBET_DistanceDmgAddition:
|
||||
|
26
server/gameserver/buff/direct_set_attr.cc
Normal file
26
server/gameserver/buff/direct_set_attr.cc
Normal file
@ -0,0 +1,26 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include "buff/direct_set_attr.h"
|
||||
|
||||
#include "creature.h"
|
||||
#include "human.h"
|
||||
#include "car.h"
|
||||
#include "ability.h"
|
||||
|
||||
#include "mt/Buff.h"
|
||||
|
||||
void DirectSetAttrBuff::Activate()
|
||||
{
|
||||
int attr_id = meta->_int_buff_param1;
|
||||
float value = meta->GetBuffParam2(this);
|
||||
if (IsValidHumanAttr(attr_id)) {
|
||||
handle_ = owner->GetAbility()->AddAttrDirect(attr_id, value);
|
||||
}
|
||||
}
|
||||
|
||||
void DirectSetAttrBuff::Deactivate()
|
||||
{
|
||||
if (!handle_.expired()) {
|
||||
owner->GetAbility()->RemoveAttrDirect(handle_);
|
||||
}
|
||||
}
|
14
server/gameserver/buff/direct_set_attr.h
Normal file
14
server/gameserver/buff/direct_set_attr.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "buff.h"
|
||||
|
||||
class DirectSetAttrBuff : public Buff
|
||||
{
|
||||
public:
|
||||
|
||||
virtual void Activate() override;
|
||||
virtual void Deactivate() override;
|
||||
|
||||
private:
|
||||
AttrDirectHandle handle_;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user