1
This commit is contained in:
parent
5d6293bdfb
commit
93aec9ef38
@ -131,7 +131,6 @@ enum SkillFunc_e
|
|||||||
kSkill_Shot = 3,
|
kSkill_Shot = 3,
|
||||||
kSkill_Pull = 4,
|
kSkill_Pull = 4,
|
||||||
kSkill_HoldShield = 5,
|
kSkill_HoldShield = 5,
|
||||||
kSkill_ForthBackJump = 6,
|
|
||||||
kSkill_FlyHook = 7,
|
kSkill_FlyHook = 7,
|
||||||
kSkill_FuncEnd
|
kSkill_FuncEnd
|
||||||
};
|
};
|
||||||
|
@ -109,21 +109,6 @@ void SelfChecker::Init()
|
|||||||
for (int buff_id : meta->_buff_list) {
|
for (int buff_id : meta->_buff_list) {
|
||||||
SelfChecker::AddBuff(buff_id);
|
SelfChecker::AddBuff(buff_id);
|
||||||
}
|
}
|
||||||
for (auto& phase : meta->_phases) {
|
|
||||||
switch (phase.func_id) {
|
|
||||||
case kSkill_ForthBackJump:
|
|
||||||
{
|
|
||||||
for (int buff_id : phase.phase_param3_ints) {
|
|
||||||
SelfChecker::AddBuff(buff_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
mt::Buff::Traverse
|
mt::Buff::Traverse
|
||||||
(
|
(
|
||||||
|
@ -898,11 +898,6 @@ void Skill::ProcSkillPhase(const mt::SkillPhase* phase)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kSkill_ForthBackJump:
|
|
||||||
{
|
|
||||||
ProcForthBackJumpPhase(phase);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -1020,74 +1015,6 @@ void Skill::ProcNormalShotPhase(const mt::SkillPhase* phase)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Skill::ProcForthBackJumpPhase(const mt::SkillPhase* phase)
|
|
||||||
{
|
|
||||||
if (GetMinorType() != SMT_NONE) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glm::vec3 old_dir = owner->GetMoveDir();
|
|
||||||
Position old_pos = owner->GetPos();
|
|
||||||
|
|
||||||
int buff_id1 = phase->phase_param3_ints.size() > 0 ? phase->phase_param3_ints[0] : 0;
|
|
||||||
int buff_id2 = phase->phase_param3_ints.size() > 1 ? phase->phase_param3_ints[1] : 0;
|
|
||||||
int buff_id3 = phase->phase_param3_ints.size() > 2 ? phase->phase_param3_ints[2] : 0;
|
|
||||||
const mt::Skill* skill_meta = meta;
|
|
||||||
owner->TryAddBuff(owner, buff_id1);
|
|
||||||
int land_effect_buff_uniid = owner->TryAddBuffAndSetTime
|
|
||||||
(owner,
|
|
||||||
buff_id3,
|
|
||||||
skill_meta->_number_meta->_float_time * 1000);
|
|
||||||
#ifdef DEBUG
|
|
||||||
a8::XPrintf("old_pos:%f,%f\n", {owner->GetPos().GetX(), owner->GetPos().GetY()});
|
|
||||||
#endif
|
|
||||||
owner->ForwardMove(SkillHelper::GetSjydhxForthDistance(meta));
|
|
||||||
float recover_hp = SkillHelper::GetSjydhxRecoverHp(owner, meta);
|
|
||||||
owner->AddHp(recover_hp);
|
|
||||||
glm::vec3 pre_dir = old_dir;
|
|
||||||
Position pre_pos = old_pos;
|
|
||||||
#ifdef DEBUG
|
|
||||||
a8::XPrintf("new_pos:%f,%f", {owner->GetPos().GetX(), owner->GetPos().GetY()});
|
|
||||||
#endif
|
|
||||||
AddMinorMode
|
|
||||||
(
|
|
||||||
SMT_BLINK,
|
|
||||||
#if 1
|
|
||||||
skill_meta->_number_meta->_float_time * 1000,
|
|
||||||
#else
|
|
||||||
phase->param2.GetInt() * 1000,
|
|
||||||
#endif
|
|
||||||
[this, pre_pos, pre_dir, buff_id1, buff_id2, buff_id3, land_effect_buff_uniid,
|
|
||||||
skill_meta] (int action) {
|
|
||||||
glm::vec3 old_dir = owner->GetMoveDir();
|
|
||||||
Position old_pos = owner->GetPos();
|
|
||||||
float distance = owner->GetPos().Distance2D2(pre_pos);
|
|
||||||
owner->RemoveBuffByUniId(land_effect_buff_uniid);
|
|
||||||
if (distance > 0.0001f) {
|
|
||||||
glm::vec3 new_dir = owner->GetPos().CalcDir(pre_pos);
|
|
||||||
GlmHelper::Normalize(new_dir);
|
|
||||||
owner->SetMoveDir(new_dir);
|
|
||||||
owner->TryAddBuff(owner, buff_id2);
|
|
||||||
#if 1
|
|
||||||
Global::Instance()->verify_set_pos = 1;
|
|
||||||
owner->SetPos(pre_pos);
|
|
||||||
Global::Instance()->verify_set_pos = 0;
|
|
||||||
owner->GetMovement()->ClearPath();
|
|
||||||
owner->room->grid_service->MoveCreature(owner);
|
|
||||||
#else
|
|
||||||
owner->ForwardMove(distance);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
owner->SetMoveDir(old_dir);
|
|
||||||
owner->TryAddBuffAndSetTime(owner,
|
|
||||||
skill_meta->_number_meta->buff_id(),
|
|
||||||
skill_meta->_number_meta->buff_time() * 1000,
|
|
||||||
skill_meta);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
owner->SetMoveDir(old_dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Skill::ProcJumpToPhase(const mt::SkillPhase* phase)
|
void Skill::ProcJumpToPhase(const mt::SkillPhase* phase)
|
||||||
{
|
{
|
||||||
Position new_pos;
|
Position new_pos;
|
||||||
|
@ -62,7 +62,6 @@ private:
|
|||||||
void ProcSpecDirShotPhase(const mt::SkillPhase* phase);
|
void ProcSpecDirShotPhase(const mt::SkillPhase* phase);
|
||||||
void ProcJumpToPhase(const mt::SkillPhase* phase);
|
void ProcJumpToPhase(const mt::SkillPhase* phase);
|
||||||
void ProcNormalShotPhase(const mt::SkillPhase* phase);
|
void ProcNormalShotPhase(const mt::SkillPhase* phase);
|
||||||
void ProcForthBackJumpPhase(const mt::SkillPhase* phase);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int curr_times_ = 0;
|
int curr_times_ = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user