recovering rates
This commit is contained in:
@@ -908,7 +908,9 @@ public class PlayerCombatStats {
|
||||
long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTHEALTHREGEN");
|
||||
float current = pc.health.get();
|
||||
float onePercent = pc.healthMax * 0.01f;
|
||||
float mod = current + ((deltaTime * 0.001f) * onePercent * stateMultiplier);
|
||||
|
||||
float properDelay = (deltaTime / getRecoveryType(pc).health) * 0.001f;
|
||||
float mod = current + (properDelay * onePercent * stateMultiplier);
|
||||
if(pc.bonuses != null)
|
||||
mod *= 1 + pc.bonuses.getFloatPercentAll(Enum.ModType.HealthRecoverRate, Enum.SourceType.None);
|
||||
|
||||
@@ -934,7 +936,8 @@ public class PlayerCombatStats {
|
||||
long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTMANAREGEN");
|
||||
float current = pc.mana.get();
|
||||
float onePercent = pc.manaMax * 0.01f;
|
||||
float mod = current + ((deltaTime * 0.001f) * onePercent * stateMultiplier);
|
||||
float properDelay = (deltaTime / getRecoveryType(pc).mana) * 0.001f;
|
||||
float mod = current + (properDelay * onePercent * stateMultiplier);
|
||||
if(pc.bonuses != null)
|
||||
mod *= 1 + pc.bonuses.getFloatPercentAll(Enum.ModType.ManaRecoverRate, Enum.SourceType.None);
|
||||
|
||||
@@ -965,7 +968,8 @@ public class PlayerCombatStats {
|
||||
|
||||
long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTSTAMINAREGEN");
|
||||
float current = pc.stamina.get();
|
||||
float mod = current + ((deltaTime * 0.001f) * stateMultiplier);
|
||||
float properDelay = (deltaTime / getRecoveryType(pc).stamina) * 0.001f;
|
||||
float mod = current + (properDelay * stateMultiplier);
|
||||
if(pc.bonuses != null)
|
||||
mod *= 1 + pc.bonuses.getFloatPercentAll(Enum.ModType.StaminaRecoverRate, Enum.SourceType.None);
|
||||
|
||||
@@ -1029,4 +1033,33 @@ public class PlayerCombatStats {
|
||||
}
|
||||
}
|
||||
|
||||
private enum recoveryType{
|
||||
RESTING(3.0f,1.25f,0.5f),
|
||||
IDLING(15.0f,6.0f,5.0f),
|
||||
WALKING(20.0f,8.0f,0.0f),
|
||||
RUNNING(0.0f,0.0f,0.0f);
|
||||
public float health;
|
||||
public float mana;
|
||||
public float stamina;
|
||||
|
||||
|
||||
recoveryType(float health,float mana, float stamina){
|
||||
this.health = health;
|
||||
this.mana = mana;
|
||||
this.stamina = stamina;
|
||||
}
|
||||
}
|
||||
|
||||
public static recoveryType getRecoveryType(PlayerCharacter pc){
|
||||
if(pc.sit)
|
||||
return recoveryType.RESTING;
|
||||
else if(!pc.isMoving())
|
||||
return recoveryType.IDLING;
|
||||
else
|
||||
if(pc.walkMode)
|
||||
return recoveryType.WALKING;
|
||||
else
|
||||
return recoveryType.RUNNING;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user