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

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

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

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

@ -30,7 +30,7 @@ public class OpenGatePowerAction extends AbstractPowerAction {
super(powerAction); 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); super(uUID, iDString, type, isAggressive, validItemFlags);
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }

60
src/engine/wpak/PowerActionParser.java

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

Loading…
Cancel
Save