mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Shamelessly steals HarpyEagle's code
This commit is contained in:
@@ -24,6 +24,11 @@
|
|||||||
breath = get_breath_from_internal() //First, check for air from internals
|
breath = get_breath_from_internal() //First, check for air from internals
|
||||||
if(!breath)
|
if(!breath)
|
||||||
breath = get_breath_from_environment() //No breath from internals so let's try to get air from our location
|
breath = get_breath_from_environment() //No breath from internals so let's try to get air from our location
|
||||||
|
if(!breath)
|
||||||
|
var/static/datum/gas_mixture/vacuum //avoid having to create a new gas mixture for each breath in space
|
||||||
|
if(!vacuum) vacuum = new
|
||||||
|
|
||||||
|
breath = vacuum //still nothing? must be vacuum
|
||||||
|
|
||||||
handle_breath(breath)
|
handle_breath(breath)
|
||||||
handle_post_breath(breath)
|
handle_post_breath(breath)
|
||||||
|
|||||||
@@ -928,9 +928,8 @@
|
|||||||
/mob/living/carbon/human/proc/rupture_lung()
|
/mob/living/carbon/human/proc/rupture_lung()
|
||||||
var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
|
var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
|
||||||
|
|
||||||
if(L && !L.is_bruised())
|
if(L)
|
||||||
src.custom_pain("You feel a stabbing pain in your chest!", 1)
|
L.rupture()
|
||||||
L.damage = L.min_bruised_damage
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
/mob/living/carbon/human/verb/simulate()
|
/mob/living/carbon/human/verb/simulate()
|
||||||
|
|||||||
@@ -332,6 +332,12 @@
|
|||||||
adjustOxyLoss(-5)
|
adjustOxyLoss(-5)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(should_have_organ(O_LUNGS))
|
||||||
|
var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
|
||||||
|
if(breath.total_moles < BREATH_MOLES / 5 || breath.total_moles > BREATH_MOLES * 5)
|
||||||
|
if(!L.is_bruised() && prob(5))
|
||||||
|
rupture_lung()
|
||||||
|
|
||||||
if(!breath || (breath.total_moles == 0) || suiciding)
|
if(!breath || (breath.total_moles == 0) || suiciding)
|
||||||
failed_last_breath = 1
|
failed_last_breath = 1
|
||||||
if(suiciding)
|
if(suiciding)
|
||||||
@@ -343,9 +349,6 @@
|
|||||||
else
|
else
|
||||||
adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS)
|
adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS)
|
||||||
|
|
||||||
if(prob(5))
|
|
||||||
rupture_lung()
|
|
||||||
|
|
||||||
oxygen_alert = max(oxygen_alert, 1)
|
oxygen_alert = max(oxygen_alert, 1)
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -23,4 +23,11 @@
|
|||||||
owner.drip(10)
|
owner.drip(10)
|
||||||
if(prob(4))
|
if(prob(4))
|
||||||
spawn owner.emote("me", 1, "gasps for air!")
|
spawn owner.emote("me", 1, "gasps for air!")
|
||||||
owner.losebreath += 15
|
owner.losebreath += 15
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/organ/internal/lungs/proc/rupture()
|
||||||
|
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
|
||||||
|
if(istype(parent))
|
||||||
|
owner.custom_pain("You feel a stabbing pain in your [parent.name]!", 1)
|
||||||
|
parent.bruise()
|
||||||
@@ -247,6 +247,9 @@ var/list/organ_cache = list()
|
|||||||
if(parent && !silent)
|
if(parent && !silent)
|
||||||
owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1)
|
owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1)
|
||||||
|
|
||||||
|
/obj/item/organ/proc/bruise()
|
||||||
|
damage = max(damage, min_bruised_damage)
|
||||||
|
|
||||||
/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
|
/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
|
||||||
robotic = ORGAN_ROBOT
|
robotic = ORGAN_ROBOT
|
||||||
src.status &= ~ORGAN_BROKEN
|
src.status &= ~ORGAN_BROKEN
|
||||||
|
|||||||
Reference in New Issue
Block a user