aozhiwei 1e87d4adc1 1
2023-02-13 13:45:30 +08:00

35 lines
757 B
C++

#include "precompile.h"
#include "buff/disperse.h"
#include "creature.h"
#include "mt/Buff.h"
void DisperseBuff::Activate()
{
std::vector<int> del_buffs;
owner->TraverseBuff
(
[this, &del_buffs] (Buff* buff, bool& stop)
{
for (int tag : meta->_buff_param1_int_set) {
if (buff->meta->_tags.find(tag) != buff->meta->_tags.end()) {
del_buffs.push_back(buff->buff_uniid);
break;
}
}
});
for (int buff_uniid : del_buffs) {
owner->RemoveBuffByUniId(buff_uniid);
}
if (!del_buffs.empty()) {
owner->TryAddBuff(owner, meta->_int_buff_param2);
}
}
void DisperseBuff::Deactivate()
{
}