|  |  | @ -889,9 +889,11 @@ public class PlayerCombatStats { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public void regenerate(){ |  |  |  |     public void regenerate(){ | 
			
		
	
		
		
			
				
					
					|  |  |  |         healthRegen(this.owner); |  |  |  |         if(!this.owner.effects.containsKey("Stunned")) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         manaRegen(this.owner); |  |  |  |             healthRegen(this.owner); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         staminaRegen(this.owner); |  |  |  |             manaRegen(this.owner); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             staminaRegen(this.owner); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         staminaConsume(this.owner); |  |  |  |         staminaConsume(this.owner); | 
			
		
	
		
		
			
				
					
					|  |  |  |         this.owner.syncClient(); |  |  |  |         this.owner.syncClient(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
	
		
		
			
				
					|  |  | @ -949,7 +951,7 @@ public class PlayerCombatStats { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static void staminaRegen(PlayerCharacter pc){ |  |  |  |     public static void staminaRegen(PlayerCharacter pc){ | 
			
		
	
		
		
			
				
					
					|  |  |  |         //cannot regen is moving, swimming or flying
 |  |  |  |         //cannot regen is moving, swimming or flying
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(pc.isFlying() && pc.isSwimming() && pc.isMoving()) { |  |  |  |         if(pc.isFlying() || pc.isSwimming() || pc.isMoving()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             pc.timestamps.put("LASTSTAMINAREGEN",System.currentTimeMillis()); |  |  |  |             pc.timestamps.put("LASTSTAMINAREGEN",System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  |             return; |  |  |  |             return; | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
	
		
		
			
				
					|  |  | @ -975,7 +977,7 @@ public class PlayerCombatStats { | 
			
		
	
		
		
			
				
					
					|  |  |  |             worked = pc.stamina.compareAndSet(current, mod); |  |  |  |             worked = pc.stamina.compareAndSet(current, mod); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         pc.timestamps.put("LASTSTAMINACONSUME",System.currentTimeMillis()); |  |  |  |         pc.timestamps.put("LASTSTAMINAREGEN",System.currentTimeMillis()); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static void staminaConsume(PlayerCharacter pc){ |  |  |  |     public static void staminaConsume(PlayerCharacter pc){ | 
			
		
	
	
		
		
			
				
					|  |  | @ -991,14 +993,15 @@ public class PlayerCombatStats { | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |         float stateMultiplier = 1.0f; |  |  |  |         float stateMultiplier = 1.0f; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(pc.isSwimming() || pc.isFlying()) |  |  |  |         if(pc.isSwimming() || pc.isFlying()) | 
			
		
	
		
		
			
				
					
					|  |  |  |             stateMultiplier = 1.5f; |  |  |  |             stateMultiplier = 2.5f; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(!pc.timestamps.containsKey("LASTSTAMINACONSUME")) |  |  |  |         if(!pc.timestamps.containsKey("LASTSTAMINACONSUME")) | 
			
		
	
		
		
			
				
					
					|  |  |  |             pc.timestamps.put("LASTSTAMINACONSUME",System.currentTimeMillis()); |  |  |  |             pc.timestamps.put("LASTSTAMINACONSUME",System.currentTimeMillis()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTSTAMINACONSUME"); |  |  |  |         long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTSTAMINACONSUME"); | 
			
		
	
		
		
			
				
					
					|  |  |  |         float current = pc.stamina.get(); |  |  |  |         float current = pc.stamina.get(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         float mod = current - ((deltaTime *0.001f) * 0.6f * stateMultiplier); |  |  |  |         float consumed = ((deltaTime * 0.001f) * 0.6f * stateMultiplier); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         float mod = current - consumed; | 
			
		
	
		
		
			
				
					
					|  |  |  |         boolean worked = false; |  |  |  |         boolean worked = false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(mod <= 0) |  |  |  |         if(mod <= 0) | 
			
		
	
		
		
			
				
					
					|  |  |  |             mod =  0; |  |  |  |             mod =  0; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |