1
This commit is contained in:
parent
b4554249bd
commit
fd219ba95a
@ -524,30 +524,22 @@ void Skill::Clear()
|
||||
|
||||
void Skill::LevelUp()
|
||||
{
|
||||
#if 1
|
||||
if (IsFullLevel()) {
|
||||
return;
|
||||
}
|
||||
const mt::Skill* next_skill_meta = mt::Skill::GetById
|
||||
(GetBaseSkillMeta()->_base_skill_meta->skill_id() + level_);
|
||||
if (!next_skill_meta) {
|
||||
return;
|
||||
}
|
||||
++level_;
|
||||
curr_meta_ = next_skill_meta;
|
||||
Clear();
|
||||
#else
|
||||
if (owner->GetInventory(IS_BLUE_STONE) % 3 == 0) {
|
||||
Clear();
|
||||
auto merge_item_meta = mt::MergeItem::GetById(mt::Equip::BLUE_STONE_ID);
|
||||
if (merge_item_meta) {
|
||||
int skill_lv = owner->GetInventory(IS_BLUE_STONE) / 3 + 1;
|
||||
const mt::Skill* new_skill_meta = mt::Skill::GetById(meta->_base_skill_meta->skill_id());
|
||||
if (new_skill_meta) {
|
||||
if (mt::Skill::GetById(new_skill_meta->skill_id() + skill_lv - 1)) {
|
||||
owner->skill_hash_[new_skill_meta->skill_id() + skill_lv - 1] = owner->skill_hash_[meta->skill_id()];
|
||||
}
|
||||
level_ = skill_lv;
|
||||
}
|
||||
std::set<int>* buffs = merge_item_meta->GetBuffs(owner->GetInventory(IS_BLUE_STONE));
|
||||
if (buffs) {
|
||||
for (int buff_id : *buffs) {
|
||||
hold_buffs_.push_back(owner->TryAddBuff(owner, buff_id, nullptr));
|
||||
}
|
||||
}
|
||||
if (IsPassiveSkill()) {
|
||||
for (int buff_id : GetCurrSkillMeta()->_buff_list) {
|
||||
hold_buffs_.push_back(owner->TryAddBuff(owner, buff_id, GetCurrSkillMeta()));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Skill::IsFullLevel()
|
||||
@ -566,16 +558,7 @@ void Skill::Reset()
|
||||
|
||||
const mt::Skill* Skill::GetCurrSkillMeta()
|
||||
{
|
||||
if (level_ > 1) {
|
||||
const mt::Skill* new_skill_meta = mt::Skill::GetById(GetBaseSkillMeta()->skill_id() + level_ - 1);
|
||||
if (new_skill_meta) {
|
||||
return new_skill_meta;
|
||||
} else {
|
||||
return GetBaseSkillMeta();
|
||||
}
|
||||
} else {
|
||||
return GetBaseSkillMeta();
|
||||
}
|
||||
return curr_meta_;
|
||||
}
|
||||
|
||||
int Skill::GetSkillId()
|
||||
@ -595,4 +578,10 @@ int Skill::GetBaseSkillId()
|
||||
void Skill::SetMeta(const mt::Skill* meta)
|
||||
{
|
||||
meta_ = meta;
|
||||
curr_meta_ = meta;
|
||||
}
|
||||
|
||||
bool Skill::IsPassiveSkill()
|
||||
{
|
||||
return GetBaseSkillMeta()->skill_type() == kPassiveSkill;
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ class Skill
|
||||
const mt::Skill* GetCurrSkillMeta();
|
||||
int GetSkillId();
|
||||
int GetBaseSkillId();
|
||||
bool IsPassiveSkill();
|
||||
|
||||
private:
|
||||
void InitActiveSkill();
|
||||
@ -79,6 +80,7 @@ private:
|
||||
|
||||
private:
|
||||
const mt::Skill* meta_ = nullptr;
|
||||
const mt::Skill* curr_meta_ = nullptr;
|
||||
bool actived_ = false;
|
||||
int level_ = 1;
|
||||
int curr_times_ = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user