Support for multiple TargetRace skill condition.

This commit is contained in:
MobiusDevelopment
2022-03-04 10:42:05 +00:00
parent 03ebd27d23
commit c943bc6648
6 changed files with 102 additions and 30 deletions

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }

View File

@@ -16,6 +16,10 @@
*/ */
package handlers.skillconditionhandlers; package handlers.skillconditionhandlers;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
@@ -24,15 +28,23 @@ import org.l2jmobius.gameserver.model.skill.ISkillCondition;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
/** /**
* @author UnAfraid * @author UnAfraid, Mobius
*/ */
public class TargetRaceSkillCondition implements ISkillCondition public class TargetRaceSkillCondition implements ISkillCondition
{ {
private final Race _race; private final Set<Race> _races = EnumSet.noneOf(Race.class);
public TargetRaceSkillCondition(StatSet params) public TargetRaceSkillCondition(StatSet params)
{ {
_race = params.getEnum("race", Race.class); final List<Race> races = params.getEnumList("race", Race.class);
if (races != null)
{
_races.addAll(races);
}
else
{
_races.add(params.getEnum("race", Race.class));
}
} }
@Override @Override
@@ -42,7 +54,7 @@ public class TargetRaceSkillCondition implements ISkillCondition
{ {
return false; return false;
} }
final Creature targetCreature = (Creature) target;
return targetCreature.getRace() == _race; return _races.contains(((Creature) target).getRace());
} }
} }