Browse Source

PowerAction parsing work.

feature-config-parsing2
MagicBot 4 months ago
parent
commit
f2ae969e84
  1. 22
      src/engine/wpak/PowerActionParser.java
  2. 2
      src/engine/wpak/data/EffectDescription.java
  3. 7
      src/engine/wpak/data/PowerActionEntry.java

22
src/engine/wpak/PowerActionParser.java

@ -82,23 +82,25 @@ public class PowerActionParser { @@ -82,23 +82,25 @@ public class PowerActionParser {
switch (powerActionEntry.action_type) {
case "RemoveEffect":
powerActionEntry.effect_id = headerIterator.next();
effectDescription = new EffectDescription();
effectDescription.effect_id = headerIterator.next();
powerActionEntry.effects.add(effectDescription);
break;
case "CreateMob":
powerActionEntry.arg1 = Integer.parseInt(headerIterator.next());
powerActionEntry.arg2 = Integer.parseInt(headerIterator.next());
powerActionEntry.petLevel = Integer.parseInt(headerIterator.next());
powerActionEntry.petRace = Integer.parseInt(headerIterator.next());
break;
case "DamageOverTime":
powerActionEntry.effect_id = headerIterator.next();
powerActionEntry.arg1 = Integer.parseInt(headerIterator.next());
powerActionEntry.arg2 = Integer.parseInt(headerIterator.next());
effectDescription = new EffectDescription();
effectDescription.effect_id = headerIterator.next();
effectDescription.cycleDuration = Integer.parseInt(headerIterator.next());
effectDescription.cycleDelay = Integer.parseInt(headerIterator.next());
powerActionEntry.effects.add(effectDescription);
break;
case "Transform":
case "Invis":
powerActionEntry.effect_id = headerIterator.next();
powerActionEntry.arg1 = Integer.parseInt(headerIterator.next());
break;
case "ApplyEffect":
case "ApplyEffects":
case "DeferredPower":
case "DirectDamage":
while (headerIterator.hasNext()) {
@ -143,7 +145,7 @@ public class PowerActionParser { @@ -143,7 +145,7 @@ public class PowerActionParser {
powerActionEntry.scaleFactor.add(Float.parseFloat(bodyPart));
break;
case "ISRESISTABLE":
powerActionEntry.isResistable = Boolean.parseBoolean(lineValues[1].trim());
powerActionEntry.isResistible = Boolean.parseBoolean(lineValues[1].trim());
break;
case "ISAGGRESSIVE":
powerActionEntry.isAggressive = Boolean.parseBoolean(lineValues[1].trim());

2
src/engine/wpak/data/EffectDescription.java

@ -12,4 +12,6 @@ public class EffectDescription { @@ -12,4 +12,6 @@ public class EffectDescription {
public String effect_id;
public int level;
public String message;
public int cycleDuration;
public int cycleDelay;
}

7
src/engine/wpak/data/PowerActionEntry.java

@ -25,16 +25,15 @@ public class PowerActionEntry { @@ -25,16 +25,15 @@ public class PowerActionEntry {
public boolean shouldShowWeapons = false;
public boolean shouldShowArmor = false;
public boolean bladeTrails = false;
public boolean isResistable = false;
public String effect_id;
public boolean isResistible = false;
public ArrayList<Float> scaleFactor = new ArrayList<>();
public ArrayList<Integer> attackAnimations = new ArrayList<>();
public boolean isAggressive;
public mbEnums.DamageType damageType;
public boolean applyEffectBlank = false;
public boolean wearOffEffectBlank = false;
public int arg1; // used in DamageOverTime, CreateMob, etc.
public int arg2;
public int petLevel;
public int petRace;
public boolean removeAll;
}

Loading…
Cancel
Save