mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
[MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981) * Process procs now properly use deltatime when implementing rates, timers and probabilities * Review fixes * Geiger counters cleanup Made hardsuit geiger code more similar to geiger counter code Geiger counters are more responsive now * Moved SS*_DT defines to subsystems.dm * Rebase fix * Redefined the SS*_DT defines to use the subsystem wait vars * Implemented suggested changes by @AnturK * Commented /datum/proc/process about the deltatime stuff * Send delta_time as a process parameter instead of the defines Also DTfied acid_processing * Dtfied new acid component * Process procs now properly utilize deltatime when implementing rates, timers and probabilities Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
This commit is contained in:
@@ -117,14 +117,14 @@
|
||||
begin_processing()
|
||||
|
||||
|
||||
/obj/machinery/chem_dispenser/process()
|
||||
if (recharge_counter >= 4)
|
||||
/obj/machinery/chem_dispenser/process(delta_time)
|
||||
if (recharge_counter >= 8)
|
||||
var/usedpower = cell.give(recharge_amount)
|
||||
if(usedpower)
|
||||
use_power(250*recharge_amount)
|
||||
recharge_counter = 0
|
||||
return
|
||||
recharge_counter++
|
||||
recharge_counter += delta_time
|
||||
|
||||
/obj/machinery/chem_dispenser/proc/display_beaker()
|
||||
var/mutable_appearance/b_o = beaker_overlay || mutable_appearance(icon, "disp_beaker")
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
var/obj/item/reagent_containers/beaker = null
|
||||
var/target_temperature = 300
|
||||
var/heater_coefficient = 0.1
|
||||
var/heater_coefficient = 0.05
|
||||
var/on = FALSE
|
||||
|
||||
/obj/machinery/chem_heater/Destroy()
|
||||
@@ -56,14 +56,14 @@
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Heating reagents at <b>[heater_coefficient*1000]%</b> speed.</span>"
|
||||
|
||||
/obj/machinery/chem_heater/process()
|
||||
/obj/machinery/chem_heater/process(delta_time)
|
||||
..()
|
||||
if(machine_stat & NOPOWER)
|
||||
return
|
||||
if(on)
|
||||
if(beaker && beaker.reagents.total_volume)
|
||||
//keep constant with the chemical acclimator please
|
||||
beaker.reagents.adjust_thermal_energy((target_temperature - beaker.reagents.chem_temp) * heater_coefficient * SPECIFIC_HEAT_DEFAULT * beaker.reagents.total_volume)
|
||||
beaker.reagents.adjust_thermal_energy((target_temperature - beaker.reagents.chem_temp) * heater_coefficient * delta_time * SPECIFIC_HEAT_DEFAULT * beaker.reagents.total_volume)
|
||||
beaker.reagents.handle_reactions()
|
||||
|
||||
/obj/machinery/chem_heater/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
@@ -22,8 +22,8 @@ Borg Hypospray
|
||||
possible_transfer_amounts = list()
|
||||
var/mode = 1
|
||||
var/charge_cost = 50
|
||||
var/charge_tick = 0
|
||||
var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
|
||||
var/charge_timer = 0
|
||||
var/recharge_time = 10 //Time it takes for shots to recharge (in seconds)
|
||||
var/bypass_protection = 0 //If the hypospray can go through armor or thick material
|
||||
|
||||
var/list/datum/reagents/reagent_list = list()
|
||||
@@ -48,11 +48,11 @@ Borg Hypospray
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
|
||||
charge_tick++
|
||||
if(charge_tick >= recharge_time)
|
||||
/obj/item/reagent_containers/borghypo/process(delta_time) //Every [recharge_time] seconds, recharge some reagents for the cyborg
|
||||
charge_timer += delta_time
|
||||
if(charge_timer >= recharge_time)
|
||||
regenerate_reagents()
|
||||
charge_tick = 0
|
||||
charge_timer = 0
|
||||
|
||||
//update_icon()
|
||||
return 1
|
||||
|
||||
@@ -24,16 +24,16 @@
|
||||
if(open)
|
||||
. += "<span class='notice'>The battery case is open.</span>"
|
||||
|
||||
/obj/item/reagent_containers/glass/maunamug/process()
|
||||
/obj/item/reagent_containers/glass/maunamug/process(delta_time)
|
||||
..()
|
||||
if(on && (!cell || cell.charge <= 0)) //Check if we ran out of power
|
||||
change_power_status(FALSE)
|
||||
return FALSE
|
||||
cell.use(10) //Basic cell goes for like 200 seconds, bluespace for 8000
|
||||
cell.use(5 * delta_time) //Basic cell goes for like 200 seconds, bluespace for 8000
|
||||
if(!reagents.total_volume)
|
||||
return FALSE
|
||||
var/max_temp = min(500 + (500 * (0.2 * cell.rating)), 1000) // 373 to 1000
|
||||
reagents.adjust_thermal_energy(0.8 * cell.maxcharge * reagents.total_volume, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace
|
||||
reagents.adjust_thermal_energy(0.4 * cell.maxcharge * reagents.total_volume * delta_time, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace
|
||||
reagents.handle_reactions()
|
||||
update_icon()
|
||||
if(reagents.chem_temp >= max_temp)
|
||||
|
||||
Reference in New Issue
Block a user