/mob/living/carbon/adjustStaminaLossBuffered(amount, updating_stamina = 1) if(status_flags & GODMODE) return 0 if(CONFIG_GET(flag/disable_stambuffer)) return var/directstamloss = (bufferedstam + amount) - stambuffer if(directstamloss > 0) adjustStaminaLoss(directstamloss) bufferedstam = CLAMP(bufferedstam + amount, 0, stambuffer) stambufferregentime = world.time + 10 if(updating_stamina) update_health_hud() /mob/living/carbon/adjustStaminaLoss(amount, updating_health = TRUE, forced = FALSE, affected_zone = BODY_ZONE_CHEST) if(!forced && (status_flags & GODMODE)) return FALSE apply_damage(amount > 0 ? amount*incomingstammult : amount, STAMINA, affected_zone) if(recoveringstam && amount > 20) incomingstammult = max(0.01, incomingstammult/(amount*0.05)) return amount /mob/living/carbon/doSprintLossTiles(tiles) doSprintBufferRegen(FALSE) //first regen. if(sprint_buffer) var/use = min(tiles, sprint_buffer) sprint_buffer -= use tiles -= use update_hud_sprint_bar() if(!tiles) //we had enough, we're done! return adjustStaminaLoss(tiles * sprint_stamina_cost) //use stamina to cover deficit. /mob/living/carbon/proc/doSprintBufferRegen(updating = TRUE) var/diff = world.time - sprint_buffer_regen_last sprint_buffer_regen_last = world.time sprint_buffer = min(sprint_buffer_max, sprint_buffer + sprint_buffer_regen_ds * diff) if(updating) update_hud_sprint_bar()