more stuff i can't guarantee works by itself yet
This commit is contained in:
@@ -231,7 +231,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
//Removes the ahelp verb and returns it after 2 minutes
|
||||
/datum/admin_help/proc/TimeoutVerb()
|
||||
remove_verb(initiator, /client/verb/adminhelp)
|
||||
initiator.adminhelptimerid = addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps
|
||||
initiator.adminhelptimerid = addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 1200, TIMER_STOPPABLE) //2 minute cooldown of admin helps
|
||||
|
||||
//private
|
||||
/datum/admin_help/proc/FullMonty(ref_src)
|
||||
@@ -347,7 +347,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
state = AHELP_RESOLVED
|
||||
GLOB.ahelp_tickets.ListInsert(src)
|
||||
|
||||
addtimer(CALLBACK(initiator, /client/proc/giveadminhelpverb), 50)
|
||||
addtimer(CALLBACK(initiator, TYPE_PROC_REF(/client, giveadminhelpverb)), 50)
|
||||
|
||||
AddInteraction("<font color='green'>Resolved by [key_name].</font>")
|
||||
to_chat(initiator, "<span class='adminhelp'>Your ticket has been resolved by [usr?.client?.holder?.fakekey? usr.client.holder.fakekey : "an administrator"]. The Adminhelp verb will be returned to you shortly.</span>")
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(ishuman(M))
|
||||
INVOKE_ASYNC(M, /mob/living/carbon/human/proc/Alienize)
|
||||
INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, Alienize))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Alien") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] made [key_name(M)] into an alien at [AREACOORD(M)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into an alien.</span>")
|
||||
@@ -128,7 +128,7 @@
|
||||
alert("Wait until the game starts")
|
||||
return
|
||||
if(ishuman(M))
|
||||
INVOKE_ASYNC(M, /mob/living/carbon/human/proc/slimeize)
|
||||
INVOKE_ASYNC(M, TYPE_PROC_REF(/mob/living/carbon/human, slimeize))
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Slime") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] made [key_name(M)] into a slime at [AREACOORD(M)].")
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] made [ADMIN_LOOKUPFLW(M)] into a slime.</span>")
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
// Make Attempt...
|
||||
to_chat(user, "<span class='notice'>You put all your weight into embedding the stake into [target]'s chest...</span>")
|
||||
playsound(user, 'sound/magic/Demon_consume.ogg', 50, 1)
|
||||
if(!do_mob(user, C, staketime, NONE, extra_checks=CALLBACK(C, /mob/living/carbon/proc/can_be_staked))) // user / target / time / uninterruptable / show progress bar / extra checks
|
||||
if(!do_mob(user, C, staketime, NONE, extra_checks=CALLBACK(C, TYPE_PROC_REF(/mob/living/carbon, can_be_staked)))) // user / target / time / uninterruptable / show progress bar / extra checks
|
||||
return
|
||||
// Drop & Embed Stake
|
||||
user.visible_message("<span class='danger'>[user.name] drives the [src] into [target]'s chest!</span>", \
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
if(glow)
|
||||
qdel(glow)
|
||||
animate(src, color = oldcolor, time = 20, flags = ANIMATION_END_NOW)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 20)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 20)
|
||||
visible_message("<span class='warning'>[src] slowly stops glowing!</span>")
|
||||
return
|
||||
if(is_eligible_servant(L))
|
||||
@@ -183,7 +183,7 @@
|
||||
else
|
||||
to_chat(M, "<span class='heavy_brass'>[message] [L.real_name]!</span>")
|
||||
animate(src, color = oldcolor, time = 20, flags = ANIMATION_END_NOW)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 20)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 20)
|
||||
visible_message("<span class='warning'>[src] slowly stops glowing!</span>")
|
||||
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
cyborg.color = list("#EC8A2D", "#EC8A2D", "#EC8A2D", rgb(0,0,0))
|
||||
cyborg.apply_status_effect(STATUS_EFFECT_POWERREGEN, giving_power * 0.1) //ten ticks, restoring 10% each
|
||||
animate(cyborg, color = previous_color, time = 100)
|
||||
addtimer(CALLBACK(cyborg, /atom/proc/update_atom_colour), 100)
|
||||
addtimer(CALLBACK(cyborg, TYPE_PROC_REF(/atom, update_atom_colour)), 100)
|
||||
|
||||
/obj/effect/clockwork/sigil/transmission/proc/cyborg_checks(mob/living/silicon/robot/cyborg, silent)
|
||||
if(!cyborg.cell)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
var/previouscolor = color
|
||||
color = "#960000"
|
||||
animate(src, color = previouscolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
|
||||
|
||||
/obj/structure/destructible/clockwork/examine(mob/user)
|
||||
var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user)
|
||||
|
||||
@@ -426,7 +426,7 @@
|
||||
L.mob_light(_color = LIGHT_COLOR_HOLY_MAGIC, _range = 2, _duration = 100)
|
||||
var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER)
|
||||
L.add_overlay(forbearance)
|
||||
addtimer(CALLBACK(L, /atom/proc/cut_overlay, forbearance), 100)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100)
|
||||
|
||||
if(istype(anti_magic_source, /obj/item))
|
||||
var/obj/item/ams_object = anti_magic_source
|
||||
|
||||
@@ -290,7 +290,7 @@
|
||||
B.current.client.images += C.cult_team.blood_target_image
|
||||
attached_action.owner.update_action_buttons_icon()
|
||||
remove_ranged_ability("<span class='cult'>The marking rite is complete! It will last for 90 seconds.</span>")
|
||||
C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target,C.cult_team)), 900, TIMER_STOPPABLE)
|
||||
C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
desc = "Remove the Blood Mark you previously set."
|
||||
button_icon_state = "emp"
|
||||
owner.update_action_buttons_icon()
|
||||
C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target,C.cult_team)), base_cooldown, TIMER_STOPPABLE)
|
||||
C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE)
|
||||
addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown)
|
||||
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
var/previouscolor = color
|
||||
color = "#FAE48C"
|
||||
animate(src, color = previouscolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
|
||||
|
||||
/obj/structure/destructible/cult/proc/check_menu(mob/living/user)
|
||||
if(!user || user.incapacitated() || !iscultist(user) || !anchored || cooldowntime > world.time)
|
||||
|
||||
@@ -158,7 +158,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
var/oldcolor = color
|
||||
color = rgb(255, 0, 0)
|
||||
animate(src, color = oldcolor, time = 5)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5)
|
||||
|
||||
//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user.
|
||||
/obj/effect/rune/malformed
|
||||
@@ -234,7 +234,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
..()
|
||||
do_sacrifice(L, invokers)
|
||||
animate(src, color = oldcolor, time = 5)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 5)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5)
|
||||
Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew
|
||||
rune_in_use = FALSE
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
stat = DEAD
|
||||
..(gibbed)
|
||||
drop_all_held_items()
|
||||
INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), /datum/antagonist/devil/proc/beginResurrectionCheck, src)
|
||||
INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src)
|
||||
|
||||
|
||||
/mob/living/carbon/true_devil/examine(mob/user)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center())
|
||||
selected.transfer_ckey(virus, FALSE)
|
||||
INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name)
|
||||
INVOKE_ASYNC(virus, TYPE_PROC_REF(/mob/camera/disease, pick_name))
|
||||
message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by an event.")
|
||||
log_game("[key_name(virus)] was spawned as a sentient disease by an event.")
|
||||
spawned_mobs += virus
|
||||
|
||||
@@ -504,7 +504,7 @@
|
||||
SSticker.roundend_check_paused = FALSE
|
||||
|
||||
/obj/machinery/nuclearbomb/proc/really_actually_explode(off_station)
|
||||
Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,/datum/controller/subsystem/ticker/proc/station_explosion_detonation,src))
|
||||
Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, station_explosion_detonation),src))
|
||||
INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z)
|
||||
|
||||
/obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station)
|
||||
@@ -724,7 +724,7 @@ This is here to make the tiles around the station mininuke change when it's arme
|
||||
user.visible_message("<span class='suicide'>[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(src, 'sound/machines/alarm.ogg', 50, -1, TRUE)
|
||||
for(var/i in 1 to 100)
|
||||
addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i)
|
||||
addtimer(CALLBACK(user, TYPE_PROC_REF(/atom, add_atom_colour), (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i)
|
||||
addtimer(CALLBACK(src, PROC_REF(manual_suicide), user), 101)
|
||||
return MANUAL_SUICIDE
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
|
||||
client.sent_assets[new_asset_name] = ACI.hash
|
||||
|
||||
addtimer(CALLBACK(client, /client/proc/asset_cache_update_json), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE)
|
||||
addtimer(CALLBACK(client, TYPE_PROC_REF(/client, asset_cache_update_json)), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -3204,7 +3204,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
barkbox.set_bark(bark_id)
|
||||
var/total_delay
|
||||
for(var/i in 1 to (round((32 / bark_speed)) + 1))
|
||||
addtimer(CALLBACK(barkbox, /atom/movable/proc/bark, list(parent.mob), 7, 70, BARK_DO_VARY(bark_pitch, bark_variance)), total_delay)
|
||||
addtimer(CALLBACK(barkbox, TYPE_PROC_REF(/atom/movable, bark), list(parent.mob), 7, 70, BARK_DO_VARY(bark_pitch, bark_variance)), total_delay)
|
||||
total_delay += rand(DS2TICKS(bark_speed/4), DS2TICKS(bark_speed/4) + DS2TICKS(bark_speed/4)) TICKS
|
||||
QDEL_IN(barkbox, total_delay)
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/prime(mob/living/lanced_by)
|
||||
icon_state = "cherry_bomb_lit"
|
||||
playsound(src, 'sound/effects/fuse.ogg', seed.potency, 0)
|
||||
addtimer(CALLBACK(src, /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/detonate), rand(50, 100))
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/reagent_containers/food/snacks/grown/cherry_bomb, detonate)), rand(50, 100))
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/detonate()
|
||||
reagents.chem_temp = 1000 //Sets off the black powder
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
L.visible_message("<span class='danger'>[acting_object] is trying to inject [L]!</span>", \
|
||||
"<span class='userdanger'>[acting_object] is trying to inject you!</span>")
|
||||
busy = TRUE
|
||||
if(do_atom(src, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,null,0)))
|
||||
if(do_atom(src, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject),null,0)))
|
||||
var/fraction = min(transfer_amount/reagents.total_volume, 1)
|
||||
reagents.reaction(L, INJECT, fraction)
|
||||
reagents.trans_to(L, transfer_amount)
|
||||
@@ -165,7 +165,7 @@
|
||||
L.visible_message("<span class='danger'>[acting_object] is trying to take a blood sample from [L]!</span>", \
|
||||
"<span class='userdanger'>[acting_object] is trying to take a blood sample from you!</span>")
|
||||
busy = TRUE
|
||||
if(do_atom(src, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,null,0)))
|
||||
if(do_atom(src, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject),null,0)))
|
||||
if(L.transfer_blood_to(src, tramount))
|
||||
L.visible_message("<span class='danger'>[acting_object] takes a blood sample from [L]!</span>", \
|
||||
"<span class='userdanger'>[acting_object] takes a blood sample from you!</span>")
|
||||
@@ -677,7 +677,7 @@
|
||||
reagents.trans_to(W,1)
|
||||
|
||||
//Make em move dat ass, hun
|
||||
addtimer(CALLBACK(src, /obj/item/integrated_circuit/reagent/extinguisher/proc/move_particles, water_particles), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/integrated_circuit/reagent/extinguisher, move_particles), water_particles), 2)
|
||||
|
||||
//This whole proc is a loop
|
||||
/obj/item/integrated_circuit/reagent/extinguisher/proc/move_particles(var/list/particles, var/repetitions=0)
|
||||
@@ -699,7 +699,7 @@
|
||||
break
|
||||
if(repetitions < 4)
|
||||
repetitions++ //Can't have math operations in addtimer(CALLBACK())
|
||||
addtimer(CALLBACK(src, /obj/item/integrated_circuit/reagent/extinguisher/proc/move_particles, particles, repetitions), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/integrated_circuit/reagent/extinguisher, move_particles), particles, repetitions), 2)
|
||||
else
|
||||
push_data()
|
||||
activate_pin(2)
|
||||
|
||||
@@ -265,7 +265,7 @@ GLOBAL_PROTECT(exp_to_update)
|
||||
"ckey" = ckey,
|
||||
"minutes" = jvalue)))
|
||||
prefs.exp[jtype] += jvalue
|
||||
addtimer(CALLBACK(SSblackbox,/datum/controller/subsystem/blackbox/proc/update_exp_db),20,TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(SSblackbox, TYPE_PROC_REF(/datum/controller/subsystem/blackbox, update_exp_db)),20,TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
|
||||
|
||||
//ALWAYS call this at beginning to any proc touching player flags, or your database admin will probably be mad
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
/datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
|
||||
if(H && GLOB.announcement_systems.len)
|
||||
//timer because these should come after the captain announcement
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/announce, "NEWHEAD", H.real_name, H.job, channels), 1))
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, channels), 1))
|
||||
|
||||
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
|
||||
/datum/job/proc/player_old_enough(client/C)
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
temp_power = light_power
|
||||
temp_range = light_range
|
||||
set_light(_range, _power, _color)
|
||||
addtimer(CALLBACK(src, /atom/proc/set_light, _reset_lighting ? initial(light_range) : temp_range, _reset_lighting ? initial(light_power) : temp_power, _reset_lighting ? initial(light_color) : temp_color), _duration, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, set_light), _reset_lighting ? initial(light_range) : temp_range, _reset_lighting ? initial(light_power) : temp_power, _reset_lighting ? initial(light_color) : temp_color), _duration, TIMER_OVERRIDE|TIMER_UNIQUE)
|
||||
|
||||
/mob/living/flash_lighting_fx(_range = FLASH_LIGHT_RANGE, _power = FLASH_LIGHT_POWER, _color = LIGHT_COLOR_WHITE, _duration = FLASH_LIGHT_DURATION, _reset_lighting = TRUE)
|
||||
mob_light(_color, _range, _power, _duration)
|
||||
|
||||
@@ -146,13 +146,13 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
var/old_color = color
|
||||
color = "#960000"
|
||||
animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 10)
|
||||
|
||||
/mob/dead/observer/ratvar_act()
|
||||
var/old_color = color
|
||||
color = "#FAE48C"
|
||||
animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 10)
|
||||
|
||||
/mob/dead/observer/Destroy()
|
||||
GLOB.ghost_images_default -= ghostimage_default
|
||||
|
||||
@@ -323,7 +323,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
for(var/i in 1 to barks)
|
||||
if(total_delay > BARK_MAX_TIME)
|
||||
break
|
||||
addtimer(CALLBACK(src, /atom/movable/proc/bark, listening, (message_range * (is_yell ? 4 : 1)), (vocal_volume * (is_yell ? 1.5 : 1)), BARK_DO_VARY(vocal_pitch, vocal_pitch_range), vocal_current_bark), total_delay)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, bark), listening, (message_range * (is_yell ? 4 : 1)), (vocal_volume * (is_yell ? 1.5 : 1)), BARK_DO_VARY(vocal_pitch, vocal_pitch_range), vocal_current_bark), total_delay)
|
||||
total_delay += rand(DS2TICKS(vocal_speed / BARK_SPEED_BASELINE), DS2TICKS(vocal_speed / BARK_SPEED_BASELINE) + DS2TICKS((vocal_speed / BARK_SPEED_BASELINE) * (is_yell ? 0.5 : 1))) TICKS
|
||||
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ Difficulty: Very Hard
|
||||
/obj/effect/temp_visual/at_shield/Initialize(mapload, new_target)
|
||||
. = ..()
|
||||
target = new_target
|
||||
INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE)
|
||||
INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, orbit), target, 0, FALSE, 0, 0, FALSE, TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/item/projectile/P)
|
||||
if(!stat)
|
||||
|
||||
@@ -180,7 +180,7 @@ Difficulty: Extremely Hard
|
||||
P.original = target
|
||||
P.set_homing_target(target)
|
||||
P.fire(rand(0, 360))
|
||||
addtimer(CALLBACK(P, /obj/item/projectile/frost_orb/proc/orb_explosion, projectile_speed_multiplier), 20) // make the orbs home in after a second
|
||||
addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/projectile/frost_orb, orb_explosion), projectile_speed_multiplier), 20) // make the orbs home in after a second
|
||||
SLEEP_CHECK_DEATH(added_delay)
|
||||
SetRecoveryTime(40, 60)
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ Difficulty: Normal
|
||||
blinking = TRUE
|
||||
sleep(4 + target_slowness)
|
||||
animate(src, color = oldcolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
|
||||
sleep(8)
|
||||
blinking = FALSE
|
||||
else
|
||||
@@ -267,7 +267,7 @@ Difficulty: Normal
|
||||
INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
|
||||
sleep(6 + target_slowness)
|
||||
animate(src, color = oldcolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
|
||||
sleep(8)
|
||||
blinking = FALSE
|
||||
if("chaser_swarm") //fire four fucking chasers at a target and their friends.
|
||||
@@ -292,7 +292,7 @@ Difficulty: Normal
|
||||
sleep(8 + target_slowness)
|
||||
chaser_cooldown = world.time + initial(chaser_cooldown)
|
||||
animate(src, color = oldcolor, time = 8)
|
||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 8)
|
||||
sleep(8)
|
||||
blinking = FALSE
|
||||
return
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
F.environment_smash = ENVIRONMENT_SMASH_WALLS
|
||||
F.mob_size = MOB_SIZE_LARGE
|
||||
F.speed = 1
|
||||
addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate), 100)
|
||||
addtimer(CALLBACK(F, TYPE_PROC_REF(/mob/living/simple_animal/hostile/asteroid/fugu, Deflate)), 100)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate()
|
||||
if(wumbo)
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
obj_flags |= EMAGGED
|
||||
do_sparks(5, TRUE, src)
|
||||
icon_state = "filter_b"
|
||||
addtimer(CALLBACK(src, /obj/machinery/pool/filter/proc/spawn_shark), 50)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/pool/filter, spawn_shark)), 50)
|
||||
var/msg = "[key_name(user)] emagged the pool filter and spawned a shark"
|
||||
log_game(msg)
|
||||
message_admins(msg)
|
||||
|
||||
@@ -1140,7 +1140,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
|
||||
else if(isliving(target))//If we got a fleshbag on our hands
|
||||
var/mob/living/creature = target
|
||||
creature.set_shocked()
|
||||
addtimer(CALLBACK(creature, /mob/living/proc/reset_shocked), 10)
|
||||
addtimer(CALLBACK(creature, TYPE_PROC_REF(/mob/living, reset_shocked)), 10)
|
||||
//3 shots a human with no resistance. 2 to crit, one to death. This is at at least 10000 power.
|
||||
//There's no increase after that because the input power is effectivly capped at 10k
|
||||
//Does 1.5 damage at the least
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
if(closest_type == LIVING)
|
||||
var/mob/living/closest_mob = closest_atom
|
||||
closest_mob.set_shocked()
|
||||
addtimer(CALLBACK(closest_mob, /mob/living/proc/reset_shocked), 10)
|
||||
addtimer(CALLBACK(closest_mob, TYPE_PROC_REF(/mob/living, reset_shocked)), 10)
|
||||
var/shock_damage = (zap_flags & ZAP_MOB_DAMAGE) ? (min(round(power/600), 90) + rand(-5, 5)) : 0
|
||||
closest_mob.electrocute_act(shock_damage, source, 1, SHOCK_TESLA | ((zap_flags & ZAP_MOB_STUN) ? NONE : SHOCK_NOSTUN))
|
||||
if(issilicon(closest_mob))
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
B.add_blood_DNA(C.dna, C.diseases)
|
||||
var/datum/callback/gibspawner = CALLBACK(user, /mob/living/proc/spawn_gibs, FALSE, B)
|
||||
var/datum/callback/gibspawner = CALLBACK(user, TYPE_PROC_REF(/mob/living, spawn_gibs), FALSE, B)
|
||||
B.throw_at(target, BRAINS_BLOWN_THROW_RANGE, BRAINS_BLOWN_THROW_SPEED, callback=gibspawner)
|
||||
return(BRUTELOSS)
|
||||
else
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
if(!beaker || stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
operate_for(50, juicing = TRUE)
|
||||
addtimer(CALLBACK(src, /obj/machinery/reagentgrinder/proc/mix_complete), 50)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50)
|
||||
|
||||
/obj/machinery/reagentgrinder/proc/mix_complete()
|
||||
if(beaker?.reagents.total_volume)
|
||||
|
||||
@@ -1241,7 +1241,7 @@
|
||||
to_chat(M, "<span class='warning'>You feel unstable...</span>")
|
||||
M.Jitter(2)
|
||||
current_cycle = 1
|
||||
addtimer(CALLBACK(M, /mob/living/proc/bluespace_shuffle), 30)
|
||||
addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, bluespace_shuffle)), 30)
|
||||
..()
|
||||
|
||||
/mob/living/proc/bluespace_shuffle()
|
||||
|
||||
@@ -523,7 +523,7 @@
|
||||
if(L != user)
|
||||
L.visible_message("<span class='danger'>[user] is trying to [fp_verb] [L] with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to [fp_verb] you with [src]!</span>")
|
||||
if(!do_mob(user, L, inject_wait, extra_checks = CALLBACK(L, /mob/living/proc/can_inject, user, FALSE, user.zone_selected, penetrates)))
|
||||
if(!do_mob(user, L, inject_wait, extra_checks = CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject), user, FALSE, user.zone_selected, penetrates)))
|
||||
return
|
||||
if(!vial.reagents.total_volume)
|
||||
return
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
D.add_atom_colour(mix_color_from_reagents(D.reagents.reagent_list), TEMPORARY_COLOUR_PRIORITY)
|
||||
playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
|
||||
last_spray = world.time
|
||||
INVOKE_ASYNC(D, /obj/effect/decal/chempuff/proc/run_puff, A)
|
||||
INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/effect/decal/chempuff, run_puff), A)
|
||||
|
||||
/obj/item/reagent_containers/spray/attack_self(mob/user)
|
||||
stream_mode = !stream_mode
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
target.visible_message("<span class='danger'>[user] is trying to take a blood sample from [target]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to take a blood sample from [target]!</span>")
|
||||
busy = TRUE
|
||||
if(!do_mob(user, target, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1)))
|
||||
if(!do_mob(user, target, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject),user,1)))
|
||||
busy = FALSE
|
||||
return
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
@@ -143,7 +143,7 @@
|
||||
if(L != user)
|
||||
L.visible_message("<span class='danger'>[user] is trying to inject [L]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to inject [L]!</span>")
|
||||
if(!do_mob(user, L, extra_checks=CALLBACK(L, /mob/living/proc/can_inject,user,1)))
|
||||
if(!do_mob(user, L, extra_checks=CALLBACK(L, TYPE_PROC_REF(/mob/living, can_inject),user,1)))
|
||||
return
|
||||
if(!reagents.total_volume)
|
||||
return
|
||||
|
||||
@@ -103,4 +103,4 @@
|
||||
mat_name = M.name
|
||||
use_power(min(1000, (amount_inserted / 100)))
|
||||
add_overlay("protolathe_[mat_name]")
|
||||
addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[mat_name]"), 10)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "protolathe_[mat_name]"), 10)
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
if(designate_time && (landing_clear != SHUTTLE_DOCKER_BLOCKED))
|
||||
to_chat(current_user, "<span class='warning'>Targeting transit location, please wait [DisplayTimeText(designate_time)]...</span>")
|
||||
designating_target_loc = the_eye.loc
|
||||
var/wait_completed = do_after(current_user, designate_time, designating_target_loc, timed_action_flags = IGNORE_HELD_ITEM, extra_checks = CALLBACK(src, /obj/machinery/computer/camera_advanced/shuttle_docker/proc/canDesignateTarget))
|
||||
var/wait_completed = do_after(current_user, designate_time, designating_target_loc, timed_action_flags = IGNORE_HELD_ITEM, extra_checks = CALLBACK(src, TYPE_PROC_REF(/obj/machinery/computer/camera_advanced/shuttle_docker, canDesignateTarget)))
|
||||
designating_target_loc = null
|
||||
if(!current_user)
|
||||
return
|
||||
|
||||
@@ -392,4 +392,4 @@ All ShuttleMove procs go here
|
||||
|
||||
/obj/effect/abstract/proximity_checker/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock)
|
||||
//timer so it only happens once
|
||||
addtimer(CALLBACK(monitor, /datum/proximity_monitor/proc/SetRange, monitor.current_range, TRUE), 0, TIMER_UNIQUE)
|
||||
addtimer(CALLBACK(monitor, TYPE_PROC_REF(/datum/proximity_monitor, SetRange), monitor.current_range, TRUE), 0, TIMER_UNIQUE)
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
text = devilinfo.truename
|
||||
else
|
||||
text = L.real_name
|
||||
addtimer(CALLBACK(L, /atom/movable/proc/say, text), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i)
|
||||
i++
|
||||
|
||||
//SAY MY NAME
|
||||
@@ -372,7 +372,7 @@
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
addtimer(CALLBACK(L, /atom/movable/proc/say, user.name), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), user.name), 5 * i)
|
||||
i++
|
||||
|
||||
//KNOCK KNOCK
|
||||
@@ -380,7 +380,7 @@
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
addtimer(CALLBACK(L, /atom/movable/proc/say, "Who's there?"), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), "Who's there?"), 5 * i)
|
||||
i++
|
||||
|
||||
//STATE LAWS
|
||||
@@ -426,32 +426,32 @@
|
||||
else if((findtext(message, helpintent_words)))
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/mob/living/carbon/human/H in listeners)
|
||||
addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HELP), i * 2)
|
||||
addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_HELP), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2)
|
||||
i++
|
||||
|
||||
//DISARM INTENT
|
||||
else if((findtext(message, disarmintent_words)))
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/mob/living/carbon/human/H in listeners)
|
||||
addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_DISARM), i * 2)
|
||||
addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_DISARM), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2)
|
||||
i++
|
||||
|
||||
//GRAB INTENT
|
||||
else if((findtext(message, grabintent_words)))
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/mob/living/carbon/human/H in listeners)
|
||||
addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_GRAB), i * 2)
|
||||
addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_GRAB), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2)
|
||||
i++
|
||||
|
||||
//HARM INTENT
|
||||
else if((findtext(message, harmintent_words)))
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/mob/living/carbon/human/H in listeners)
|
||||
addtimer(CALLBACK(H, /mob/verb/a_intent_change, INTENT_HARM), i * 2)
|
||||
addtimer(CALLBACK(H, /mob/proc/click_random_mob), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_VERB_REF(/mob, a_intent_change), INTENT_HARM), i * 2)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/mob, click_random_mob)), i * 2)
|
||||
i++
|
||||
|
||||
//THROW/CATCH
|
||||
@@ -472,7 +472,7 @@
|
||||
cooldown = COOLDOWN_MEME
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
addtimer(CALLBACK(L, /atom/movable/proc/say, pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")), 5 * i)
|
||||
i++
|
||||
|
||||
//GET UP
|
||||
@@ -517,7 +517,7 @@
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
if(prob(25))
|
||||
addtimer(CALLBACK(L, /atom/movable/proc/say, "HOW HIGH?!!"), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), "HOW HIGH?!!"), 5 * i)
|
||||
addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, emote), "jump"), 5 * i)
|
||||
i++
|
||||
|
||||
@@ -877,9 +877,9 @@
|
||||
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
|
||||
C.silent = 0
|
||||
if(E.lewd)
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
|
||||
addtimer(CALLBACK(C, TYPE_PROC_REF(/atom/movable, say), "[E.enthrallGender]"), 5)
|
||||
else
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)
|
||||
addtimer(CALLBACK(C, TYPE_PROC_REF(/atom/movable, say), "[E.master]"), 5)
|
||||
|
||||
//WAKE UP
|
||||
else if((findtext(message, wakeup_words)))
|
||||
@@ -912,7 +912,7 @@
|
||||
if(0)
|
||||
continue
|
||||
if(1)
|
||||
addtimer(CALLBACK(H, /atom/movable/proc/say, "I feel happy being with you."), 5)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/atom/movable, say), "I feel happy being with you."), 5)
|
||||
continue
|
||||
if(2)
|
||||
speaktrigger += "[(E.lewd?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
|
||||
@@ -1016,7 +1016,7 @@
|
||||
else
|
||||
speaktrigger += "[user.first_name()]!"
|
||||
//say it!
|
||||
addtimer(CALLBACK(H, /atom/movable/proc/say, "[speaktrigger]"), 5)
|
||||
addtimer(CALLBACK(H, TYPE_PROC_REF(/atom/movable, say), "[speaktrigger]"), 5)
|
||||
E.cooldown += 1
|
||||
|
||||
//SILENCE
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
if(skip_compat_check && !fexists(SERVICE_INTERFACE_DLL))
|
||||
TGS_ERROR_LOG("Service parameter present but no interface DLL detected. This is symptomatic of running a service less than version 3.1! Please upgrade.")
|
||||
return
|
||||
call(SERVICE_INTERFACE_DLL, SERVICE_INTERFACE_FUNCTION)(instance_name, command) //trust no retval
|
||||
LIBCALL(SERVICE_INTERFACE_DLL, SERVICE_INTERFACE_FUNCTION)(instance_name, command) //trust no retval
|
||||
return TRUE
|
||||
|
||||
/datum/tgs_api/v3210/OnTopic(T)
|
||||
|
||||
@@ -65,7 +65,7 @@ i couldn't actually find anything in the parts of the code it's calling preventi
|
||||
var/datum/surgery_step/incise/surgery_step = new
|
||||
var/datum/surgery/organ_manipulation/surgery_for_zero = new
|
||||
|
||||
INVOKE_ASYNC(surgery_step, /datum/surgery_step/proc/initiate, user, patient_zero, BODY_ZONE_CHEST, scalpel, surgery_for_zero)
|
||||
INVOKE_ASYNC(surgery_step, TYPE_PROC_REF(/datum/surgery_step, initiate), user, patient_zero, BODY_ZONE_CHEST, scalpel, surgery_for_zero)
|
||||
sleep(1)
|
||||
TEST_ASSERT(surgery_for_zero.step_in_progress, "Surgery on patient zero was not initiated")
|
||||
|
||||
@@ -77,7 +77,7 @@ i couldn't actually find anything in the parts of the code it's calling preventi
|
||||
TEST_ASSERT(!surgery_for_one.step_in_progress, "Surgery for patient one is somehow in progress, despite not initiating")
|
||||
|
||||
user.apply_status_effect(STATUS_EFFECT_HIPPOCRATIC_OATH)
|
||||
INVOKE_ASYNC(surgery_step, /datum/surgery_step/proc/initiate, user, patient_one, BODY_ZONE_CHEST, scalpel, surgery_for_one)
|
||||
INVOKE_ASYNC(surgery_step, TYPE_PROC_REF(/datum/surgery_step, initiate), user, patient_one, BODY_ZONE_CHEST, scalpel, surgery_for_one)
|
||||
TEST_ASSERT(surgery_for_one.step_in_progress, "Surgery on patient one was not initiated, despite having rod of asclepius")
|
||||
*/
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
if(occupant_amount() >= max_occupants)
|
||||
return FALSE
|
||||
var/atom/old_loc = loc
|
||||
if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, /obj/vehicle/sealed/car/proc/is_car_stationary, old_loc)))
|
||||
if(do_mob(forcer, M, get_enter_delay(M), extra_checks=CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/car, is_car_stationary), old_loc)))
|
||||
mob_forced_enter(M, silent)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -502,7 +502,7 @@
|
||||
for(var/mob/M in speech_bubble_recipients)
|
||||
if(M.client)
|
||||
speech_bubble_recipients.Add(M.client)
|
||||
INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(speech_args[SPEECH_MESSAGE])]",MOB_LAYER+1), speech_bubble_recipients, 30)
|
||||
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), image('icons/mob/talk.dmi', src, "machine[say_test(speech_args[SPEECH_MESSAGE])]",MOB_LAYER+1), speech_bubble_recipients, 30)
|
||||
|
||||
////////////////////////////
|
||||
///// Action processing ////
|
||||
|
||||
@@ -645,7 +645,7 @@
|
||||
/obj/machinery/mecha_part_fabricator/proc/AfterMaterialInsert(item_inserted, id_inserted, amount_inserted)
|
||||
var/datum/material/M = id_inserted
|
||||
add_overlay("fab-load-[M.name]")
|
||||
addtimer(CALLBACK(src, /atom/proc/cut_overlay, "fab-load-[M.name]"), 10)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), "fab-load-[M.name]"), 10)
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(..())
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
return
|
||||
if(chassis)
|
||||
chassis.emp_act(80)
|
||||
addtimer(CALLBACK(src, /obj/item/mecha_parts/mecha_tracking/proc/recharge), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/mecha_parts/mecha_tracking, recharge)), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||
recharging = TRUE
|
||||
|
||||
/**
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
occupant.update_mouse_pointer()
|
||||
if(!equipment_disabled && occupants) //prevent spamming this message with back-to-back EMPs
|
||||
to_chat(occupants, "<span=danger>Error -- Connection to equipment control unit has been lost.</span>")
|
||||
addtimer(CALLBACK(src, /obj/vehicle/sealed/mecha/proc/restore_equipment), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/vehicle/sealed/mecha, restore_equipment)), 3 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
|
||||
equipment_disabled = 1
|
||||
|
||||
/obj/vehicle/sealed/mecha/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
|
||||
Reference in New Issue
Block a user