pojo created for ConditionEntry

This commit is contained in:
2024-08-21 12:35:01 -04:00
parent a61b8d193b
commit f0c6584818
3 changed files with 39 additions and 7 deletions
+17 -5
View File
@@ -10,6 +10,7 @@ package engine.wpak;
import engine.gameManager.ConfigManager;
import engine.mbEnums;
import engine.wpak.data.ConditionEntry;
import engine.wpak.data.EffectEntry;
import engine.wpak.data.EffectModifier;
import org.pmw.tinylog.Logger;
@@ -17,8 +18,7 @@ import org.pmw.tinylog.Logger;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -125,11 +125,23 @@ public class EffectsParser {
matcher = CONDITIONS_REGEX.matcher(effectData);
while (matcher.find()) {
String[] conditions = matcher.group().trim().split("\n");
List<String> conditions = new ArrayList<>(Arrays.asList(matcher.group().trim().split("\n")));
for (String condition : conditions) {
String[] parameters = condition.trim().split("\\s+");
effectEntry.conditions.put(parameters[0], Float.parseFloat(parameters[1]));
List<String> parameters = new ArrayList<>(Arrays.asList(condition.trim().split("\\s+")));
Iterator<String> iterator = parameters.iterator();
ConditionEntry conditionEntry = new ConditionEntry();
conditionEntry.condition = iterator.next();
conditionEntry.arg = Integer.parseInt(iterator.next());
if (iterator.hasNext())
conditionEntry.curveType = mbEnums.CompoundCurveType.valueOf(iterator.next());
while (iterator.hasNext())
conditionEntry.damageTypes.add(mbEnums.DamageType.valueOf(iterator.next()));
effectEntry.conditions.add(conditionEntry);
}
}