[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:
SkyratBot
2020-09-09 08:19:23 +02:00
committed by GitHub
co-authored by Donkie
parent a18452f0da
commit 1e705faa19
159 changed files with 808 additions and 719 deletions
@@ -15,7 +15,7 @@
var/armed = FALSE //whether the gun is attached, FALSE is attached, TRUE is the gun is wielded.
var/overheat = 0
var/overheat_max = 40
var/heat_diffusion = 1
var/heat_diffusion = 0.5
/obj/item/minigunpack/Initialize()
. = ..()
@@ -26,8 +26,8 @@
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/minigunpack/process()
overheat = max(0, overheat - heat_diffusion)
/obj/item/minigunpack/process(delta_time)
overheat = max(0, overheat - heat_diffusion * delta_time)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/minigunpack/attack_hand(mob/living/carbon/user)
+6 -6
View File
@@ -15,8 +15,8 @@
ammo_x_offset = 2
var/shaded_charge = FALSE //if this gun uses a stateful charge bar for more detail
var/selfcharge = 0
var/charge_tick = 0
var/charge_delay = 4
var/charge_timer = 0
var/charge_delay = 8
var/use_cyborg_cell = FALSE //whether the gun's cell drains the cyborg user's cell to recharge
var/dead_cell = FALSE //set to true so the gun is given an empty cell
@@ -71,12 +71,12 @@
update_icon()
return ..()
/obj/item/gun/energy/process()
/obj/item/gun/energy/process(delta_time)
if(selfcharge && cell && cell.percent() < 100)
charge_tick++
if(charge_tick < charge_delay)
charge_timer += delta_time
if(charge_timer < charge_delay)
return
charge_tick = 0
charge_timer = 0
cell.give(100)
if(!chambered) //if empty chamber we try to charge a new shot
recharge_newshot(TRUE)
@@ -93,7 +93,7 @@
desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell."
icon_state = "nucgun"
inhand_icon_state = "nucgun"
charge_delay = 5
charge_delay = 10
pin = null
can_charge = FALSE
ammo_x_offset = 1
@@ -103,9 +103,9 @@
var/fail_tick = 0
var/fail_chance = 0
/obj/item/gun/energy/e_gun/nuclear/process()
/obj/item/gun/energy/e_gun/nuclear/process(delta_time)
if(fail_tick > 0)
fail_tick--
fail_tick -= delta_time * 0.5
..()
/obj/item/gun/energy/e_gun/nuclear/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
+7 -7
View File
@@ -12,8 +12,8 @@
var/checks_antimagic = TRUE
var/max_charges = 6
var/charges = 0
var/recharge_rate = 4
var/charge_tick = 0
var/recharge_rate = 8
var/charge_timer = 0
var/can_charge = TRUE
var/ammo_type
var/no_den_usage
@@ -62,14 +62,14 @@
return ..()
/obj/item/gun/magic/process()
/obj/item/gun/magic/process(delta_time)
if (charges >= max_charges)
charge_tick = 0
charge_timer = 0
return
charge_tick++
if(charge_tick < recharge_rate)
charge_timer += delta_time
if(charge_timer < recharge_rate)
return 0
charge_tick = 0
charge_timer = 0
charges++
if(charges == 1)
recharge_newshot()