mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 19:42:42 +00:00
Pain Drain (#10685)
Added a paralysis indicator to the HUD.
Being paralyzed will no longer make you asleep, instead, you will be awake with a crit overlay, and you will only be able to whisper.
Pain doesn't slow you down as much anymore. It's still pretty substantial, though.
You now lose pain damage much faster.
A message now plays if you drop your items because of how much pain damage you have.
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
|
||||
if(can_feel_pain())
|
||||
if(get_shock() >= 10)
|
||||
tally += (get_shock() / 10) //pain shouldn't slow you down if you can't even feel it
|
||||
tally += (get_shock() / 30) //pain shouldn't slow you down if you can't even feel it
|
||||
|
||||
tally += ClothesSlowdown()
|
||||
|
||||
|
||||
@@ -728,8 +728,10 @@
|
||||
|
||||
if(paralysis || sleeping || InStasis())
|
||||
blinded = TRUE
|
||||
stat = UNCONSCIOUS
|
||||
adjustHalLoss(-3)
|
||||
if(sleeping)
|
||||
stat = UNCONSCIOUS
|
||||
|
||||
adjustHalLoss(-7)
|
||||
if (species.tail)
|
||||
animate_tail_reset()
|
||||
if(prob(2) && is_asystole() && isSynthetic())
|
||||
@@ -765,11 +767,11 @@
|
||||
if(resting)
|
||||
dizziness = max(0, dizziness - 15)
|
||||
jitteriness = max(0, jitteriness - 15)
|
||||
adjustHalLoss(-3)
|
||||
adjustHalLoss(-5)
|
||||
else
|
||||
dizziness = max(0, dizziness - 3)
|
||||
jitteriness = max(0, jitteriness - 3)
|
||||
adjustHalLoss(-1)
|
||||
adjustHalLoss(-3)
|
||||
|
||||
//Other
|
||||
handle_statuses()
|
||||
@@ -810,7 +812,7 @@
|
||||
return
|
||||
|
||||
if(stat != DEAD)
|
||||
if(stat == UNCONSCIOUS && health < maxHealth / 2)
|
||||
if((stat == UNCONSCIOUS && health < maxHealth / 2) || paralysis || InStasis())
|
||||
//Critical damage passage overlay
|
||||
var/severity = 0
|
||||
switch(health - maxHealth/2)
|
||||
@@ -824,6 +826,8 @@
|
||||
if(-90 to -80) severity = 8
|
||||
if(-95 to -90) severity = 9
|
||||
if(-INFINITY to -95) severity = 10
|
||||
if(paralysis || InStasis())
|
||||
severity = max(severity, 8)
|
||||
overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity)
|
||||
else
|
||||
clear_fullscreen("crit")
|
||||
@@ -858,6 +862,12 @@
|
||||
else
|
||||
clear_fullscreen("brute")
|
||||
|
||||
if(paralysis_indicator)
|
||||
if(paralysis)
|
||||
paralysis_indicator.icon_state = "paralysis1"
|
||||
else
|
||||
paralysis_indicator.icon_state = "paralysis0"
|
||||
|
||||
if(healths)
|
||||
healths.overlays.Cut()
|
||||
if (chem_effects[CE_PAINKILLER] > 100)
|
||||
|
||||
@@ -150,6 +150,9 @@
|
||||
return returns
|
||||
|
||||
/mob/living/carbon/human/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name, successful_radio)
|
||||
if(paralysis || InStasis())
|
||||
whisper_say(message, speaking, alt_name)
|
||||
return TRUE
|
||||
switch(message_mode)
|
||||
if("intercom")
|
||||
for(var/obj/item/device/radio/intercom/I in view(1))
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/obj/screen/purged = null
|
||||
var/obj/screen/internals/internals = null
|
||||
var/obj/screen/oxygen = null
|
||||
var/obj/screen/paralysis_indicator = null
|
||||
var/obj/screen/i_select = null
|
||||
var/obj/screen/m_select = null
|
||||
var/obj/screen/toxin = null
|
||||
|
||||
@@ -73,6 +73,7 @@ mob/var/next_pain_time = 0
|
||||
if(maxdam > 10 && paralysis)
|
||||
paralysis = max(0, paralysis - round(maxdam / 10))
|
||||
if(maxdam > 50 && prob(maxdam / 5))
|
||||
to_chat(src, SPAN_WARNING("A bolt of pain shoots through your body, causing your hands to spasm!"))
|
||||
drop_item()
|
||||
var/burning = damaged_organ.burn_dam > damaged_organ.brute_dam
|
||||
var/msg
|
||||
|
||||
Reference in New Issue
Block a user