procs
This commit is contained in:
@@ -224,7 +224,7 @@
|
||||
if(status == GROWING || status == GROWN)
|
||||
child = new(src)
|
||||
if(status == GROWING)
|
||||
addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
|
||||
addtimer(CALLBACK(src, PROC_REF(Grow)), rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
|
||||
proximity_monitor = new(src, status == GROWN ? 1 : 0)
|
||||
if(status == BURST)
|
||||
obj_integrity = integrity_failure * max_integrity
|
||||
@@ -278,7 +278,7 @@
|
||||
status = BURST
|
||||
update_icon()
|
||||
flick("egg_opening", src)
|
||||
addtimer(CALLBACK(src, .proc/finish_bursting, kill), 15)
|
||||
addtimer(CALLBACK(src, PROC_REF(finish_bursting), kill), 15)
|
||||
|
||||
/obj/structure/alien/egg/proc/finish_bursting(kill = TRUE)
|
||||
if(child)
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
return
|
||||
obj_flags |= EMAGGED
|
||||
to_chat(user, "<span class='notice'>You emag the barsign. Takeover in progress...</span>")
|
||||
addtimer(CALLBACK(src, .proc/syndie_bar_good), 10 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(syndie_bar_good)), 10 SECONDS)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/sign/barsign/proc/syndie_bar_good()
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
/obj/structure/chair/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!anchored) //why would you put these on the shuttle?
|
||||
addtimer(CALLBACK(src, .proc/RemoveFromLatejoin), 0)
|
||||
addtimer(CALLBACK(src, PROC_REF(RemoveFromLatejoin)), 0)
|
||||
|
||||
/obj/structure/chair/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null)
|
||||
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, PROC_REF(can_user_rotate),CALLBACK(src), .proc/can_be_rotated),null)
|
||||
|
||||
/obj/structure/chair/proc/can_be_rotated(mob/user)
|
||||
return TRUE
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/obj/structure/closet/Initialize(mapload)
|
||||
if(mapload && !opened) // if closed, any item at the crate's loc is put in the contents
|
||||
addtimer(CALLBACK(src, .proc/take_contents), 0)
|
||||
addtimer(CALLBACK(src, PROC_REF(take_contents)), 0)
|
||||
. = ..()
|
||||
update_icon()
|
||||
if(should_populate_contents)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
step(src, direction)
|
||||
user.setDir(direction)
|
||||
if(oldloc != loc)
|
||||
addtimer(CALLBACK(src, .proc/ResetMoveDelay), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier)
|
||||
addtimer(CALLBACK(src, PROC_REF(ResetMoveDelay)), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier)
|
||||
else
|
||||
ResetMoveDelay()
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
to_chat(user, "<span class='notice'>The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.</span>")
|
||||
user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20)
|
||||
update_icon()
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_icon), time_between_uses)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), time_between_uses)
|
||||
|
||||
|
||||
/obj/structure/healingfountain/update_icon_state()
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
if (BREAKER_SLAT_DROPPED)
|
||||
slat_status = BREAKER_SLAT_MOVING
|
||||
icon_state = "breaker_raise"
|
||||
addtimer(CALLBACK(src, .proc/raise_slat), BREAKER_ANIMATION_LENGTH)
|
||||
addtimer(CALLBACK(src, PROC_REF(raise_slat)), BREAKER_ANIMATION_LENGTH)
|
||||
return
|
||||
if (BREAKER_SLAT_RAISED)
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
playsound(src, 'sound/effects/femur_breaker.ogg', 100, FALSE)
|
||||
H.Stun(BREAKER_ANIMATION_LENGTH)
|
||||
addtimer(CALLBACK(src, .proc/damage_leg, H), BREAKER_ANIMATION_LENGTH, TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, PROC_REF(damage_leg), H), BREAKER_ANIMATION_LENGTH, TIMER_UNIQUE)
|
||||
log_combat(user, H, "femur broke", src)
|
||||
|
||||
slat_status = BREAKER_SLAT_DROPPED
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
if (GUILLOTINE_BLADE_DROPPED)
|
||||
blade_status = GUILLOTINE_BLADE_MOVING
|
||||
icon_state = "guillotine_raise"
|
||||
addtimer(CALLBACK(src, .proc/raise_blade), GUILLOTINE_ANIMATION_LENGTH)
|
||||
addtimer(CALLBACK(src, PROC_REF(raise_blade)), GUILLOTINE_ANIMATION_LENGTH)
|
||||
return
|
||||
if (GUILLOTINE_BLADE_RAISED)
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
@@ -77,7 +77,7 @@
|
||||
current_action = 0
|
||||
blade_status = GUILLOTINE_BLADE_MOVING
|
||||
icon_state = "guillotine_drop"
|
||||
addtimer(CALLBACK(src, .proc/drop_blade, user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster
|
||||
addtimer(CALLBACK(src, PROC_REF(drop_blade), user), GUILLOTINE_ANIMATION_LENGTH - 2) // Minus two so we play the sound and decap faster
|
||||
else
|
||||
current_action = 0
|
||||
else
|
||||
@@ -90,7 +90,7 @@
|
||||
else
|
||||
blade_status = GUILLOTINE_BLADE_MOVING
|
||||
icon_state = "guillotine_drop"
|
||||
addtimer(CALLBACK(src, .proc/drop_blade), GUILLOTINE_ANIMATION_LENGTH)
|
||||
addtimer(CALLBACK(src, PROC_REF(drop_blade)), GUILLOTINE_ANIMATION_LENGTH)
|
||||
|
||||
/obj/structure/guillotine/proc/raise_blade()
|
||||
blade_status = GUILLOTINE_BLADE_RAISED
|
||||
@@ -133,7 +133,7 @@
|
||||
for(var/mob/M in fov_viewers(world.view, src))
|
||||
var/mob/living/carbon/human/C = M
|
||||
if (ishuman(M))
|
||||
addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3)
|
||||
addtimer(CALLBACK(C, TYPE_PROC_REF(/mob, emote), "clap"), delay_offset * 0.3)
|
||||
delay_offset++
|
||||
else
|
||||
H.apply_damage(15 * blade_sharpness, BRUTE, head)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
smoke.start()
|
||||
visible_message("<span class='boldannounce'>[src] warps in!</span>")
|
||||
playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1)
|
||||
addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600))
|
||||
addtimer(CALLBACK(src, PROC_REF(warpbots)), rand(10, 600))
|
||||
|
||||
/obj/structure/hivebot_beacon/proc/warpbots()
|
||||
icon_state = "def_radar"
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
var/mob/living/M = user
|
||||
M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES)
|
||||
shockcd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/cooldown), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(cooldown)), 5)
|
||||
|
||||
/obj/structure/holosign/barrier/cyborg/hacked/Bumped(atom/movable/AM)
|
||||
if(shockcd)
|
||||
@@ -207,4 +207,4 @@
|
||||
var/mob/living/M = AM
|
||||
M.electrocute_act(15,"Energy Barrier", flags = SHOCK_NOGLOVES)
|
||||
shockcd = TRUE
|
||||
addtimer(CALLBACK(src, .proc/cooldown), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(cooldown)), 5)
|
||||
|
||||
@@ -112,7 +112,7 @@ GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50,
|
||||
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE)
|
||||
visible_message("<span class='boldannounce'>[src] begins to collapse, cutting it off from this world!</span>")
|
||||
animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(collapse)), 5 SECONDS)
|
||||
|
||||
/obj/effect/collapsing_demonic_portal/proc/collapse()
|
||||
visible_message("<span class='warning'>Something slips out of [src]!</span>")
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
if(!length(items))
|
||||
return
|
||||
items = sortList(items)
|
||||
var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 38, require_near = TRUE)
|
||||
var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 38, require_near = TRUE)
|
||||
if(!pick)
|
||||
return
|
||||
switch(pick)
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
)
|
||||
|
||||
if (up && down)
|
||||
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
|
||||
if (!is_ghost && !in_range(src, user))
|
||||
return // nice try
|
||||
switch(result)
|
||||
|
||||
@@ -84,7 +84,7 @@ GLOBAL_LIST_INIT(tendrils, list())
|
||||
visible_message("<span class='boldannounce'>The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!</span>")
|
||||
visible_message("<span class='warning'>Something falls free of the tendril!</span>")
|
||||
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1)
|
||||
addtimer(CALLBACK(src, .proc/collapse), 50)
|
||||
addtimer(CALLBACK(src, PROC_REF(collapse)), 50)
|
||||
|
||||
/obj/effect/collapse/Destroy()
|
||||
QDEL_NULL(emitted_light)
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
for(var/m in linked_minds)
|
||||
var/datum/mind/mind = m
|
||||
if(!mind.current || (mind.current && mind.current.stat == DEAD))
|
||||
addtimer(CALLBACK(src, .proc/respawn, mind), respawn_time, TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, PROC_REF(respawn), mind), respawn_time, TIMER_UNIQUE)
|
||||
|
||||
/obj/structure/life_candle/proc/respawn(datum/mind/mind)
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
/obj/machinery/manned_turret/proc/volley(mob/user)
|
||||
target_turf = get_turf(target)
|
||||
for(var/i in 1 to number_of_shots)
|
||||
addtimer(CALLBACK(src, /obj/machinery/manned_turret/.proc/fire_helper, user), i*rate_of_fire)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/manned_turret, fire_helper), user), i*rate_of_fire)
|
||||
|
||||
/obj/machinery/manned_turret/proc/fire_helper(mob/user)
|
||||
if(user.incapacitated() || !(user in buckled_mobs))
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
isSwitchingStates = 0
|
||||
|
||||
if(close_delay != -1)
|
||||
addtimer(CALLBACK(src, .proc/Close), close_delay)
|
||||
addtimer(CALLBACK(src, PROC_REF(Close)), close_delay)
|
||||
|
||||
/obj/structure/mineral_door/proc/Close()
|
||||
if(isSwitchingStates || state != 1)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
var/action = anchored ? "unscrews [src] from" : "screws [src] to"
|
||||
var/uraction = anchored ? "unscrew [src] from " : "screw [src] to"
|
||||
user.visible_message("<span class='warning'>[user] [action] the floor.</span>", "<span class='notice'>You start to [uraction] the floor...</span>", "You hear rustling noises.")
|
||||
if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/check_anchored_state, anchored)))
|
||||
if(W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, PROC_REF(check_anchored_state), anchored)))
|
||||
setAnchored(!anchored)
|
||||
to_chat(user, "<span class='notice'> You [anchored ? "unscrew" : "screw"] [src] from the floor.</span>")
|
||||
return TRUE
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
if(flags_1&NODECONSTRUCT_1)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...</span>")
|
||||
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
|
||||
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored)))
|
||||
setAnchored(!anchored)
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.</span>")
|
||||
return TRUE
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
if(listeningTo)
|
||||
UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW)
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_new)
|
||||
RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_new))
|
||||
listeningTo = T
|
||||
|
||||
/obj/structure/stairs/proc/force_open_above()
|
||||
|
||||
@@ -388,7 +388,7 @@ Moving interrupts
|
||||
/obj/item/chisel/proc/set_block(obj/structure/carving_block/B,mob/living/user)
|
||||
prepared_block = B
|
||||
tracked_user = user
|
||||
RegisterSignal(tracked_user,COMSIG_MOVABLE_MOVED,.proc/break_sculpting)
|
||||
RegisterSignal(tracked_user,COMSIG_MOVABLE_MOVED, PROC_REF(break_sculpting))
|
||||
to_chat(user,span_notice("You prepare to work on [B]."),type="info")
|
||||
|
||||
/obj/item/chisel/dropped(mob/user, silent)
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
/obj/structure/table/rolling/AfterPutItemOnTable(obj/item/I, mob/living/user)
|
||||
. = ..()
|
||||
attached_items += I
|
||||
RegisterSignal(I, COMSIG_MOVABLE_MOVED, .proc/RemoveItemFromTable) //Listen for the pickup event, unregister on pick-up so we aren't moved
|
||||
RegisterSignal(I, COMSIG_MOVABLE_MOVED, PROC_REF(RemoveItemFromTable)) //Listen for the pickup event, unregister on pick-up so we aren't moved
|
||||
|
||||
/obj/structure/table/rolling/proc/RemoveItemFromTable(datum/source, newloc, dir)
|
||||
if(newloc != loc) //Did we not move with the table? because that shit's ok
|
||||
@@ -346,7 +346,7 @@
|
||||
return
|
||||
// Don't break if they're just flying past
|
||||
if(AM.throwing)
|
||||
addtimer(CALLBACK(src, .proc/throw_check, AM), 5)
|
||||
addtimer(CALLBACK(src, PROC_REF(throw_check), AM), 5)
|
||||
else
|
||||
check_break(AM)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
|
||||
add_fingerprint(user)
|
||||
if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, .proc/can_wrench_in_loc, user)))
|
||||
if(I.use_tool(src, user, time_to_unwrench, volume=50, extra_checks=CALLBACK(src, PROC_REF(can_wrench_in_loc), user)))
|
||||
to_chat(user, "<span class='notice'>You attach the [name].</span>")
|
||||
var/obj/structure/transit_tube/R = new build_type(loc, dir)
|
||||
transfer_fingerprints_to(R)
|
||||
|
||||
@@ -324,10 +324,10 @@
|
||||
// If there was already mist, and the shower was turned off (or made cold): remove the existing mist in 25 sec
|
||||
var/obj/effect/mist/mist = locate() in loc
|
||||
if(!mist && on && watertemp != "freezing")
|
||||
addtimer(CALLBACK(src, .proc/make_mist), 5 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(make_mist)), 5 SECONDS)
|
||||
|
||||
if(mist && (!on || watertemp == "freezing"))
|
||||
addtimer(CALLBACK(src, .proc/clear_mist), 25 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(clear_mist)), 25 SECONDS)
|
||||
|
||||
/obj/machinery/shower/proc/make_mist()
|
||||
var/obj/effect/mist/mist = locate() in loc
|
||||
|
||||
@@ -313,7 +313,7 @@
|
||||
/obj/structure/windoor_assembly/ComponentInitialize()
|
||||
. = ..()
|
||||
var/static/rotation_flags = ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS
|
||||
AddComponent(/datum/component/simple_rotation, rotation_flags, can_be_rotated=CALLBACK(src, .proc/can_be_rotated), after_rotation=CALLBACK(src,.proc/after_rotation))
|
||||
AddComponent(/datum/component/simple_rotation, rotation_flags, can_be_rotated=CALLBACK(src, PROC_REF(can_be_rotated)), after_rotation=CALLBACK(src,.proc/after_rotation))
|
||||
|
||||
/obj/structure/windoor_assembly/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if(anchored)
|
||||
|
||||
@@ -259,7 +259,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
I.play_tool_sound(src, 75)
|
||||
if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME && anchored)
|
||||
to_chat(user, "<span class='notice'>You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...</span>")
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
|
||||
if(extra_reinforced && state == WINDOW_IN_FRAME)
|
||||
state = PRWINDOW_SECURE
|
||||
else
|
||||
@@ -267,7 +267,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
to_chat(user, "<span class='notice'>You [state == WINDOW_IN_FRAME ? "unfasten the window from":"fasten the window to"] the frame.</span>")
|
||||
else if(state == WINDOW_OUT_OF_FRAME)
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the frame from":"screw the frame to"] the floor...</span>")
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
|
||||
setAnchored(!anchored)
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "fasten the frame to":"unfasten the frame from"] the floor.</span>")
|
||||
return
|
||||
@@ -276,7 +276,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME) && anchored)
|
||||
to_chat(user, "<span class='notice'>You begin to lever the window [state == WINDOW_OUT_OF_FRAME ? "into":"out of"] the frame...</span>")
|
||||
I.play_tool_sound(src, 75)
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
|
||||
state = (state == WINDOW_OUT_OF_FRAME ? WINDOW_IN_FRAME : WINDOW_OUT_OF_FRAME)
|
||||
to_chat(user, "<span class='notice'>You pry the window [state == WINDOW_IN_FRAME ? "into":"out of"] the frame.</span>")
|
||||
return
|
||||
@@ -284,7 +284,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
else if(I.tool_behaviour == TOOL_WRENCH && !anchored)
|
||||
I.play_tool_sound(src, 75)
|
||||
to_chat(user, "<span class='notice'> You begin to disassemble [src]...</span>")
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, PROC_REF(check_state_and_anchored), state, anchored)))
|
||||
var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount)
|
||||
G.add_fingerprint(user)
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
@@ -302,7 +302,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
if(I.use_tool(src, user, 180, volume = 100))
|
||||
to_chat(user, "<span class='notice'>The security bolts are glowing white hot and look ready to be removed.</span>")
|
||||
state = PRWINDOW_BOLTS_HEATED
|
||||
addtimer(CALLBACK(src, .proc/cool_bolts), 300)
|
||||
addtimer(CALLBACK(src, PROC_REF(cool_bolts)), 300)
|
||||
return
|
||||
else
|
||||
if(I.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
|
||||
Reference in New Issue
Block a user