diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 7ba80798acfa..a417c8138bfa 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -9,7 +9,8 @@ circuit = /obj/item/circuitboard/machine/chem_heater var/obj/item/reagent_containers/beaker = null var/target_temperature = 300 - var/heater_coefficient = 0.1 + var/currentspeed = 10 + var/heater_speed = 10 var/on = FALSE /obj/machinery/chem_heater/Destroy() @@ -50,23 +51,25 @@ return TRUE /obj/machinery/chem_heater/RefreshParts() - heater_coefficient = 0.1 + heater_speed = 10 for(var/obj/item/stock_parts/micro_laser/M in component_parts) - heater_coefficient *= M.rating + heater_speed *= M.rating /obj/machinery/chem_heater/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Heating reagents at [heater_coefficient*1000]% speed." + . += "The status display reads: Heating reagents at [heater_speed]K per cycle." /obj/machinery/chem_heater/process() ..() if(stat & NOPOWER) return - if(on) - if(beaker && beaker.reagents.total_volume) - beaker.reagents.adjust_thermal_energy((target_temperature - beaker.reagents.chem_temp) * heater_coefficient * SPECIFIC_HEAT_DEFAULT * beaker.reagents.total_volume) - beaker.reagents.handle_reactions() + if(on && beaker?.reagents.total_volume) + currentspeed = heater_speed + if((beaker.reagents.chem_temp + heater_speed) >= target_temperature) + currentspeed = target_temperature - beaker.reagents.chem_temp + beaker.reagents.adjust_thermal_energy(currentspeed * SPECIFIC_HEAT_DEFAULT * beaker.reagents.total_volume) + beaker.reagents.handle_reactions() /obj/machinery/chem_heater/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, "mixer0b", "mixer0b", I))