mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-10 17:53:21 +08:00
fix/runningAndDashingStamina
This commit is contained in:
parent
58cb60299c
commit
6d678557ff
@ -268,7 +268,7 @@ public class MovementManager {
|
||||
if (Grasscutter.getConfig().OpenStamina) {
|
||||
boolean moving = isPlayerMoving();
|
||||
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;
|
||||
|
||||
// TODO: refactor these conditions.
|
||||
@ -306,14 +306,16 @@ public class MovementManager {
|
||||
} else if (MotionStatesCategorized.get("RUN").contains(currentState)) {
|
||||
// RUN, DASH and WALK
|
||||
// DASH
|
||||
if (currentState == MotionState.MOTION_DASH) {
|
||||
if (previousState == MotionState.MOTION_DASH) {
|
||||
if (currentState == MotionState.MOTION_DASH_BEFORE_SHAKE) {
|
||||
consumption = Consumption.DASH;
|
||||
if (previousState == MotionState.MOTION_DASH_BEFORE_SHAKE) {
|
||||
// only charge once
|
||||
consumption = Consumption.SPRINT;
|
||||
} else {
|
||||
// cost more to start dashing
|
||||
consumption = Consumption.DASH;
|
||||
}
|
||||
}
|
||||
if (currentState == MotionState.MOTION_DASH) {
|
||||
consumption = Consumption.SPRINT;
|
||||
}
|
||||
// RUN
|
||||
if (currentState == MotionState.MOTION_RUN) {
|
||||
consumption = Consumption.RUN;
|
||||
@ -347,14 +349,13 @@ public class MovementManager {
|
||||
staminaRecoverDelay = 0;
|
||||
}
|
||||
if (consumption.amount > 0) {
|
||||
if (staminaRecoverDelay < 5) {
|
||||
if (staminaRecoverDelay < 10) {
|
||||
staminaRecoverDelay++;
|
||||
consumption = Consumption.None;
|
||||
}
|
||||
}
|
||||
int newStamina = updateStamina(cachedSession, consumption.amount);
|
||||
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 + ")");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user