From 78e8aab808e02448cf97715d67b477a589953d69 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Fri, 21 Feb 2025 13:15:01 -0500 Subject: [PATCH] parser now uses poweractiontype --- src/engine/gameManager/PowersManager.java | 70 ++++++++----------- .../poweractions/AbstractPowerAction.java | 7 +- .../poweractions/OpenGatePowerAction.java | 2 +- src/engine/wpak/PowerActionParser.java | 60 ++++++++-------- src/engine/wpak/data/PowerAction.java | 2 +- 5 files changed, 65 insertions(+), 76 deletions(-) diff --git a/src/engine/gameManager/PowersManager.java b/src/engine/gameManager/PowersManager.java index 8794396a..34138dd3 100644 --- a/src/engine/gameManager/PowersManager.java +++ b/src/engine/gameManager/PowersManager.java @@ -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 { 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); } diff --git a/src/engine/powers/poweractions/AbstractPowerAction.java b/src/engine/powers/poweractions/AbstractPowerAction.java index 1086a1f5..51ee4741 100644 --- a/src/engine/powers/poweractions/AbstractPowerAction.java +++ b/src/engine/powers/poweractions/AbstractPowerAction.java @@ -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 { 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 { 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 { return this.validItemFlags; } - public String getType() { + public mbEnums.PowerActionType getType() { return type; } diff --git a/src/engine/powers/poweractions/OpenGatePowerAction.java b/src/engine/powers/poweractions/OpenGatePowerAction.java index cb4bfbc3..d90a465f 100644 --- a/src/engine/powers/poweractions/OpenGatePowerAction.java +++ b/src/engine/powers/poweractions/OpenGatePowerAction.java @@ -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 } diff --git a/src/engine/wpak/PowerActionParser.java b/src/engine/wpak/PowerActionParser.java index d49ea81b..00d051ba 100644 --- a/src/engine/wpak/PowerActionParser.java +++ b/src/engine/wpak/PowerActionParser.java @@ -84,26 +84,26 @@ public class PowerActionParser { Iterator 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 { 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 { 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 { 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 { 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 { 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); diff --git a/src/engine/wpak/data/PowerAction.java b/src/engine/wpak/data/PowerAction.java index 7169e5b0..3a20b061 100644 --- a/src/engine/wpak/data/PowerAction.java +++ b/src/engine/wpak/data/PowerAction.java @@ -18,7 +18,7 @@ public class PowerAction { // Header values public String action_id; - public String action_type; + public mbEnums.PowerActionType action_type; public ArrayList effects = new ArrayList<>(); public int petLevel; public int petRace;