|  |  | @ -76,75 +76,108 @@ public abstract class AbstractPowerAction { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				int token = DbManager.hasher.SBStringHash(IDString); |  |  |  | 				int token = DbManager.hasher.SBStringHash(IDString); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				//cache token, used for applying effects.
 |  |  |  | 				//cache token, used for applying effects.
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 				PowersManager.ActionTokenByIDString.put(IDString, token); |  |  |  | 				PowersManager.ActionTokenByIDString.put(IDString, token); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				if (type.equals("ApplyEffect")) |  |  |  | 				apa = null; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ApplyEffectPowerAction(rs, effects); |  |  |  | 				switch (type) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("ApplyEffects")) |  |  |  | 				{ | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ApplyEffectsPowerAction(rs, effects); |  |  |  | 					default: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("DeferredPower")) |  |  |  | 						Logger.error("valid type not found for poweraction of ID" + rs.getInt("ID")); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new DeferredPowerPowerAction(rs, effects); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("DamageOverTime")) |  |  |  | 					case "ApplyEffect": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new DamageOverTimePowerAction(rs, effects); |  |  |  | 						apa = new ApplyEffectPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Peek")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new PeekPowerAction(rs); |  |  |  | 					case "ApplyEffects": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Charm")) |  |  |  | 						apa = new ApplyEffectsPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new CharmPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Fear")) |  |  |  | 					case "DeferredPower": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new FearPowerAction(rs); |  |  |  | 						apa = new DeferredPowerPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Confusion")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ConfusionPowerAction(rs); |  |  |  | 					case "DamageOverTime": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("RemoveEffect")) |  |  |  | 						apa = new DamageOverTimePowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new RemoveEffectPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Track")) |  |  |  | 					case "Peek": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TrackPowerAction(rs, effects); |  |  |  | 						apa = new PeekPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("DirectDamage")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new DirectDamagePowerAction(rs, effects); |  |  |  | 					case "Charm": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Transform")) |  |  |  | 						apa = new CharmPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TransformPowerAction(rs, effects); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("CreateMob")) |  |  |  | 					case "Fear": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new CreateMobPowerAction(rs); |  |  |  | 						apa = new FearPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Invis")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new InvisPowerAction(rs, effects); |  |  |  | 					case "Confusion": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("ClearNearbyAggro")) |  |  |  | 						apa = new ConfusionPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ClearNearbyAggroPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("MobRecall")) |  |  |  | 					case "RemoveEffect": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new MobRecallPowerAction(rs); |  |  |  | 						apa = new RemoveEffectPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("SetItemFlag")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new SetItemFlagPowerAction(rs); |  |  |  | 					case "Track": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("SimpleDamage")) |  |  |  | 						apa = new TrackPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new SimpleDamagePowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("TransferStatOT")) |  |  |  | 					case "DirectDamage": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TransferStatOTPowerAction(rs, effects); |  |  |  | 						apa = new DirectDamagePowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("TransferStat")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TransferStatPowerAction(rs, effects); |  |  |  | 					case "Transform": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Teleport")) |  |  |  | 						apa = new TransformPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TeleportPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("TreeChoke")) |  |  |  | 					case "CreateMob": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new TreeChokePowerAction(rs); |  |  |  | 						apa = new CreateMobPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Block")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new BlockPowerAction(rs); |  |  |  | 					case "Invis": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Resurrect")) |  |  |  | 						apa = new InvisPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ResurrectPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("ClearAggro")) |  |  |  | 					case "ClearNearbyAggro": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ClearAggroPowerAction(rs); |  |  |  | 						apa = new ClearNearbyAggroPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("ClaimMine")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new ClaimMinePowerAction(rs); |  |  |  | 					case "MobRecall": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Recall")) |  |  |  | 						apa = new MobRecallPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new RecallPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("SpireDisable")) |  |  |  | 					case "SetItemFlag": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new SpireDisablePowerAction(rs); |  |  |  | 						apa = new SetItemFlagPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Steal")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new StealPowerAction(rs); |  |  |  | 					case "SimpleDamage": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("Summon")) |  |  |  | 						apa = new SimpleDamagePowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new SummonPowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("RunegateTeleport")) |  |  |  | 					case "TransferStatOT": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new RunegateTeleportPowerAction(rs); |  |  |  | 						apa = new TransferStatOTPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("RunegateTeleport")) |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new RunegateTeleportPowerAction(rs); |  |  |  | 					case "TransferStat": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else if (type.equals("OpenGate")) |  |  |  | 						apa = new TransferStatPowerAction(rs, effects); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					apa = new OpenGatePowerAction(rs); |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				else { |  |  |  | 					case "Teleport": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					Logger.error("valid type not found for poweraction of ID" + rs.getInt("ID")); |  |  |  | 						apa = new TeleportPowerAction(rs); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 					continue; |  |  |  | 						break; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "TreeChoke": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new TreeChokePowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "Block": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new BlockPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "Resurrect": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new ResurrectPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "ClearAggro": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new ClearAggroPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "ClaimMine": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new ClaimMinePowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "Recall": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new RecallPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "SpireDisable": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new SpireDisablePowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "Steal": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new StealPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "Summon": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new SummonPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "RunegateTeleport": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new RunegateTeleportPowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					case "OpenGate": | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						apa = new OpenGatePowerAction(rs); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 						break; | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 				powerActions.put(IDString, apa); |  |  |  | 				powerActions.put(IDString, apa); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				powerActionsByID.put(apa.UUID, apa); |  |  |  | 				powerActionsByID.put(apa.UUID, apa); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |