Check visibility for skill range condition.

This commit is contained in:
MobiusDev
2018-11-23 22:36:01 +00:00
parent c3b8e5a0e6
commit 6e1df5b92c
11 changed files with 58 additions and 30 deletions

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,30 +16,28 @@
*/
package com.l2jmobius.gameserver.model.conditions;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.items.L2Item;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* The Class ConditionMinDistance.
* @author Didldak
* @author Mobius
*/
public class ConditionMinDistance extends Condition
{
private final int _sqDistance;
private final int _distance;
/**
* Instantiates a new condition min distance.
* @param sqDistance the sq distance
*/
public ConditionMinDistance(int sqDistance)
public ConditionMinDistance(int distance)
{
_sqDistance = sqDistance;
_distance = distance;
}
@Override
public boolean testImpl(L2Character effector, L2Character effected, Skill skill, L2Item item)
{
return (effected != null) && (effector.calculateDistanceSq3D(effected) >= _sqDistance);
return (effected != null) //
&& (effector.calculateDistance3D(effected) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(effector, effected);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.geoengine.GeoEngine;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -23,7 +24,7 @@ import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Sdw
* @author Mobius
*/
public class OpCheckCastRangeSkillCondition implements ISkillCondition
{
@@ -37,6 +38,8 @@ public class OpCheckCastRangeSkillCondition implements ISkillCondition
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
return (target != null) && (caster.calculateDistance3D(target) /* for some reason this used Sq3D check */ >= _distance);
return (target != null) //
&& (caster.calculateDistance3D(target) >= _distance) //
&& GeoEngine.getInstance().canSeeTarget(caster, target);
}
}