a bunch of stuff
5° min temp adjustment for active cooling 150% max total cooling efficiency as opposed to 100% passive heating cools instead at >100% efficiency (to -30°C min) EMPs jam cooling system readouts. Nanogel is now printable, for a decent price though it needs a bit of diamond.
This commit is contained in:
@@ -416,6 +416,7 @@
|
||||
severity *= 0.5
|
||||
var/do_not_stun = FALSE
|
||||
if(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
|
||||
hud_used?.coolant_display.jammed = min(round(hud_used.coolant_display.jammed + (severity / 10),1), 20) //Messes up the cooling system readout.
|
||||
severity *= 0.5 //Robotpeople take less limb damage, but instead suffer system corruption (see carbon emp_act)
|
||||
do_not_stun = TRUE
|
||||
for(var/obj/item/bodypart/L in src.bodyparts)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
if(!(. = ..()))
|
||||
return
|
||||
if(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM) && hud_used)
|
||||
hud_used.coolant_display.update_counter(blood_volume, src)
|
||||
hud_used.coolant_display.update_counter(src)
|
||||
//Update our name based on whether our face is obscured/disfigured
|
||||
name = get_visible_name()
|
||||
|
||||
|
||||
@@ -2190,8 +2190,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
natural = H.natural_bodytemperature_stabilization()
|
||||
cooling_efficiency = H.get_cooling_efficiency()
|
||||
|
||||
if(HAS_TRAIT(H, TRAIT_ROBOTIC_ORGANISM)) //Synths by default slowly heat up and need to lose said heat to the environment or active cooling.
|
||||
H.adjust_bodytemperature(SYNTH_PASSIVE_HEAT_GAIN * (1 - cooling_efficiency), max_temp = (T0C + SYNTH_MAX_PASSIVE_GAIN_TEMP))
|
||||
if(HAS_TRAIT(H, TRAIT_ROBOTIC_ORGANISM)) //Synths by default slowly heat up and need to lose said heat to the environment or active cooling. If you have very high cooling efficiency, you instead passively cool.
|
||||
H.adjust_bodytemperature(SYNTH_PASSIVE_HEAT_GAIN * (1 - cooling_efficiency), (T0C + SYNTH_MIN_PASSIVE_COOLING_TEMP), (T0C + SYNTH_MAX_PASSIVE_GAIN_TEMP))
|
||||
var/thermal_protection = 1
|
||||
if(loc_temp < H.bodytemperature) //Place is colder than we are
|
||||
thermal_protection -= H.get_thermal_protection(loc_temp, TRUE) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
|
||||
|
||||
@@ -683,7 +683,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
|
||||
var/coolant_efficiency = min(blood_effective_volume / BLOOD_VOLUME_SAFE, 1) //Low coolant is only a negative, adding more than needed will not help you.
|
||||
var/environment_efficiency = get_environment_cooling_efficiency()
|
||||
|
||||
return min(coolant_efficiency * environment_efficiency, 1)
|
||||
return min(coolant_efficiency * environment_efficiency, SYNTH_MAX_COOLING_EFFICIENCY)
|
||||
|
||||
|
||||
/mob/living/carbon/proc/get_environment_cooling_efficiency()
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/hypospray/mkii
|
||||
/datum/design/hypospray_mkii
|
||||
name = "Hypospray Mk. II"
|
||||
id = "hypospray_mkii"
|
||||
build_type = PROTOLATHE
|
||||
@@ -222,6 +222,15 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/nanogel
|
||||
name = "Nanogel paste"
|
||||
id = "nanogel"
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(/datum/material/iron = 800, /datum/material/titanium = 500, /datum/material/gold = 100, /datum/material/diamond = 20)
|
||||
build_path = /obj/item/stack/medical/nanogel/one
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/blood_bag
|
||||
name = "Empty Blood Bag"
|
||||
desc = "A small sterilized plastic bag for blood."
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
display_name = "Advanced Robotics Research"
|
||||
description = "It can even do the dishes!"
|
||||
prereq_ids = list("robotics")
|
||||
design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter")
|
||||
design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter", "nanogel")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000)
|
||||
|
||||
/datum/techweb_node/neural_programming
|
||||
|
||||
@@ -484,9 +484,9 @@
|
||||
var/actual_drain = cooling_coolant_drain * max(1 - cooling_efficiency, 0.2) //Being in a suitable environment reduces drain by up to 80%
|
||||
var/temp_diff = owner.bodytemperature - T20C
|
||||
if(temp_diff > 0)
|
||||
owner.adjust_bodytemperature(max(((T0C - owner.bodytemperature) * max(cooling_efficiency, 0.5) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX))
|
||||
owner.adjust_bodytemperature(clamp(((T0C - owner.bodytemperature) * max(cooling_efficiency, 0.5) / BODYTEMP_COLD_DIVISOR), BODYTEMP_COOLING_MAX, -SYNTH_ACTIVE_COOLING_MIN_ADJUSTMENT))
|
||||
else
|
||||
owner.adjust_bodytemperature(min(((T20C - owner.bodytemperature) * max(cooling_efficiency, 0.5) / BODYTEMP_HEAT_DIVISOR), BODYTEMP_HEATING_MAX))
|
||||
owner.adjust_bodytemperature(clamp(((T20C - owner.bodytemperature) * max(cooling_efficiency, 0.5) / BODYTEMP_HEAT_DIVISOR), SYNTH_ACTIVE_COOLING_MIN_ADJUSTMENT, BODYTEMP_HEATING_MAX))
|
||||
var/datum/gas_mixture/air = owner.loc.return_air()
|
||||
if(!air || air.return_pressure() < ONE_ATMOSPHERE * SYNTH_ACTIVE_COOLING_LOW_PRESSURE_THRESHOLD)
|
||||
actual_drain *= SYNTH_ACTIVE_COOLING_LOW_PRESSURE_PENALTY //Our cooling system can handle hot places okayish, but starts to cry at low pressures (reads: Effectively vents hot coolant thats been warmed up via internal heat-exchange as emergency measure and with very low efficiency)
|
||||
|
||||
Reference in New Issue
Block a user