package de.tobiyas.racesandclasses.traitcontainer.modifiers.specific; import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayer; import de.tobiyas.racesandclasses.traitcontainer.modifiers.AbstractModifier; public class LevelModifier extends AbstractModifier { private final int minLevel; private final int maxLevel; public LevelModifier(int minLevel, int maxLevel, double modifier, String toModify) { super(modifier, toModify); this.minLevel = minLevel; this.maxLevel = maxLevel; } @Override public boolean canBeApplied(String toModify, RaCPlayer player) { if(!super.canBeApplied(toModify, player)) return false; int current = player.getLevelManager().getCurrentLevel(); return current >= minLevel && current <= maxLevel; } /** * Generates the Modifier. * * @param desriptor * @param modifier * * @return */ public static LevelModifier generate(String desriptor, Double modifier, String toModify){ String[] split = desriptor.split("-"); if(split.length != 2) return null; try{ int minLevel = Integer.parseInt(split[0]); int maxLevel = Integer.parseInt(split[1]); return new LevelModifier(minLevel, maxLevel, modifier, toModify); }catch(NumberFormatException exp){ //not parseable. return null; } } }