Browse Source

new Regen

lakebane
FatBoy-DOTC 1 week ago
parent
commit
b9b254f8e8
  1. 11
      src/engine/objects/PlayerCombatStats.java

11
src/engine/objects/PlayerCombatStats.java

@ -889,9 +889,11 @@ public class PlayerCombatStats { @@ -889,9 +889,11 @@ public class PlayerCombatStats {
public void regenerate(){
if(!this.owner.effects.containsKey("Stunned")) {
healthRegen(this.owner);
manaRegen(this.owner);
staminaRegen(this.owner);
}
staminaConsume(this.owner);
this.owner.syncClient();
}
@ -949,7 +951,7 @@ public class PlayerCombatStats { @@ -949,7 +951,7 @@ public class PlayerCombatStats {
public static void staminaRegen(PlayerCharacter pc){
//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());
return;
}
@ -975,7 +977,7 @@ public class PlayerCombatStats { @@ -975,7 +977,7 @@ public class PlayerCombatStats {
worked = pc.stamina.compareAndSet(current, mod);
}
pc.timestamps.put("LASTSTAMINACONSUME",System.currentTimeMillis());
pc.timestamps.put("LASTSTAMINAREGEN",System.currentTimeMillis());
}
public static void staminaConsume(PlayerCharacter pc){
@ -991,14 +993,15 @@ public class PlayerCombatStats { @@ -991,14 +993,15 @@ public class PlayerCombatStats {
}
float stateMultiplier = 1.0f;
if(pc.isSwimming() || pc.isFlying())
stateMultiplier = 1.5f;
stateMultiplier = 2.5f;
if(!pc.timestamps.containsKey("LASTSTAMINACONSUME"))
pc.timestamps.put("LASTSTAMINACONSUME",System.currentTimeMillis());
long deltaTime = System.currentTimeMillis() - pc.timestamps.get("LASTSTAMINACONSUME");
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;
if(mod <= 0)
mod = 0;

Loading…
Cancel
Save