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

View File

@ -181,10 +181,11 @@ class Human : public Entity
MetaData::Skill* CurrentSkillMeta(); MetaData::Skill* CurrentSkillMeta();
int GetSkillLeftTime(); int GetSkillLeftTime();
int GetSkillCd(); int GetSkillCd();
int GetSkillLv();
float GetSkillAtkAdd(int skill_id); float GetSkillAtkAdd(int skill_id);
void TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type); void TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type);
void TriggerBuff(std::set<Entity*>& target_list, 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 RemoveBuffById(int buff_id);
void RemoveBuffByEffectId(int buff_effect_id); void RemoveBuffByEffectId(int buff_effect_id);
void ClearBuffList(); 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()) { for (int buff_id : msg.buff_list()) {
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id);
if (buff_meta) { if (buff_meta) {
hum->AddBuff(buff_meta); hum->AddBuff(buff_meta, 1);
} }
} }
{ {