@ -1030,80 +1030,87 @@ public class Mob extends AbstractIntelligenceAgent {
				@@ -1030,80 +1030,87 @@ public class Mob extends AbstractIntelligenceAgent {
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  recalculateStats ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ( this . isPlayerGuard ( ) ) {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            NPCManager . setMaxHealthForGuard ( this ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            NPCManager . setAttackRatingForGuard ( this ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            NPCManager . setDefenseForGuard ( this ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            NPCManager . setDamageAndSpeedForGuard ( this ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } else  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            calculateModifiedStats ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e . getMessage ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            calculateAtrDefenseDamage ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( this . getMobBaseID ( )  +  " /"  +  e . getMessage ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                calculateAtrDefenseDamage  ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             }  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 Logger . error ( this . getMobBaseID ( )  +  " /"  +  e . getMessage ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                calculateMaxHealthManaStamina ( ) ;    
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                Logger . error ( e . getMessage ( ) ) ;    
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        try  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            calculateMaxHealthManaStamina  ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            calculateModifiedStats  ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  catch  ( Exception  e )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Logger . error ( e . getMessage ( ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ( this . isSiege ( ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . healthMax  =  10000 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Resists . calculateResists ( this ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  calculateMaxHealthManaStamina ( )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  m ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        float  s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             float  h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             float  m ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             float  s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        h  =  this . mobBase . getHealthMax ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( this . isPet ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            h  =  this . level  *  0 . 5f  *  120 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        m  =  this . statSpiCurrent ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        s  =  this . statConCurrent ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             h  =  this . mobBase . getHealthMax ( ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( this . isPet ( ) )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 h  =  this . level  *  0 . 5f  *  120 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             m  =  this . statSpiCurrent ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             s  =  this . statConCurrent ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Apply any bonuses from runes and effects
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             // Apply any bonuses from runes and effects
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( this . bonuses  ! =  null )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            h  + =  this . bonuses . getFloat ( ModType . HealthFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            m  + =  this . bonuses . getFloat ( ModType . ManaFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            s  + =  this . bonuses . getFloat ( ModType . StaminaFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( this . bonuses  ! =  null )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 h  + =  this . bonuses . getFloat ( ModType . HealthFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 m  + =  this . bonuses . getFloat ( ModType . ManaFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 s  + =  this . bonuses . getFloat ( ModType . StaminaFull ,  SourceType . None ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            //apply effects percent modifiers. DO THIS LAST!
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 //apply effects percent modifiers. DO THIS LAST!
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            h  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . HealthFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            m  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . ManaFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            s  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . StaminaFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 h  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . HealthFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 m  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . ManaFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 s  * =  ( 1  +  this . bonuses . getFloatPercentAll ( ModType . StaminaFull ,  SourceType . None ) ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Set max health, mana and stamina
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             // Set max health, mana and stamina
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( h  >  0 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . healthMax  =  h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . healthMax  =  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( h  >  0 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . healthMax  =  h ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . healthMax  =  1 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( m  >  - 1 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . manaMax  =  m ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . manaMax  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( m  >  - 1 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . manaMax  =  m ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . manaMax  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( s  >  - 1 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . staminaMax  =  s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . staminaMax  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( s  >  - 1 )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . staminaMax  =  s ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . staminaMax  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Update health, mana and stamina if needed
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             // Update health, mana and stamina if needed
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( this . getHealth ( )  >  this . healthMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . setHealth ( this . healthMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( this . getHealth ( )  >  this . healthMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . setHealth ( this . healthMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( this . mana . get ( )  >  this . manaMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . mana . set ( this . manaMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( this . mana . get ( )  >  this . manaMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . mana . set ( this . manaMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( this . stamina . get ( )  >  this . staminaMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            this . stamina . set ( staminaMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             if  ( this . stamina . get ( )  >  this . staminaMax )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                 this . stamina . set ( staminaMax ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }