|  |  | @ -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); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |