buff添加skill_lv

This commit is contained in:
aozhiwei 2019-07-30 10:28:10 +08:00
parent 54091fd042
commit bdfaf1ac33
4 changed files with 19 additions and 12 deletions

View File

@ -53,7 +53,7 @@ void Buff::ProcReleaseDcgr(const a8::XParams& param)
for (Human* hum : cell->human_list) {
if (hum != sender && !hum->HasBuffEffect(kBET_Invincible)) {
if (hum->TestCollision(&collider)) {
hum->AddBuff(add_buff);
hum->AddBuff(add_buff, buff->skill_lv);
}
}
}

View File

@ -1143,6 +1143,11 @@ int Human::GetSkillCd()
}
}
int Human::GetSkillLv()
{
return TankLv();
}
float Human::GetSkillAtkAdd(int skill_id)
{
if (!skill_meta_) {
@ -1174,21 +1179,21 @@ void Human::TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type)
case kBuffTargetSelf: //自己
{
if (hum == this) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, GetSkillLv());
}
}
break;
case kBuffTargetFriendly: //友军
{
if (hum->team_id == team_id) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, GetSkillLv());
}
}
break;
case kBuffTargetEnemy: //敌军
{
if (hum->team_id != team_id) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, GetSkillLv());
}
}
break;
@ -1206,7 +1211,7 @@ void Human::TriggerBuff(std::set<Entity*>& target_list, BuffTriggerType_e trigge
}
}
void Human::AddBuff(MetaData::Buff* buff_meta)
void Human::AddBuff(MetaData::Buff* buff_meta, int skill_lv)
{
if (buff_meta->i->buff_effect() == kBET_ImmediatelyRevive) {
++immediately_revive_times_;
@ -1236,6 +1241,7 @@ void Human::AddBuff(MetaData::Buff* buff_meta)
}
}
Buff* buff = &a8::FastAppend(buff_list_);
buff->skill_lv = skill_lv;
buff->owner = this;
buff->meta = buff_meta;
//buff->skill_meta
@ -1456,7 +1462,7 @@ void Human::OnEnterGrass()
hum->grass_hide_timer_list_ = nullptr;
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(GRASS_HIDE_BUFF_ID);
if (buff_meta) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, hum->GetSkillLv());
}
};
grass_hide_timer_list_ =
@ -1514,7 +1520,7 @@ void Human::CheckSpecObject()
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(item_meta->i->buff_id());
if (buff_meta) {
AddBuff(buff_meta);
AddBuff(buff_meta, 1);
}
}
break;
@ -1569,7 +1575,7 @@ void Human::GrassTempShow()
hum->grass_hide_timer_list_ = nullptr;
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(GRASS_HIDE_BUFF_ID);
if (buff_meta) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, hum->GetSkillLv());
}
};
grass_hide_timer_list_ =
@ -1881,7 +1887,7 @@ void Human::Revive()
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(1003);
if (buff_meta) {
AddBuff(buff_meta);
AddBuff(buff_meta, 1);
}
}
room->frame_event.AddRevive(this);
@ -1905,7 +1911,7 @@ void Human::ImmediatelyRevive()
{
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(1003);
if (buff_meta) {
AddBuff(buff_meta);
AddBuff(buff_meta, 1);
}
}
room->frame_event.AddRevive(this);

View File

@ -181,10 +181,11 @@ class Human : public Entity
MetaData::Skill* CurrentSkillMeta();
int GetSkillLeftTime();
int GetSkillCd();
int GetSkillLv();
float GetSkillAtkAdd(int skill_id);
void TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type);
void TriggerBuff(std::set<Entity*>& target_list, BuffTriggerType_e trigger_type);
void AddBuff(MetaData::Buff* buff_meta);
void AddBuff(MetaData::Buff* buff_meta, int skill_lv);
void RemoveBuffById(int buff_id);
void RemoveBuffByEffectId(int buff_effect_id);
void ClearBuffList();

View File

@ -72,7 +72,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
for (int buff_id : msg.buff_list()) {
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id);
if (buff_meta) {
hum->AddBuff(buff_meta);
hum->AddBuff(buff_meta, 1);
}
}
{