@ -28,29 +28,24 @@ import engine.objects.AbstractCharacter;
				@@ -28,29 +28,24 @@ import engine.objects.AbstractCharacter;
					 
			
		
	
		
			
				
					import  engine.objects.AbstractWorldObject ;  
			
		
	
		
			
				
					import  engine.objects.Effect ;  
			
		
	
		
			
				
					import  engine.objects.PlayerCharacter ;  
			
		
	
		
			
				
					import  engine.powers.effectmodifiers.AbstractEffectModifier  ;  
			
		
	
		
			
				
					import  engine.powers.effectmodifiers.*  ;  
			
		
	
		
			
				
					import  engine.server.MBServerStatics ;  
			
		
	
		
			
				
					import  engine.util.Hasher ;  
			
		
	
		
			
				
					import  engine.wpak.data.EffectEntry ;  
			
		
	
		
			
				
					import  engine.wpak.data.EffectModifier ;  
			
		
	
		
			
				
					import  org.pmw.tinylog.Logger ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  java.sql.Connection ;  
			
		
	
		
			
				
					import  java.sql.PreparedStatement ;  
			
		
	
		
			
				
					import  java.sql.ResultSet ;  
			
		
	
		
			
				
					import  java.sql.SQLException ;  
			
		
	
		
			
				
					import  java.util.ArrayList ;  
			
		
	
		
			
				
					import  java.util.HashMap ;  
			
		
	
		
			
				
					import  java.util.HashSet ;  
			
		
	
		
			
				
					import  java.util.concurrent.ConcurrentHashMap ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					public  class  EffectsBase  {  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  static  HashMap < Integer ,  HashSet < EffectSourceType > >  effectSourceTypeMap  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < String ,  HashSet < AbstractEffectModifier > >  modifiersMap  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < String ,  HashMap < String ,  ArrayList < String > > >  OldEffectsMap  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < String ,  HashMap < String ,  ArrayList < String > > >  NewEffectsMap  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < String ,  HashMap < String ,  ArrayList < String > > >  ChangedEffectsMap  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < String ,  HashSet < PowerFailCondition > >  EffectFailConditions  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashMap < Integer ,  HashSet < mbEnums . DamageType > >  EffectDamageTypes  =  new  HashMap < > ( ) ;   
			
		
	
		
			
				
					    public  static  HashSet < AbstractEffectModifier >  DefaultModifiers  =  new  HashSet < > ( ) ;   
			
		
	
		
			
				
					    private  static  ConcurrentHashMap < String ,  String >  itemEffectsByName  =  new  ConcurrentHashMap < > ( MBServerStatics . CHM_INIT_CAP ,  MBServerStatics . CHM_LOAD ,  MBServerStatics . CHM_THREAD_LOW ) ;   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -82,10 +77,16 @@ public class EffectsBase {
				@@ -82,10 +77,16 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					    private  boolean  isPrefix  =  false ;  //used by items
   
			
		
	
		
			
				
					    private  boolean  isSuffix  =  false ;  //used by items
   
			
		
	
		
			
				
					    private  String  name  =  "" ;   
			
		
	
		
			
				
					    private   float  value  =  0 ;   
			
		
	
		
			
				
					    public   float  value  =  0 ;   
			
		
	
		
			
				
					    private  ConcurrentHashMap < mbEnums . ResourceType ,  Integer >  resourceCosts  =  new  ConcurrentHashMap < > ( ) ;   
			
		
	
		
			
				
					    private  ConcurrentHashMap < String ,  Boolean >  sourceTypes  =  new  ConcurrentHashMap < > ( MBServerStatics . CHM_INIT_CAP ,  MBServerStatics . CHM_LOAD ,  MBServerStatics . CHM_THREAD_LOW ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    //loaded values from parser
   
			
		
	
		
			
				
					    public   HashSet < EffectSourceType >  effectSources  =  new  HashSet < > ( ) ;   
			
		
	
		
			
				
					    public   HashSet < EffectModifier >  effectModifiers  =  new  HashSet < > ( ) ;   
			
		
	
		
			
				
					    public   HashSet < PowerFailCondition >  effectFailCondition  =  new  HashSet < > ( ) ;   
			
		
	
		
			
				
					    public   HashSet < mbEnums . DamageType >  effectDamageType  =  new  HashSet < > ( ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    / * *   
			
		
	
		
			
				
					     *  No  Table  ID  Constructor   
			
		
	
		
			
				
					     * /   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -118,6 +119,19 @@ public class EffectsBase {
				@@ -118,6 +119,19 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					            this . isPrefix  =  true ;   
			
		
	
		
			
				
					        else  if  ( this . IDString . startsWith ( "SUF-" ) )   
			
		
	
		
			
				
					            this . isSuffix  =  true ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //load effect modifiers
   
			
		
	
		
			
				
					        this . effectModifiers  =  new  HashSet < > ( entry . mods ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //load sources
   
			
		
	
		
			
				
					        for ( String  source  :  entry . sources )   
			
		
	
		
			
				
					            this . effectSources . add ( EffectSourceType . GetEffectSourceType ( source ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //load fail conditions
   
			
		
	
		
			
				
					        for ( String  condition  :  entry . conditions . keySet ( ) )   
			
		
	
		
			
				
					            this . effectFailCondition . add ( PowerFailCondition . valueOf ( condition ) ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //TODO load damage types and slopes from conditions
   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  EffectsBase ( EffectsBase  copyEffect ,  int  newToken ,  String  IDString )  {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -223,11 +237,7 @@ public class EffectsBase {
				@@ -223,11 +237,7 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					                    continue ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                if  ( EffectsBase . EffectFailConditions . get ( IDString )  = =  null )  {   
			
		
	
		
			
				
					                    EffectsBase . EffectFailConditions . put ( IDString ,  new  HashSet < > ( ) ) ;   
			
		
	
		
			
				
					                }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                EffectsBase . EffectFailConditions . get ( IDString ) . add ( failCondition ) ;   
			
		
	
		
			
				
					                EffectsBase  eb  =  effects . get ( IDString ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                switch  ( failCondition )  {   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -359,10 +369,6 @@ public class EffectsBase {
				@@ -359,10 +369,6 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					        this . token  =  token ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  ConcurrentHashMap < String ,  Boolean >  getSourceTypes ( )  {   
			
		
	
		
			
				
					        return  this . sourceTypes ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  HashSet < AbstractEffectModifier >  getModifiers ( )  {   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        if  ( EffectsBase . modifiersMap . containsKey ( this . IDString )  = =  false )   
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -371,22 +377,6 @@ public class EffectsBase {
				@@ -371,22 +377,6 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					        return  EffectsBase . modifiersMap . get ( this . IDString ) ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  isItemEffect ( )  {   
			
		
	
		
			
				
					        return  this . isItemEffect ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  isSpireEffect ( )  {   
			
		
	
		
			
				
					        return  this . isSpireEffect ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  ignoreMod ( )  {   
			
		
	
		
			
				
					        return  this . ignoreNoMod ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  dontSave ( )  {   
			
		
	
		
			
				
					        return  this . dontSave ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  isPrefix ( )  {   
			
		
	
		
			
				
					        return  this . isPrefix ;   
			
		
	
		
			
				
					    }   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -668,13 +658,6 @@ public class EffectsBase {
				@@ -668,13 +658,6 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					        }   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  containsSource ( EffectSourceType  sourceType )  {   
			
		
	
		
			
				
					        if  ( EffectsBase . effectSourceTypeMap . containsKey ( this . token )  = =  false )   
			
		
	
		
			
				
					            return  false ;   
			
		
	
		
			
				
					        return  EffectsBase . effectSourceTypeMap . get ( this . token ) . contains ( sourceType ) ;   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  boolean  cancelOnAttack ( )  {   
			
		
	
		
			
				
					        return  this . cancelOnAttack ;   
			
		
	
		
			
				
					    }   
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -742,12 +725,4 @@ public class EffectsBase {
				@@ -742,12 +725,4 @@ public class EffectsBase {
					 
			
		
	
		
			
				
					        this . name  =  name ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  float  getValue ( )  {   
			
		
	
		
			
				
					        return  value ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    public  void  setValue ( float  Value )  {   
			
		
	
		
			
				
					        this . value  =  Value ;   
			
		
	
		
			
				
					    }   
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					}