1`
This commit is contained in:
parent
386fa81684
commit
66f6e7429f
@ -893,7 +893,7 @@ bool Creature::CanUseSkill(int skill_id)
|
|||||||
if (IsHuman() && AsHuman()->downed) {
|
if (IsHuman() && AsHuman()->downed) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return skill->GetCurrTimes() > 0;
|
return skill->GetCurrTimes() > 0 || skill->GetMinorType() != SMT_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Creature::DoSkill(int skill_id,
|
void Creature::DoSkill(int skill_id,
|
||||||
@ -904,6 +904,10 @@ void Creature::DoSkill(int skill_id,
|
|||||||
{
|
{
|
||||||
Skill* skill = GetSkill(skill_id);
|
Skill* skill = GetSkill(skill_id);
|
||||||
if (skill && CanUseSkill(skill_id)) {
|
if (skill && CanUseSkill(skill_id)) {
|
||||||
|
if (skill->GetMinorType()) {
|
||||||
|
skill->DoMinorMode();
|
||||||
|
return;
|
||||||
|
}
|
||||||
DoSkillPreProc(skill_id, target_id, target_pos);
|
DoSkillPreProc(skill_id, target_id, target_pos);
|
||||||
ResetSkill();
|
ResetSkill();
|
||||||
skill_target_id_ = target_id;
|
skill_target_id_ = target_id;
|
||||||
|
@ -70,6 +70,7 @@ void Skill::FillMFSkill(cs::MFSkill* skill_pb)
|
|||||||
skill_pb->set_max_times(GetMaxTimes());
|
skill_pb->set_max_times(GetMaxTimes());
|
||||||
if (minor_type_) {
|
if (minor_type_) {
|
||||||
skill_pb->set_minor_type(minor_type_);
|
skill_pb->set_minor_type(minor_type_);
|
||||||
|
skill_pb->set_minor_cd_time(minor_cd_time_);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,5 +195,16 @@ void Skill::AddMinorMode(
|
|||||||
{
|
{
|
||||||
minor_type_ = minor_type;
|
minor_type_ = minor_type;
|
||||||
minor_cd_time_ = minor_cd_time;
|
minor_cd_time_ = minor_cd_time;
|
||||||
|
minor_frameno_ = owner->room->GetFrameNo();
|
||||||
minor_cb_ = cb;
|
minor_cb_ = cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Skill::DoMinorMode()
|
||||||
|
{
|
||||||
|
if (GetMinorType() != SMT_NONE) {
|
||||||
|
minor_cb_();
|
||||||
|
minor_type_ = SMT_NONE;
|
||||||
|
minor_cd_time_ = 0;
|
||||||
|
minor_cb_ = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -47,6 +47,7 @@ class Skill
|
|||||||
int minor_cd_time,
|
int minor_cd_time,
|
||||||
std::function<void()> cb
|
std::function<void()> cb
|
||||||
);
|
);
|
||||||
|
void DoMinorMode();
|
||||||
|
|
||||||
void ClearPassiveSkillBuff();
|
void ClearPassiveSkillBuff();
|
||||||
void AddPassiveSkillBuff();
|
void AddPassiveSkillBuff();
|
||||||
@ -60,5 +61,6 @@ private:
|
|||||||
int curr_exp_ = 0;
|
int curr_exp_ = 0;
|
||||||
int minor_type_ = 0;
|
int minor_type_ = 0;
|
||||||
int minor_cd_time_ = 0;
|
int minor_cd_time_ = 0;
|
||||||
|
long long minor_frameno_ = 0;
|
||||||
std::function<void()> minor_cb_;
|
std::function<void()> minor_cb_;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user