diff --git a/src/engine/wpak/PowersParser.java b/src/engine/wpak/PowersParser.java index 25586501..7538ff93 100644 --- a/src/engine/wpak/PowersParser.java +++ b/src/engine/wpak/PowersParser.java @@ -57,10 +57,10 @@ public class PowersParser { private static PowerEntry parsePowerEntry(String powerData) { PowerEntry powerEntry = new PowerEntry(); - - - StringBuilder conditionString = new StringBuilder(); - StringBuilder powerString = new StringBuilder(); + StringBuilder conditionBuilder = new StringBuilder(); + StringBuilder powerBuilder = new StringBuilder(); + String conditionString; + String powerString; int endPos = 0; @@ -69,23 +69,22 @@ public class PowersParser { Matcher matcher = CONDITION_REGEX.matcher(powerData); while (matcher.find()) { - conditionString.append(matcher.group().trim()); - powerString.append(powerData, endPos, matcher.start()); + conditionBuilder.append(matcher.group().trim()); + powerBuilder.append(powerData, endPos, matcher.start()); endPos = matcher.end(); } - powerString.append(powerData.substring(endPos)); + powerBuilder.append(powerData.substring(endPos)); // Cleanup dangling tags and lines that contain a # and leading/trailing blank lines - powerString = new StringBuilder(powerString.toString().replaceAll("CONDITIONBEGINCONDITIONEND", "")); - powerString = new StringBuilder(powerString.toString().replaceAll("(?m)^(\\s*#.*|\\s*)\r?\n?", "")); - - conditionString = new StringBuilder(conditionString.toString().replaceAll("(?m)^(\\s*#.*|\\s*)\r?\n?", "")); + powerString = powerBuilder.toString().replaceAll("CONDITIONBEGINCONDITIONEND", "") + .replaceAll("(?m)^(\\s*#.*|\\s*)\r?\n?", ""); + conditionString = conditionBuilder.toString().replaceAll("(?m)^(\\s*#.*|\\s*)\r?\n?", ""); // Parse header line in power data - List lineData = Arrays.asList(powerString.toString().trim().split("\n")); + List lineData = Arrays.asList(powerString.trim().split("\n")); List powerHeader = new ArrayList<>(); String headerString = lineData.get(0); @@ -152,7 +151,6 @@ public class PowersParser { ActionEntry actionEntry; List arguments; Matcher matcher1; - ArrayList args; switch (key) { case "ACTION": @@ -200,14 +198,14 @@ public class PowersParser { case "EQPREREQ": EquipmentPreReq equipmentPreReq = new EquipmentPreReq(); matcher1 = STRSPLIT_REGEX.matcher(lineValues.get(1).trim()); - args = new ArrayList<>(); + arguments = new ArrayList<>(); while (matcher1.find()) - args.add(matcher1.group().trim()); + arguments.add(matcher1.group().trim()); - equipmentPreReq.slot = mbEnums.EquipSlotType.valueOf(args.get(0)); - equipmentPreReq.skill = args.get(1).replaceAll("\"", ""); - equipmentPreReq.level = Integer.parseInt(args.get(2)); + equipmentPreReq.slot = mbEnums.EquipSlotType.valueOf(arguments.get(0)); + equipmentPreReq.skill = arguments.get(1).replaceAll("\"", ""); + equipmentPreReq.level = Integer.parseInt(arguments.get(2)); powerEntry.equipmentPreReq = equipmentPreReq; break; case "CANCASTWHILEMOVING": @@ -296,9 +294,9 @@ public class PowersParser { // Parse power conditions - if (!conditionString.toString().isEmpty()) { + if (conditionString.isEmpty() == false) { - String[] conditions = conditionString.toString().split("\n"); + List conditions = Arrays.asList(conditionString.split("\n")); for (String condition : conditions) { List parameters = Arrays.asList(condition.trim().split("\\s+"));