Removed forced self cast of auto buffs.

This commit is contained in:
MobiusDevelopment
2021-07-21 17:22:24 +00:00
parent 2355d91cf2
commit db65b65a19
8 changed files with 72 additions and 88 deletions

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }

View File

@@ -30,6 +30,7 @@ import org.l2jmobius.gameserver.handler.ItemHandler;
import org.l2jmobius.gameserver.handler.PlayerActionHandler; import org.l2jmobius.gameserver.handler.PlayerActionHandler;
import org.l2jmobius.gameserver.model.ActionDataHolder; import org.l2jmobius.gameserver.model.ActionDataHolder;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.Summon;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -177,13 +178,9 @@ public class AutoUseTaskManager
continue BUFFS; continue BUFFS;
} }
final WorldObject target = player.getTarget(); if (canCastBuff(player, skill))
if (canCastBuff(skill, player, target))
{ {
final WorldObject savedTarget = target;
player.setTarget(player);
player.doCast(skill); player.doCast(skill);
player.setTarget(savedTarget);
} }
} }
@@ -227,7 +224,7 @@ public class AutoUseTaskManager
continue SKILLS; continue SKILLS;
} }
if (canUseMagic(skill, player, target)) if (canUseMagic(player, target, skill))
{ {
player.useMagic(skill, null, true, false); player.useMagic(skill, null, true, false);
} }
@@ -275,12 +272,12 @@ public class AutoUseTaskManager
}, 1000, 1000); }, 1000, 1000);
} }
private boolean canCastBuff(Skill skill, PlayerInstance player, WorldObject target) private boolean canCastBuff(PlayerInstance player, Skill skill)
{ {
// Summon check. // Summon check.
if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER) if (skill.getAffectScope() == AffectScope.SUMMON_EXCEPT_MASTER)
{ {
if (!player.hasServitors()) // Is this check truly needed? if (!player.hasServitors())
{ {
return false; return false;
} }
@@ -298,12 +295,13 @@ public class AutoUseTaskManager
} }
} }
// TODO: Use getSkillRemainingReuseTime? final WorldObject target = player.getTarget();
return !player.isAffectedBySkill(skill.getId()) && canUseMagic(skill, player, target); return !((target == null) || !target.isPlayable() ? player : (Playable) target).isAffectedBySkill(skill.getId()) && canUseMagic(player, target, skill);
} }
private boolean canUseMagic(Skill skill, PlayerInstance player, WorldObject target) private boolean canUseMagic(PlayerInstance player, WorldObject target, Skill skill)
{ {
// TODO: Use getSkillRemainingReuseTime.
return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false); return !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, target, false);
} }