Files
GS13NG/modular_citadel/code/modules/mob/living/carbon/damage_procs.dm
T
2019-05-25 21:57:25 -07:00

39 lines
1.4 KiB
Plaintext

/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()