Browse Source

parser now uses poweractiontype

feature-config-usage
MagicBot 24 hours ago
parent
commit
78e8aab808
  1. 70
      src/engine/gameManager/PowersManager.java
  2. 7
      src/engine/powers/poweractions/AbstractPowerAction.java
  3. 2
      src/engine/powers/poweractions/OpenGatePowerAction.java
  4. 60
      src/engine/wpak/PowerActionParser.java
  5. 2
      src/engine/wpak/data/PowerAction.java

70
src/engine/gameManager/PowersManager.java

@ -138,7 +138,7 @@ public enum PowersManager { @@ -138,7 +138,7 @@ public enum PowersManager {
for (PowerAction powerAction : WpakPowerManager._powerActionLookup.values()) {
AbstractPowerAction apa;
String type = powerAction.action_type;
PowerActionType type = powerAction.action_type;
String IDString = powerAction.action_id;
int token = DbManager.hasher.SBStringHash(IDString);
//cache token, used for applying effects.
@ -148,102 +148,90 @@ public enum PowersManager { @@ -148,102 +148,90 @@ public enum PowersManager {
default:
Logger.error("valid type not found for poweraction of ID" + IDString);
break;
case "ApplyEffect":
case ApplyEffect:
apa = new ApplyEffectPowerAction(powerAction, effects);
break;
case "ApplyEffects":
case ApplyEffects:
apa = new ApplyEffectsPowerAction(powerAction, effects);
break;
case "DeferredPower":
case DeferredPower:
apa = new DeferredPowerPowerAction(powerAction, effects);
break;
case "DamageOverTime":
case DamageOverTime:
apa = new DamageOverTimePowerAction(powerAction, effects);
break;
case "Peek":
case Peek:
apa = new PeekPowerAction(powerAction);
break;
case "Charm":
case Charm:
apa = new CharmPowerAction(powerAction);
break;
case "Fear":
apa = new FearPowerAction(powerAction);
break;
case "Confusion":
apa = new ConfusionPowerAction(powerAction);
break;
case "RemoveEffect":
case RemoveEffect:
apa = new RemoveEffectPowerAction(powerAction);
break;
case "Track":
case Track:
apa = new TrackPowerAction(powerAction, effects);
break;
case "DirectDamage":
case DirectDamage:
apa = new DirectDamagePowerAction(powerAction, effects);
break;
case "Transform":
case Transform:
apa = new TransformPowerAction(powerAction, effects);
break;
case "CreateMob":
case CreateMob:
apa = new CreateMobPowerAction(powerAction);
break;
case "Invis":
case Invis:
apa = new InvisPowerAction(powerAction, effects);
break;
case "ClearNearbyAggro":
case ClearNearbyAggro:
apa = new ClearNearbyAggroPowerAction(powerAction);
break;
case "MobRecall":
case MobRecall:
apa = new MobRecallPowerAction(powerAction);
break;
case "SetItemFlag":
case SetItemFlag:
apa = new SetItemFlagPowerAction(powerAction);
break;
case "SimpleDamage":
case SimpleDamage:
apa = new SimpleDamagePowerAction(powerAction);
break;
case "TransferStatOT":
case TransferStatOT:
apa = new TransferStatOTPowerAction(powerAction, effects);
break;
case "TransferStat":
case TransferStat:
apa = new TransferStatPowerAction(powerAction, effects);
break;
case "Teleport":
case Teleport:
apa = new TeleportPowerAction(powerAction);
break;
case "TreeChoke":
case TreeChoke:
apa = new TreeChokePowerAction(powerAction);
break;
case "Block":
case Block:
apa = new BlockPowerAction(powerAction);
break;
case "Resurrect":
case Resurrect:
apa = new ResurrectPowerAction(powerAction);
break;
case "ClearAggro":
apa = new ClearAggroPowerAction(powerAction);
break;
case "ClaimMine":
case ClaimMine:
apa = new ClaimMinePowerAction(powerAction);
break;
case "Recall":
case Recall:
apa = new RecallPowerAction(powerAction);
break;
case "SpireDisable":
case SpireDisable:
apa = new SpireDisablePowerAction(powerAction);
break;
case "Steal":
case Steal:
apa = new StealPowerAction(powerAction);
break;
case "Summon":
case Summon:
apa = new SummonPowerAction(powerAction);
break;
case "RunegateTeleport":
case RunegateTeleport:
apa = new RunegateTeleportPowerAction(powerAction);
break;
case "OpenGate":
apa = new OpenGatePowerAction(powerAction);
break;
}
PowersManager.powerActionsByIDString.put(IDString, apa);
}

7
src/engine/powers/poweractions/AbstractPowerAction.java

@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
package engine.powers.poweractions;
import engine.math.Vector3fImmutable;
import engine.mbEnums;
import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
import engine.objects.Item;
@ -24,7 +25,7 @@ public abstract class AbstractPowerAction { @@ -24,7 +25,7 @@ public abstract class AbstractPowerAction {
protected PowersBase parent;
protected int UUID;
protected String IDString;
protected String type;
protected mbEnums.PowerActionType type;
protected boolean isAggressive;
protected long validItemFlags;
@ -46,7 +47,7 @@ public abstract class AbstractPowerAction { @@ -46,7 +47,7 @@ public abstract class AbstractPowerAction {
this.isAggressive = powerAction.isAggressive;
}
public AbstractPowerAction(int uUID, String iDString, String type, boolean isAggressive,
public AbstractPowerAction(int uUID, String iDString, mbEnums.PowerActionType type, boolean isAggressive,
long validItemFlags) {
super();
UUID = uUID;
@ -130,7 +131,7 @@ public abstract class AbstractPowerAction { @@ -130,7 +131,7 @@ public abstract class AbstractPowerAction {
return this.validItemFlags;
}
public String getType() {
public mbEnums.PowerActionType getType() {
return type;
}

2
src/engine/powers/poweractions/OpenGatePowerAction.java

@ -30,7 +30,7 @@ public class OpenGatePowerAction extends AbstractPowerAction { @@ -30,7 +30,7 @@ public class OpenGatePowerAction extends AbstractPowerAction {
super(powerAction);
}
public OpenGatePowerAction(int uUID, String iDString, String type, boolean isAggressive, long validItemFlags) {
public OpenGatePowerAction(int uUID, String iDString, mbEnums.PowerActionType type, boolean isAggressive, long validItemFlags) {
super(uUID, iDString, type, isAggressive, validItemFlags);
// TODO Auto-generated constructor stub
}

60
src/engine/wpak/PowerActionParser.java

@ -84,26 +84,26 @@ public class PowerActionParser { @@ -84,26 +84,26 @@ public class PowerActionParser {
Iterator<String> headerIterator = headerData.iterator();
powerAction.action_id = headerIterator.next();
powerAction.action_type = headerIterator.next();
powerAction.action_type = mbEnums.PowerActionType.valueOf(headerIterator.next());
switch (powerAction.action_type) {
case "RemoveEffect":
case RemoveEffect:
effect = new Effect();
effect.effect_id = headerIterator.next();
powerAction.effects.add(effect);
break;
case "CreateMob":
case CreateMob:
powerAction.petRace = Integer.parseInt(headerIterator.next());
powerAction.petLevel = Integer.parseInt(headerIterator.next());
break;
case "DamageOverTime":
case DamageOverTime:
effect = new Effect();
effect.effect_id = headerIterator.next();
effect.cycleDuration = Integer.parseInt(headerIterator.next());
effect.cycleDelay = Integer.parseInt(headerIterator.next());
powerAction.effects.add(effect);
break;
case "ApplyEffects":
case ApplyEffects:
int level = Integer.parseInt(headerIterator.next());
while (headerIterator.hasNext()) {
@ -113,12 +113,12 @@ public class PowerActionParser { @@ -113,12 +113,12 @@ public class PowerActionParser {
powerAction.effects.add(effect);
}
break;
case "Transform":
case "Invis":
case "ApplyEffect":
case "DeferredPower":
case "DirectDamage":
case "SpireDisable":
case Transform:
case Invis:
case ApplyEffect:
case DeferredPower:
case DirectDamage:
case SpireDisable:
while (headerIterator.hasNext()) {
effect = new Effect();
effect.effect_id = headerIterator.next();
@ -131,7 +131,7 @@ public class PowerActionParser { @@ -131,7 +131,7 @@ public class PowerActionParser {
powerAction.effects.add(effect);
}
break;
case "TransferStat":
case TransferStat:
statTransfer = new StatTransfer();
statTransfer.fromStat = mbEnums.CostType.valueOf(headerIterator.next());
statTransfer.toStat = mbEnums.CostType.valueOf(headerIterator.next());
@ -143,7 +143,7 @@ public class PowerActionParser { @@ -143,7 +143,7 @@ public class PowerActionParser {
statTransfer.isDrain = Boolean.parseBoolean(headerIterator.next());
powerAction.statTransfer = statTransfer;
break;
case "TransferStatOT":
case TransferStatOT:
statTransfer = new StatTransfer();
statTransfer.fromStat = mbEnums.CostType.valueOf(headerIterator.next());
statTransfer.toStat = mbEnums.CostType.valueOf(headerIterator.next());
@ -157,26 +157,26 @@ public class PowerActionParser { @@ -157,26 +157,26 @@ public class PowerActionParser {
statTransfer.transfer_ticks = Integer.parseInt(headerIterator.next());
powerAction.statTransfer = statTransfer;
break;
case "Charm":
case Charm:
effect = new Effect();
effect.effect_id = headerIterator.next();
effect.level = Integer.parseInt(headerIterator.next());
effect.type = headerIterator.next();
powerAction.effects.add(effect);
break;
case "Block":
case Block:
effect = new Effect();
effect.effect_id = headerIterator.next();
effect.level = Integer.parseInt(headerIterator.next());
powerAction.effects.add(effect);
break;
case "Resurrect":
case Resurrect:
powerAction.ramp = Integer.parseInt(headerIterator.next());
break;
case "SetItemFlag":
case SetItemFlag:
powerAction.itemFlag = mbEnums.ItemFlags.valueOf(headerIterator.next());
break;
case "Track":
case Track:
trackEntry = new TrackEntry();
trackEntry.action_id = headerIterator.next();
trackEntry.trackPlayer = Boolean.parseBoolean(headerIterator.next());
@ -186,21 +186,21 @@ public class PowerActionParser { @@ -186,21 +186,21 @@ public class PowerActionParser {
trackEntry.max = Integer.parseInt(headerIterator.next());
powerAction.trackEntry = trackEntry;
break;
case "Teleport":
case Teleport:
if (headerIterator.hasNext())
powerAction.ignoreNoTeleSpire = Boolean.parseBoolean(headerIterator.next());
break;
case "Recall": // No arguments for these tags or not parsed
case "Summon":
case "TreeChoke":
case "SimpleDamage":
case "MobRecall": // One argument always zero
case "ClearAggro":
case "ClearNearbyAggro":
case "Peek":
case "ClaimMine":
case "RunegateTeleport":
case "Steal":
case Recall: // No arguments for these tags or not parsed
case Summon:
case TreeChoke:
case SimpleDamage:
case MobRecall: // One argument always zero
case ClearAggro:
case ClearNearbyAggro:
case Peek:
case ClaimMine:
case RunegateTeleport:
case Steal:
break;
default:
Logger.error("Unhandled type " + powerAction.action_type + " for Pow4erAction: " + powerAction.action_id);

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

@ -18,7 +18,7 @@ public class PowerAction { @@ -18,7 +18,7 @@ public class PowerAction {
// Header values
public String action_id;
public String action_type;
public mbEnums.PowerActionType action_type;
public ArrayList<Effect> effects = new ArrayList<>();
public int petLevel;
public int petRace;

Loading…
Cancel
Save