Reworked StatAddForLevel effect to be more simplified.
This commit is contained in:
		| @@ -16,6 +16,11 @@ | ||||
|  */ | ||||
| package handlers.effecthandlers; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import org.l2jmobius.gameserver.enums.StatModifierType; | ||||
| import org.l2jmobius.gameserver.model.StatSet; | ||||
| import org.l2jmobius.gameserver.model.actor.Creature; | ||||
| import org.l2jmobius.gameserver.model.effects.AbstractEffect; | ||||
| @@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat; | ||||
|  */ | ||||
| public class StatAddForLevel extends AbstractEffect | ||||
| { | ||||
| 	private final int _level; | ||||
| 	private final Stat _stat; | ||||
| 	private final double _amount; | ||||
| 	private final Map<Integer, Integer> _values; | ||||
| 	 | ||||
| 	public StatAddForLevel(StatSet params) | ||||
| 	{ | ||||
| 		_level = params.getInt("level", 0); | ||||
| 		_stat = params.getEnum("stat", Stat.class); | ||||
| 		_amount = params.getDouble("amount", 0); | ||||
| 		 | ||||
| 		final List<Integer> amount = params.getIntegerList("amount"); | ||||
| 		_values = new HashMap<>(amount.size()); | ||||
| 		int index = 0; | ||||
| 		for (Integer level : params.getIntegerList("level")) | ||||
| 		{ | ||||
| 			_values.put(level, amount.get(index++)); | ||||
| 		} | ||||
| 		 | ||||
| 		if (params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF) != StatModifierType.DIFF) | ||||
| 		{ | ||||
| 			LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode."); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void pump(Creature effected, Skill skill) | ||||
| 	{ | ||||
| 		if (effected.getLevel() == _level) | ||||
| 		final Integer amount = _values.get(effected.getLevel()); | ||||
| 		if (amount != null) | ||||
| 		{ | ||||
| 			effected.getStat().mergeAdd(_stat, _amount); | ||||
| 			effected.getStat().mergeAdd(_stat, amount.intValue()); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment