|  |  | @ -5691,14 +5691,6 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public void RunRegen(){ |  |  |  |     public void RunRegen(){ | 
			
		
	
		
		
			
				
					
					|  |  |  |         //this.updateRegen();
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         Long lastRegen; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if(this.timestamps.containsKey("LastRegen")) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             lastRegen = this.timestamps.get("LastRegen"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         else |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             lastRegen = System.currentTimeMillis(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         float secondsDifference = (System.currentTimeMillis() - lastRegen) / 1000.0f; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         float healthRegen = 0f; |  |  |  |         float healthRegen = 0f; | 
			
		
	
		
		
			
				
					
					|  |  |  |         float manaRegen = 0f; |  |  |  |         float manaRegen = 0f; | 
			
		
	
	
		
		
			
				
					|  |  | @ -5722,11 +5714,10 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     healthRegen *= .75f; |  |  |  |                     healthRegen *= .75f; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 // Characters regen mana when in only walk mode and idle
 |  |  |  |                 // Characters regen mana when in only walk mode and idle
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (this.walkMode) |  |  |  |                 if (this.walkMode) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     manaRegen = ((this.manaMax * MBServerStatics.MANA_REGEN_IDLE) * getRegenModifier(ModType.ManaRecoverRate)); |  |  |  |                     manaRegen = (this.manaMax * 0.01f) * getRegenModifier(ModType.ManaRecoverRate) * MBServerStatics.MANA_REGEN_WALK; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 else if (!this.isCasting() && !this.isItemCasting()) |  |  |  |                 else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     manaRegen = ((this.manaMax * MBServerStatics.MANA_REGEN_RUN) * getRegenModifier(ModType.ManaRecoverRate)); |  |  |  |                     manaRegen = (this.manaMax * 0.01f) * getRegenModifier(ModType.ManaRecoverRate) * MBServerStatics.MANA_REGEN_IDLE; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 else |  |  |  |                 } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     manaRegen = 0; |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (!PlayerCharacter.CanBreathe(this)) |  |  |  |                 if (!PlayerCharacter.CanBreathe(this)) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     stamRegen = MBServerStatics.STAMINA_REGEN_SWIM; |  |  |  |                     stamRegen = MBServerStatics.STAMINA_REGEN_SWIM; | 
			
		
	
	
		
		
			
				
					|  |  | @ -5841,16 +5832,25 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Multiple regen values by current deltaTime
 |  |  |  |         // Multiple regen values by current deltaTime
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //     Logger.info("", healthRegen + "");
 |  |  |  |         //     Logger.info("", healthRegen + "");
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         healthRegen *= getDeltaTime(); |  |  |  |         long currentTime = System.currentTimeMillis(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         manaRegen *= getDeltaTime(); |  |  |  |         Long regenTime; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         stamRegen *= getStamDeltaTime(); |  |  |  |         if(this.timestamps.containsKey("LastRegen")) | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             regenTime = this.timestamps.get("LastRegen"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         else | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             regenTime = currentTime; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         float secondsPassed = (currentTime - regenTime) / 1000f; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         healthRegen *= secondsPassed; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         manaRegen *= secondsPassed; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         stamRegen *= secondsPassed; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         this.timestamps.put("LastRegen",currentTime); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ChatManager.chatSystemInfo(this,"Mana: " + this.mana.get()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         boolean workedHealth = false; |  |  |  |         boolean workedHealth = false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         boolean workedMana = false; |  |  |  |         boolean workedMana = false; | 
			
		
	
		
		
			
				
					
					|  |  |  |         boolean workedStamina = false; |  |  |  |         boolean workedStamina = false; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         ChatManager.chatSystemInfo(this,"Recovering Mana: " + manaRegen); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         float old, mod; |  |  |  |         float old, mod; | 
			
		
	
		
		
			
				
					
					|  |  |  |         while (!workedHealth || !workedMana || !workedStamina) { |  |  |  |         while (!workedHealth || !workedMana || !workedStamina) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (!this.isAlive() || !this.isActive()) |  |  |  |             if (!this.isAlive() || !this.isActive()) | 
			
		
	
	
		
		
			
				
					|  |  | @ -5887,7 +5887,7 @@ public class PlayerCharacter extends AbstractCharacter { | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (updateClient || secondsDifference > 2.5f) |  |  |  |         if (updateClient) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             this.syncClient(); |  |  |  |             this.syncClient(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Reset this char's frame time.
 |  |  |  |         // Reset this char's frame time.
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |