package Roguelike.Fields.OnDeathEffect; import java.util.HashMap; import net.objecthunter.exp4j.Expression; import net.objecthunter.exp4j.ExpressionBuilder; import Roguelike.Fields.Field; import Roguelike.Tiles.GameTile; import com.badlogic.gdx.utils.XmlReader.Element; import exp4j.Helpers.EquationHelper; public class SpawnOnDeathEffect extends AbstractOnDeathEffect { private String fieldName; private String stacksEqn; @Override public void process(Field field, GameTile tile) { HashMap<String, Integer> variableMap = new HashMap<String, Integer>(); variableMap.put("stacks", field.stacks); int stacks = EquationHelper.evaluate( stacksEqn, variableMap ); if (stacks == 0) { return; } Field newField = Field.load(fieldName); newField.stacks = stacks; tile.addField(newField); } @Override public void parse(Element xml) { fieldName = xml.getText(); stacksEqn = xml.getAttribute("Stacks", "1").toLowerCase(); } }