49 lines
1.1 KiB
C++
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()
|
|
{
|
|
|
|
}
|