aozhiwei f1b2f5a4b9 1
2023-02-14 16:28:05 +08:00

49 lines
1.1 KiB
C++

#include "precompile.h"
#include <math.h>
#include <float.h>
#include "buff/reverse.h"
#include "creature.h"
#include "skillhelper.h"
#include "mt/Skill.h"
#include "mt/Buff.h"
void ReverseBuff::Activate()
{
if (caster_.Get()) {
glm::vec3 dir = caster_.Get()->GetPos().CalcDir(owner->GetPos());
if ((std::isfinite(dir.x) &&
std::isfinite(dir.y))) {
dir = dir * 1.0f;
GlmHelper::Normalize(dir);
owner->SetMoveDir(dir);
owner->SetAttackDir(dir);
if (skill_meta) {
switch (skill_meta->GetMagicId()) {
case MAGIC_20901_XIONG:
{
owner->ForwardMove(SkillHelper::GetYmczReserveDistance(skill_meta));
}
break;
default:
{
}
break;
}
} else {
if (meta->_buff_param1 > 0.001) {
owner->ForwardMove(meta->_buff_param1);
}
}
}
}
}
void ReverseBuff::Deactivate()
{
}