mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Ports over Timer Subsystem
This commit is contained in:
@@ -44,7 +44,7 @@ var/global/list/image/splatter_cache=list()
|
||||
if(B.blood_DNA)
|
||||
blood_DNA |= B.blood_DNA.Copy()
|
||||
qdel(B)
|
||||
dry_timer = addtimer(src, "dry", DRYING_TIME * (amount+1))
|
||||
dry_timer = addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1), TIMER_STOPPABLE)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/Destroy()
|
||||
if(GAMEMODE_IS_CULT)
|
||||
|
||||
@@ -51,7 +51,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
for(var/i in 1 to number)
|
||||
if(total_effects > 20)
|
||||
return
|
||||
addtimer(src, "generate_effect", 0)
|
||||
INVOKE_ASYNC(src, .proc/generate_effect)
|
||||
|
||||
/datum/effect_system/proc/generate_effect()
|
||||
if(holder)
|
||||
@@ -67,7 +67,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
for(var/j in 1 to steps_amt)
|
||||
sleep(5)
|
||||
step(E,direction)
|
||||
addtimer(src, "decrement_total_effect", 20)
|
||||
addtimer(CALLBACK(src, .proc/decrement_total_effect), 20)
|
||||
|
||||
/datum/effect_system/proc/decrement_total_effect()
|
||||
total_effects--
|
||||
|
||||
@@ -58,4 +58,4 @@
|
||||
|
||||
/datum/effect_system/explosion/smoke/start()
|
||||
..()
|
||||
addtimer(src, "create_smoke", 5)
|
||||
addtimer(CALLBACK(src, .proc/create_smoke), 5)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/effect/particle_effect/smoke/proc/kill_smoke()
|
||||
processing_objects.Remove(src)
|
||||
addtimer(src, "fade_out", 0)
|
||||
INVOKE_ASYNC(src, .proc/fade_out)
|
||||
QDEL_IN(src, 10)
|
||||
|
||||
/obj/effect/particle_effect/smoke/process()
|
||||
@@ -67,7 +67,7 @@
|
||||
if(C.smoke_delay)
|
||||
return FALSE
|
||||
C.smoke_delay++
|
||||
addtimer(src, "remove_smoke_delay", 10, FALSE, C)
|
||||
addtimer(CALLBACK(src, .proc/remove_smoke_delay, C), 10)
|
||||
return TRUE
|
||||
|
||||
/obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C)
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
else //if on the floor, glowshroom on-floor sprite
|
||||
icon_state = "[base_icon_state]f"
|
||||
|
||||
addtimer(src, "Spread", delay, FALSE)
|
||||
addtimer(CALLBACK(src, .proc/Spread), delay)
|
||||
|
||||
/obj/structure/glowshroom/proc/Spread()
|
||||
var/turf/ownturf = get_turf(src)
|
||||
@@ -117,7 +117,7 @@
|
||||
shrooms_planted++ //if we failed due to generation, don't try to plant one later
|
||||
if(shrooms_planted < myseed.yield) //if we didn't get all possible shrooms planted, try again later
|
||||
myseed.yield -= shrooms_planted
|
||||
addtimer(src, "Spread", delay, FALSE)
|
||||
addtimer(CALLBACK(src, .proc/Spread), delay)
|
||||
|
||||
/obj/structure/glowshroom/proc/CalcDir(turf/location = loc)
|
||||
var/direction = 16
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
to_chat(I.owner, "<span class='warning'>Your photon projector implant overheats and deactivates!</span>")
|
||||
I.Retract()
|
||||
overheat = FALSE
|
||||
addtimer(src, "cooldown", flashcd * 2)
|
||||
addtimer(CALLBACK(src, .proc/cooldown), flashcd * 2)
|
||||
|
||||
/obj/item/flash/armimplant/try_use_flash(mob/user = null)
|
||||
if(overheat)
|
||||
@@ -216,7 +216,7 @@
|
||||
to_chat(I.owner, "<span class='warning'>Your photon projector is running too hot to be used again so quickly!</span>")
|
||||
return FALSE
|
||||
overheat = TRUE
|
||||
addtimer(src, "cooldown", flashcd)
|
||||
addtimer(CALLBACK(src, .proc/cooldown), flashcd)
|
||||
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
|
||||
update_icon(1)
|
||||
return TRUE
|
||||
|
||||
@@ -270,7 +270,7 @@ var/global/list/default_medbay_channels = list(
|
||||
universal_speak = 1
|
||||
|
||||
/mob/living/automatedannouncer/New()
|
||||
lifetime_timer = addtimer(src, "autocleanup", SecondsToTicks(10))
|
||||
lifetime_timer = addtimer(CALLBACK(src, .proc/autocleanup), SecondsToTicks(10), TIMER_STOPPABLE)
|
||||
..()
|
||||
|
||||
/mob/living/automatedannouncer/Destroy()
|
||||
@@ -619,7 +619,7 @@ var/global/list/default_medbay_channels = list(
|
||||
/obj/item/radio/emp_act(severity)
|
||||
on = 0
|
||||
disable_timer++
|
||||
addtimer(src, "enable_radio", rand(100, 200))
|
||||
addtimer(CALLBACK(src, .proc/enable_radio), rand(100, 200))
|
||||
|
||||
if(listening)
|
||||
visible_message("<span class='warning'>[src] buzzes violently!</span>")
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
|
||||
/obj/effect/decal/cleanable/ash/snappop_phoenix/New()
|
||||
. = ..()
|
||||
addtimer(src, "respawn", respawn_time)
|
||||
addtimer(CALLBACK(src, .proc/respawn), respawn_time)
|
||||
|
||||
/obj/effect/decal/cleanable/ash/snappop_phoenix/proc/respawn()
|
||||
new /obj/item/toy/snappop/phoenix(get_turf(src))
|
||||
|
||||
@@ -385,7 +385,7 @@ RCD
|
||||
buzz loudly!</b></span>","<span class='danger'><b>[src] begins \
|
||||
vibrating violently!</b></span>")
|
||||
// 5 seconds to get rid of it
|
||||
addtimer(src, "detonate_pulse_explode", 50)
|
||||
addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50)
|
||||
|
||||
/obj/item/rcd/proc/detonate_pulse_explode()
|
||||
explosion(src, 0, 0, 3, 1, flame_range = 1)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
target.overlays += image_overlay
|
||||
if(!nadeassembly)
|
||||
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
|
||||
addtimer(src, "prime", det_time*10)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time*10)
|
||||
|
||||
/obj/item/grenade/plastic/suicide_act(mob/user)
|
||||
message_admins("[key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) suicided with [src.name] at ([user.x],[user.y],[user.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",0,1)
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
message_admins("grenade primed by an assembly, attached by [key_name_admin(M)]<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>(?)</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[M]'>FLW</A>) and last touched by [key_name_admin(last)]<A HREF='?_src_=holder;adminmoreinfo=\ref[last]'>(?)</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[last]'>FLW</A>) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>[A.name] (JMP)</a>.")
|
||||
log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])")
|
||||
else
|
||||
addtimer(src, "prime", det_time)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time)
|
||||
var/turf/DT = get_turf(src)
|
||||
var/area/DA = get_area(DT)
|
||||
log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])")
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.throw_mode_on()
|
||||
addtimer(src, "prime", det_time)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time)
|
||||
|
||||
/obj/item/grenade/iedcasing/prime() //Blowing that can up
|
||||
update_mob()
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/New()
|
||||
..()
|
||||
addtimer(src, "dissipate", 100)
|
||||
addtimer(CALLBACK(src, .proc/dissipate), 100)
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate()
|
||||
if(!ismob(loc))
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
being_shocked = TRUE
|
||||
var/power_bounced = power * 0.5
|
||||
tesla_zap(src, 3, power_bounced)
|
||||
addtimer(src, "reset_shocked", 10)
|
||||
addtimer(CALLBACK(src, .proc/reset_shocked), 10)
|
||||
|
||||
/obj/proc/reset_shocked()
|
||||
being_shocked = FALSE
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
to_chat(user, "<span class='warning'>Nothing interesting happens!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You emag the barsign. Takeover in progress...</span>")
|
||||
addtimer(src, "post_emag", 100)
|
||||
addtimer(CALLBACK(src, .proc/post_emag), 100)
|
||||
|
||||
/obj/structure/sign/barsign/proc/post_emag()
|
||||
if(broken || emagged)
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
return
|
||||
// Don't break if they're just flying past
|
||||
if(AM.throwing)
|
||||
addtimer(src, "throw_check", 5, FALSE, AM)
|
||||
addtimer(CALLBACK(src, .proc/throw_check, AM), 5)
|
||||
else
|
||||
check_break(AM)
|
||||
|
||||
|
||||
@@ -338,9 +338,9 @@
|
||||
mist_time = 70 //7 seconds on freezing temperature to disperse existing mist
|
||||
if(watertemp == "boiling")
|
||||
mist_time = 20 //2 seconds on boiling temperature to build up mist
|
||||
addtimer(src, "update_mist", mist_time)
|
||||
addtimer(CALLBACK(src, .proc/update_mist), mist_time)
|
||||
else
|
||||
addtimer(src, "update_mist", 250) //25 seconds for mist to disperse after being turned off
|
||||
addtimer(CALLBACK(src, .proc/update_mist), 250) //25 seconds for mist to disperse after being turned off
|
||||
|
||||
/obj/machinery/shower/proc/update_mist()
|
||||
if(on)
|
||||
|
||||
Reference in New Issue
Block a user