This commit is contained in:
aozhiwei 2023-03-04 19:55:38 +08:00
parent 50637c9b0b
commit 43a1d7adf3
4 changed files with 12 additions and 6 deletions

View File

@ -2,6 +2,11 @@
#include "buff.h" #include "buff.h"
A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
kAddMinorMode = 5,
);
class CallFuncBuff : public Buff class CallFuncBuff : public Buff
{ {
public: public:

View File

@ -36,7 +36,7 @@ void HoldShieldBuff::Activate()
( (
SMT_BLINK, SMT_BLINK,
SkillHelper::GetLdfyBuffTime(owner, skill_meta) * 1000, SkillHelper::GetLdfyBuffTime(owner, skill_meta) * 1000,
[this, c] [this, c] (int action)
{ {
c->RemoveBuffByEffectId(kBET_HoldShield); c->RemoveBuffByEffectId(kBET_HoldShield);
if (meta->_buff_param1_int_list.size() > 1) { if (meta->_buff_param1_int_list.size() > 1) {

View File

@ -167,7 +167,7 @@ int Skill::GetMaxExp()
void Skill::AddMinorMode( void Skill::AddMinorMode(
int minor_type, int minor_type,
int minor_cd_time, int minor_cd_time,
std::function<void()> cb std::function<void(int)> cb
) )
{ {
if (!minor_mode_timer_.expired()) { if (!minor_mode_timer_.expired()) {
@ -186,6 +186,7 @@ void Skill::AddMinorMode(
minor_type_ = SMT_NONE; minor_type_ = SMT_NONE;
minor_cd_time_ = 0; minor_cd_time_ = 0;
minor_frameno_ = 0; minor_frameno_ = 0;
minor_cb_(0);
minor_cb_ = nullptr; minor_cb_ = nullptr;
} }
}, },
@ -209,7 +210,7 @@ void Skill::AddMinorMode(
void Skill::DoMinorMode() void Skill::DoMinorMode()
{ {
if (GetMinorType() != SMT_NONE) { if (GetMinorType() != SMT_NONE) {
minor_cb_(); minor_cb_(1);
minor_type_ = SMT_NONE; minor_type_ = SMT_NONE;
minor_cd_time_ = 0; minor_cd_time_ = 0;
minor_cb_ = nullptr; minor_cb_ = nullptr;
@ -1217,7 +1218,7 @@ void Skill::ProcForthBackJumpPhase(const mt::SkillPhase* phase)
phase->param2.GetInt() * 1000, phase->param2.GetInt() * 1000,
#endif #endif
[this, pre_pos, pre_dir, buff_id1, buff_id2, buff_id3, land_effect_buff_uniid, [this, pre_pos, pre_dir, buff_id1, buff_id2, buff_id3, land_effect_buff_uniid,
skill_meta] () { skill_meta] (int action) {
glm::vec3 old_dir = owner->GetMoveDir(); glm::vec3 old_dir = owner->GetMoveDir();
Position old_pos = owner->GetPos(); Position old_pos = owner->GetPos();
float distance = owner->GetPos().Distance2D2(pre_pos); float distance = owner->GetPos().Distance2D2(pre_pos);

View File

@ -39,7 +39,7 @@ class Skill
void AddMinorMode( void AddMinorMode(
int minor_type, int minor_type,
int minor_cd_time, int minor_cd_time,
std::function<void()> cb std::function<void(int)> cb
); );
void DoMinorMode(); void DoMinorMode();
void ProcSkillPhase(const mt::SkillPhase* phase); void ProcSkillPhase(const mt::SkillPhase* phase);
@ -75,7 +75,7 @@ private:
int minor_type_ = 0; int minor_type_ = 0;
int minor_cd_time_ = 0; int minor_cd_time_ = 0;
long long minor_frameno_ = 0; long long minor_frameno_ = 0;
std::function<void()> minor_cb_; std::function<void(int)> minor_cb_;
friend class PBUtils; friend class PBUtils;
}; };