mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
Merge pull request #3973 from Anewbe/breath_temp
Splits cold/heat processing into breath and body vars, species temp tweaks
This commit is contained in:
@@ -515,31 +515,31 @@
|
|||||||
|
|
||||||
|
|
||||||
// Hot air hurts :(
|
// 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))
|
if(prob(20))
|
||||||
src << "<span class='danger'>You feel your face freezing and icicles forming in your lungs!</span>"
|
src << "<span class='danger'>You feel your face freezing and icicles forming in your lungs!</span>"
|
||||||
else if(breath.temperature >= species.heat_level_1)
|
else if(breath.temperature >= species.breath_heat_level_1)
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
src << "<span class='danger'>You feel your face burning and a searing heat in your lungs!</span>"
|
src << "<span class='danger'>You feel your face burning and a searing heat in your lungs!</span>"
|
||||||
|
|
||||||
if(breath.temperature >= species.heat_level_1)
|
if(breath.temperature >= species.breath_heat_level_1)
|
||||||
if(breath.temperature < species.heat_level_2)
|
if(breath.temperature < species.breath_heat_level_2)
|
||||||
apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
apply_damage(HEAT_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||||
fire_alert = max(fire_alert, 2)
|
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")
|
apply_damage(HEAT_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||||
fire_alert = max(fire_alert, 2)
|
fire_alert = max(fire_alert, 2)
|
||||||
else
|
else
|
||||||
apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, BP_HEAD, used_weapon = "Excessive Heat")
|
||||||
fire_alert = max(fire_alert, 2)
|
fire_alert = max(fire_alert, 2)
|
||||||
|
|
||||||
else if(breath.temperature <= species.cold_level_1)
|
else if(breath.temperature <= species.breath_cold_level_1)
|
||||||
if(breath.temperature > species.cold_level_2)
|
if(breath.temperature > species.breath_cold_level_2)
|
||||||
apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||||
fire_alert = max(fire_alert, 1)
|
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")
|
apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, BP_HEAD, used_weapon = "Excessive Cold")
|
||||||
fire_alert = max(fire_alert, 1)
|
fire_alert = max(fire_alert, 1)
|
||||||
else
|
else
|
||||||
@@ -629,34 +629,42 @@
|
|||||||
fire_alert = max(fire_alert, 1)
|
fire_alert = max(fire_alert, 1)
|
||||||
if(status_flags & GODMODE)
|
if(status_flags & GODMODE)
|
||||||
return 1 //godmode
|
return 1 //godmode
|
||||||
|
|
||||||
var/burn_dam = 0
|
var/burn_dam = 0
|
||||||
|
|
||||||
// switch() can't access numbers inside variables, so we need to use some ugly if() spam ladder.
|
// switch() can't access numbers inside variables, so we need to use some ugly if() spam ladder.
|
||||||
if(bodytemperature >= species.heat_level_3)
|
if(bodytemperature >= species.heat_level_1)
|
||||||
burn_dam = HEAT_DAMAGE_LEVEL_3
|
if(bodytemperature >= species.heat_level_2)
|
||||||
else if(bodytemperature >= species.heat_level_2)
|
if(bodytemperature >= species.heat_level_3)
|
||||||
burn_dam = HEAT_DAMAGE_LEVEL_2
|
burn_dam = HEAT_DAMAGE_LEVEL_3
|
||||||
else if(bodytemperature >= species.heat_level_1)
|
else
|
||||||
burn_dam = HEAT_DAMAGE_LEVEL_1
|
burn_dam = HEAT_DAMAGE_LEVEL_2
|
||||||
|
else
|
||||||
|
burn_dam = HEAT_DAMAGE_LEVEL_1
|
||||||
|
|
||||||
take_overall_damage(burn=burn_dam, used_weapon = "High Body Temperature")
|
take_overall_damage(burn=burn_dam, used_weapon = "High Body Temperature")
|
||||||
fire_alert = max(fire_alert, 2)
|
fire_alert = max(fire_alert, 2)
|
||||||
|
|
||||||
else if(bodytemperature <= species.cold_level_1)
|
else if(bodytemperature <= species.cold_level_1)
|
||||||
|
//Body temperature is too cold.
|
||||||
fire_alert = max(fire_alert, 1)
|
fire_alert = max(fire_alert, 1)
|
||||||
|
|
||||||
if(status_flags & GODMODE)
|
if(status_flags & GODMODE)
|
||||||
return 1 //godmode
|
return 1 //godmode
|
||||||
|
|
||||||
|
|
||||||
if(!istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
|
if(!istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
|
||||||
var/burn_dam = 0
|
var/cold_dam = 0
|
||||||
if(bodytemperature <= species.cold_level_3)
|
if(bodytemperature <= species.cold_level_1)
|
||||||
burn_dam = COLD_DAMAGE_LEVEL_3
|
if(bodytemperature <= species.cold_level_2)
|
||||||
else if(bodytemperature <= species.cold_level_2)
|
if(bodytemperature <= species.cold_level_3)
|
||||||
burn_dam = COLD_DAMAGE_LEVEL_2
|
cold_dam = COLD_DAMAGE_LEVEL_3
|
||||||
else if(bodytemperature <= species.heat_level_1)
|
else
|
||||||
burn_dam = COLD_DAMAGE_LEVEL_1
|
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)
|
fire_alert = max(fire_alert, 1)
|
||||||
|
|
||||||
// Account for massive pressure differences. Done by Polymorph
|
// Account for massive pressure differences. Done by Polymorph
|
||||||
|
|||||||
@@ -92,33 +92,50 @@
|
|||||||
var/breath_type = "oxygen" // Non-oxygen gas breathed, if any.
|
var/breath_type = "oxygen" // Non-oxygen gas breathed, if any.
|
||||||
var/poison_type = "phoron" // Poisonous air.
|
var/poison_type = "phoron" // Poisonous air.
|
||||||
var/exhale_type = "carbon_dioxide" // Exhaled gas type.
|
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_1 = 260 // Cold damage level 1 below this point.
|
||||||
var/cold_level_2 = 200 // Cold damage level 2 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/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_1 = 360 // Heat damage level 1 above this point.
|
||||||
var/heat_level_2 = 400 // Heat damage level 2 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/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/passive_temp_gain = 0 // Species will gain this much temperature every second
|
||||||
var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure.
|
var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure.
|
||||||
var/warning_high_pressure = WARNING_HIGH_PRESSURE // High pressure warning.
|
var/warning_high_pressure = WARNING_HIGH_PRESSURE // High pressure warning.
|
||||||
var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning.
|
var/warning_low_pressure = WARNING_LOW_PRESSURE // Low pressure warning.
|
||||||
var/hazard_low_pressure = HAZARD_LOW_PRESSURE // Dangerously low pressure.
|
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/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/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
|
var/metabolic_rate = 1
|
||||||
|
|
||||||
|
|||||||
@@ -54,12 +54,22 @@
|
|||||||
swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL
|
swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL
|
||||||
push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN
|
push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN
|
||||||
|
|
||||||
cold_level_1 = 180
|
cold_level_1 = 180 //Default 260
|
||||||
cold_level_2 = 130
|
cold_level_2 = 130 //Default 200
|
||||||
cold_level_3 = 70
|
cold_level_3 = 70 //Default 120
|
||||||
heat_level_1 = 320
|
|
||||||
heat_level_2 = 370
|
breath_cold_level_1 = 180 //Default 240 - Lower is better
|
||||||
heat_level_3 = 600
|
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_level = 295
|
||||||
heat_discomfort_strings = list(
|
heat_discomfort_strings = list(
|
||||||
"Your feathers prickle in the heat.",
|
"Your feathers prickle in the heat.",
|
||||||
|
|||||||
@@ -56,12 +56,22 @@
|
|||||||
cold_level_2 = 220 //Default 200
|
cold_level_2 = 220 //Default 200
|
||||||
cold_level_3 = 130 //Default 120
|
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_1 = 420 //Default 360 - Higher is better
|
||||||
heat_level_2 = 480 //Default 400
|
heat_level_2 = 480 //Default 400
|
||||||
heat_level_3 = 1100 //Default 1000
|
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
|
minimum_breath_pressure = 18 //Bigger, means they need more air
|
||||||
|
|
||||||
|
body_temperature = T20C
|
||||||
|
|
||||||
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
||||||
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
|
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 \
|
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."
|
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_1 = 200 //Default 260
|
||||||
cold_level_2 = 140 //Default 200
|
cold_level_2 = 140 //Default 200
|
||||||
cold_level_3 = 80 //Default 120
|
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_1 = 330 //Default 360
|
||||||
heat_level_2 = 380 //Default 400
|
heat_level_2 = 380 //Default 400
|
||||||
heat_level_3 = 800 //Default 1000
|
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"
|
primitive_form = "Farwa"
|
||||||
|
|
||||||
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
||||||
@@ -166,6 +186,7 @@
|
|||||||
"You feel uncomfortably warm.",
|
"You feel uncomfortably warm.",
|
||||||
"Your overheated skin itches."
|
"Your overheated skin itches."
|
||||||
)
|
)
|
||||||
|
|
||||||
cold_discomfort_level = 275
|
cold_discomfort_level = 275
|
||||||
|
|
||||||
has_organ = list( //No appendix.
|
has_organ = list( //No appendix.
|
||||||
@@ -218,10 +239,18 @@
|
|||||||
cold_level_2 = 220 //Default 200
|
cold_level_2 = 220 //Default 200
|
||||||
cold_level_3 = 130 //Default 120
|
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_1 = 420 //Default 360 - Higher is better
|
||||||
heat_level_2 = 480 //Default 400
|
heat_level_2 = 480 //Default 400
|
||||||
heat_level_3 = 1100 //Default 1000
|
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
|
reagent_tag = IS_SKRELL
|
||||||
|
|
||||||
has_limbs = list(
|
has_limbs = list(
|
||||||
|
|||||||
Reference in New Issue
Block a user