This commit is contained in:
aozhiwei 2019-07-22 16:31:58 +08:00
parent 49084d0a1e
commit 50cbf2f3e9
2 changed files with 17 additions and 0 deletions

View File

@ -482,6 +482,7 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
},
&xtimer_attacher.timer_list_
);
ClearBuffList();
room->frame_event.AddDead(this);
room->OnHumanDie(this);
{
@ -1209,6 +1210,21 @@ void Human::RemoveBuffByEffectId(int buff_effect_id)
}
}
void Human::ClearBuffList()
{
for (auto itr = buff_list_.begin(); itr != buff_list_.end(); ++itr) {
if (buff_effect_[itr->meta->i->buff_effect()] == &(*itr)) {
buff_effect_[itr->meta->i->buff_effect()] = nullptr;
}
room->frame_event.RemoveBuff(this, itr->meta->i->buff_id());
}
buff_list_.clear();
buff_effect_ = {};
buff_attr_abs_ = {};
buff_attr_rate_ = {};
RecalcBuffAttr();
}
bool Human::HasBuffEffect(int buff_effect_id)
{
return GetBuffByEffectId(buff_effect_id) != nullptr;

View File

@ -186,6 +186,7 @@ class Human : public Entity
void AddBuff(MetaData::Buff* buff_meta);
void RemoveBuffById(int buff_id);
void RemoveBuffByEffectId(int buff_effect_id);
void ClearBuffList();
bool HasBuffEffect(int buff_effect_id);
Buff* GetBuffByEffectId(int effect_id);
void RecalcBuffAttr();