Merge pull request #8159 from Poojawa/lizard-hyperoxia
Carbon Oxygen Toxicity
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
|
||||
|
||||
var/co2overloadtime = null
|
||||
var/o2overloadtime = null //for Ash walker's weaker lungs, and future atmosia hazards
|
||||
var/temperature_resistance = T0C+75
|
||||
var/obj/item/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
id = "ashlizard"
|
||||
limbs_id = "lizard"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE)
|
||||
inherent_traits = list(TRAIT_NOGUNS,TRAIT_NOBREATH)
|
||||
inherent_traits = list(TRAIT_NOGUNS)
|
||||
mutantlungs = /obj/item/organ/lungs/ashwalker
|
||||
burnmod = 0.9
|
||||
brutemod = 0.9
|
||||
@@ -141,6 +141,7 @@
|
||||
return 0
|
||||
|
||||
var/safe_oxy_min = 16
|
||||
var/safe_oxy_max = 50
|
||||
var/safe_co2_max = 10
|
||||
var/safe_tox_max = 0.05
|
||||
var/SA_para_min = 1
|
||||
@@ -156,6 +157,19 @@
|
||||
|
||||
|
||||
//OXYGEN
|
||||
if(O2_partialpressure > safe_oxy_max) // Too much Oxygen - blatant CO2 effect copy/pasta
|
||||
if(!o2overloadtime)
|
||||
o2overloadtime = world.time
|
||||
else if(world.time - o2overloadtime > 120)
|
||||
Dizzy(10) // better than a minute of you're fucked KO, but certainly a wake up call. Honk.
|
||||
adjustOxyLoss(3)
|
||||
if(world.time - o2overloadtime > 300)
|
||||
adjustOxyLoss(8)
|
||||
if(prob(20))
|
||||
emote("cough")
|
||||
throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy)
|
||||
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation)
|
||||
|
||||
if(O2_partialpressure < safe_oxy_min) //Not enough oxygen
|
||||
if(prob(20))
|
||||
emote("gasp")
|
||||
@@ -172,6 +186,7 @@
|
||||
|
||||
else //Enough oxygen
|
||||
failed_last_breath = 0
|
||||
o2overloadtime = 0 //reset our counter for this too
|
||||
if(health >= crit_threshold)
|
||||
adjustOxyLoss(-5)
|
||||
oxygen_used = breath_gases[/datum/gas/oxygen][MOLES]
|
||||
|
||||
Reference in New Issue
Block a user