more stuff i can't guarantee works by itself yet
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
#endif
|
||||
|
||||
/// Gets the version of rust_g
|
||||
/proc/rustg_get_version() return call(RUST_G, "get_version")()
|
||||
/proc/rustg_get_version() return LIBCALL(RUST_G, "get_version")()
|
||||
|
||||
/**
|
||||
* This proc generates a cellular automata noise grid which can be used in procedural generation methods.
|
||||
@@ -55,24 +55,24 @@
|
||||
* * height: The height of the grid.
|
||||
*/
|
||||
#define rustg_cnoise_generate(percentage, smoothing_iterations, birth_limit, death_limit, width, height) \
|
||||
call(RUST_G, "cnoise_generate")(percentage, smoothing_iterations, birth_limit, death_limit, width, height)
|
||||
LIBCALL(RUST_G, "cnoise_generate")(percentage, smoothing_iterations, birth_limit, death_limit, width, height)
|
||||
|
||||
#define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname)
|
||||
#define rustg_dmi_create_png(path, width, height, data) call(RUST_G, "dmi_create_png")(path, width, height, data)
|
||||
#define rustg_dmi_resize_png(path, width, height, resizetype) call(RUST_G, "dmi_resize_png")(path, width, height, resizetype)
|
||||
#define rustg_dmi_strip_metadata(fname) LIBCALL(RUST_G, "dmi_strip_metadata")(fname)
|
||||
#define rustg_dmi_create_png(path, width, height, data) LIBCALL(RUST_G, "dmi_create_png")(path, width, height, data)
|
||||
#define rustg_dmi_resize_png(path, width, height, resizetype) LIBCALL(RUST_G, "dmi_resize_png")(path, width, height, resizetype)
|
||||
|
||||
#define rustg_file_read(fname) call(RUST_G, "file_read")(fname)
|
||||
#define rustg_file_exists(fname) call(RUST_G, "file_exists")(fname)
|
||||
#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname)
|
||||
#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname)
|
||||
#define rustg_file_read(fname) LIBCALL(RUST_G, "file_read")(fname)
|
||||
#define rustg_file_exists(fname) LIBCALL(RUST_G, "file_exists")(fname)
|
||||
#define rustg_file_write(text, fname) LIBCALL(RUST_G, "file_write")(text, fname)
|
||||
#define rustg_file_append(text, fname) LIBCALL(RUST_G, "file_append")(text, fname)
|
||||
|
||||
#ifdef RUSTG_OVERRIDE_BUILTINS
|
||||
#define file2text(fname) rustg_file_read("[fname]")
|
||||
#define text2file(text, fname) rustg_file_append(text, "[fname]")
|
||||
#endif
|
||||
|
||||
#define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev)
|
||||
#define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev)
|
||||
#define rustg_git_revparse(rev) LIBCALL(RUST_G, "rg_git_revparse")(rev)
|
||||
#define rustg_git_commit_date(rev) LIBCALL(RUST_G, "rg_git_commit_date")(rev)
|
||||
|
||||
#define RUSTG_HTTP_METHOD_GET "get"
|
||||
#define RUSTG_HTTP_METHOD_PUT "put"
|
||||
@@ -80,30 +80,30 @@
|
||||
#define RUSTG_HTTP_METHOD_PATCH "patch"
|
||||
#define RUSTG_HTTP_METHOD_HEAD "head"
|
||||
#define RUSTG_HTTP_METHOD_POST "post"
|
||||
#define rustg_http_request_blocking(method, url, body, headers, options) call(RUST_G, "http_request_blocking")(method, url, body, headers, options)
|
||||
#define rustg_http_request_async(method, url, body, headers, options) call(RUST_G, "http_request_async")(method, url, body, headers, options)
|
||||
#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id)
|
||||
#define rustg_http_request_blocking(method, url, body, headers, options) LIBCALL(RUST_G, "http_request_blocking")(method, url, body, headers, options)
|
||||
#define rustg_http_request_async(method, url, body, headers, options) LIBCALL(RUST_G, "http_request_async")(method, url, body, headers, options)
|
||||
#define rustg_http_check_request(req_id) LIBCALL(RUST_G, "http_check_request")(req_id)
|
||||
|
||||
#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET"
|
||||
#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB"
|
||||
#define RUSTG_JOB_ERROR "JOB PANICKED"
|
||||
|
||||
#define rustg_json_is_valid(text) (call(RUST_G, "json_is_valid")(text) == "true")
|
||||
#define rustg_json_is_valid(text) (LIBCALL(RUST_G, "json_is_valid")(text) == "true")
|
||||
|
||||
#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format)
|
||||
/proc/rustg_log_close_all() return call(RUST_G, "log_close_all")()
|
||||
#define rustg_log_write(fname, text, format) LIBCALL(RUST_G, "log_write")(fname, text, format)
|
||||
/proc/rustg_log_close_all() return LIBCALL(RUST_G, "log_close_all")()
|
||||
|
||||
#define rustg_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y)
|
||||
#define rustg_noise_get_at_coordinates(seed, x, y) LIBCALL(RUST_G, "noise_get_at_coordinates")(seed, x, y)
|
||||
|
||||
#define rustg_sql_connect_pool(options) call(RUST_G, "sql_connect_pool")(options)
|
||||
#define rustg_sql_query_async(handle, query, params) call(RUST_G, "sql_query_async")(handle, query, params)
|
||||
#define rustg_sql_query_blocking(handle, query, params) call(RUST_G, "sql_query_blocking")(handle, query, params)
|
||||
#define rustg_sql_connected(handle) call(RUST_G, "sql_connected")(handle)
|
||||
#define rustg_sql_disconnect_pool(handle) call(RUST_G, "sql_disconnect_pool")(handle)
|
||||
#define rustg_sql_check_query(job_id) call(RUST_G, "sql_check_query")("[job_id]")
|
||||
#define rustg_sql_connect_pool(options) LIBCALL(RUST_G, "sql_connect_pool")(options)
|
||||
#define rustg_sql_query_async(handle, query, params) LIBCALL(RUST_G, "sql_query_async")(handle, query, params)
|
||||
#define rustg_sql_query_blocking(handle, query, params) LIBCALL(RUST_G, "sql_query_blocking")(handle, query, params)
|
||||
#define rustg_sql_connected(handle) LIBCALL(RUST_G, "sql_connected")(handle)
|
||||
#define rustg_sql_disconnect_pool(handle) LIBCALL(RUST_G, "sql_disconnect_pool")(handle)
|
||||
#define rustg_sql_check_query(job_id) LIBCALL(RUST_G, "sql_check_query")("[job_id]")
|
||||
|
||||
#define rustg_url_encode(text) call(RUST_G, "url_encode")(text)
|
||||
#define rustg_url_decode(text) call(RUST_G, "url_decode")(text)
|
||||
#define rustg_url_encode(text) LIBCALL(RUST_G, "url_encode")(text)
|
||||
#define rustg_url_decode(text) LIBCALL(RUST_G, "url_decode")(text)
|
||||
|
||||
#ifdef RUSTG_OVERRIDE_BUILTINS
|
||||
#define url_encode(text) rustg_url_encode(text)
|
||||
|
||||
@@ -13,7 +13,7 @@ GLOBAL_REAL_VAR(list/__auxtools_initialized) = list()
|
||||
#define AUXTOOLS_CHECK(LIB)\
|
||||
if (!__auxtools_initialized[LIB]) {\
|
||||
if (fexists(LIB)) {\
|
||||
var/string = call(LIB,"auxtools_init")();\
|
||||
var/string = LIBCALL(LIB,"auxtools_init")();\
|
||||
if(findtext(string, "SUCCESS")) {\
|
||||
__auxtools_initialized[LIB] = TRUE;\
|
||||
} else {\
|
||||
@@ -26,6 +26,6 @@ GLOBAL_REAL_VAR(list/__auxtools_initialized) = list()
|
||||
|
||||
#define AUXTOOLS_SHUTDOWN(LIB)\
|
||||
if (__auxtools_initialized[LIB] && fexists(LIB)){\
|
||||
call(LIB,"auxtools_shutdown")();\
|
||||
LIBCALL(LIB,"auxtools_shutdown")();\
|
||||
__auxtools_initialized[LIB] = FALSE;\
|
||||
}\
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
|
||||
|
||||
INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL()
|
||||
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(init_ref_coin_values)) //so the current procedure doesn't sleep because of UNTIL()
|
||||
|
||||
//creates every subtype of prototype (excluding prototype) and adds it to list L.
|
||||
//if no list/L is provided, one is created.
|
||||
|
||||
@@ -39,15 +39,23 @@
|
||||
#if DM_VERSION < 515
|
||||
/// Call by name proc reference, checks if the proc exists on this type or as a global proc
|
||||
#define PROC_REF(X) (.proc/##X)
|
||||
/// Call by name verb references, checks if the verb exists on either this type or as a global verb.
|
||||
#define VERB_REF(X) (.verb/##X)
|
||||
/// Call by name proc reference, checks if the proc exists on given type or as a global proc
|
||||
#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X)
|
||||
/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb
|
||||
#define TYPE_VERB_REF(TYPE, X) (##TYPE.verb/##X)
|
||||
/// Call by name proc reference, checks if the proc is existing global proc
|
||||
#define GLOBAL_PROC_REF(X) (/proc/##X)
|
||||
#else
|
||||
/// Call by name proc reference, checks if the proc exists on this type or as a global proc
|
||||
#define PROC_REF(X) (nameof(.proc/##X))
|
||||
/// Call by name verb references, checks if the verb exists on either this type or as a global verb.
|
||||
#define VERB_REF(X) (nameof(.verb/##X))
|
||||
/// Call by name proc reference, checks if the proc exists on given type or as a global proc
|
||||
#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
|
||||
/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb
|
||||
#define TYPE_VERB_REF(TYPE, X) (nameof(##TYPE.verb/##X))
|
||||
/// Call by name proc reference, checks if the proc is existing global proc
|
||||
#define GLOBAL_PROC_REF(X) (/proc/##X)
|
||||
#endif
|
||||
|
||||
@@ -60,7 +60,7 @@ SUBSYSTEM_DEF(blackmarket)
|
||||
if (!targetturf) // This shouldn't happen.
|
||||
continue
|
||||
to_chat(recursive_loc_check(purchase.uplink.loc, /mob), "<span class='notice'>[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.</span>")
|
||||
addtimer(CALLBACK(src, /datum/controller/subsystem/blackmarket/proc/fake_teleport, purchase.entry.spawn_item(), targetturf), 60 SECONDS) // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks.
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket, fake_teleport), purchase.entry.spawn_item(), targetturf), 60 SECONDS) // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks.
|
||||
queued_purchases -= purchase
|
||||
qdel(purchase)
|
||||
if(SHIPPING_METHOD_LAUNCH) // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction.
|
||||
|
||||
@@ -191,11 +191,11 @@ SUBSYSTEM_DEF(garbage)
|
||||
if (GC_QUEUE_CHECK)
|
||||
#ifdef REFERENCE_TRACKING
|
||||
if(reference_find_on_fail[refID])
|
||||
INVOKE_ASYNC(D, /datum/proc/find_references)
|
||||
INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references))
|
||||
ref_searching = TRUE
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
else
|
||||
INVOKE_ASYNC(D, /datum/proc/find_references)
|
||||
INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references))
|
||||
ref_searching = TRUE
|
||||
#endif
|
||||
reference_find_on_fail -= refID
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
if(owner.client)
|
||||
var/mutable_appearance/MA = mutable_appearance('icons/mob/talk.dmi', src, "default[say_test(message)]", FLY_LAYER)
|
||||
MA.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA
|
||||
INVOKE_ASYNC(GLOBAL_PROC, /proc/flick_overlay, MA, list(owner.client), 30)
|
||||
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), MA, list(owner.client), 30)
|
||||
|
||||
for(var/mob/M in GLOB.dead_mob_list)
|
||||
var/link = FOLLOW_LINK(M, owner)
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
/datum/ductnet/proc/remove_duct(obj/machinery/duct/ducting)
|
||||
destroy_network(FALSE)
|
||||
for(var/obj/machinery/duct/D in ducting.neighbours)
|
||||
addtimer(CALLBACK(D, /obj/machinery/duct/proc/reconnect), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself
|
||||
addtimer(CALLBACK(D, /obj/machinery/duct/proc/generate_connects), 0)
|
||||
addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, reconnect)), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself
|
||||
addtimer(CALLBACK(D, TYPE_PROC_REF(/obj/machinery/duct, generate_connects)), 0)
|
||||
qdel(src)
|
||||
///add a plumbing object to either demanders or suppliers
|
||||
/datum/ductnet/proc/add_plumber(datum/component/plumbing/P, dir)
|
||||
|
||||
@@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(explosions)
|
||||
M.playsound_local(epicenter, null, echo_volume, 1, frequency, S = explosion_echo_sound, distance_multiplier = 0)
|
||||
|
||||
if(creaking_explosion) // 5 seconds after the bang, the station begins to creak
|
||||
addtimer(CALLBACK(M, /mob/proc/playsound_local, epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), 1, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY)
|
||||
addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, playsound_local), epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), 1, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY)
|
||||
|
||||
EX_PREPROCESS_CHECK_TICK
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
owner.add_stun_absorption("inathneq", 150, 2, "'s flickering blue aura momentarily intensifies!", "Inath-neq's power absorbs the stun!", " glowing with a flickering blue light!")
|
||||
owner.status_flags |= GODMODE
|
||||
animate(owner, color = oldcolor, time = 150, easing = EASE_IN)
|
||||
addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), 150)
|
||||
addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, update_atom_colour)), 150)
|
||||
playsound(owner, 'sound/magic/ethereal_enter.ogg', 50, 1)
|
||||
return ..()
|
||||
|
||||
@@ -409,7 +409,7 @@
|
||||
owner.add_stun_absorption("bloody bastard sword", duration, 2, "doesn't even flinch as the sword's power courses through them!", "You shrug off the stun!", " glowing with a blazing red aura!")
|
||||
owner.spin(duration,1)
|
||||
animate(owner, color = oldcolor, time = duration, easing = EASE_IN)
|
||||
addtimer(CALLBACK(owner, /atom/proc/update_atom_colour), duration)
|
||||
addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, update_atom_colour)), duration)
|
||||
playsound(owner, 'sound/weapons/fwoosh.wav', 75, 0)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -677,7 +677,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
if(!L.client.played)
|
||||
SEND_SOUND(L, sound(sound, repeat = 0, wait = 0, volume = 25, channel = CHANNEL_AMBIENCE))
|
||||
L.client.played = TRUE
|
||||
addtimer(CALLBACK(L.client, /client/proc/ResetAmbiencePlayed), 600)
|
||||
addtimer(CALLBACK(L.client, TYPE_PROC_REF(/client, ResetAmbiencePlayed)), 600)
|
||||
|
||||
///Divides total beauty in the room by roomsize to allow us to get an average beauty per tile.
|
||||
/area/proc/update_beauty()
|
||||
|
||||
@@ -881,7 +881,7 @@
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/generate_ruleset_body(mob/applicant)
|
||||
var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center())
|
||||
virus.key = applicant.key
|
||||
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 the midround ruleset.")
|
||||
log_game("[key_name(virus)] was spawned as a sentient disease by the midround ruleset.")
|
||||
return virus
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
var/mob/living/L = usr
|
||||
L.Stun(200, ignore_canstun = TRUE) //you can't run :^)
|
||||
var/S = new /obj/singularity/academy(usr.loc)
|
||||
addtimer(CALLBACK(src, /atom/movable/proc/say, "[S] winks out, just as suddenly as it appeared."), 50)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, say), "[S] winks out, just as suddenly as it appeared."), 50)
|
||||
QDEL_IN(S, 50)
|
||||
else
|
||||
event = null
|
||||
|
||||
@@ -627,7 +627,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/machinery/door/airlock/clockwork/attackby(obj/item/I, mob/living/user, params)
|
||||
if(!attempt_construction(I, user))
|
||||
|
||||
@@ -419,7 +419,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/machinery/door/window/clockwork/allowed(mob/M)
|
||||
if(is_servant_of_ratvar(M))
|
||||
|
||||
@@ -692,7 +692,7 @@ GENETICS SCANNER
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src]'s barometer function says a storm will land in approximately [butchertime(fixed)].</span>")
|
||||
cooldown = TRUE
|
||||
addtimer(CALLBACK(src,/obj/item/analyzer/proc/ping), cooldown_time)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/analyzer, ping)), cooldown_time)
|
||||
|
||||
/obj/item/analyzer/proc/ping()
|
||||
if(isliving(loc))
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
if(user.buckled && isobj(user.buckled) && !user.buckled.anchored)
|
||||
var/obj/B = user.buckled
|
||||
var/movementdirection = turn(direction,180)
|
||||
addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection), 1)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection), 1)
|
||||
|
||||
else user.newtonian_move(turn(direction, 180))
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
reagents.trans_to(W,1)
|
||||
|
||||
//Make em move dat ass, hun
|
||||
addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, water_particles), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), water_particles), 2)
|
||||
|
||||
//Particle movement loop
|
||||
/obj/item/extinguisher/proc/move_particles(var/list/particles, var/repetition=0)
|
||||
@@ -210,7 +210,7 @@
|
||||
break
|
||||
if(repetition < power)
|
||||
repetition++
|
||||
addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_particles, particles, repetition), 2)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_particles), particles, repetition), 2)
|
||||
|
||||
//Chair movement loop
|
||||
/obj/item/extinguisher/proc/move_chair(var/obj/B, var/movementdirection, var/repetition=0)
|
||||
@@ -228,7 +228,7 @@
|
||||
return
|
||||
|
||||
repetition++
|
||||
addtimer(CALLBACK(src, /obj/item/extinguisher/proc/move_chair, B, movementdirection, repetition), timer_seconds)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/extinguisher, move_chair), B, movementdirection, repetition), timer_seconds)
|
||||
|
||||
/obj/item/extinguisher/AltClick(mob/user)
|
||||
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
var/obj/item/grenade/P = new type(loc)
|
||||
if(istype(P))
|
||||
P.active = TRUE
|
||||
addtimer(CALLBACK(P, /obj/item/grenade/proc/prime), rand(15,60))
|
||||
addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60))
|
||||
var/steps = rand(1,4)
|
||||
for(var/i in 1 to steps)
|
||||
step_away(src,loc)
|
||||
@@ -107,7 +107,7 @@
|
||||
var/chosen = pick(subtypesof(/obj/item/slime_extract))
|
||||
var/obj/item/slime_extract/P = new chosen(loc)
|
||||
if(volatile)
|
||||
addtimer(CALLBACK(P, /obj/item/slime_extract/proc/activate_slime), rand(15,60))
|
||||
addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(15,60))
|
||||
var/steps = rand(1,4)
|
||||
for(var/i in 1 to steps)
|
||||
step_away(src,loc)
|
||||
|
||||
@@ -36,12 +36,12 @@
|
||||
if(M == user)
|
||||
if(!silent)
|
||||
user.visible_message("<span class='notice'>[user] starts to apply \the [src] on [user.p_them()]self...</span>", "<span class='notice'>You begin applying \the [src] on yourself...</span>")
|
||||
if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE)))
|
||||
if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE)))
|
||||
return
|
||||
else if(other_delay)
|
||||
if(!silent)
|
||||
user.visible_message("<span class='notice'>[user] starts to apply \the [src] on [M].</span>", "<span class='notice'>You begin applying \the [src] on [M]...</span>")
|
||||
if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE)))
|
||||
if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, TYPE_PROC_REF(/mob/living, can_inject), user, TRUE)))
|
||||
return
|
||||
|
||||
if(heal(M, user))
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
for(var/mob/living/obstacle in srcturf) //Stop people from using this as a shield
|
||||
opening = FALSE
|
||||
return
|
||||
addtimer(CALLBACK(src, /obj/structure/falsewall/proc/toggle_open), 5)
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/falsewall, toggle_open)), 5)
|
||||
|
||||
/obj/structure/falsewall/proc/toggle_open()
|
||||
if(!QDELETED(src))
|
||||
|
||||
@@ -307,7 +307,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/grille/ratvar/ratvar_act()
|
||||
return
|
||||
|
||||
@@ -138,4 +138,4 @@
|
||||
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)
|
||||
|
||||
@@ -636,7 +636,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/table/reinforced/brass/ratvar_act()
|
||||
obj_integrity = max_integrity
|
||||
|
||||
@@ -873,7 +873,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
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/window/reinforced/clockwork/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
@@ -230,7 +230,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)
|
||||
|
||||
/turf/open/floor/clockwork/reebe
|
||||
name = "cogplate"
|
||||
|
||||
@@ -158,7 +158,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)
|
||||
|
||||
/turf/open/floor/engine/cult/airless
|
||||
initial_gas_mix = AIRLESS_ATMOS
|
||||
|
||||
@@ -33,7 +33,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)
|
||||
|
||||
/turf/closed/wall/mineral/cult/artificer
|
||||
name = "runed stone wall"
|
||||
@@ -110,7 +110,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)
|
||||
|
||||
/turf/closed/wall/clockwork/dismantle_wall(devastated=0, explode=0)
|
||||
if(devastated)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -313,8 +313,8 @@
|
||||
owner.jitteriness += 250
|
||||
if(67 to 89) //anger
|
||||
if(prob(10))
|
||||
addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2)
|
||||
addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2)
|
||||
addtimer(CALLBACK(M, TYPE_VERB_REF(/mob, a_intent_change), INTENT_HARM), 2)
|
||||
addtimer(CALLBACK(M, TYPE_PROC_REF(/mob, click_random_mob)), 2)
|
||||
if(lewd)
|
||||
to_chat(owner, "<span class='warning'>You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!</span>")
|
||||
else
|
||||
@@ -487,7 +487,7 @@
|
||||
if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2
|
||||
var/saytext = "Your mouth moves on it's own before you can even catch it."
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), C, "<span class='notice'><i>[saytext]</i></span>"), 5)
|
||||
addtimer(CALLBACK(C, /atom/movable/proc/say, "[customTriggers[trigger][2]]"), 5)
|
||||
addtimer(CALLBACK(C, TYPE_PROC_REF(/atom/movable, say), "[customTriggers[trigger][2]]"), 5)
|
||||
log_reagent("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been forced to say: \"[customTriggers[trigger][2]]\" from previous trigger.")
|
||||
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
/obj/item/clothing/head/hattip/dropped(mob/M)
|
||||
. = ..()
|
||||
UnregisterSignal(M, COMSIG_MOB_SAY)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(root_and_toot), src, src, 200))
|
||||
addtimer(CALLBACK(src, PROC_REF(root_and_toot), src, src, 200))
|
||||
|
||||
/obj/item/clothing/head/hattip/proc/root_and_toot(obj/item/clothing/head/hattip/hat)
|
||||
hat.animate_atom_living()
|
||||
|
||||
Reference in New Issue
Block a user