From 70f67409d548eebbca6c8cd01d8bac3d43791a8d Mon Sep 17 00:00:00 2001 From: Mloc-Argent Date: Mon, 12 Jan 2015 21:22:22 +0000 Subject: [PATCH] HE pipe changes HE pipes will now change colour as they heat up, the procs for calculating this are in type2type.dm. Mobs buckled to HE pipes will be forced to lie down and will share heat with and get burned by the pipe network. Signed-off-by: Mloc-Argent --- code/ATMOSPHERICS/he_pipes.dm | 43 +++++++++++++++++- code/__HELPERS/type2type.dm | 30 +++++++++++- .../living/carbon/human/species/species.dm | 2 +- icons/atmos/heat.dmi | Bin 4949 -> 4827 bytes icons/atmos/junction.dmi | Bin 2847 -> 2799 bytes 5 files changed, 71 insertions(+), 4 deletions(-) diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index c22c483e8c..f9dbef84cf 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -3,18 +3,23 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging icon = 'icons/atmos/heat.dmi' icon_state = "intact" pipe_icon = "hepipe" + color = "#404040" level = 2 var/initialize_directions_he var/surface = 2 //surface area in m^2 + var/icon_temperature = T20C //stop small changes in temperature causing an icon refresh minimum_temperature_difference = 20 thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT + buckle_lying = 1 + // BubbleWrap New() ..() initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe // BubbleWrap END + color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default. initialize() normalize_dir() @@ -48,19 +53,53 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging if(!parent) ..() else - var/environment_temperature = 0 + var/datum/gas_mixture/pipe_air = return_air() if(istype(loc, /turf/simulated/)) + var/environment_temperature = 0 if(loc:blocks_air) environment_temperature = loc:temperature else var/datum/gas_mixture/environment = loc.return_air() environment_temperature = environment.temperature - var/datum/gas_mixture/pipe_air = return_air() if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) parent.temperature_interact(loc, volume, thermal_conductivity) else if(istype(loc, /turf/space/)) parent.radiate_heat_to_space(surface, 1) + if(buckled_mob) + var/hc = pipe_air.heat_capacity() + var/avg_temp = (pipe_air.temperature * hc + buckled_mob.bodytemperature * 3500) / (hc + 3500) + pipe_air.temperature = avg_temp + buckled_mob.bodytemperature = avg_temp + + var/heat_limit = 1000 + + var/mob/living/carbon/human/H = buckled_mob + if(istype(H) && H.species) + heat_limit = H.species.heat_level_3 + + if(pipe_air.temperature > heat_limit + 1) + buckled_mob.apply_damage(4 * log(pipe_air.temperature - heat_limit), BURN, "chest", used_weapon = "Excessive Heat") + + //fancy radiation glowing + if(pipe_air.temperature && (icon_temperature > 500 || pipe_air.temperature > 500)) //start glowing at 500K + if(abs(pipe_air.temperature - icon_temperature) > 10) + icon_temperature = pipe_air.temperature + + var/h_r = heat2color_r(icon_temperature) + var/h_g = heat2color_g(icon_temperature) + var/h_b = heat2color_b(icon_temperature) + + if(icon_temperature < 2000) //scale up overlay until 2000K + var/scale = (icon_temperature - 500) / 1500 + h_r = 64 + (h_r - 64)*scale + h_g = 64 + (h_g - 64)*scale + h_b = 64 + (h_b - 64)*scale + + animate(src, color = rgb(h_r, h_g, h_b), time = 20, easing = SINE_EASING) + + + obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction icon = 'icons/atmos/junction.dmi' diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index cfac858e25..87b63f7120 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -194,7 +194,7 @@ proc/tg_list2text(list/list, glue=",") . += copytext(text, last_found, found) last_found = found + delim_len while(found) - + /proc/text2numlist(text, delimiter="\n") var/list/num_list = list() for(var/x in text2list(text, delimiter)) @@ -339,3 +339,31 @@ proc/tg_list2text(list/list, glue=",") if("Orange") return 'icons/mob/screen1_Orange.dmi' if("Midnight") return 'icons/mob/screen1_Midnight.dmi' else return 'icons/mob/screen1_White.dmi' + +//adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/ +/proc/heat2color(temp) + return rgb(heat2color_r(temp), heat2color_g(temp), heat2color_b(temp)) + +/proc/heat2color_r(temp) + temp /= 100 + if(temp <= 66) + . = 255 + else + . = max(0, min(255, 329.698727446 * (temp - 60) ** -0.1332047592)) + +/proc/heat2color_g(temp) + temp /= 100 + if(temp <= 66) + . = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661)) + else + . = max(0, min(255, 288.1221695283 * ((temp - 60) ** -0.0755148492))) + +/proc/heat2color_b(temp) + temp /= 100 + if(temp >= 66) + . = 255 + else + if(temp <= 16) + . = 0 + else + . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 8bdfa8a59d..edbb204be2 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -56,7 +56,7 @@ var/cold_level_3 = 120 // Cold damage level 3 below 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_3 = 1000 // Heat damage level 2 above this point. + var/heat_level_3 = 1000 // Heat damage level 3 above this point. var/synth_temp_gain = 0 // IS_SYNTHETIC 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. diff --git a/icons/atmos/heat.dmi b/icons/atmos/heat.dmi index 6d1ed47e7ef869a5947c3f9a26f0d36a4ca1615f..1014c2015b0530e63190c50fd363fdf51ae96873 100644 GIT binary patch literal 4827 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 literal 4949 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 diff --git a/icons/atmos/junction.dmi b/icons/atmos/junction.dmi index 70286bde155d30de04911477296cdde32faa7b1d..892f5823f2e512291e3bb0a5c4a49afb33370d74 100644 GIT binary patch delta 2791 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 delta 2840 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