Commit 6d678557 authored by gentlespoon's avatar gentlespoon Committed by Melledy
Browse files

fix/runningAndDashingStamina

parent 58cb6029
...@@ -268,7 +268,7 @@ public class MovementManager { ...@@ -268,7 +268,7 @@ public class MovementManager {
if (Grasscutter.getConfig().OpenStamina) { if (Grasscutter.getConfig().OpenStamina) {
boolean moving = isPlayerMoving(); boolean moving = isPlayerMoving();
if (moving || (getCurrentStamina() < getMaximumStamina())) { if (moving || (getCurrentStamina() < getMaximumStamina())) {
Grasscutter.getLogger().debug("Player moving: " + moving + ", stamina full: " + (getCurrentStamina() >= getMaximumStamina()) + ", recalculate stamina"); // Grasscutter.getLogger().debug("Player moving: " + moving + ", stamina full: " + (getCurrentStamina() >= getMaximumStamina()) + ", recalculate stamina");
Consumption consumption = Consumption.None; Consumption consumption = Consumption.None;
// TODO: refactor these conditions. // TODO: refactor these conditions.
...@@ -306,14 +306,16 @@ public class MovementManager { ...@@ -306,14 +306,16 @@ public class MovementManager {
} else if (MotionStatesCategorized.get("RUN").contains(currentState)) { } else if (MotionStatesCategorized.get("RUN").contains(currentState)) {
// RUN, DASH and WALK // RUN, DASH and WALK
// DASH // DASH
if (currentState == MotionState.MOTION_DASH) { if (currentState == MotionState.MOTION_DASH_BEFORE_SHAKE) {
if (previousState == MotionState.MOTION_DASH) { consumption = Consumption.DASH;
if (previousState == MotionState.MOTION_DASH_BEFORE_SHAKE) {
// only charge once
consumption = Consumption.SPRINT; consumption = Consumption.SPRINT;
} else {
// cost more to start dashing
consumption = Consumption.DASH;
} }
} }
if (currentState == MotionState.MOTION_DASH) {
consumption = Consumption.SPRINT;
}
// RUN // RUN
if (currentState == MotionState.MOTION_RUN) { if (currentState == MotionState.MOTION_RUN) {
consumption = Consumption.RUN; consumption = Consumption.RUN;
...@@ -347,14 +349,13 @@ public class MovementManager { ...@@ -347,14 +349,13 @@ public class MovementManager {
staminaRecoverDelay = 0; staminaRecoverDelay = 0;
} }
if (consumption.amount > 0) { if (consumption.amount > 0) {
if (staminaRecoverDelay < 5) { if (staminaRecoverDelay < 10) {
staminaRecoverDelay++; staminaRecoverDelay++;
consumption = Consumption.None; consumption = Consumption.None;
} }
} }
int newStamina = updateStamina(cachedSession, consumption.amount); int newStamina = updateStamina(cachedSession, consumption.amount);
cachedSession.send(new PacketPlayerPropNotify(player, PlayerProperty.PROP_CUR_PERSIST_STAMINA)); cachedSession.send(new PacketPlayerPropNotify(player, PlayerProperty.PROP_CUR_PERSIST_STAMINA));
Grasscutter.getLogger().debug(player.getProperty(PlayerProperty.PROP_CUR_PERSIST_STAMINA) + "/" + player.getProperty(PlayerProperty.PROP_MAX_STAMINA) + "\t" + currentState + "\t" + "isMoving: " + isPlayerMoving() + "\t" + consumption + "(" + consumption.amount + ")"); Grasscutter.getLogger().debug(player.getProperty(PlayerProperty.PROP_CUR_PERSIST_STAMINA) + "/" + player.getProperty(PlayerProperty.PROP_MAX_STAMINA) + "\t" + currentState + "\t" + "isMoving: " + isPlayerMoving() + "\t" + consumption + "(" + consumption.amount + ")");
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment