diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 96f5dddc424..21e06c6e2a3 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -515,31 +515,31 @@
// Hot air hurts :(
- if((breath.temperature < species.cold_level_1 || breath.temperature > species.heat_level_1) && !(COLD_RESISTANCE in mutations))
+ if((breath.temperature < species.breath_cold_level_1 || breath.temperature > species.breath_heat_level_1) && !(COLD_RESISTANCE in mutations))
- if(breath.temperature <= species.cold_level_1)
+ if(breath.temperature <= species.breath_cold_level_1)
if(prob(20))
src << "You feel your face freezing and icicles forming in your lungs!"
- else if(breath.temperature >= species.heat_level_1)
+ else if(breath.temperature >= species.breath_heat_level_1)
if(prob(20))
src << "You feel your face burning and a searing heat in your lungs!"
- if(breath.temperature >= species.heat_level_1)
- if(breath.temperature < species.heat_level_2)
+ if(breath.temperature >= species.breath_heat_level_1)
+ if(breath.temperature < species.breath_heat_level_2)
apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Heat")
fire_alert = max(fire_alert, 2)
- else if(breath.temperature < species.heat_level_3)
+ else if(breath.temperature < species.breath_heat_level_3)
apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Heat")
fire_alert = max(fire_alert, 2)
else
apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, BP_HEAD, used_weapon = "Excessive Heat")
fire_alert = max(fire_alert, 2)
- else if(breath.temperature <= species.cold_level_1)
- if(breath.temperature > species.cold_level_2)
+ else if(breath.temperature <= species.breath_cold_level_1)
+ if(breath.temperature > species.breath_cold_level_2)
apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Cold")
fire_alert = max(fire_alert, 1)
- else if(breath.temperature > species.cold_level_3)
+ else if(breath.temperature > species.breath_cold_level_3)
apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Cold")
fire_alert = max(fire_alert, 1)
else
@@ -629,34 +629,42 @@
fire_alert = max(fire_alert, 1)
if(status_flags & GODMODE)
return 1 //godmode
+
var/burn_dam = 0
// switch() can't access numbers inside variables, so we need to use some ugly if() spam ladder.
- if(bodytemperature >= species.heat_level_3)
- burn_dam = HEAT_DAMAGE_LEVEL_3
- else if(bodytemperature >= species.heat_level_2)
- burn_dam = HEAT_DAMAGE_LEVEL_2
- else if(bodytemperature >= species.heat_level_1)
- burn_dam = HEAT_DAMAGE_LEVEL_1
+ if(bodytemperature >= species.heat_level_1)
+ if(bodytemperature >= species.heat_level_2)
+ if(bodytemperature >= species.heat_level_3)
+ burn_dam = HEAT_DAMAGE_LEVEL_3
+ else
+ burn_dam = HEAT_DAMAGE_LEVEL_2
+ else
+ burn_dam = HEAT_DAMAGE_LEVEL_1
take_overall_damage(burn=burn_dam, used_weapon = "High Body Temperature")
fire_alert = max(fire_alert, 2)
else if(bodytemperature <= species.cold_level_1)
+ //Body temperature is too cold.
fire_alert = max(fire_alert, 1)
+
if(status_flags & GODMODE)
return 1 //godmode
+
if(!istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
- var/burn_dam = 0
- if(bodytemperature <= species.cold_level_3)
- burn_dam = COLD_DAMAGE_LEVEL_3
- else if(bodytemperature <= species.cold_level_2)
- burn_dam = COLD_DAMAGE_LEVEL_2
- else if(bodytemperature <= species.heat_level_1)
- burn_dam = COLD_DAMAGE_LEVEL_1
+ var/cold_dam = 0
+ if(bodytemperature <= species.cold_level_1)
+ if(bodytemperature <= species.cold_level_2)
+ if(bodytemperature <= species.cold_level_3)
+ cold_dam = COLD_DAMAGE_LEVEL_3
+ else
+ cold_dam = COLD_DAMAGE_LEVEL_2
+ else
+ cold_dam = COLD_DAMAGE_LEVEL_1
- take_overall_damage(burn=burn_dam, used_weapon = "Low Body Temperature")
+ take_overall_damage(burn=cold_dam, used_weapon = "Low Body Temperature")
fire_alert = max(fire_alert, 1)
// Account for massive pressure differences. Done by Polymorph
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 3eea8754c1e..422ff983510 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -92,33 +92,50 @@
var/breath_type = "oxygen" // Non-oxygen gas breathed, if any.
var/poison_type = "phoron" // Poisonous air.
var/exhale_type = "carbon_dioxide" // Exhaled gas type.
+
+ var/body_temperature = 310.15 // Species will try to stabilize at this temperature. (also affects temperature processing)
+
+ // Cold
var/cold_level_1 = 260 // Cold damage level 1 below this point.
var/cold_level_2 = 200 // Cold damage level 2 below this point.
var/cold_level_3 = 120 // Cold damage level 3 below this point.
+
+ var/breath_cold_level_1 = 240 // Cold gas damage level 1 below this point.
+ var/breath_cold_level_2 = 180 // Cold gas damage level 2 below this point.
+ var/breath_cold_level_3 = 100 // Cold gas damage level 3 below this point.
+
+ var/cold_discomfort_level = 285 // Aesthetic messages about feeling chilly.
+ var/list/cold_discomfort_strings = list(
+ "You feel chilly.",
+ "You shiver suddenly.",
+ "Your chilly flesh stands out in goosebumps."
+ )
+
+ // Hot
var/heat_level_1 = 360 // Heat damage level 1 above this point.
var/heat_level_2 = 400 // Heat damage level 2 above this point.
var/heat_level_3 = 1000 // Heat damage level 3 above this point.
+
+ var/breath_heat_level_1 = 380 // Heat gas damage level 1 below this point.
+ var/breath_heat_level_2 = 450 // Heat gas damage level 2 below this point.
+ var/breath_heat_level_3 = 1250 // Heat gas damage level 3 below this point.
+
+ var/heat_discomfort_level = 315 // Aesthetic messages about feeling warm.
+ var/list/heat_discomfort_strings = list(
+ "You feel sweat drip down your neck.",
+ "You feel uncomfortably warm.",
+ "Your skin prickles in the heat."
+ )
+
+
var/passive_temp_gain = 0 // Species will gain this much temperature every second
var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure.
var/warning_high_pressure = WARNING_HIGH_PRESSURE // High pressure warning.
var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning.
var/hazard_low_pressure = HAZARD_LOW_PRESSURE // Dangerously low pressure.
var/light_dam // If set, mob will be damaged in light over this value and heal in light below its negative.
- var/body_temperature = 310.15 // Species will try to stabilize at this temperature. (also affects temperature processing)
var/minimum_breath_pressure = 16 // Minimum required pressure for breath, in kPa
- var/heat_discomfort_level = 315 // Aesthetic messages about feeling warm.
- var/cold_discomfort_level = 285 // Aesthetic messages about feeling chilly.
- var/list/heat_discomfort_strings = list(
- "You feel sweat drip down your neck.",
- "You feel uncomfortably warm.",
- "Your skin prickles in the heat."
- )
- var/list/cold_discomfort_strings = list(
- "You feel chilly.",
- "You shiver suddenly.",
- "Your chilly flesh stands out in goosebumps."
- )
var/metabolic_rate = 1
diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm
index 2d64d22fac6..2f01c4d2e63 100644
--- a/code/modules/mob/living/carbon/human/species/station/seromi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm
@@ -54,12 +54,22 @@
swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL
push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN
- cold_level_1 = 180
- cold_level_2 = 130
- cold_level_3 = 70
- heat_level_1 = 320
- heat_level_2 = 370
- heat_level_3 = 600
+ cold_level_1 = 180 //Default 260
+ cold_level_2 = 130 //Default 200
+ cold_level_3 = 70 //Default 120
+
+ breath_cold_level_1 = 180 //Default 240 - Lower is better
+ breath_cold_level_2 = 100 //Default 180
+ breath_cold_level_3 = 60 //Default 100
+
+ heat_level_1 = 320 //Default 360
+ heat_level_2 = 370 //Default 400
+ heat_level_3 = 600 //Default 1000
+
+ breath_heat_level_1 = 350 //Default 380 - Higher is better
+ breath_heat_level_2 = 400 //Default 450
+ breath_heat_level_3 = 800 //Default 1250
+
heat_discomfort_level = 295
heat_discomfort_strings = list(
"Your feathers prickle in the heat.",
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index d7073b3529c..7cfe3228fe2 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -56,12 +56,22 @@
cold_level_2 = 220 //Default 200
cold_level_3 = 130 //Default 120
+ breath_cold_level_1 = 260 //Default 240 - Lower is better
+ breath_cold_level_2 = 200 //Default 180
+ breath_cold_level_3 = 120 //Default 100
+
heat_level_1 = 420 //Default 360 - Higher is better
heat_level_2 = 480 //Default 400
heat_level_3 = 1100 //Default 1000
+ breath_heat_level_1 = 450 //Default 380 - Higher is better
+ breath_heat_level_2 = 530 //Default 450
+ breath_heat_level_3 = 1400 //Default 1250
+
minimum_breath_pressure = 18 //Bigger, means they need more air
+ body_temperature = T20C
+
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -142,14 +152,24 @@
governments, something that permeates even to today's times. They prefer colder, tundra-like climates, much like their \
home worlds and speak a variety of languages, especially Siik and Akhani."
+ body_temperature = 320.15 //Even more cold resistant, even more flammable
+
cold_level_1 = 200 //Default 260
cold_level_2 = 140 //Default 200
cold_level_3 = 80 //Default 120
+ breath_cold_level_1 = 180 //Default 240 - Lower is better
+ breath_cold_level_2 = 100 //Default 180
+ breath_cold_level_3 = 60 //Default 100
+
heat_level_1 = 330 //Default 360
heat_level_2 = 380 //Default 400
heat_level_3 = 800 //Default 1000
+ breath_heat_level_1 = 360 //Default 380 - Higher is better
+ breath_heat_level_2 = 430 //Default 450
+ breath_heat_level_3 = 1000 //Default 1250
+
primitive_form = "Farwa"
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
@@ -166,6 +186,7 @@
"You feel uncomfortably warm.",
"Your overheated skin itches."
)
+
cold_discomfort_level = 275
has_organ = list( //No appendix.
@@ -218,10 +239,18 @@
cold_level_2 = 220 //Default 200
cold_level_3 = 130 //Default 120
+ breath_cold_level_1 = 250 //Default 240 - Lower is better
+ breath_cold_level_2 = 190 //Default 180
+ breath_cold_level_3 = 120 //Default 100
+
heat_level_1 = 420 //Default 360 - Higher is better
heat_level_2 = 480 //Default 400
heat_level_3 = 1100 //Default 1000
+ breath_heat_level_1 = 400 //Default 380 - Higher is better
+ breath_heat_level_2 = 500 //Default 450
+ breath_heat_level_3 = 1350 //Default 1250
+
reagent_tag = IS_SKRELL
has_limbs = list(