mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 01:23:41 +01:00
Merge branch 'master' of https://github.com/Baystation12/Baystation12 into bs12_with_tgport
This commit is contained in:
@@ -118,7 +118,8 @@
|
||||
if (holder.level >= -1)
|
||||
seeprayers = 1
|
||||
|
||||
verbs += /client/proc/cmd_admin_say
|
||||
verbs += /client/proc/cmd_admin_say //Allows anyone rank -1 or higher to use asay -- removed when it hits 0 (mods), added again at 1 (Temp Admin)
|
||||
verbs += /client/proc/cmd_mod_say //Allows anyone rank -1 or higher to use msay
|
||||
verbs += /client/proc/deadmin_self
|
||||
verbs += /client/proc/toggleadminhelpsound
|
||||
else
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
var/last_eating = 0 //Not sure what this does... I found it hidden in food.dm
|
||||
|
||||
var/life_tick = 0 // The amount of life ticks that have processed on this mob.
|
||||
|
||||
var/analgesic = 0 // when this is set, the mob isn't affected by shock or pain
|
||||
// life should decrease this by 1 every tick
|
||||
// total amount of wounds on mob, used to spread out healing and the like over all wounds
|
||||
var/number_wounds = 0
|
||||
@@ -26,6 +26,8 @@
|
||||
else if(E.status & ORGAN_BROKEN)
|
||||
tally += 1.5
|
||||
|
||||
if(shock_stage >= 10) tally += 3
|
||||
|
||||
if(FAT in src.mutations)
|
||||
tally += 1.5
|
||||
if (bodytemperature < 283.222)
|
||||
|
||||
@@ -92,6 +92,10 @@
|
||||
//stuff in the stomach
|
||||
handle_stomach()
|
||||
|
||||
handle_shock()
|
||||
|
||||
handle_pain()
|
||||
|
||||
//Status updates, death etc.
|
||||
handle_regular_status_updates() //TODO: optimise ~Carn
|
||||
update_canmove()
|
||||
@@ -968,6 +972,8 @@
|
||||
silent = 0
|
||||
return 1
|
||||
|
||||
// the analgesic effect wears off slowly
|
||||
analgesic = max(0, analgesic - 1)
|
||||
|
||||
//UNCONSCIOUS. NO-ONE IS HOME
|
||||
if( (getOxyLoss() > 50) || (config.health_threshold_crit > health) )
|
||||
@@ -1384,5 +1390,43 @@
|
||||
if(mind && mind.changeling)
|
||||
mind.changeling.regenerate()
|
||||
|
||||
handle_shock()
|
||||
..()
|
||||
|
||||
if(analgesic) return // analgesic avoids all traumatic shock temporarily
|
||||
|
||||
if(health < 0)// health 0 makes you immediately collapse
|
||||
shock_stage = max(shock_stage, 61)
|
||||
|
||||
if(traumatic_shock >= 80)
|
||||
shock_stage += 1
|
||||
else
|
||||
shock_stage = min(shock_stage, 100)
|
||||
shock_stage = max(shock_stage-1, 0)
|
||||
return
|
||||
|
||||
if(shock_stage == 10)
|
||||
src << "<font color='red'><b>"+pick("It hurts so much!", "You really need some painkillers..", "Dear god, the pain!")
|
||||
|
||||
if(shock_stage >= 30)
|
||||
if(shock_stage == 30) emote("me",1,"is having trouble keeping their eyes open.")
|
||||
eye_blurry = max(2, eye_blurry)
|
||||
stuttering = max(stuttering, 5)
|
||||
|
||||
if(shock_stage == 40)
|
||||
src << "<font color='red'><b>"+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!")
|
||||
|
||||
if (shock_stage >= 60)
|
||||
if(shock_stage == 60) emote("me",1,"'s body becomes limp.")
|
||||
if (prob(5))
|
||||
Stun(20)
|
||||
lying = 1
|
||||
|
||||
if(shock_stage == 80)
|
||||
src << "<font color='red'><b>"+pick("You see a light at the end of the tunnel!", "You feel like you could die any moment now.", "You're about to lose consciousness.")
|
||||
|
||||
if (shock_stage > 80)
|
||||
Paralyse(rand(15,28))
|
||||
|
||||
#undef HUMAN_MAX_OXYLOSS
|
||||
#undef HUMAN_CRIT_MAX_OXYLOSS
|
||||
@@ -20,8 +20,9 @@
|
||||
// broken or ripped off organs will add quite a bit of pain
|
||||
if(istype(src,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/M = src
|
||||
for(var/name in M.organs)
|
||||
var/datum/organ/external/organ = M.organs[name]
|
||||
for(var/datum/organ/external/organ in M.organs)
|
||||
if (!organ)
|
||||
continue
|
||||
if((organ.status & ORGAN_DESTROYED) && !organ.amputated)
|
||||
src.traumatic_shock += 60
|
||||
else if(organ.status & ORGAN_BROKEN || organ.open)
|
||||
|
||||
@@ -78,6 +78,7 @@ var/list/department_radio_keys = list(
|
||||
|
||||
/mob/living/say(var/message)
|
||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
||||
message = capitalize(message)
|
||||
|
||||
if (!message)
|
||||
return
|
||||
|
||||
@@ -881,6 +881,20 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
tramadol
|
||||
name = "Tramadol"
|
||||
id = "tramadol"
|
||||
description = "A simple, yet effective painkiller."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
|
||||
oxycodone
|
||||
name = "Oxycodone"
|
||||
id = "oxycodone"
|
||||
description = "An effective and very addictive painkiller."
|
||||
reagent_state = LIQUID
|
||||
color = "#C805DC"
|
||||
|
||||
virus_food
|
||||
name = "Virus Food"
|
||||
id = "virusfood"
|
||||
|
||||
@@ -90,6 +90,20 @@ datum
|
||||
required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1)
|
||||
result_amount = 3
|
||||
|
||||
tramadol
|
||||
name = "Tramadol"
|
||||
id = "tramadol"
|
||||
result = "tramadol"
|
||||
required_reagents = list("inaprovaline" = 1, "ethanol" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
oxycodone
|
||||
name = "Oxycodone"
|
||||
id = "oxycodone"
|
||||
result = "oxycodone"
|
||||
required_reagents = list("ethanol" = 1, "tramadol" = 1, "plasma" = 1)
|
||||
result_amount = 1
|
||||
|
||||
//cyanide
|
||||
// name = "Cyanide"
|
||||
// id = "cyanide"
|
||||
|
||||
Reference in New Issue
Block a user