diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index a9d85d0fed..f69616159d 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -12,5 +12,5 @@ //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) - user.do_adrenaline(100, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.") + user.do_adrenaline(50, FALSE, 70, 0, TRUE, list("epinephrine" = 3, "changelingmeth" = 10, "mannitol" = 10, "omnizine" = 10, "changelingadrenaline" = 5), "Energy rushes through us.", 50, 0.5, 100) return TRUE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 65ed57a6f1..c10367d24e 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1190,7 +1190,10 @@ clamp_immobility_to = 0, reset_misc = TRUE, healing_chems = list("inaprovaline" = 3, "synaptizine" = 10, "omnizine" = 10, "stimulants" = 10), - message = "You feel a surge of energy!" + message = "You feel a surge of energy!", + stamina_buffer_boost = 0, //restores stamina buffer rather than just health + scale_stamina_loss_recovery, //defaults to null. if this is set, restores loss * this stamina. make sure it's a fraction. + stamina_loss_recovery_bypass = 0 //amount of stamina loss to ignore during calculation ) if(AmountSleeping() > clamp_unconscious_to) SetSleeping(clamp_unconscious_to) @@ -1201,6 +1204,9 @@ if(AmountKnockdown() > clamp_immobility_to) SetKnockdown(clamp_immobility_to) adjustStaminaLoss(max(0, -stamina_boost)) + adjustStaminaLossBuffered(max(0, -stamina_buffer_boost)) + if(scale_stamina_loss_recovery) + adjustStaminaLoss(max(-((getStaminaLoss() - stamina_loss_recovery_bypass) * scale_stamina_loss_recovery), 0)) if(put_on_feet) resting = FALSE lying = FALSE