package Roguelike.Fields.FieldInteractionTypes; import java.util.HashMap; import net.objecthunter.exp4j.Expression; import net.objecthunter.exp4j.ExpressionBuilder; import Roguelike.Fields.Field; import com.badlogic.gdx.utils.XmlReader.Element; import exp4j.Helpers.EquationHelper; public class SpawnFieldInteractionType extends AbstractFieldInteractionType { String fieldName; String stacksEqn; @Override public Field process(Field src, Field dst) { HashMap<String, Integer> variableMap = new HashMap<String, Integer>(); variableMap.put("srcstacks", src.stacks); variableMap.put("dststacks", dst.stacks); int stacks = EquationHelper.evaluate( stacksEqn, variableMap ); if (stacks == 0) { return null; } Field field = Field.load(fieldName); field.stacks = stacks; return field; } @Override public void parse(Element xml) { fieldName = xml.getText(); stacksEqn = xml.getAttribute("Stacks", "1").toLowerCase(); } }