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