mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user