mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
christ (#20804)
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
#define COMSIG_CD_STOP(cd_index) "cooldown_[cd_index]"
|
||||
#define COMSIG_CD_RESET(cd_index) "cd_reset_[cd_index]"
|
||||
|
||||
#define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time))
|
||||
#define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_cooldown), cd_source, cd_index), cd_time))
|
||||
|
||||
#define TIMER_COOLDOWN_CHECK(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
* A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked.
|
||||
*/
|
||||
|
||||
#define S_TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time, TIMER_STOPPABLE))
|
||||
#define S_TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(end_cooldown), cd_source, cd_index), cd_time, TIMER_STOPPABLE))
|
||||
|
||||
#define S_TIMER_COOLDOWN_RESET(cd_source, cd_index) reset_cooldown(cd_source, cd_index)
|
||||
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
#define QDELETED(X) (isnull(X) || QDELING(X))
|
||||
#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
///moved this because I need it to be above everything else that will ever actually call it
|
||||
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), item), time, TIMER_STOPPABLE)
|
||||
#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
|
||||
#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE)
|
||||
#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME)
|
||||
#define QDEL_NULL(item) qdel(item); item = null
|
||||
#define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); }
|
||||
#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE)
|
||||
#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE)
|
||||
#define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); }
|
||||
#define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); }
|
||||
|
||||
|
||||
@@ -426,7 +426,7 @@
|
||||
/proc/flick_overlay(image/I, list/show_to, duration)
|
||||
for(var/client/C in show_to)
|
||||
C.images += I
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/remove_images_from_clients, I, show_to), duration, TIMER_CLIENT_TIME)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_images_from_clients), I, show_to), duration, TIMER_CLIENT_TIME)
|
||||
|
||||
/proc/flick_overlay_view(image/I, atom/target, duration) //wrapper for the above, flicks to everyone who can see the target atom
|
||||
var/list/viewing = list()
|
||||
|
||||
@@ -1340,9 +1340,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
if(is_servant_of_ratvar(V) || isobserver(V))
|
||||
. += V
|
||||
|
||||
#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##target, ##var_name, ##var_value)
|
||||
#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value)
|
||||
//dupe code because dm can't handle 3 level deep macros
|
||||
#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##datum, NAMEOF(##datum, ##var), ##var_value)
|
||||
#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value)
|
||||
|
||||
/proc/___callbackvarset(list_or_datum, var_name, var_value)
|
||||
if(length(list_or_datum))
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
var/good_update = istext(new_value)
|
||||
log_config("Entry [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]")
|
||||
if(!warned_deprecated_configs)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, "This server is using deprecated configuration settings. Please check the logs and update accordingly."), 0)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), "This server is using deprecated configuration settings. Please check the logs and update accordingly."), 0)
|
||||
warned_deprecated_configs = TRUE
|
||||
if(good_update)
|
||||
value = new_value
|
||||
@@ -406,4 +406,4 @@ Example config:
|
||||
|
||||
//Message admins when you can.
|
||||
/datum/controller/configuration/proc/DelayedMessageAdmins(text)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), text), 0)
|
||||
|
||||
@@ -160,7 +160,7 @@ SUBSYSTEM_DEF(explosions)
|
||||
else
|
||||
continue
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(wipe_color_and_text), wipe_colours), 100)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(wipe_color_and_text), wipe_colours), 100)
|
||||
|
||||
/proc/wipe_color_and_text(list/atom/wiping)
|
||||
for(var/i in wiping)
|
||||
|
||||
@@ -75,7 +75,7 @@ PROCESSING_SUBSYSTEM_DEF(station)
|
||||
continue
|
||||
report += "[trait.get_report()]<BR><hr>"
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(print_command_report), report, "Central Command Divergency Report", FALSE), rand(REPORT_WAIT_TIME_MINIMUM, REPORT_WAIT_TIME_MAXIMUM))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), report, "Central Command Divergency Report", FALSE), rand(REPORT_WAIT_TIME_MINIMUM, REPORT_WAIT_TIME_MAXIMUM))
|
||||
|
||||
#undef REPORT_WAIT_TIME_MINIMUM
|
||||
#undef REPORT_WAIT_TIME_MAXIMUM
|
||||
|
||||
@@ -317,17 +317,17 @@ SUBSYSTEM_DEF(wardrobe)
|
||||
/// Mind this
|
||||
/datum/controller/subsystem/wardrobe/proc/setup_callbacks()
|
||||
var/list/play_with = new /list(WARDROBE_CALLBACK_REMOVE) // Turns out there's a global list of pdas. Let's work around that yeah?
|
||||
play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, /obj/item/pda/proc/display_pda)
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, /obj/item/pda/proc/cloak_pda)
|
||||
play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, TYPE_PROC_REF(/obj/item/pda, display_pda))
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, TYPE_PROC_REF(/obj/item/pda, cloak_pda))
|
||||
initial_callbacks[/obj/item/pda] = play_with
|
||||
|
||||
play_with = new /list(WARDROBE_CALLBACK_REMOVE) // Don't want organs rotting on the job
|
||||
play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, /obj/item/organ/proc/enter_wardrobe)
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, /obj/item/organ/proc/exit_wardrobe)
|
||||
play_with[WARDROBE_CALLBACK_INSERT] = CALLBACK(null, TYPE_PROC_REF(/obj/item/organ, enter_wardrobe))
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, TYPE_PROC_REF(/obj/item/organ, exit_wardrobe))
|
||||
initial_callbacks[/obj/item/organ] = play_with
|
||||
|
||||
play_with = new /list(WARDROBE_CALLBACK_REMOVE)
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, /obj/item/storage/box/survival/proc/wardrobe_removal)
|
||||
play_with[WARDROBE_CALLBACK_REMOVE] = CALLBACK(null, TYPE_PROC_REF(/obj/item/storage/box/survival, wardrobe_removal))
|
||||
initial_callbacks[/obj/item/storage/box/survival] = play_with
|
||||
|
||||
/datum/controller/subsystem/wardrobe/proc/load_outfits()
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
|
||||
if(examining_mob != owner || !triggering_examiner || prob(50))
|
||||
return
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), obsession, span_warning("You catch [examining_mob] staring at you...")), 3)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), obsession, span_warning("You catch [examining_mob] staring at you...")), 3)
|
||||
return COMSIG_BLOCK_EYECONTACT
|
||||
|
||||
/datum/brain_trauma/special/obsessed/proc/find_obsession()
|
||||
|
||||
@@ -448,7 +448,7 @@
|
||||
if(prob(85) || (istype(mind_check) && mind_check.mind))
|
||||
return
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), quirk_holder, span_smallnotice("You make eye contact with [A].")), 3)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_smallnotice("You make eye contact with [A].")), 3)
|
||||
|
||||
/datum/quirk/social_anxiety/proc/eye_contact(datum/source, mob/living/other_mob, triggering_examiner)
|
||||
var/mob/living/carbon/human/quirker = quirk_holder
|
||||
@@ -472,7 +472,7 @@
|
||||
msg += "causing you to freeze up!"
|
||||
|
||||
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "anxiety_eyecontact", /datum/mood_event/anxiety_eyecontact)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), quirk_holder, span_userdanger("[msg]")), 3) // so the examine signal has time to fire and this will print after
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_userdanger("[msg]")), 3) // so the examine signal has time to fire and this will print after
|
||||
return COMSIG_BLOCK_EYECONTACT
|
||||
|
||||
/datum/mood_event/anxiety_eyecontact
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
if(!report)
|
||||
report = !CONFIG_GET(flag/no_intercept_report)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(display_roundstart_logout_report)), ROUNDSTART_LOGOUT_REPORT_TIME)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(display_roundstart_logout_report)), ROUNDSTART_LOGOUT_REPORT_TIME)
|
||||
|
||||
if(CONFIG_GET(flag/reopen_roundstart_suicide_roles))
|
||||
var/delay = CONFIG_GET(number/reopen_roundstart_suicide_roles_delay)
|
||||
@@ -108,7 +108,7 @@
|
||||
delay = (delay SECONDS)
|
||||
else
|
||||
delay = (4 MINUTES) //default to 4 minutes if the delay isn't defined.
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(reopen_roundstart_suicide_roles)), delay)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reopen_roundstart_suicide_roles)), delay)
|
||||
|
||||
if(SSdbcore.Connect())
|
||||
var/list/to_set = list()
|
||||
@@ -363,7 +363,7 @@
|
||||
var/mob/dead/new_player/player = M
|
||||
if(player.ready == PLAYER_READY_TO_PLAY)
|
||||
if(!is_banned_from(player.ckey, list(antag_flag, ROLE_SYNDICATE)) && !QDELETED(player))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(antag_token_used), C.ckey, C), 5 MINUTES + 10 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(antag_token_used), C.ckey, C), 5 MINUTES + 10 SECONDS)
|
||||
player.mind.token_picked = TRUE
|
||||
return player.mind
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
var/direct = pick(GLOB.alldirs)
|
||||
var/steps_amt = pick(1;25,2;50,3,4;200)
|
||||
for(var/j in 1 to steps_amt)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step), expl, direct), j) //yogs end
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), expl, direct), j) //yogs end
|
||||
|
||||
/obj/effect/explosion
|
||||
name = "fire"
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
|
||||
log_game("An alien egg has been delivered to [AREACOORD(T)]")
|
||||
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/_addtimer_here, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time))
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer_here), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -1350,7 +1350,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
var/shots_this_limb = 0
|
||||
for(var/t in shuffle(open_adj_turfs))
|
||||
var/turf/iter_turf = t
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(firing_squad), dude, iter_turf, slice_part.body_zone, wound_bonuses[wound_bonus_rep], damage), delay_counter)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(firing_squad), dude, iter_turf, slice_part.body_zone, wound_bonuses[wound_bonus_rep], damage), delay_counter)
|
||||
delay_counter += delay_per_shot
|
||||
shots_this_limb++
|
||||
if(shots_this_limb > shots_per_limb_per_rep)
|
||||
|
||||
@@ -478,7 +478,7 @@
|
||||
|
||||
/obj/item/organ/heart/gland/gas/activate() //Yogstation change: plasma -> gas
|
||||
to_chat(owner, span_warning("You feel bloated."))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), owner, span_userdanger("A massive stomachache overcomes you.")), 15 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), owner, span_userdanger("A massive stomachache overcomes you.")), 15 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(vomit_gas)), 20 SECONDS) //Yogstation change: plasma -> gas
|
||||
|
||||
/obj/item/organ/heart/gland/gas/proc/vomit_gas() //Yogstation change: plasma -> gas
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
/obj/effect/clockwork/overlay/wall/Initialize(mapload)
|
||||
. = ..()
|
||||
queue_smooth_neighbors(src)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(queue_smooth), src), 1)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(queue_smooth), src), 1)
|
||||
|
||||
/obj/effect/clockwork/overlay/wall/Destroy()
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
/datum/clockwork_scripture/create_object/construct/clockwork_marauder/scripture_effects()
|
||||
. = ..()
|
||||
recent_marauders++
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(marauder_reset)),MARAUDER_SCRIPTURE_SCALING_THRESHOLD)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(marauder_reset)),MARAUDER_SCRIPTURE_SCALING_THRESHOLD)
|
||||
|
||||
/proc/marauder_reset()
|
||||
var/datum/clockwork_scripture/create_object/construct/clockwork_marauder/CM = new()
|
||||
|
||||
@@ -1056,7 +1056,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
if(ishuman(M))
|
||||
if(!iscultist(M))
|
||||
AH.hide_from(M)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(hudFix), M), duration)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration)
|
||||
var/image/A = image('icons/mob/mob.dmi',M,"cultist", ABOVE_MOB_LAYER)
|
||||
A.override = 1
|
||||
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE)
|
||||
|
||||
@@ -360,7 +360,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module))
|
||||
|
||||
minor_announce("Hostile runtime detected in door controllers. Isolation lockdown protocols are now in effect. Please remain calm.","Network Alert:", TRUE)
|
||||
to_chat(owner, span_danger("Lockdown initiated. Network reset in 90 seconds."))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(minor_announce),
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce),
|
||||
"Automatic system reboot complete. Have a secure day.",
|
||||
"Network reset:"), 900)
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
easing = CUBIC_EASING | EASE_IN,
|
||||
)
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(remove_image_from_client), balloon_alert, viewer_client), BALLOON_TEXT_TOTAL_LIFETIME(duration_mult))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(remove_image_from_client), balloon_alert, viewer_client), BALLOON_TEXT_TOTAL_LIFETIME(duration_mult))
|
||||
|
||||
#undef BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MIN
|
||||
#undef BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULT
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
for(var/i in 1 to rand(1,defacto_min))
|
||||
var/mob/living/carbon/human/onecoughman = pick(fake_virus_victims)
|
||||
if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), onecoughman, span_warning("[pick("Your head hurts.", "Your head pounds.")]")), rand(30,150))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), onecoughman, span_warning("[pick("Your head hurts.", "Your head pounds.")]")), rand(30,150))
|
||||
else
|
||||
addtimer(CALLBACK(onecoughman, .mob/proc/emote, pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time
|
||||
fake_virus_victims -= onecoughman
|
||||
|
||||
@@ -1131,7 +1131,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
|
||||
return
|
||||
to_chat(target, span_userdanger("You fall into the chasm!"))
|
||||
target.Paralyze(40)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), target, span_notice("It's surprisingly shallow.")), 15)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), target, span_notice("It's surprisingly shallow.")), 15)
|
||||
QDEL_IN(src, 30)
|
||||
|
||||
/obj/effect/hallucination/danger/anomaly
|
||||
|
||||
@@ -81,7 +81,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
|
||||
use_power(500)
|
||||
stored_matter += cube_production
|
||||
addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x)))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/to_chat, user, span_notice("The machine now has [stored_matter] monkey\s worth of material stored.")))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, span_notice("The machine now has [stored_matter] monkey\s worth of material stored.")))
|
||||
|
||||
/obj/machinery/monkey_recycler/interact(mob/user)
|
||||
if(stored_matter >= 1)
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
/datum/job/proc/announce_head(mob/living/carbon/human/H, 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, PROC_REF(_addtimer_here), 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_here), CALLBACK(pick(GLOB.announcement_systems), /obj/machinery/announcement_system/proc/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)
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
/datum/job/ai/announce(mob/living/silicon/ai/AI)
|
||||
. = ..()
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, PROC_REF(minor_announce), "[AI] has been downloaded to the central AI network.")) //YOGS - removed the co-ordinates
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "[AI] has been downloaded to the central AI network.")) //YOGS - removed the co-ordinates
|
||||
|
||||
/datum/job/ai/config_check()
|
||||
return CONFIG_GET(flag/allow_ai)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
/datum/job/captain/announce(mob/living/carbon/human/H)
|
||||
..()
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, PROC_REF(minor_announce), "Captain [H.real_name] on deck!"))
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), "Captain [H.real_name] on deck!"))
|
||||
|
||||
/datum/outfit/job/captain
|
||||
name = "Captain"
|
||||
|
||||
@@ -406,8 +406,8 @@
|
||||
if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE))
|
||||
GLOB.cult_narsie.resolved = TRUE
|
||||
sound_to_playing_players('sound/machines/alarm.ogg')
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(cult_ending_helper), 1), 120)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(ending_helper)), 270)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 1), 120)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270)
|
||||
if(client)
|
||||
makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE)
|
||||
else
|
||||
|
||||
@@ -610,11 +610,11 @@
|
||||
// check to see if their face is blocked or, if not, a signal blocks it
|
||||
if(examined_mob.is_face_visible() && SEND_SIGNAL(src, COMSIG_MOB_EYECONTACT, examined_mob, TRUE) != COMSIG_BLOCK_EYECONTACT)
|
||||
var/msg = span_smallnotice("You make eye contact with [examined_mob].")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), src, msg), 3) // so the examine signal has time to fire and this will print after
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, msg), 3) // so the examine signal has time to fire and this will print after
|
||||
|
||||
if(!imagined_eye_contact && is_face_visible() && SEND_SIGNAL(examined_mob, COMSIG_MOB_EYECONTACT, src, FALSE) != COMSIG_BLOCK_EYECONTACT)
|
||||
var/msg = span_smallnotice("[src] makes eye contact with you.")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(to_chat), examined_mob, msg), 3)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), examined_mob, msg), 3)
|
||||
|
||||
///Can this mob resist (default FALSE)
|
||||
/mob/proc/can_resist()
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
span_italics("You hear a loud electrical crack!"))
|
||||
playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5)
|
||||
tesla_zap(src, 5, power_gen * 0.05)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion.
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion.
|
||||
|
||||
/obj/machinery/power/rtg/abductor/bullet_act(obj/projectile/Proj)
|
||||
. = ..()
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
if(GLOB.cult_narsie.resolved == FALSE)
|
||||
GLOB.cult_narsie.resolved = TRUE
|
||||
sound_to_playing_players('sound/machines/alarm.ogg')
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(cult_ending_helper)), 12 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 12 SECONDS)
|
||||
|
||||
/obj/singularity/narsie/large/cult/Destroy()
|
||||
send_to_playing_players("<span class='narsie'>\"<b>[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"</b></span>")
|
||||
@@ -132,11 +132,11 @@
|
||||
|
||||
/proc/cult_ending_helper(ending_type = 0)
|
||||
if(ending_type == 2) //narsie fukkin died
|
||||
Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper))
|
||||
Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(ending_helper)))
|
||||
else if(ending_type) //no explosion
|
||||
Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper))
|
||||
Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(ending_helper)))
|
||||
else // explosion
|
||||
Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,/proc/ending_helper))
|
||||
Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC,GLOBAL_PROC_REF(ending_helper)))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -84,6 +84,6 @@
|
||||
pixel_y = rand(-12, 12)
|
||||
var/turf/T = get_turf(src)
|
||||
if(still_warm && T && T.bullet_sizzle)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected.
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected.
|
||||
else if(T && T.bullet_bounce_sound)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), src, T.bullet_bounce_sound, 60, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, T.bullet_bounce_sound, 60, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
|
||||
|
||||
@@ -564,7 +564,7 @@
|
||||
var/turf/target = get_ranged_target_turf(user, turn(user.dir, 180), BRAINS_BLOWN_THROW_RANGE)
|
||||
B.Remove(user)
|
||||
B.forceMove(T)
|
||||
var/datum/callback/gibspawner = CALLBACK(GLOBAL_PROC, /proc/spawn_atom_to_turf, /obj/effect/gibspawner/generic, B, 1, FALSE, user)
|
||||
var/datum/callback/gibspawner = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(spawn_atom_to_turf), /obj/effect/gibspawner/generic, B, 1, FALSE, user)
|
||||
B.throw_at(target, BRAINS_BLOWN_THROW_RANGE, BRAINS_BLOWN_THROW_SPEED, callback=gibspawner)
|
||||
return(BRUTELOSS)
|
||||
else
|
||||
|
||||
@@ -485,7 +485,7 @@
|
||||
|
||||
/obj/structure/closet/decay/proc/decay()
|
||||
animate(src, alpha = 0, time = 3 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), src), 3 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 3 SECONDS)
|
||||
|
||||
/obj/structure/closet/decay/open(mob/living/user)
|
||||
. = ..()
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
if(mode != SHUTTLE_CALL)
|
||||
AnnounceArrival(mob, rank)
|
||||
else
|
||||
LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, PROC_REF(AnnounceArrival), mob, rank))
|
||||
LAZYADD(queued_announces, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(AnnounceArrival), mob, rank))
|
||||
|
||||
/obj/docking_port/mobile/arrivals/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
|
||||
@@ -429,7 +429,7 @@
|
||||
for(var/iter in 1 to 5 * power_multiplier)
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(_step), L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), L, direction? direction : pick(GLOB.cardinals)), 10 * (iter - 1))
|
||||
|
||||
//WALK
|
||||
else if((findtext(message, walk_words)))
|
||||
@@ -570,7 +570,7 @@
|
||||
//HONK
|
||||
else if((findtext(message, honk_words)))
|
||||
cooldown = COOLDOWN_MEME
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25)
|
||||
if(user.mind && user.mind.assigned_role == "Clown")
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
C.slip(140 * power_multiplier)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
owner.visible_message(span_warning("[owner]'s arms contort into tentacles!"), "<span class='velvet'><b>ikna ikna</b><br>\
|
||||
You transform both arms into umbral tendrils. Examine them to see possible uses.</span>")
|
||||
playsound(owner, 'yogstation/sound/magic/pass_create.ogg', 50, TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), owner, 'yogstation/sound/magic/pass_create.ogg', 50, TRUE), 1)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), owner, 'yogstation/sound/magic/pass_create.ogg', 50, TRUE), 1)
|
||||
for(var/i in 1 to 2)
|
||||
var/obj/item/umbral_tendrils/T = new(owner, darkspawn)
|
||||
owner.put_in_hands(T)
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
target.visible_message(span_warning("[firer]'s [name] slam into [target] and drag them across the ground!"), \
|
||||
span_userdanger("You're suddenly dragged across the floor!"))
|
||||
L.Knockdown(8 SECONDS) //these can't hit people who are already on the ground but they can be spammed to all shit
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(playsound), target, 'yogstation/sound/magic/pass_attack.ogg', 50, TRUE), 1)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), target, 'yogstation/sound/magic/pass_attack.ogg', 50, TRUE), 1)
|
||||
else
|
||||
var/mob/living/silicon/robot/R = target
|
||||
R.toggle_headlamp(TRUE) //disable headlamps
|
||||
|
||||
@@ -257,7 +257,7 @@ GLOBAL_LIST_EMPTY(pocket_mirrors)
|
||||
QDEL_IN(manifestation, 3 SECONDS)
|
||||
|
||||
if (pocket_dim)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(update_pocket_mirror), pocket_dim, manifested_at_x, manifested_at_y, manifested_at_z), 3.5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(update_pocket_mirror), pocket_dim, manifested_at_x, manifested_at_y, manifested_at_z), 3.5 SECONDS)
|
||||
|
||||
addtimer(VARSET_CALLBACK(src, manifesting, FALSE), 3 SECONDS)
|
||||
|
||||
|
||||
@@ -767,7 +767,7 @@
|
||||
var/obj/structure/slash/P = new(src.loc)
|
||||
times++
|
||||
addtimer(CALLBACK(src, PROC_REF(shred), times), 0.1 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), P), 1.5 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), P), 1.5 SECONDS)
|
||||
return
|
||||
|
||||
|
||||
@@ -876,4 +876,4 @@
|
||||
/obj/structure/slash/Initialize(mapload)
|
||||
. = ..()
|
||||
animate(src, pixel_y = 30, transform = matrix(rand(1, 360), MATRIX_ROTATE).Scale(1.5))
|
||||
addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(qdel), src), 0.7 SECONDS)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), src), 0.7 SECONDS)
|
||||
|
||||
Reference in New Issue
Block a user