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