forked from MagicBane/Server
EffectDescription refactored out.
This commit is contained in:
@@ -11,7 +11,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.Effect;
|
||||
import engine.wpak.data.EffectModifier;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.regex.Pattern;
|
||||
public class EffectsParser {
|
||||
|
||||
public static String effectsPath = ConfigManager.DEFAULT_DATA_DIR + "wpak/Effects.cfg";
|
||||
public static HashMap<String, EffectEntry> effect_data = new HashMap<>();
|
||||
public static HashMap<String, Effect> effect_data = new HashMap<>();
|
||||
private static final Pattern EFFECT_REGEX = Pattern.compile("(?<=EFFECTBEGIN)(.+?)(?=EFFECTEND)", Pattern.DOTALL);
|
||||
private static final Pattern SOURCE_REGEX = Pattern.compile("(?<=SOURCEBEGIN)(.+?)(?=SOURCEEND)", Pattern.DOTALL);
|
||||
private static final Pattern MODS_REGEX = Pattern.compile("(?<=MODSBEGIN)(.+?)(?=MODSEND)", Pattern.DOTALL);
|
||||
@@ -51,21 +51,21 @@ public class EffectsParser {
|
||||
Matcher matcher = EFFECT_REGEX.matcher(fileContents);
|
||||
|
||||
while (matcher.find()) {
|
||||
EffectEntry effectEntry = parseEffectEntry(matcher.group());
|
||||
effect_data.put(effectEntry.effect_id, effectEntry);
|
||||
Effect effect = parseEffectEntry(matcher.group());
|
||||
effect_data.put(effect.effect_id, effect);
|
||||
}
|
||||
}
|
||||
|
||||
private static EffectEntry parseEffectEntry(String effectData) {
|
||||
private static Effect parseEffectEntry(String effectData) {
|
||||
|
||||
EffectEntry effectEntry = new EffectEntry();
|
||||
Effect effect = new Effect();
|
||||
|
||||
// Parse fields that lie outside the other tags
|
||||
|
||||
effectEntry.isItemEffect = effectData.contains("IsItemEffect");
|
||||
effectEntry.isSpireEffect = effectData.contains("IsSpireEffect");
|
||||
effectEntry.ignoreNoMod = effectData.contains("IgnoreNoMod");
|
||||
effectEntry.dontSave = effectData.contains("DontSave");
|
||||
effect.isItemEffect = effectData.contains("IsItemEffect");
|
||||
effect.isSpireEffect = effectData.contains("IsSpireEffect");
|
||||
effect.ignoreNoMod = effectData.contains("IgnoreNoMod");
|
||||
effect.dontSave = effectData.contains("DontSave");
|
||||
|
||||
// Remove all lines that contain a # and leading/trailing blank lines
|
||||
|
||||
@@ -90,24 +90,24 @@ public class EffectsParser {
|
||||
while (matcher.find())
|
||||
effectHeader.add(matcher.group().trim());
|
||||
|
||||
effectEntry.effect_id = effectHeader.get(0);
|
||||
effectEntry.effect_name = effectHeader.get(1);
|
||||
effectEntry.effect_name = effectEntry.effect_name.replaceAll("\"", "");
|
||||
effect.effect_id = effectHeader.get(0);
|
||||
effect.effect_name = effectHeader.get(1);
|
||||
effect.effect_name = effect.effect_name.replaceAll("\"", "");
|
||||
|
||||
// Some effect mods have no icon
|
||||
// (SEEINVIS-SHADE "See Invis")
|
||||
|
||||
if (effectHeader.size() == 3)
|
||||
effectEntry.icon = Integer.parseInt(effectHeader.get(2));
|
||||
effect.icon = Integer.parseInt(effectHeader.get(2));
|
||||
else
|
||||
effectEntry.icon = 0;
|
||||
effect.icon = 0;
|
||||
|
||||
// Parse source entries
|
||||
|
||||
matcher = SOURCE_REGEX.matcher(effectData);
|
||||
|
||||
while (matcher.find())
|
||||
effectEntry.sources.add(matcher.group().trim());
|
||||
effect.sources.add(matcher.group().trim());
|
||||
|
||||
// Parse modifier entries
|
||||
|
||||
@@ -117,7 +117,7 @@ public class EffectsParser {
|
||||
|
||||
while (matcher.find()) {
|
||||
EffectModifier effectModifier = parseModEntry(matcher.group());
|
||||
effectEntry.mods.add(effectModifier);
|
||||
effect.mods.add(effectModifier);
|
||||
}
|
||||
|
||||
// Parse Conditions
|
||||
@@ -141,11 +141,11 @@ public class EffectsParser {
|
||||
while (iterator.hasNext())
|
||||
conditionEntry.damageTypes.add(mbEnums.DamageType.valueOf(iterator.next().toUpperCase()));
|
||||
|
||||
effectEntry.conditions.add(conditionEntry);
|
||||
effect.conditions.add(conditionEntry);
|
||||
}
|
||||
}
|
||||
|
||||
return effectEntry;
|
||||
return effect;
|
||||
}
|
||||
|
||||
private static EffectModifier parseModEntry(String modData) {
|
||||
|
||||
Reference in New Issue
Block a user