|  |  | @ -850,9 +850,14 @@ public enum PowersManager { | 
			
		
	
		
		
			
				
					
					|  |  |  |         //    return;
 |  |  |  |         //    return;
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //}
 |  |  |  |         //}
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(HandleItemEnchantments(playerCharacter, msg)) |  |  |  |         if(HandleItemEnchantments(playerCharacter, msg)) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             playerCharacter.setIsCasting(false); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             PerformActionMsg castMsg = new PerformActionMsg(msg); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             castMsg.setNumTrains(9999); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             castMsg.setUnknown04(2); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             DispatchMessage.dispatchMsgToInterestArea(playerCharacter, castMsg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); | 
			
		
	
		
		
			
				
					
					|  |  |  |             return; |  |  |  |             return; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |         } | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         PerformActionMsg performActionMsg; |  |  |  |         PerformActionMsg performActionMsg; | 
			
		
	
		
		
			
				
					
					|  |  |  |         Dispatch dispatch; |  |  |  |         Dispatch dispatch; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -3134,13 +3139,39 @@ public enum PowersManager { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     return false; |  |  |  |                     return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 for (ActionsBase action : pb.getActions()){ |  |  |  |                 for (ActionsBase action : pb.getActions()){ | 
			
		
	
		
		
			
				
					
					|  |  |  |                     try { |  |  |  |                     try { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         if(msg.getNumTrains() > action.maxTrains) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                             continue; | 
			
		
	
		
		
			
				
					
					|  |  |  |                         EffectsBase eb = action.getPowerAction().getEffectsBase(); |  |  |  |                         EffectsBase eb = action.getPowerAction().getEffectsBase(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if(eb == null) |  |  |  |                         if(eb == null) | 
			
		
	
		
		
			
				
					
					|  |  |  |                             return false; |  |  |  |                             return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |                         Effect eff = pc.addEffectNoTimer(eb.getName(),eb,msg.getNumTrains(),false); |  |  |  |                         //Effect eff = pc.addEffectNoTimer(eb.getName(),eb,msg.getNumTrains(),false);
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         if(eff == null){ |  |  |  |                         //if(eff == null){
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                             Logger.error(pc.getFirstName() + " failed to apply self buff: " + msg.getPowerUsedID()); |  |  |  |                         //    Logger.error(pc.getFirstName() + " failed to apply self buff: " + msg.getPowerUsedID());
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |                         //}
 | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         UsePowerJob asj =new UsePowerJob(pc,msg,eb.getToken(),pb,pc.getLiveCounter(),pc.getLiveCounter()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         JobContainer jc = JobScheduler.getInstance().scheduleJob(asj, 1800000); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         Effect eff = new Effect(jc, eb, msg.getNumTrains()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pc.effects.put("CASTABLE", eff); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pc.applyAllBonuses(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         ApplyEffectMsg pum = new ApplyEffectMsg(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setEffectID(eff.getEffectToken()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setSourceType(pc.getObjectType().ordinal()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setSourceID(pc.getObjectUUID()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setTargetType(pc.getObjectType().ordinal()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setTargetID(pc.getObjectUUID()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setNumTrains(eff.getTrains()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setUnknown05(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setUnknown02(2); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setUnknown06((byte) 1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setEffectSourceType(GameObjectType.PlayerCharacter.ordinal()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setEffectSourceID(pc.getObjectUUID()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         pum.setDuration(1800); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         DispatchMessage.dispatchMsgToInterestArea(pc, pum, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     catch(Exception e){ |  |  |  |                     catch(Exception e){ | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |