Skip to content
Snippets Groups Projects
Commit a68af355 authored by Nos's avatar Nos
Browse files

BETA: Reworked `Fear` effect movement effected now runs a straight line away...

BETA: Reworked `Fear` effect movement effected now runs a straight line away from effector as long as effect lasts.

Reported by: Tavo22
Reviewed by: !UnAfraid
parent 79f286bf
No related branches found
No related tags found
No related merge requests found
...@@ -34,6 +34,7 @@ import com.l2jserver.gameserver.model.effects.AbstractEffect; ...@@ -34,6 +34,7 @@ import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag; import com.l2jserver.gameserver.model.effects.EffectFlag;
import com.l2jserver.gameserver.model.effects.L2EffectType; import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.skills.BuffInfo; import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.util.Util;
/** /**
* Fear effect implementation. * Fear effect implementation.
...@@ -70,27 +71,38 @@ public final class Fear extends AbstractEffect ...@@ -70,27 +71,38 @@ public final class Fear extends AbstractEffect
return L2EffectType.FEAR; return L2EffectType.FEAR;
} }
@Override
public int getTicks()
{
return 5;
}
@Override @Override
public boolean onActionTime(BuffInfo info) public boolean onActionTime(BuffInfo info)
{ {
int posX = info.getEffected().getX(); fearAction(info, false);
int posY = info.getEffected().getY(); return false;
int posZ = info.getEffected().getZ(); }
int _dX = -1; @Override
int _dY = -1; public void onStart(BuffInfo info)
if (info.getEffected().getX() > info.getEffector().getX()) {
if (info.getEffected().isCastingNow() && info.getEffected().canAbortCast())
{ {
_dX = 1; info.getEffected().abortCast();
} }
if (info.getEffected().getY() > info.getEffector().getY()) info.getEffected().getAI().notifyEvent(CtrlEvent.EVT_AFRAID);
{ fearAction(info, true);
_dY = 1; }
}
private void fearAction(BuffInfo info, boolean start)
{
double radians = Math.toRadians(start ? Util.calculateAngleFrom(info.getEffector(), info.getEffected()) : Util.convertHeadingToDegree(info.getEffected().getHeading()));
posX += _dX * FEAR_RANGE; int posX = (int) (info.getEffected().getX() + (FEAR_RANGE * Math.cos(radians)));
posY += _dY * FEAR_RANGE; int posY = (int) (info.getEffected().getY() + (FEAR_RANGE * Math.sin(radians)));
int posZ = info.getEffected().getZ();
if (Config.GEODATA > 0) if (Config.GEODATA > 0)
{ {
...@@ -105,18 +117,5 @@ public final class Fear extends AbstractEffect ...@@ -105,18 +117,5 @@ public final class Fear extends AbstractEffect
} }
info.getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, posZ)); info.getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, posZ));
return false;
}
@Override
public void onStart(BuffInfo info)
{
if (info.getEffected().isCastingNow() && info.getEffected().canAbortCast())
{
info.getEffected().abortCast();
}
info.getEffected().getAI().notifyEvent(CtrlEvent.EVT_AFRAID);
onActionTime(info);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment