From b885f33aeb23ac804baa8c6c2728d599acb6333a Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 9 Mar 2023 02:26:01 +0000 Subject: [PATCH 01/17] NIF repair minitweak --- code/modules/nifsoft/nif.dm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 2f8573dbd0c..55cd68741ed 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -44,7 +44,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable var/tmp/stat = NIF_PREINSTALL // Status of the NIF var/tmp/install_done // Time when install will finish - var/tmp/open = FALSE // If it's open for maintenance (1-3) + var/tmp/open = FALSE // If it's open for maintenance (1-2) var/tmp/should_be_in = BP_HEAD // Organ we're supposed to be held in var/obj/item/device/communicator/commlink/comm // The commlink requires this @@ -230,22 +230,24 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable if(C.get_amount() < 3) to_chat(user,"You need at least three coils of wire to add them to \the [src].") return + if(durability >= initial(durability)) + to_chat(user,"There's no damaged wiring that needs replacing!") + return if(do_after(user, 6 SECONDS, src) && open == 1 && C.use(3)) - user.visible_message("[user] replaces some wiring in \the [src].","You replace any burned out wiring in \the [src].") + user.visible_message("[user] replaces some wiring in \the [src].","You replace some of the burned out wiring in \the [src].") playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) + repair(initial(durability)) + update_icon() + else if(open == 1 && istype(W,/obj/item/device/multitool)) + if(do_after(user, 8 SECONDS, src) && open == 1) + user.visible_message("[user] resets several circuits in \the [src].","You find and repair any faulty circuits in \the [src].") open = 2 update_icon() - else if(open == 2 && istype(W,/obj/item/device/multitool)) - if(do_after(user, 8 SECONDS, src) && open == 2) - user.visible_message("[user] resets several circuits in \the [src].","You find and repair any faulty circuits in \the [src].") - open = 3 - update_icon() - else if(open == 3 && W.is_screwdriver()) - if(do_after(user, 3 SECONDS, src) && open == 3) + else if(open == 2 && W.is_screwdriver()) + if(do_after(user, 3 SECONDS, src) && open == 2) user.visible_message("[user] closes up \the [src].","You re-seal \the [src] for use once more.") playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) open = FALSE - repair(initial(durability)) stat = NIF_PREINSTALL update_icon() From 9b6d00c625630af24a3ae34b0fff294901778fa6 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sun, 4 Jun 2023 10:03:15 +0100 Subject: [PATCH 02/17] spacetraffic revisions --- code/modules/busy_space_vr/air_traffic.dm | 300 +++++++++++--------- code/modules/busy_space_vr/organizations.dm | 160 +++++++---- 2 files changed, 262 insertions(+), 198 deletions(-) diff --git a/code/modules/busy_space_vr/air_traffic.dm b/code/modules/busy_space_vr/air_traffic.dm index d353522d962..a261b56d864 100644 --- a/code/modules/busy_space_vr/air_traffic.dm +++ b/code/modules/busy_space_vr/air_traffic.dm @@ -60,7 +60,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/shift_ending(var/evac = 0) msg("[using_map.shuttle_name], this is [using_map.dock_name] Control, you are cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.shuttle_name] departing [using_map.dock_name] for [using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[using_map.shuttle_name]") /datum/lore/atc_controller/proc/random_convo() @@ -110,14 +110,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/chatter_type = "normal" if(force_chatter_type) chatter_type = force_chatter_type - else if((org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate" || org_type == "system defense") && org_type2 == "pirate") //this is ugly but when I tried to do it with !='s it fired for pirate-v-pirate, still not sure why. might as well stick it up here so it takes priority over other combos. + else if((org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate" || org_type == "system defense" || org_type == "spacer") && org_type2 == "pirate") //this is ugly but when I tried to do it with !='s it fired for pirate-v-pirate, still not sure why. might as well stick it up here so it takes priority over other combos. chatter_type = "distress" else if(org_type == "corporate") //corporate-specific subset for the slogan event. despite the relatively high weight it was still quite rare in tests. - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed",300;"slogan") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",180;"dockingrequestgeneric",30;"undockingrequest","normal",30;"undockingdenied",50;"slogan",25;"civvieleaks") else if((org_type == "government" || org_type == "neutral" || org_type == "military")) - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",180;"dockingrequestgeneric",30;"undockingrequest","normal",30;"undockingdenied",25;"civvieleaks") else if(org_type == "spacer") - chatter_type = pick(5;"emerg",15;"policescan",15;"traveladvisory",5;"pathwarning",10;"dockingrequestgeneric",30;"dockingrequestdenied",10;"dockingrequestdelayed",30;"dockingrequestsupplly",10;"dockingrequestrepair",20;"dockingrequestmedical",20;"dockingrequestsecurity",30;"undockingrequest","normal",10;"undockingdenied",30;"undockingdelayed") + chatter_type = pick(5;"emerg",15;"policescan",15;"traveladvisory",5;"pathwarning",150;"dockingrequestgeneric",30;"undockingrequest","normal",10;"undockingdenied",25;"civvieleaks") //the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with else if(org_type == "smuggler" && org_type2 != "system defense") //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff @@ -129,14 +129,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller else if((org_type == "smuggler" || org_type == "pirate") && org_type2 != "system defense") //but if we roll THIS combo, time to alert the SDF to get off their asses chatter_type = "hostiledetected" //SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in) - else if(org_type == "system defense" && (org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate")) //let's see if we can narrow this down, I didn't see many ship-to-ship scans - chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal") + else if(org_type == "system defense" && (org_type2 == "government" || org_type2 == "neutral" || org_type2 == "military" || org_type2 == "corporate" || org_type2 == "spacer")) //let's see if we can narrow this down, I didn't see many ship-to-ship scans + chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",180;"dockingrequestgeneric",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal",10;"civvieleaks") //SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something else if(org_type == "system defense") - chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",80;"sdfbeginpatrol","normal") + chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",120;"dockingrequestgeneric",20;"undockingrequest",80;"sdfbeginpatrol","normal","sdfchatter") //if we somehow don't match any of the other existing filters once we've run through all of them else - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied",30;"undockingdelayed","normal") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",90;"dockingrequestgeneric",30;"undockingrequest",30;"undockingdenied","normal",25;"civvieleaks") //I probably should do some kind of pass here to work through all the possible combinations of major factors and see if the filtering list needs reordering or modifying, but I really can't be arsed //DEBUG BLOCK @@ -175,11 +175,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller switch(chatter_type) //mayday call if("emerg") - var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have [pick("asteroids","space debris")] impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke in the cockpit","We have unidentified boarders","Our RCS are malfunctioning and we're losing stability","Our life support [pick("is failing","has failed")]") + var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have [pick("asteroids","space debris")] impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke [pick("in the cockpit","on the bridge")]","We have unidentified boarders","Our RCS are malfunctioning and we're losing stability","Our life support [pick("is failing","has failed")]") msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! [problem]!","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control, copy. Switch to emergency responder channel [ertchannel].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Understood [using_map.dock_name] Control, switching now.","[prefix] [shipname]") //Control scan event: soft outcome if("policescan") @@ -187,21 +187,21 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [using_map.dock_name] Control, holding position.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.") - sleep(10 SECONDS) + sleep(rand(3,6)*2 SECONDS) msg(complain,"[prefix] [shipname]") - sleep(15 SECONDS) + sleep(rand(3,6)*3 SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Scan complete. [completed]") //Control scan event: hard outcome if("policeflee") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") msg("Unknown [pick("ship","vessel","starship")], this is [using_map.dock_name] Control, identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[uhoh]","[shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("This is [using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [combined_first_name]. Control out.","[using_map.starsys_name] Defense Control") //SDF scan event: soft outcome if("policeshipscan") @@ -209,160 +209,195 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") msg("[combined_second_name], this is [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [combined_first_name], holding position.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[prefix] [shipname]") - sleep(10 SECONDS) + sleep(rand(3,6)*2 SECONDS) msg(complain,"[secondprefix] [secondshipname]") - sleep(15 SECONDS) + sleep(rand(3,6)*3 SECONDS) msg("[combined_second_name], this is [combined_first_name]. Scan complete. [completed]","[prefix] [shipname]") //SDF scan event: hard outcome if("policeshipflee") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") msg("Unknown [pick("ship","vessel","starship")], this is [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[uhoh]","[shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control, this is [combined_second_name]. We have a situation here, please advise.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [sdfchannel].","[using_map.starsys_name] Defense Control") //SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll if("policeshipcombat") var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.") msg("[using_map.starsys_name] Defense Control, this is [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[using_map.starsys_name] Defense Control") //SDF event: patrol update if("sdfpatrolupdate") var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","marauders")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs") msg("[using_map.starsys_name] Defense Control, this is [combined_first_name] reporting in, [statusupdate], over.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[using_map.starsys_name] Defense Control") //SDF event: end patrol if("sdfendingpatrol") var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") msg("[callname], this is [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //SDF event: general chatter + if("sdfchatter") + var/chain = pick("codecheck","commscheck") + switch(chain) + if("codecheck") + msg("Check. Check. |Check|. Uhhh... check? Wait. Wait! Hold on. Yeah, okay, I gotta call this one in.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[using_map.dock_name] Control, confirm auth-code... [rand(1,9)][rand(1,9)][rand(1,9)]-[pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")]?","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("One moment... yeah, that code checks out [combined_first_name].") + sleep(rand(3,6) SECONDS) + msg("|(sigh)| Copy that Control. You! Move along!","[prefix] [shipname]") + if("commscheck") + msg("Control this is [combined_first_name], we're getting some interference in our area. [pick("How's our line?","Do you read?","How copy, over?")]","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("Control reads you loud and clear [combined_first_name].","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("[pick("Copy that","Thanks,","Roger that")] Control. [combined_first_name] out.","[prefix] [shipname]") + //Civil event: leaky chatter + if("civvieleaks") + var/commleak = pick("thatsmywife","missingkit","pipeleaks","weirdsmell","weirdsmell2") + switch(commleak) + if("thatsmywife") + msg("-so then I says to him, |that's no [pick("space carp","space shark","vox","garbage scow","freight liner","cargo hauler","superlifter")], that's my +wife!+| And he-","[prefix] [shipname]") + if("missingkit") + msg("-did you get the kit from down on deck [rand(1,4)]? I need th-","[prefix] [shipname]") + if("pipeleaks") + msg("I swear if these pipes keep leaking I'm going to-","[prefix] [shipname]") + if("weirdsmell") + msg("-and where the hell is that smell coming fr-","[prefix] [shipname]") + if("weirdsmell2") + msg("-hat in the [pick("three","five","seven","nine")] hells did you |eat| [pick("ensign","crewman")]? This compartment reeks of-","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], your internal comms are leaking[pick("."," again.",", again.",". |Again|.")]") + sleep(rand(3,6) SECONDS) + msg("Sorry Control, won't happen again.","[prefix] [shipname]") //DefCon event: hostile found if("hostiledetected") var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert") msg("This is [using_map.starsys_name] Defense Control to all SDF assets. Priority update follows.","[using_map.starsys_name] Defense Control") - sleep(5 SECONDS) - msg("Be on the lookout for [combined_first_name], last sighted near route [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("Be on the lookout for [combined_first_name], last sighted [pick("near route","in sector","near sector")] [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control") //Ship event: distress call, under attack if("distress") - msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") - sleep(5 SECONDS) - msg("Understood [using_map.starsys_name] Defense Control, switching now.","[prefix] [shipname]") + var/state = pick(66;"calm",34;"panic") + switch(state) + if("calm") + msg("[using_map.starsys_name] Defense Control, this is [combined_first_name].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("We read you. Go ahead, [combined_first_name].","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("Another vessel in our area is moving [pick("aggressively","suspiciously","erratically","unpredictably","with clear hostile intent")], please advise? Forwarding sensor data now.","[prefix] [shipname]","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], [using_map.starsys_name] Defense Control copies. Sensor data matches logged profile for [combined_second_name]. SDF units are en route to your location.","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("[pick("Appreciated","Copy that","Understood")], Control. Switching to [sdfchannel] to coordinate.","[prefix] [shipname]") + if("panic") + msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") + sleep(rand(3,6) SECONDS) + msg("[pick("Copy that","Understood")] [using_map.starsys_name] Defense Control, switching now!","[prefix] [shipname]") //Control event: travel advisory if("traveladvisory") - var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected along route [rand(1,100)], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. [pick("Stars","Gods","God","Goddess")] have mercy on you all, because the carp won't") + var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected [pick("along route [rand(1,100)]","in sector [rand(1,100)]")], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space [pick("carp","shark")] breeding season. [pick("Stars","Skies","Gods","God","Goddess","Fates")] have mercy on you all") msg("This is [using_map.dock_name] Control to all vessels in the [using_map.starsys_name] system. Priority travel advisory follows.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[flightwarning]. Control out.") //Control event: warning to a specific vessel if("pathwarning") - var/navhazard = pick("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector","a live-fire SDF training exercise","an ongoing Search & Rescue operation") + var/navhazard = pick("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector","a live-fire SDF training exercise","an ongoing Search & Rescue operation","a hazardous derelict","an intense electrical storm","an intense ion storm","a shoal of space carp","a pack of space sharks","an asteroid infested with gnat hives","a protected space ray habitat","a region with anomalous bluespace activity","a rogue comet") var/confirm = pick("Understood","Roger that","Affirmative","Our bad","Thanks for the heads up") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","Godspeed","Stars guide you","Don't let it happen again") msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [using_map.dock_name] Control, adjusting course.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_first_name]. [safetravels].") //Ship event: docking request (generic) if("dockingrequestgeneric") - var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (denied) - if("dockingrequestdenied") - var/reason = pick("we don't have any landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class") - var/disappointed = pick("That's unfortunate. [combined_first_name], out.","Damn shame. We'll just have to keep moving. [combined_first_name], out.","[combined_first_name], out.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason].") - sleep(5 SECONDS) - msg("Understood, [using_map.dock_name] Control. [disappointed]","[prefix] [shipname]") - //Ship event: docking request (delayed) - if("dockingrequestdelayed") - var/reason = pick("we don't have any free landing pads right now, please hold for three minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for three minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for three minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for three minutes") + var/request_type = pick(100;"generic",40;"delayed",40;"supply",20;"repair",20;"medical",20;"security") var/appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") - sleep(5 SECONDS) - msg("Understood, [using_map.dock_name] Control.","[prefix] [shipname]") - sleep(180 SECONDS) - msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") - sleep (5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (resupply) - if("dockingrequestsupply") - var/preintensifier = pick(75;"getting ",75;"running ","") //whitespace hack, sometimes they'll add a preintensifier, but not always - var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta") - var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (repair/maint) - if("dockingrequestrepair") - var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","Our artificial gravity generator has failed","Our life support is failing","Our environmental controls are busted","Our water recycling system has shorted out","Our navcomp is freaking out","Our systems are glitching out","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our repair bots are malfunctioning") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (medical) - if("dockingrequestmedical") - var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","sick passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured castaways","recovered escape pods","unknown escape pods") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (security) - if("dockingrequestsecurity") - var/species = pick("human","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien") - var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a very lost shadekin",5;"a raging case of [pick("spiders","crabs")]") //gotta have a little something to lighten the mood now and then - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") - sleep(5 SECONDS) + switch(request_type) + if("generic") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("delayed") + var/reason = pick("we don't have any free landing pads right now, please hold for a few minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for a few minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for a few minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for a few minutes") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") + sleep(rand(3,6) SECONDS) + msg("Understood, [using_map.dock_name] Control.","[prefix] [shipname]") + sleep(rand(3,6)*60 SECONDS) + msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") + sleep (5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("supply") + var/preintensifier = pick(75;"getting ",75;"running ","",15;"like, ") //whitespace hack, sometimes they'll add a preintensifier, but not always + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta") + var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("repair") + var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some [pick("weird","strange","odd","unusual")] technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our [pick("life support","water recycling system","navcomp","shield generator","RCS","auto-repair system","artificial gravity generator","environmental control system")] is [pick("failing","acting up","on the fritz","shorting out","glitching out","freaking out","malfunctioning")]") + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") + if("medical") + var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug") + var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured [pick("","[species] ")]passengers","sick [pick("","[species] ")]passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured [pick("","[species] ")]castaways","recovered escape pods","unknown escape pods") + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") + if("security") + var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug") + var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","[pick("a container","containers")] full of [pick("confiscated contraband","stolen goods")]",5;"a very lost shadekin",15;"a buncha lost-looking uh... cat... slug... |things?|",10;"a raging case of [pick("spiders","crabs","geese","gnats","sharks","carp")]") //gotta have a little something to lighten the mood now and then + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") + sleep(rand(3,6) SECONDS) msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") //Ship event: undocking request if("undockingrequest") + var/request_type = pick(150;"generic",50;"delayed") + var/takeoff = pick("depart","launch") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") - var/takeoff = pick("depart","launch") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) + switch(request_type) + if("generic") + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") + sleep(rand(3,6) SECONDS) + msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") + if("delayed") + var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard") + msg("Negative [combined_first_name], request denied. [denialreason]. Try again in a few minutes.") + sleep(rand(3,6)*60 SECONDS) + msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") + sleep(rand(3,6) SECONDS) msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") //SDF event: starting patrol if("sdfbeginpatrol") @@ -370,51 +405,36 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too") var/takeoff = pick("depart","launch","take off","dust off") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] beginning system patrol, out.","[prefix] [shipname]") //Ship event: undocking request (denied) if("undockingdenied") var/takeoff = pick("depart","launch") var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Negative [combined_first_name], request denied. [denialreason].") - //Ship event: undocking request (delayed) - if("undockingdelayed") - var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard") - var/takeoff = pick("depart","launch") - var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") - var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") - msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("Negative [combined_first_name], request denied. [denialreason]. Try again in three minutes.") - sleep(180 SECONDS) //yes, three minutes - msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) - msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") if("slogan") msg("The following is a sponsored message from [name].","Facility PA") - sleep (5 SECONDS) + sleep(5 SECONDS) msg("[slogan]","Facility PA") else //time for generic message msg("[callname], this is [combined_first_name] on [mission] [pick(mission_noun)] to [destname], requesting [request].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control, [response].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.dock_name] Control, [yes ? "thank you" : "understood"], out.","[prefix] [shipname]") return //oops, forgot to restore this /* //OLD BLOCK, for reference //Ship sends request to ATC msg(full_request,"[prefix] [shipname]" - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) //ATC sends response to ship msg(full_response) - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) //Ship sends response to ATC msg(full_closure,"[prefix] [shipname]") return diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm index a4b1bc88162..c625a2d34c1 100644 --- a/code/modules/busy_space_vr/organizations.dm +++ b/code/modules/busy_space_vr/organizations.dm @@ -11,12 +11,12 @@ var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") var/complex_tasks = FALSE //enables complex task generation - + //how does it work? simple: if you have complex tasks enabled, it goes; PREFIX + TASK_TYPE + FLIGHT_TYPE //e.g. NDV = Asset Protection + Patrol + Flight //this overrides the standard PREFIX = TASK logic and allows you to use the ship prefix for subfactions (warbands, religions, whatever) within a faction, and define task_types at the faction level //task_types are picked from completely at random in air_traffic.dm, much like flight_types, so be careful not to potentially create combos that make no sense! - + var/list/task_types = list( "logistics", "patrol", @@ -183,7 +183,8 @@ "Cwn Annwn", "Morning Swan", "Black Cat", - "Challenger" + "Challenger", + "Savage Chicken" ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. @@ -192,7 +193,7 @@ var/org_type = "neutral" //Valid options are "neutral", "corporate", "government", "system defense", "military, "smuggler", & "pirate" var/sysdef = FALSE //Are we the space cops? var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? see the proc below for info on that - + var/slogans = list("This is a placeholder slogan, ding dong!") //Advertising slogans. Who doesn't want more obnoxiousness on the radio? Picked at random each time the slogan event fires. This has a placeholder so it doesn't runtime on trying to draw from a 0-length list in the event that new corps are added without full support. /datum/lore/organization/New() @@ -309,8 +310,8 @@ them being the foremost experts on the substance and its uses. In the modern day, NanoTrasen prides \ itself on being an early adopter to as many new technologies as possible, often offering the newest \ products to their employees. In an effort to combat complaints about being 'guinea pigs', Nanotrasen \ - also offers one of the most comprehensive medical plans in Commonwealth space, up to and including cloning \ - and therapy.\ + also offers one of the most comprehensive medical plans in Commonwealth space, up to and including cloning, \ + resleeving, and therapy.\

\ NT's most well known products are its phoron based creations, especially those used in Cryotherapy. \ It also boasts a prosthetic line, which is provided to its employees as needed, and is used as an incentive \ @@ -403,9 +404,9 @@ org_type = "corporate" slogans = list( - "Hephaestus Arms - When it comes to personal protection, nobody does it better.", - "Hephaestus Arms - Peace through Superior Firepower.", - "Hephaestus Arms - Don't be caught firing blanks." + "+Hephaestus Arms!+ - When it comes to +personal protection+, +nobody+ does it +better+.", + "+Hephaestus Arms!+ - Peace through +Superior Firepower+.", + "+Hephaestus Arms!+ - Don't be caught +firing blanks+." ) ship_prefixes = list("HCV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") //War God Theme, updated @@ -503,7 +504,7 @@ and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \ human-like FBP designs. Vey's rise to stardom came from their introduction of resurrective cloning, although in \ recent years they've been forced to diversify as their patents expired and NanoTrasen-made medications became \ - essential to modern cloning. \ + essential to modern cloning and resleeving procedures. \

\ For reasons known only to the board, Vey-Med's ship names seem to follow the same naming pattern as the Dionae use." history = "" @@ -719,7 +720,8 @@ slogans = list( "Bishop Cybernetics - only the best in personal augmentation.", "Bishop Cybernetics - why settle for flesh when you can have metal?", - "Bishop Cybernetics - make a statement." + "Bishop Cybernetics - make a statement.", + "Bishop Cybernetics - embrace the purity of the machine." ) ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange") //famous mechanical engineers @@ -957,6 +959,7 @@ slogans = list( "The FTU. We look out for the little guy.", "There's no Trade like Free Trade.", + "There's no Union like the Free Trade Union.", "Join the Free Trade Union. Because anything worth doing, is worth doing for money." //rule of acquisition #13 ) ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment") @@ -1333,6 +1336,7 @@ slogans = list( "Oculum - All News, All The Time.", "Oculum - We Keep An Eye Out.", + "Oculum - Nothing But The Truth.", "Oculum - Your Eye On The Galaxy." ) ship_prefixes = list("OBV" = "an investigation", "OBV" = "a distribution", "OBV" = "a journalism", "OBV" = "a general operations") @@ -1354,7 +1358,9 @@ slogans = list( "Centauri Provisions Bread Tubes - They're Not Just Edible, They're |Breadible!|", "Centauri Provisions SkrellSnax - Not |Just| For Skrell!", - "Centauri Provisions Space Mountain Wind - It'll Take Your |Breath| Away!" + "Centauri Provisions Space Mountain Wind - It'll Take Your |Breath| Away!", + "Centauri Provisions Syndi-Cakes - A Taste So Good You'll Swear It's |Illegal|!", + "Centauri Provisions Tuna Snax - There's Nothing |Fishy| Going On Here!" ) ship_prefixes = list("CPTV" = "a transport", "CPCV" = "a catering", "CPRV" = "a resupply", "CPV" = "a general operations") destination_names = list( @@ -1620,7 +1626,7 @@ "Vampir", "Wendigo", "Werewolf", - "Wraith" + "Wraith" ) destination_names = list ( "Chimera HQ, Titan", @@ -2186,23 +2192,40 @@ org_type = "pirate" ship_prefixes = list("Ue-Katish pirate" = "a raiding", "Ue-Katish bandit" = "a raiding", "Ue-Katish raider" = "a raiding", "Ue-Katish enforcer" = "an enforcement") - ship_names = list( - "Keqxuer'xeu's Prize", - "Xaeker'qux' Bounty", - "Teq'ker'qerr's Mercy", - "Ke'teq's Thunder", - "Xumxerr's Compass", - "Xue'qux' Greed", - "Xaexuer's Slave", - "Xue'taq's Dagger", - "Teqxae's Madness", - "Taeqtaq'kea's Pride", - "Keqxae'xeu's Saber", - "Xueaeq's Disgrace", - "Xum'taq'qux' Star", - "Ke'xae'xe's Scream", - "Keq'keax' Blade" + ship_names = list() + +/datum/lore/organization/other/uekatish/New() + ..() + var/i = 20 //give us twenty random names + var/list/first_names = file2list('config/names/first_name_skrell.txt') + var/list/words = list( + "Prize", + "Bounty", + "Treasure", + "Pearl", + "Star", + "Mercy", + "Compass", + "Greed", + "Slave", + "Madness", + "Pride", + "Disgrace", + "Judgement", + "Wrath", + "Hatred", + "Vengeance", + "Fury", + "Thunder", + "Scream", + "Dagger", + "Saber", + "Lance", + "Blade" ) + while(i) + ship_names.Add("[pick(first_names)] [pick(words)]") + i-- /datum/lore/organization/other/marauders name = "Vox Marauders" @@ -2222,12 +2245,7 @@ org_type = "pirate" ship_prefixes = list("vox marauder" = "a marauding", "vox raider" = "a raiding", "vox ravager" = "a raiding", "vox corsair" = "a raiding") //as assigned by control, second part shouldn't even come up //blank out our shipnames for redesignation - ship_names = list( - ) - /* - destination_names = list( - ) - */ + ship_names = list() /datum/lore/organization/other/marauders/New() ..() @@ -2635,26 +2653,7 @@ //the tesh expeditionary fleet's closest analogue in modern terms would be the US Army Corps of Engineers, just with added combat personnel as well ship_prefixes = list("TEF" = "a diplomatic", "TEF" = "a peacekeeping", "TEF" = "an escort", "TEF" = "an exploration", "TEF" = "a survey", "TEF" = "an expeditionary", "TEF" = "a pioneering") //TODO: better ship names? I just took a bunch of random teshnames from the Random Name button and added a word. - ship_names = list( - "Leniri's Hope", - "Tatani's Venture", - "Ninai's Voyage", - "Miiescha's Claw", - "Ishena's Talons", - "Lili's Fang", - "Taalische's Wing", - "Cami's Pride", - "Schemisa's Glory", - "Shilirashi's Wit", - "Sanene's Insight", - "Aeimi's Wisdom", - "Ischica's Mind", - "Recite's Cry", - "Leseca's Howl", - "Iisi's Fury", - "Simascha's Revenge", - "Lisascheca's Vengeance" - ) + ship_names = list() destination_names = list( "an Expeditionary Fleet RV point", "an Expeditionary Fleet Resupply Ship", @@ -2665,14 +2664,59 @@ "Expeditionary Fleet HQ" ) +/datum/lore/organization/gov/teshari/New() + ..() + var/i = 20 //give us twenty random names + var/list/first_names = list( + "Leniri's", + "Tatani's", + "Ninai's", + "Miiescha's", + "Ishena's", + "Taalische's", + "Cami's", + "Schemisa's", + "Shilirashi's", + "Sanene's", + "Aeimi's", + "Ischica's", + "Shasche's", + "Leseca's", + "Iisi's", + "Simascha's", + "Lisascheca's" + ) + var/list/words = list( + "Hope", + "Venture", + "Voyage", + "Talons", + "Fang", + "Wing", + "Pride", + "Glory", + "Wit", + "Insight", + "Wisdom", + "Mind", + "Cry", + "Howl", + "Fury", + "Revenge", + "Vengeance" + ) + while(i) + ship_names.Add("[pick(first_names)] [pick(words)]") + i-- + /datum/lore/organization/gov/altevian_hegemony - name = "The Altevian Hegemony" + name = "The Altevian Hegemony" short_name = "Altevian Hegemony " acronym = "AH" desc = "The Altevians are a space-faring race of rodents that resemble Earth-like rats. \ They do not have a place they call home in terms of a planet, and instead have massive multiple-kilometer-long colony-ships \ - that are constantly on the move and typically keep operations outside of known populated systems to not eat the resources from others. \ - Their primary focus is trade and slavage operations and can be expected to be seen around both densely populated and empty systems for their work." + that are constantly on the move and typically keep operations outside of known populated systems to minimize potential conflicts over resources. \ + Their primary focus is trade and salvage operations, and their ships can be expected to be seen around both densely populated and empty systems for their work." history = "" work = "salvage and trade operators" headquarters = "AH-CV Migrant" From 179e3feb0f6e5c14044d3655ca60d6274685cf18 Mon Sep 17 00:00:00 2001 From: peesh Date: Mon, 5 Jun 2023 18:39:29 +1000 Subject: [PATCH 03/17] i gotta hand it to ya --- icons/inventory/uniform/mob.dmi | Bin 637732 -> 639622 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/inventory/uniform/mob.dmi b/icons/inventory/uniform/mob.dmi index 5d36de239b89ffbd79aca5a75649796087471294..5d096791cc40c6f47635191e535cfb054dc5ccd8 100644 GIT binary patch delta 135452 zcmbrl^;;az6D>SA2@u>Jf(0jda19>Z-3by1ZUY3D;O@a4K4@?Y5`w!0cL>3qy_4_z z-oN1fu=~t*SNA@%Tc`TeshYxT`p^)DfMB>__+W%!#9*XgN66MH!FNr7!8#-BwEc8(U$Zz~lS!g$TX_I!#P5BVL&4vnYw&&M zm*4g>Wc(H3QcG1TsBz%vK}S46?0`~L_t?wVHvL!4yj|ZLxe$H@|Ej-=<1f5FN}2*4 ztguM5Uj7BNQUH)+i z&P-w!_T{-|m6wgEA`9`x6>^HjwqXH2dGEfQGRSWnr�Y|40VvvJed0oOMh-JsXu2 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≷SpgT1}h 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 From 10d2178516ad16239c92cb2b729e73b5a1b9c02b Mon Sep 17 00:00:00 2001 From: ItsSelis Date: Mon, 5 Jun 2023 19:29:40 +0200 Subject: [PATCH 04/17] More 515 Compatibility --- code/__defines/qdel.dm | 6 +- code/__defines/rust_g.dm | 50 +++++++-------- code/_helpers/global_lists.dm | 6 +- code/_helpers/global_lists_vr.dm | 2 +- code/_helpers/icons.dm | 4 +- code/_helpers/unsorted.dm | 6 +- code/_helpers/visual_filters.dm | 2 +- code/_onclick/drag_drop.dm | 4 +- code/_onclick/hud/alert.dm | 4 +- code/controllers/master.dm | 12 ++-- code/controllers/subsystems/assets.dm | 4 +- code/controllers/subsystems/job.dm | 10 +-- code/controllers/subsystems/media_tracks.dm | 52 ++++++++-------- code/controllers/subsystems/ticker.dm | 2 +- code/controllers/subsystems/timer.dm | 4 +- code/datums/browser.dm | 2 +- code/datums/chat_message.dm | 14 ++--- code/datums/components/crafting/crafting.dm | 32 +++++----- code/datums/components/material_container.dm | 8 +-- code/datums/components/overlay_lighting.dm | 62 +++++++++---------- code/datums/components/resize_guard.dm | 4 +- code/datums/datumvars.dm | 4 +- code/datums/elements/_element.dm | 2 +- code/datums/elements/conflict_checking.dm | 4 +- code/datums/elements/light_blocking.dm | 2 +- code/datums/elements/turf_transparency.dm | 12 ++-- code/datums/ghost_query.dm | 4 +- code/datums/looping_sounds/_looping_sound.dm | 4 +- code/datums/looping_sounds/sequence.dm | 4 +- code/datums/riding.dm | 2 +- code/game/atoms.dm | 2 +- code/game/dna/dna_modifier.dm | 4 +- code/game/gamemodes/cult/cult_structures.dm | 2 +- code/game/jobs/job/civilian_chaplain.dm | 4 +- code/game/jobs/job_controller.dm | 2 +- .../atmoalter/area_atmos_computer.dm | 10 +-- code/game/machinery/autolathe.dm | 2 +- code/game/machinery/biogenerator.dm | 2 +- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/security.dm | 2 +- code/game/machinery/computer/skills.dm | 2 +- code/game/machinery/doors/blast_door.dm | 4 +- code/game/machinery/doors/brigdoors.dm | 4 +- code/game/machinery/doors/multi_tile.dm | 2 +- code/game/machinery/doors/windowdoor.dm | 6 +- code/game/machinery/holoposter.dm | 5 +- code/game/machinery/machinery_power.dm | 6 +- code/game/machinery/pointdefense.dm | 2 +- code/game/mecha/mecha.dm | 2 +- code/game/objects/effects/chem/foam.dm | 6 +- .../effects/decals/Cleanable/humans.dm | 2 +- .../objects/effects/map_effects/beam_point.dm | 2 +- code/game/objects/items.dm | 6 +- code/game/objects/items/devices/aicard.dm | 6 +- .../devices/communicator/communicator.dm | 3 +- .../items/devices/communicator/phone.dm | 5 +- .../objects/items/devices/denecrotizer_vr.dm | 24 +++---- code/game/objects/items/devices/gps.dm | 4 +- .../objects/items/devices/translocator_vr.dm | 2 +- code/game/objects/items/devices/uplink.dm | 4 +- code/game/objects/items/toys/mech_toys.dm | 4 +- code/game/objects/items/toys/toys_vr.dm | 20 +++--- code/game/objects/items/weapons/RCD_vr.dm | 18 +++--- code/game/objects/items/weapons/RMS_vr.dm | 2 +- .../objects/items/weapons/capture_crystal.dm | 6 +- .../objects/items/weapons/storage/bible.dm | 4 +- .../structures/crates_lockers/__closets.dm | 2 +- .../structures/ghost_pods/ghost_pods.dm | 4 +- code/game/socket_talk.dm | 6 +- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 2 +- code/modules/ai/ai_holder.dm | 4 +- code/modules/artifice/telecube.dm | 4 +- code/modules/assembly/signaler.dm | 2 +- code/modules/client/client procs.dm | 2 +- .../preference_setup/loadout/loadout_mask.dm | 4 +- .../under/accessories/accessory_vr.dm | 4 +- code/modules/economy/vending.dm | 4 +- code/modules/events/carp_migration.dm | 4 +- code/modules/events/gnat_migration.dm | 4 +- code/modules/events/infestation.dm | 6 +- code/modules/events/jellyfish_migration.dm | 4 +- code/modules/events/ray_migration.dm | 4 +- code/modules/events/shark_migration.dm | 4 +- code/modules/ext_scripts/irc.dm | 3 +- .../food/kitchen/smartfridge/smartfridge.dm | 2 +- .../events/engineering/airlock_failure.dm | 2 +- .../event2/events/everyone/radiation_storm.dm | 2 +- .../gamemaster/event2/events/mob_spawning.dm | 4 +- .../event2/events/security/prison_break.dm | 2 +- .../instrument_data/_instrument_data.dm | 2 +- code/modules/instruments/items.dm | 6 +- code/modules/instruments/songs/editor.dm | 2 +- .../integrated_electronics/subtypes/input.dm | 2 +- .../integrated_electronics/subtypes/output.dm | 4 +- .../integrated_electronics/subtypes/time.dm | 4 +- code/modules/mining/kinetic_crusher.dm | 9 ++- .../carbon/human/human_modular_limbs.dm | 8 +-- code/modules/mob/living/inventory.dm | 16 ++--- code/modules/mob/living/living.dm | 4 +- .../silicon/robot/robot_animation_vr.dm | 4 +- .../thinktank/thinktank_interactions.dm | 2 +- .../mob/living/simple_mob/overmap_mob_vr.dm | 5 +- .../subtypes/animal/alien animals/catslug.dm | 2 +- .../animal/alien animals/spookyghost.dm | 2 +- .../animal/giant_spider/broodmother_spawn.dm | 20 +++--- .../subtypes/animal/passive/possum.dm | 4 +- .../simple_mob/subtypes/vore/bigdragon.dm | 6 +- .../subtypes/vore/dominated_brain.dm | 4 +- .../living/simple_mob/subtypes/vore/frog.dm | 2 +- .../living/simple_mob/subtypes/vore/pakkun.dm | 4 +- code/modules/nifsoft/nif_tgui.dm | 6 +- .../overmap/disperser/disperser_console.dm | 14 ++--- code/modules/overmap/sectors.dm | 2 +- code/modules/overmap/ships/landable.dm | 8 +-- code/modules/paperwork/photocopier.dm | 2 +- code/modules/power/apc.dm | 4 +- code/modules/power/port_gen_vr.dm | 2 +- code/modules/power/tesla/coil.dm | 2 +- code/modules/power/tesla/energy_ball.dm | 2 +- code/modules/power/tesla/tesla_act.dm | 13 +--- .../guns/energy/kinetic_accelerator_vr.dm | 4 +- .../projectiles/guns/projectile/smartgun.dm | 7 +-- code/modules/random_map/drop/droppod_doors.dm | 4 +- code/modules/research/destructive_analyzer.dm | 4 +- code/modules/research/rdconsole_tgui.dm | 8 +-- .../scripting/Implementations/Telecomms.dm | 59 +++++++++--------- code/modules/shieldgen/directional_shield.dm | 4 +- code/modules/shieldgen/energy_shield.dm | 2 +- code/modules/shuttles/shuttles_web.dm | 6 +- code/modules/tgs/v3210/api.dm | 2 +- .../tgui/modules/appearance_changer.dm | 4 +- code/modules/tgui/modules/camera.dm | 17 +++-- code/modules/tgui/modules/ntos-only/uav.dm | 2 +- code/modules/tgui/tgui.dm | 2 +- code/modules/tooltip/tooltip.dm | 2 +- code/modules/vchat/vchat_client.dm | 2 +- code/modules/vore/eating/belly_obj_vr.dm | 4 +- code/modules/vore/eating/living_vr.dm | 6 +- code/modules/vore/eating/simple_animal_vr.dm | 2 +- code/modules/vore/resizing/sizegun_vr.dm | 4 +- code/modules/webhooks/_webhook.dm | 2 +- tgui/docs/tgui-for-custom-html-popups.md | 2 +- 142 files changed, 444 insertions(+), 462 deletions(-) diff --git a/code/__defines/qdel.dm b/code/__defines/qdel.dm index 12002dc46e0..cf1afe492e7 100644 --- a/code/__defines/qdel.dm +++ b/code/__defines/qdel.dm @@ -37,13 +37,13 @@ #define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) //Qdel helper macros. -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) -#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/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) if(item) {qdel(item); item = null} #define QDEL_NULL_LIST QDEL_LIST_NULL #define QDEL_LIST_NULL(x) if(x) { for(var/y in x) { qdel(y) } ; x = 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/______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(); } diff --git a/code/__defines/rust_g.dm b/code/__defines/rust_g.dm index 9c9e2637ce8..1c93497ec88 100644 --- a/code/__defines/rust_g.dm +++ b/code/__defines/rust_g.dm @@ -42,26 +42,26 @@ #define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" #define RUSTG_JOB_ERROR "JOB PANICKED" -#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_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_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_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_hash_string(algorithm, text) call(RUST_G, "hash_string")(algorithm, text) -#define rustg_hash_file(algorithm, fname) call(RUST_G, "hash_file")(algorithm, fname) +#define rustg_hash_string(algorithm, text) LIBCALL(RUST_G, "hash_string")(algorithm, text) +#define rustg_hash_file(algorithm, fname) LIBCALL(RUST_G, "hash_file")(algorithm, fname) #define RUSTG_HASH_MD5 "md5" #define RUSTG_HASH_SHA1 "sha1" @@ -72,13 +72,13 @@ #define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing)) #endif -#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_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) @@ -91,13 +91,13 @@ #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) call(RUST_G, "http_request_blocking")(method, url, body, headers) -#define rustg_http_request_async(method, url, body, headers) call(RUST_G, "http_request_async")(method, url, body, headers) -#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id) +#define rustg_http_request_blocking(method, url, body, headers) LIBCALL(RUST_G, "http_request_blocking")(method, url, body, headers) +#define rustg_http_request_async(method, url, body, headers) LIBCALL(RUST_G, "http_request_async")(method, url, body, headers) +#define rustg_http_check_request(req_id) LIBCALL(RUST_G, "http_check_request")(req_id) -#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]") diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 9825374b024..1408896e555 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_EMPTY(mannequins) GLOB.all_species[S.name] = S //Shakey shakey shake - sortTim(GLOB.all_species, /proc/cmp_species, associative = TRUE) + sortTim(GLOB.all_species, GLOBAL_PROC_REF(cmp_species), associative = TRUE) //Split up the rest for(var/speciesname in GLOB.all_species) @@ -238,7 +238,7 @@ GLOBAL_LIST_EMPTY(mannequins) for(var/oretype in paths) var/ore/OD = new oretype() GLOB.ore_data[OD.name] = OD - + paths = subtypesof(/datum/alloy) for(var/alloytype in paths) GLOB.alloy_data += new alloytype() @@ -310,7 +310,7 @@ GLOBAL_LIST_EMPTY(mannequins) /proc/init_crafting_recipes(list/crafting_recipes) for(var/path in subtypesof(/datum/crafting_recipe)) var/datum/crafting_recipe/recipe = new path() - recipe.reqs = sortList(recipe.reqs, /proc/cmp_crafting_req_priority) + recipe.reqs = sortList(recipe.reqs, GLOBAL_PROC_REF(cmp_crafting_req_priority)) crafting_recipes += recipe return crafting_recipes /* // Uncomment to debug chemical reaction list. diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index d8cc8b8f6a8..398104b4b11 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -540,7 +540,7 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, all_traits[path] = instance // Shakey shakey shake - sortTim(all_traits, /proc/cmp_trait_datums_name, associative = TRUE) + sortTim(all_traits, GLOBAL_PROC_REF(cmp_trait_datums_name), associative = TRUE) // Split 'em up for(var/traitpath in all_traits) diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index 34a7e2fc15a..31970b792fa 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -215,7 +215,7 @@ break layers[current] = current_layer - //sortTim(layers, /proc/cmp_image_layer_asc) + //sortTim(layers, GLOBAL_PROC_REF(cmp_image_layer_asc)) var/icon/add // Icon of overlay being added @@ -386,7 +386,7 @@ GLOBAL_LIST_EMPTY(cached_examine_icons) /proc/set_cached_examine_icon(var/atom/A, var/icon/I, var/expiry = 12000) GLOB.cached_examine_icons[WEAKREF(A)] = I if(expiry) - addtimer(CALLBACK(GLOBAL_PROC, .proc/uncache_examine_icon, WEAKREF(A)), expiry, TIMER_UNIQUE) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(uncache_examine_icon), WEAKREF(A)), expiry, TIMER_UNIQUE) /proc/get_cached_examine_icon(var/atom/A) var/datum/weakref/WR = WEAKREF(A) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index cb19ec6c511..a8dce670f54 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -626,7 +626,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //Returns: all the areas in the world, sorted. /proc/return_sorted_areas() - return sortTim(return_areas(), /proc/cmp_text_asc) + return sortTim(return_areas(), GLOBAL_PROC_REF(cmp_text_asc)) //Takes: Area type as text string or as typepath OR an instance of the area. //Returns: A list of all turfs in areas of that type of that type in the world. @@ -1350,9 +1350,9 @@ var/mob/dview/dview_mob = new //datum may be null, but it does need to be a typed var #define NAMEOF(datum, X) (#X || ##datum.##X) -#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) //we'll see about those 3-level deep macros #define VARSET_IN(datum, var, var_value, time) addtimer(VARSET_CALLBACK(datum, var, var_value), time) diff --git a/code/_helpers/visual_filters.dm b/code/_helpers/visual_filters.dm index c02bbb69939..60aef7c9081 100644 --- a/code/_helpers/visual_filters.dm +++ b/code/_helpers/visual_filters.dm @@ -302,7 +302,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( /atom/proc/update_filters() filters = null - filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE) + filter_data = sortTim(filter_data, GLOBAL_PROC_REF(cmp_filter_data_priority), TRUE) for(var/f in filter_data) var/list/data = filter_data[f] var/list/arguments = data.Copy() diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 9f7848b3d31..2ea2a4885f6 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -21,7 +21,7 @@ if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows - INVOKE_ASYNC(over, /atom/.proc/MouseDrop_T, src, usr, src_location, over_location, src_control, over_control, params) + INVOKE_ASYNC(over, TYPE_PROC_REF(/atom, MouseDrop_T), src, usr, src_location, over_location, src_control, over_control, params) /atom/proc/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params) - return \ No newline at end of file + return diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index c1309e3e95f..7515e47dac6 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -53,7 +53,7 @@ animate(alert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) if(alert.timeout) - addtimer(CALLBACK(src, .proc/alert_timeout, alert, category), alert.timeout) + addtimer(CALLBACK(src, PROC_REF(alert_timeout), alert, category), alert.timeout) alert.timeout = world.time + alert.timeout - world.tick_lag return alert @@ -436,7 +436,7 @@ so as to remain in compliance with the most up-to-date laws." if(alert.icon_state in cached_icon_states(ui_style)) alert.icon = ui_style - + else if(!alert.no_underlay) var/image/I = image(icon = ui_style, icon_state = "template") I.color = ui_color diff --git a/code/controllers/master.dm b/code/controllers/master.dm index fe88f6c10e3..6d66e04789e 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -68,7 +68,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new qdel(Master) else var/list/subsytem_types = subtypesof(/datum/controller/subsystem) - sortTim(subsytem_types, /proc/cmp_subsystem_init) + sortTim(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init)) for(var/I in subsytem_types) _subsystems += new I Master = src @@ -83,7 +83,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/Shutdown() processing = FALSE - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) reverseRange(subsystems) for(var/datum/controller/subsystem/ss in subsystems) log_world("Shutting down [ss.name] subsystem...") @@ -173,7 +173,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new to_chat(world, "MC: Initializing subsystems...") // Sort subsystems by init_order, so they initialize in the correct order. - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) var/start_timeofday = REALTIMEOFDAY // Initialize subsystems. @@ -196,7 +196,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new GLOB.revdata = new // It can load revdata now, from tgs or .git or whatever // Sort subsystems by display setting for easy access. - sortTim(subsystems, /proc/cmp_subsystem_display) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display)) // Set world options. #ifdef UNIT_TEST world.sleep_offline = 0 @@ -276,9 +276,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_tail = null //these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) - sortTim(tickersubsystems, /proc/cmp_subsystem_priority) + sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) for(var/I in runlevel_sorted_subsystems) - sortTim(runlevel_sorted_subsystems, /proc/cmp_subsystem_priority) + sortTim(runlevel_sorted_subsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) I += tickersubsystems var/cached_runlevel = current_runlevel diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm index 75c23ff10f4..522deae1776 100644 --- a/code/controllers/subsystems/assets.dm +++ b/code/controllers/subsystems/assets.dm @@ -14,5 +14,5 @@ SUBSYSTEM_DEF(assets) preload = cache.Copy() //don't preload assets generated during the round for(var/client/C in GLOB.clients) - addtimer(CALLBACK(GLOBAL_PROC, .proc/getFilesSlow, C, preload, FALSE), 10) - return ..() \ No newline at end of file + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(getFilesSlow), C, preload, FALSE), 10) + return ..() diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index 2aa6d84cb69..30878ea6acf 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -37,11 +37,11 @@ SUBSYSTEM_DEF(job) if(LAZYLEN(job.departments)) add_to_departments(job) - sortTim(occupations, /proc/cmp_job_datums) + sortTim(occupations, GLOBAL_PROC_REF(cmp_job_datums)) for(var/D in department_datums) var/datum/department/dept = department_datums[D] - sortTim(dept.jobs, /proc/cmp_job_datums, TRUE) - sortTim(dept.primary_jobs, /proc/cmp_job_datums, TRUE) + sortTim(dept.jobs, GLOBAL_PROC_REF(cmp_job_datums), TRUE) + sortTim(dept.primary_jobs, GLOBAL_PROC_REF(cmp_job_datums), TRUE) return TRUE @@ -69,7 +69,7 @@ SUBSYSTEM_DEF(job) var/datum/department/D = new t() department_datums[D.name] = D - sortTim(department_datums, /proc/cmp_department_datums, TRUE) + sortTim(department_datums, GLOBAL_PROC_REF(cmp_department_datums), TRUE) /datum/controller/subsystem/job/proc/get_all_department_datums() var/list/dept_datums = list() @@ -140,4 +140,4 @@ SUBSYSTEM_DEF(job) /datum/controller/subsystem/job/proc/job_debug_message(message) if(debug_messages) - log_debug("JOB DEBUG: [message]") \ No newline at end of file + log_debug("JOB DEBUG: [message]") diff --git a/code/controllers/subsystems/media_tracks.dm b/code/controllers/subsystems/media_tracks.dm index 58fd0ec858f..addff1541f0 100644 --- a/code/controllers/subsystems/media_tracks.dm +++ b/code/controllers/subsystems/media_tracks.dm @@ -2,7 +2,7 @@ SUBSYSTEM_DEF(media_tracks) name = "Media Tracks" flags = SS_NO_FIRE init_order = INIT_ORDER_MEDIA_TRACKS - + /// Every track, including secret var/list/all_tracks = list() /// Non-secret jukebox tracks @@ -18,19 +18,19 @@ SUBSYSTEM_DEF(media_tracks) /datum/controller/subsystem/media_tracks/proc/load_tracks() for(var/filename in config.jukebox_track_files) report_progress("Loading jukebox track: [filename]") - + if(!fexists(filename)) error("File not found: [filename]") continue - + var/list/jsonData = json_decode(file2text(filename)) - + if(!istype(jsonData)) error("Failed to read tracks from [filename], json_decode failed.") continue - + for(var/entry in jsonData) - + // Critical problems that will prevent the track from working if(!istext(entry["url"])) error("Jukebox entry in [filename]: bad or missing 'url'. Tracks must have a URL.") @@ -47,21 +47,21 @@ SUBSYSTEM_DEF(media_tracks) warning("Jukebox entry in [filename], [entry["title"]]: bad or missing 'artist'. Please consider crediting the artist.") if(!istext(entry["genre"])) warning("Jukebox entry in [filename], [entry["title"]]: bad or missing 'genre'. Please consider adding a genre.") - + var/datum/track/T = new(entry["url"], entry["title"], entry["duration"], entry["artist"], entry["genre"]) - + T.secret = entry["secret"] ? 1 : 0 T.lobby = entry["lobby"] ? 1 : 0 - + all_tracks += T /datum/controller/subsystem/media_tracks/proc/sort_tracks() report_progress("Sorting media tracks...") - sortTim(all_tracks, /proc/cmp_media_track_asc) - + sortTim(all_tracks, GLOBAL_PROC_REF(cmp_media_track_asc)) + jukebox_tracks.Cut() lobby_tracks.Cut() - + for(var/datum/track/T in all_tracks) if(!T.secret) jukebox_tracks += T @@ -72,7 +72,7 @@ SUBSYSTEM_DEF(media_tracks) var/client/C = usr.client if(!check_rights(R_DEBUG|R_FUN)) return - + // Required var/url = tgui_input_text(C, "REQUIRED: Provide URL for track, or paste JSON if you know what you're doing. See code comments.", "Track URL", multiline = TRUE) if(!url) @@ -95,7 +95,7 @@ SUBSYSTEM_DEF(media_tracks) * "secret": only on hacked jukeboxes (true/false) * "lobby": plays in the lobby (true/false) */ - + if(islist(json)) for(var/song in json) if(!islist(song)) @@ -104,18 +104,18 @@ SUBSYSTEM_DEF(media_tracks) var/list/songdata = song if(!songdata["url"] || !songdata["title"] || !songdata["duration"]) to_chat(C, "URL, Title, or Duration was missing from a song. Skipping.") - continue + continue var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"]) all_tracks += T - + report_progress("New media track added by [C]: [T.title]") sort_tracks() return - + var/title = tgui_input_text(C, "REQUIRED: Provide title for track", "Track Title") if(!title) return - + var/duration = tgui_input_number(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") if(!duration) return @@ -124,11 +124,11 @@ SUBSYSTEM_DEF(media_tracks) var/artist = tgui_input_text(C, "Optional: Provide artist for track", "Track Artist") if(isnull(artist)) // Cancel rather than empty string return - + var/genre = tgui_input_text(C, "Optional: Provide genre for track (try to match an existing one)", "Track Genre") if(isnull(genre)) // Cancel rather than empty string return - + var/secret = tgui_alert(C, "Optional: Mark track as secret?", "Track Secret", list("Yes", "Cancel", "No")) if(secret == "Cancel") return @@ -136,7 +136,7 @@ SUBSYSTEM_DEF(media_tracks) secret = TRUE else secret = FALSE - + var/lobby = tgui_alert(C, "Optional: Mark track as lobby music?", "Track Lobby", list("Yes", "Cancel", "No")) if(lobby == "Cancel") return @@ -146,12 +146,12 @@ SUBSYSTEM_DEF(media_tracks) secret = FALSE var/datum/track/T = new(url, title, duration, artist, genre) - + T.secret = secret T.lobby = lobby - + all_tracks += T - + report_progress("New media track added by [C]: [title]") sort_tracks() @@ -163,7 +163,7 @@ SUBSYSTEM_DEF(media_tracks) var/track = tgui_input_text(C, "Input track title or URL to remove (must be exact)", "Remove Track") if(!track) return - + for(var/datum/track/T in all_tracks) if(T.title == track || T.url == track) all_tracks -= T @@ -171,7 +171,7 @@ SUBSYSTEM_DEF(media_tracks) report_progress("Media track removed by [C]: [track]") sort_tracks() return - + to_chat(C, "") /datum/controller/subsystem/media_tracks/vv_get_dropdown() diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 629ec4b79dc..1a8f8fb1b52 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -220,7 +220,7 @@ var/global/datum/controller/subsystem/ticker/ticker end_game_state = END_GAME_READY_TO_END current_state = GAME_STATE_FINISHED Master.SetRunLevel(RUNLEVEL_POSTGAME) - INVOKE_ASYNC(src, .proc/declare_completion) + INVOKE_ASYNC(src, PROC_REF(declare_completion)) else if (mode_finished && (end_game_state < END_GAME_MODE_FINISHED)) end_game_state = END_GAME_MODE_FINISHED // Only do this cleanup once! mode.cleanup() diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm index 4fadc4f599c..cfcba6afbf6 100644 --- a/code/controllers/subsystems/timer.dm +++ b/code/controllers/subsystems/timer.dm @@ -256,7 +256,7 @@ SUBSYSTEM_DEF(timer) if (!length(alltimers)) return - sortTim(alltimers, /proc/cmp_timer) + sortTim(alltimers, GLOBAL_PROC_REF(cmp_timer)) var/datum/timedevent/head = alltimers[1] @@ -516,4 +516,4 @@ SUBSYSTEM_DEF(timer) #undef BUCKET_LEN #undef BUCKET_POS #undef TIMER_MAX -#undef TIMER_ID_MAX \ No newline at end of file +#undef TIMER_ID_MAX diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 18472c854cb..62aa9aab864 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -290,7 +290,7 @@ winset(user, "mapwindow", "focus=true") break if (timeout) - addtimer(CALLBACK(src, .proc/close), timeout) + addtimer(CALLBACK(src, PROC_REF(close)), timeout) /datum/browser/modal/proc/wait() while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index 982e9e098c8..23d43296b0c 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -34,7 +34,7 @@ var/list/runechat_image_cache = list() var/image/emote_image = image('icons/UI_Icons/chat/chat_icons.dmi', icon_state = "emote") runechat_image_cache["emote"] = emote_image - + return TRUE /datum/chatmessage @@ -99,10 +99,10 @@ var/list/runechat_image_cache = list() if(!target || !owner) qdel(src) return - + // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel_self) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(qdel_self)) var/extra_length = owned_by.is_preference_enabled(/datum/client_preference/runechat_long_messages) var/maxlen = extra_length ? CHAT_MESSAGE_EXT_LENGTH : CHAT_MESSAGE_LENGTH @@ -147,10 +147,10 @@ var/list/runechat_image_cache = list() // Icon on both ends? //var/image/I = runechat_image_cache["emote"] //text = "\icon[I][text]\icon[I]" - + // Icon on one end? //LAZYADD(prefixes, "\icon[runechat_image_cache["emote"]]") - + // Asterisks instead? text = "* [text] *" @@ -168,7 +168,7 @@ var/list/runechat_image_cache = list() // Translate any existing messages upwards, apply exponential decay factors to timers message_loc = target.runechat_holder(src) - RegisterSignal(message_loc, COMSIG_PARENT_QDELETING, .proc/qdel_self) + RegisterSignal(message_loc, COMSIG_PARENT_QDELETING, PROC_REF(qdel_self)) if(owned_by.seen_messages) var/idx = 1 var/combined_height = approx_lines @@ -255,7 +255,7 @@ var/list/runechat_image_cache = list() if(!message) return */ - + var/list/extra_classes = list() extra_classes += existing_extra_classes diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 6e0a3bfdc59..fd468994de3 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -1,6 +1,6 @@ /datum/component/personal_crafting/Initialize() if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) /datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL) // SIGNAL_HANDLER @@ -12,7 +12,7 @@ C.alpha = H.ui_alpha LAZYADD(H.other_important, C) CL.screen += C - RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) + RegisterSignal(C, COMSIG_CLICK, PROC_REF(component_ui_interact)) /datum/component/personal_crafting var/busy @@ -279,28 +279,28 @@ if(amt <= 0)//since machinery can have 0 aka CRAFTING_MACHINERY_USE - i.e. use it, don't consume it! continue - // If the path is in R.parts, we want to grab those to stuff into the product + // If the path is in R.parts, we want to grab those to stuff into the product var/amt_to_transfer = 0 if(is_path_in_list(path_key, R.parts)) amt_to_transfer = R.parts[path_key] - + // Reagent: gotta go sniffing in all the beakers if(ispath(path_key, /datum/reagent)) var/datum/reagent/reagent = path_key var/id = initial(reagent.id) - for(var/obj/item/weapon/reagent_containers/RC in surroundings) + for(var/obj/item/weapon/reagent_containers/RC in surroundings) // Found everything we need if(amt <= 0 && amt_to_transfer <= 0) - break + break // If we need to keep any to put in the new object, pull it out if(amt_to_transfer > 0) var/A = RC.reagents.trans_id_to(parts["reagents"], id, amt_to_transfer) amt_to_transfer -= A amt -= A - + // If we need to consume some amount of it if(amt > 0) var/datum/reagent/RG = RC.reagents.get_reagent(id) @@ -322,27 +322,27 @@ parts["items"] += split amt_to_transfer -= split.get_amount() amt -= split.get_amount() - + if(amt > 0) var/A = min(amt, S.get_amount()) if(S.use(A)) amt -= A - + else // Just a regular item. Find them all and delete them for(var/atom/movable/I in surroundings) if(amt <= 0 && amt_to_transfer <= 0) break - + if(!istype(I, path_key)) continue - + // Special case: the reagents may be needed for other recipes if(istype(I, /obj/item/weapon/reagent_containers)) var/obj/item/weapon/reagent_containers/RC = I if(RC.reagents.total_volume > 0) continue - + // We're using it for something amt-- @@ -351,7 +351,7 @@ parts["items"] += I amt_to_transfer-- continue - + // Snowflake handling of reagent containers and storage atoms. // If we consumed them in our crafting, we should dump their contents out before qdeling them. if(istype(I, /obj/item/weapon/reagent_containers)) @@ -369,7 +369,7 @@ // SIGNAL_HANDLER if(user == parent) - INVOKE_ASYNC(src, .proc/tgui_interact, user) + INVOKE_ASYNC(src, PROC_REF(tgui_interact), user) /datum/component/personal_crafting/tgui_state(mob/user) return GLOB.tgui_not_incapacitated_turf_state @@ -499,7 +499,7 @@ //Also these are typepaths so sadly we can't just do "[a]" L += "[req[req_atom]] [initial(req_atom.name)]" req_text += L.Join(" OR ") - + for(var/obj/machinery/content as anything in R.machinery) req_text += "[R.reqs[content]] [initial(content.name)]" if(R.additional_req_text) @@ -530,4 +530,4 @@ name = "crafting menu" icon = 'icons/mob/screen/midnight.dmi' icon_state = "craft" - screen_loc = ui_smallquad \ No newline at end of file + screen_loc = ui_smallquad diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 2b0c74e269b..b414f4651f6 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -76,9 +76,9 @@ . = ..() if(!(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) if(mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) /datum/component/material_container/vv_edit_var(var_name, var_value) @@ -86,12 +86,12 @@ . = ..() if(var_name == NAMEOF(src, mat_container_flags) && parent) if(!(old_flags & MATCONTAINER_EXAMINE) && mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) else if(old_flags & MATCONTAINER_EXAMINE && !(mat_container_flags & MATCONTAINER_EXAMINE)) UnregisterSignal(parent, COMSIG_PARENT_EXAMINE) if(old_flags & MATCONTAINER_NO_INSERT && !(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) else if(!(old_flags & MATCONTAINER_NO_INSERT) && mat_container_flags & MATCONTAINER_NO_INSERT) UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 9bc38204946..755888cec19 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -111,15 +111,15 @@ /datum/component/overlay_lighting/RegisterWithParent() . = ..() if(directional) - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/on_parent_dir_change) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_parent_moved) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_RANGE, .proc/set_range) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_POWER, .proc/set_power) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_COLOR, .proc/set_color) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_ON, .proc/on_toggle) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_FLAGS, .proc/on_light_flags_change) - RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) - RegisterSignal(parent, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_parent_dir_change)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_moved)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_RANGE, PROC_REF(set_range)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_POWER, PROC_REF(set_power)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_COLOR, PROC_REF(set_color)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_ON, PROC_REF(on_toggle)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_FLAGS, PROC_REF(on_light_flags_change)) + RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) + RegisterSignal(parent, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) var/atom/movable/movable_parent = parent if(movable_parent.light_flags & LIGHT_ATTACHED) overlay_lighting_flags |= LIGHTING_ATTACHED @@ -155,17 +155,17 @@ set_parent_attached_to(null) set_holder(null) clean_old_turfs() - + qdel(visible_mask, TRUE) visible_mask = null - + if(directional) qdel(directional_atom, TRUE) directional_atom = null - + qdel(cone, TRUE) cone = null - + return ..() @@ -229,15 +229,15 @@ var/atom/movable/old_parent_attached_to = . UnregisterSignal(old_parent_attached_to, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_LIGHT_EATER_QUEUE)) if(old_parent_attached_to == current_holder) - RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) - RegisterSignal(old_parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(old_parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) if(parent_attached_to) if(parent_attached_to == current_holder) UnregisterSignal(current_holder, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_LIGHT_EATER_QUEUE)) - RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_parent_attached_to_qdel) - RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_parent_attached_to_moved) - RegisterSignal(parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_parent_attached_to_qdel)) + RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_attached_to_moved)) + RegisterSignal(parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) check_holder() @@ -257,11 +257,11 @@ clean_old_turfs() return if(new_holder != parent && new_holder != parent_attached_to) - RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) - RegisterSignal(new_holder, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(new_holder, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) if(directional) - RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, .proc/on_holder_dir_change) + RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_holder_dir_change)) if(overlay_lighting_flags & LIGHTING_ON) make_luminosity_update() add_dynamic_lumi() @@ -444,7 +444,7 @@ if(final_distance > SHORT_CAST && !(ALL_CARDINALS & current_direction)) final_distance -= 1 var/turf/scanning = get_turf(current_holder) - + . = 0 for(var/i in 1 to final_distance) var/turf/next_turf = get_step(scanning, current_direction) @@ -464,7 +464,7 @@ if(final_distance > SHORT_CAST && !(ALL_CARDINALS & get_dir(GET_PARENT, target))) final_distance -= 1 var/turf/scanning = get_turf(GET_PARENT) - + . = 0 for(var/i in 1 to final_distance) var/next_dir = get_dir(scanning, target) @@ -477,9 +477,9 @@ directional_atom.forceMove(scanning) var/turf/Ts = get_turf(GET_PARENT) var/turf/To = get_turf(GET_LIGHT_SOURCE) - + var/angle = Get_Angle(Ts, To) - + directional_atom.face_light(GET_PARENT, angle, .) set_cone_direction(NORTH, angle) @@ -510,7 +510,7 @@ return current_direction = newdir set_cone_direction(newdir) - + if(newdir & NORTH) cone.pixel_y = 16 else if(newdir & SOUTH) @@ -522,7 +522,7 @@ else cone.pixel_y = 0 directional_atom.pixel_y = 0 - + if(newdir & EAST) cone.pixel_x = 16 else if(newdir & WEST) @@ -538,7 +538,7 @@ else cone.pixel_x = 0 directional_atom.pixel_x = 0 - + if(!skip_update && (overlay_lighting_flags & LIGHTING_ON)) make_luminosity_update() @@ -549,7 +549,7 @@ return UnregisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT) - RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) + RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) set_parent_attached_to(new_craft) /// Handles putting the source for overlay lights into the light eater queue since we aren't tracked by [/atom/var/light_sources] diff --git a/code/datums/components/resize_guard.dm b/code/datums/components/resize_guard.dm index 724d2524431..33799cb828c 100644 --- a/code/datums/components/resize_guard.dm +++ b/code/datums/components/resize_guard.dm @@ -6,7 +6,7 @@ /datum/component/resize_guard/RegisterWithParent() // When our parent mob enters any atom, we check resize - RegisterSignal(parent, COMSIG_ATOM_ENTERING, .proc/check_resize) + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(check_resize)) /datum/component/resize_guard/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ATOM_ENTERING) @@ -16,4 +16,4 @@ if(A?.limit_mob_size) var/mob/living/L = parent L.resize(L.size_multiplier) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index aa92979d5a3..4579f50f409 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -63,11 +63,11 @@ if(!check_rights(NONE)) return var/list/names = list() - var/list/componentsubtypes = sortTim(subtypesof(/datum/component), /proc/cmp_typepaths_asc) + var/list/componentsubtypes = sortTim(subtypesof(/datum/component), GLOBAL_PROC_REF(cmp_typepaths_asc)) names += "---Components---" names += componentsubtypes names += "---Elements---" - names += sortTim(subtypesof(/datum/element), /proc/cmp_typepaths_asc) + names += sortTim(subtypesof(/datum/element), GLOBAL_PROC_REF(cmp_typepaths_asc)) var/result = tgui_input_list(usr, "Choose a component/element to add:", "Add Component/Element", names) if(!usr || !result || result == "---Components---" || result == "---Elements---") return diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 30bd98a3268..82b51395225 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -23,7 +23,7 @@ return ELEMENT_INCOMPATIBLE SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src) if(element_flags & ELEMENT_DETACH) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/OnTargetDelete, override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(OnTargetDelete), override = TRUE) /datum/element/proc/OnTargetDelete(datum/source, force) SIGNAL_HANDLER diff --git a/code/datums/elements/conflict_checking.dm b/code/datums/elements/conflict_checking.dm index cd56d288566..eea61f8f89a 100644 --- a/code/datums/elements/conflict_checking.dm +++ b/code/datums/elements/conflict_checking.dm @@ -18,7 +18,7 @@ CRASH("Invalid ID in conflict checking element.") if(isnull(src.id)) src.id = id - RegisterSignal(target, COMSIG_CONFLICT_ELEMENT_CHECK, .proc/check) + RegisterSignal(target, COMSIG_CONFLICT_ELEMENT_CHECK, PROC_REF(check)) /datum/element/conflict_checking/proc/check(datum/source, id_to_check) if(id == id_to_check) @@ -32,4 +32,4 @@ for(var/i in GetAllContents()) var/atom/movable/AM = i if(SEND_SIGNAL(AM, COMSIG_CONFLICT_ELEMENT_CHECK, id) & ELEMENT_CONFLICT_FOUND) - ++. \ No newline at end of file + ++. diff --git a/code/datums/elements/light_blocking.dm b/code/datums/elements/light_blocking.dm index 86aac9f0758..f8e5cd82dfe 100644 --- a/code/datums/elements/light_blocking.dm +++ b/code/datums/elements/light_blocking.dm @@ -9,7 +9,7 @@ . = ..() if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/on_target_move) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_target_move)) var/atom/movable/movable_target = target if(isturf(movable_target.loc)) var/turf/turf_loc = movable_target.loc diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index 073f076659e..8b2ac8f9186 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -14,8 +14,8 @@ our_turf.plane = OPENSPACE_PLANE our_turf.layer = OPENSPACE_LAYER - RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del, override = TRUE) - RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_turf_new, override = TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, PROC_REF(on_multiz_turf_del), override = TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_turf_new), override = TRUE) update_multiz(our_turf, TRUE, TRUE) @@ -75,12 +75,12 @@ if(!ispath(path)) warning("Z-level [our_turf] has invalid baseturf '[get_base_turf_by_area(our_turf)]' in area '[get_area(our_turf)]'") path = /turf/space - + var/do_plane = ispath(path, /turf/space) ? SPACE_PLANE : null var/do_state = ispath(path, /turf/space) ? "white" : initial(path.icon_state) - + var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), do_state, layer = TURF_LAYER-0.02, plane = do_plane) underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays += underlay_appearance - - return TRUE \ No newline at end of file + + return TRUE diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm index 2f3f4884b5c..234a226c813 100644 --- a/code/datums/ghost_query.dm +++ b/code/datums/ghost_query.dm @@ -63,7 +63,7 @@ if(query_sound) SEND_SOUND(C, sound(query_sound)) - tgui_alert_async(D, question, "[role_name] request", list("Yes", "No", "Never for this round"), CALLBACK(src, .proc/get_reply), wait_time SECONDS) + tgui_alert_async(D, question, "[role_name] request", list("Yes", "No", "Never for this round"), CALLBACK(src, PROC_REF(get_reply)), wait_time SECONDS) /// Process an async alert response /datum/ghost_query/proc/get_reply(response) @@ -87,7 +87,7 @@ else if(finished) // Already finished candidate list to_chat(D, "Unfortunately, you were not fast enough, and there are no more available roles. Sorry.") else // Prompt a second time - tgui_alert_async(D, "Are you sure you want to play as a [role_name]?", "[role_name] request", list("I'm Sure", "Nevermind"), CALLBACK(src, .proc/get_reply), wait_time SECONDS) + tgui_alert_async(D, "Are you sure you want to play as a [role_name]?", "[role_name] request", list("I'm Sure", "Nevermind"), CALLBACK(src, PROC_REF(get_reply)), wait_time SECONDS) if("I'm Sure") if(!evaluate_candidate(D)) // Failed revalidation diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index e60fa3ad19d..e9397825298 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -87,7 +87,7 @@ if(!chance || prob(chance)) play(get_sound(starttime)) if(!timerid) - timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP) /datum/looping_sound/proc/play(soundfile) var/list/atoms_cache = output_atoms @@ -119,7 +119,7 @@ if(start_sound) play(start_sound) start_wait = start_length - addtimer(CALLBACK(src, .proc/sound_loop), start_wait) + addtimer(CALLBACK(src, PROC_REF(sound_loop)), start_wait) /datum/looping_sound/proc/on_stop() if(end_sound) diff --git a/code/datums/looping_sounds/sequence.dm b/code/datums/looping_sounds/sequence.dm index 650b3c8d5a0..b43229812eb 100644 --- a/code/datums/looping_sounds/sequence.dm +++ b/code/datums/looping_sounds/sequence.dm @@ -54,7 +54,7 @@ /datum/looping_sound/sequence/sound_loop(starttime) iterate_on_sequence() - timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), next_iteration_delay, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), next_iteration_delay, TIMER_STOPPABLE) #define MORSE_DOT "*" // Yes this is an asterisk but its easier to see on a computer compared to a period. #define MORSE_DASH "-" @@ -172,4 +172,4 @@ return spaces_between_letters #undef MORSE_DOT -#undef MORSE_DASH \ No newline at end of file +#undef MORSE_DASH diff --git a/code/datums/riding.dm b/code/datums/riding.dm index ec5afff5d5d..d92e19ba2dd 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -112,7 +112,7 @@ to_chat(user, "You'll need [key_name] in one of your hands to move \the [ridden].") /datum/riding/proc/Unbuckle(atom/movable/M) -// addtimer(CALLBACK(ridden, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) +// addtimer(CALLBACK(ridden, TYPE_PROC_REF(/atom/movable, unbuckle_mob), M), 0, TIMER_UNIQUE) spawn(0) // On /tg/ this uses the fancy CALLBACK system. Not entirely sure why they needed to do so with a duration of 0, // so if there is a reason, this should replicate it close enough. Hopefully. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e2993681208..9f865aced66 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -698,7 +698,7 @@ if(length(speech_bubble_hearers)) var/image/I = generate_speech_bubble(src, "[bubble_icon][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_hearers, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), I, speech_bubble_hearers, 30) /atom/proc/speech_bubble(bubble_state = "", bubble_loc = src, list/bubble_recipients = list()) return diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 58338edf220..74c4d3569ee 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -741,7 +741,7 @@ // Cooldown injector_ready = FALSE - addtimer(CALLBACK(src, .proc/injector_cooldown_finish), 30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(injector_cooldown_finish)), 30 SECONDS) // Create it var/datum/dna2/record/buf = buffers[buffer_id] @@ -798,4 +798,4 @@ #undef PAGE_BUFFER #undef PAGE_REJUVENATORS -/////////////////////////// DNA MACHINES \ No newline at end of file +/////////////////////////// DNA MACHINES diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 37400109142..c0d7cfd7a48 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -154,7 +154,7 @@ return /obj/effect/gateway/active/Initialize() - addtimer(CALLBACK(src, .proc/spawn_and_qdel), rand(30, 60) SECONDS) + addtimer(CALLBACK(src, PROC_REF(spawn_and_qdel)), rand(30, 60) SECONDS) /obj/effect/gateway/active/proc/spawn_and_qdel() if(LAZYLEN(spawnable)) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index f811abf9572..baa151eecb8 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -34,7 +34,7 @@ if(!B || !I) return - INVOKE_ASYNC(src, .proc/religion_prompts, H, B, I) + INVOKE_ASYNC(src, PROC_REF(religion_prompts), H, B, I) /datum/job/chaplain/proc/religion_prompts(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B, obj/item/weapon/card/id/I) var/religion_name = "Unitarianism" @@ -121,4 +121,4 @@ bible_name = bn bible_icon_state = bis bible_item_state = bits - title = t \ No newline at end of file + title = t diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 2cea520fd29..785a60a93cd 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -26,7 +26,7 @@ var/global/datum/controller/occupations/job_master if(!job) continue if(job.faction != faction) continue occupations += job - sortTim(occupations, /proc/cmp_job_datums) + sortTim(occupations, GLOBAL_PROC_REF(cmp_job_datums)) return 1 diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index bfe95bada70..c50080feb9f 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -48,13 +48,13 @@ "load" = scrubber.last_power_draw, "area" = get_area(scrubber), ))) - + return list("scrubbers" = working) /obj/machinery/computer/area_atmos/tgui_act(action, params) if(..()) return TRUE - + switch(action) if("toggle") var/scrub_id = params["id"] @@ -66,10 +66,10 @@ S.update_icon() . = TRUE if("allon") - INVOKE_ASYNC(src, .proc/toggle_all, TRUE) + INVOKE_ASYNC(src, PROC_REF(toggle_all), TRUE) . = TRUE if("alloff") - INVOKE_ASYNC(src, .proc/toggle_all, FALSE) + INVOKE_ASYNC(src, PROC_REF(toggle_all), FALSE) . = TRUE if("scan") scanscrubbers() @@ -78,7 +78,7 @@ add_fingerprint(usr) /obj/machinery/computer/area_atmos/proc/toggle_all(on) - for(var/id in connectedscrubbers) + for(var/id in connectedscrubbers) var/obj/machinery/portable_atmospherics/powered/scrubber/huge/S = connectedscrubbers["[id]"] if(!validscrubber(S)) connectedscrubbers -= S diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index cebc88566e7..236f6d68374 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -30,7 +30,7 @@ var/filtertext /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container, subtypesof(/datum/material), 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, .proc/AfterMaterialInsert)) + AddComponent(/datum/component/material_container, subtypesof(/datum/material), 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, PROC_REF(AfterMaterialInsert))) . = ..() if(!autolathe_recipes) autolathe_recipes = new() diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 227e36948cd..62a2a154a5d 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -142,7 +142,7 @@ . = TRUE switch(action) if("activate") - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) return TRUE if("detach") if(beaker) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 60e5727a7c5..7930231cbfa 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -348,7 +348,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) else return FALSE diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 2e315362cfa..fea0fa3950e 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -336,7 +336,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) if("photo_front") var/icon/photo = get_photo(usr) if(photo && active1) diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 26e45d7f409..876a2009d14 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -251,7 +251,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) else return FALSE diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 08ae8653dfa..1cee3a8eecc 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -273,7 +273,7 @@ force_open() if(autoclose && src.operating && !(stat & BROKEN || stat & NOPOWER)) - addtimer(CALLBACK(src, .proc/close, 15 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(close), 15 SECONDS)) return 1 // Proc: close() @@ -473,4 +473,4 @@ #undef BLAST_DOOR_CRUSH_DAMAGE -#undef SHUTTER_CRUSH_DAMAGE \ No newline at end of file +#undef SHUTTER_CRUSH_DAMAGE diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 617397f071b..a1b5b21e977 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -94,7 +94,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) @@ -118,7 +118,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(!door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 23b71bdb0f1..4f5adbb677e 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -10,7 +10,7 @@ /obj/machinery/door/airlock/multi_tile/Initialize(mapload) . = ..() SetBounds() - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/SetBounds) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(SetBounds)) apply_opacity_to_my_turfs(opacity) /obj/machinery/door/airlock/multi_tile/set_opacity() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 28afc5e9ff4..822e950d639 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -67,13 +67,13 @@ if(istype(bot)) if(density && src.check_access(bot.botcard)) open() - addtimer(CALLBACK(src, .proc/close), 50) + addtimer(CALLBACK(src, PROC_REF(close)), 50) else if(istype(AM, /obj/mecha)) var/obj/mecha/mecha = AM if(density) if(mecha.occupant && src.allowed(mecha.occupant)) open() - addtimer(CALLBACK(src, .proc/close), 50) + addtimer(CALLBACK(src, PROC_REF(close)), 50) return if (!( ticker )) return @@ -81,7 +81,7 @@ return if (density && allowed(AM)) open() - addtimer(CALLBACK(src, .proc/close), check_access(null)? 50 : 20) + addtimer(CALLBACK(src, PROC_REF(close)), check_access(null)? 50 : 20) /obj/machinery/door/window/CanPass(atom/movable/mover, turf/target) if(istype(mover) && mover.checkpass(PASSGLASS)) diff --git a/code/game/machinery/holoposter.dm b/code/game/machinery/holoposter.dm index 2e1d609ccc5..a5174380d2d 100644 --- a/code/game/machinery/holoposter.dm +++ b/code/game/machinery/holoposter.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(holoposters) . = ..() set_rand_sprite() GLOB.holoposters += src - mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) + mytimer = addtimer(CALLBACK(src, PROC_REF(set_rand_sprite)), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) /obj/machinery/holoposter/Destroy() GLOB.holoposters -= src @@ -92,7 +92,7 @@ GLOBAL_LIST_EMPTY(holoposters) stat &= ~BROKEN icon_forced = FALSE if(!mytimer) - mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) + mytimer = addtimer(CALLBACK(src, PROC_REF(set_rand_sprite)), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) set_rand_sprite() return icon_forced = TRUE @@ -114,4 +114,3 @@ GLOBAL_LIST_EMPTY(holoposters) /obj/machinery/holoposter/emp_act() stat |= BROKEN update_icon() - diff --git a/code/game/machinery/machinery_power.dm b/code/game/machinery/machinery_power.dm index be648d0f80c..0f4c2ef01b1 100644 --- a/code/game/machinery/machinery_power.dm +++ b/code/game/machinery/machinery_power.dm @@ -80,7 +80,7 @@ // Or in Destroy at all, but especially after the ..(). /obj/machinery/Destroy() if(ismovable(loc)) - GLOB.moved_event.unregister(loc, src, .proc/update_power_on_move) // Unregister just in case + GLOB.moved_event.unregister(loc, src, PROC_REF(update_power_on_move)) // Unregister just in case var/power = POWER_CONSUMPTION REPORT_POWER_CONSUMPTION_CHANGE(power, 0) . = ..() @@ -91,9 +91,9 @@ . = ..() update_power_on_move(src, old_loc, loc) if(ismovable(loc)) // Register for recursive movement (if the thing we're inside moves) - GLOB.moved_event.register(loc, src, .proc/update_power_on_move) + GLOB.moved_event.register(loc, src, PROC_REF(update_power_on_move)) if(ismovable(old_loc)) // Unregister recursive movement. - GLOB.moved_event.unregister(old_loc, src, .proc/update_power_on_move) + GLOB.moved_event.unregister(old_loc, src, PROC_REF(update_power_on_move)) /obj/machinery/proc/update_power_on_move(atom/movable/mover, atom/old_loc, atom/new_loc) var/area/old_area = get_area(old_loc) diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm index 1996139db29..d61e0dbe721 100644 --- a/code/game/machinery/pointdefense.dm +++ b/code/game/machinery/pointdefense.dm @@ -244,7 +244,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) var/Angle = round(Get_Angle(src,M)) var/matrix/rot_matrix = matrix() rot_matrix.Turn(Angle) - addtimer(CALLBACK(src, .proc/finish_shot, target), rotation_speed) + addtimer(CALLBACK(src, PROC_REF(finish_shot), target), rotation_speed) animate(src, transform = rot_matrix, rotation_speed, easing = SINE_EASING) set_dir(ATAN2(transform.b, transform.a) > 0 ? NORTH : SOUTH) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 1dd50dc0bfe..595e44a2cdf 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -566,7 +566,7 @@ "View Stats" = radial_image_statpanel ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_occupant_radial, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_occupant_radial), user), require_near = TRUE, tooltips = TRUE) if(!check_occupant_radial(user)) return if(!choice) diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm index 5dad8accc43..b57145c801c 100644 --- a/code/game/objects/effects/chem/foam.dm +++ b/code/game/objects/effects/chem/foam.dm @@ -23,9 +23,9 @@ metal = ismetal playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) if(dries) //VOREStation Add - addtimer(CALLBACK(src, .proc/post_spread), 3 + metal * 3) - addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS) - addtimer(CALLBACK(src, .proc/harden), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_spread)), 3 + metal * 3) + addtimer(CALLBACK(src, PROC_REF(pre_harden)), 12 SECONDS) + addtimer(CALLBACK(src, PROC_REF(harden)), 15 SECONDS) /obj/effect/effect/foam/proc/post_spread() process() diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 6f96ec16894..73669120381 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -49,7 +49,7 @@ var/global/list/image/splatter_cache=list() if (B.blood_DNA) blood_DNA |= B.blood_DNA.Copy() qdel(B) - addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1)) + addtimer(CALLBACK(src, PROC_REF(dry)), DRYING_TIME * (amount+1)) /obj/effect/decal/cleanable/blood/update_icon() if(basecolor == "rainbow") basecolor = get_random_colour(1) diff --git a/code/game/objects/effects/map_effects/beam_point.dm b/code/game/objects/effects/map_effects/beam_point.dm index c10e8b0315c..6a023a0470f 100644 --- a/code/game/objects/effects/map_effects/beam_point.dm +++ b/code/game/objects/effects/map_effects/beam_point.dm @@ -36,7 +36,7 @@ GLOBAL_LIST_EMPTY(all_beam_points) if(make_beams_on_init) create_beams() if(use_timer) - addtimer(CALLBACK(src, .proc/handle_beam_timer), initial_delay) + addtimer(CALLBACK(src, PROC_REF(handle_beam_timer)), initial_delay) return ..() /obj/effect/map_effect/beam_point/Destroy() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 573e498aa4a..8c0309563a6 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -728,7 +728,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. H.toggle_zoom_hud() // If the user has already limited their HUD this avoids them having a HUD when they zoom in H.set_viewsize(viewsize) zoom = 1 - GLOB.moved_event.register(H, src, .proc/zoom) + GLOB.moved_event.register(H, src, PROC_REF(zoom)) var/tilesize = 32 var/viewoffset = tilesize * tileoffset @@ -757,7 +757,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. if(!H.hud_used.hud_shown) H.toggle_zoom_hud() zoom = 0 - GLOB.moved_event.unregister(H, src, .proc/zoom) + GLOB.moved_event.unregister(H, src, PROC_REF(zoom)) H.client.pixel_x = 0 H.client.pixel_y = 0 @@ -938,7 +938,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. . = ..() if(usr.is_preference_enabled(/datum/client_preference/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at var/user = usr - tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), 5, TIMER_STOPPABLE) + tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), 5, TIMER_STOPPABLE) /obj/item/MouseExited() . = ..() diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index e1a295dfc4e..ac73bf97c8a 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -71,7 +71,7 @@ if("wipe") msg_admin_attack("[key_name_admin(user)] wiped [key_name_admin(AI)] with \the [src].") add_attack_logs(user,carded_ai,"Purged from AI Card") - INVOKE_ASYNC(src, .proc/wipe_ai) + INVOKE_ASYNC(src, PROC_REF(wipe_ai)) if("radio") carded_ai.aiRadio.disabledAi = !carded_ai.aiRadio.disabledAi to_chat(carded_ai, "Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!") @@ -83,7 +83,7 @@ if(carded_ai.control_disabled && carded_ai.deployed_shell) carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.") update_icon() - + return TRUE /obj/item/device/aicard/update_icon() @@ -182,4 +182,4 @@ AI.adjustOxyLoss(2) AI.updatehealth() sleep(10) - flush = FALSE \ No newline at end of file + flush = FALSE diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm index a92c2725c08..7eafc0fe052 100644 --- a/code/game/objects/items/devices/communicator/communicator.dm +++ b/code/game/objects/items/devices/communicator/communicator.dm @@ -106,7 +106,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() setup_tgui_camera() //This is a pretty terrible way of doing this. - addtimer(CALLBACK(src, .proc/register_to_holder), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(register_to_holder)), 5 SECONDS) // Proc: register_to_holder() // Parameters: None @@ -376,4 +376,3 @@ var/global/list/obj/item/device/communicator/all_communicators = list() return icon_state = initial(icon_state) - diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm index 671598a6ef8..eafd3105e0b 100644 --- a/code/game/objects/items/devices/communicator/phone.dm +++ b/code/game/objects/items/devices/communicator/phone.dm @@ -349,14 +349,14 @@ video_source = comm.camera comm.visible_message("\icon[src][bicon(src)] New video connection from [comm].") update_active_camera_screen() - GLOB.moved_event.register(video_source, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(video_source, src, PROC_REF(update_active_camera_screen)) update_icon() // Proc: end_video() // Parameters: reason - the text reason to print for why it ended // Description: Ends the video call by clearing video_source /obj/item/device/communicator/proc/end_video(var/reason) - GLOB.moved_event.unregister(video_source, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(video_source, src, PROC_REF(update_active_camera_screen)) show_static() video_source = null @@ -364,4 +364,3 @@ visible_message(.) update_icon() - diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm index 4a6160b2424..613818440f4 100644 --- a/code/game/objects/items/devices/denecrotizer_vr.dm +++ b/code/game/objects/items/devices/denecrotizer_vr.dm @@ -49,7 +49,7 @@ if(!evaluate_ghost_join(user)) return ..() - tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, .proc/reply_ghost_join), 20 SECONDS) + tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, PROC_REF(reply_ghost_join)), 20 SECONDS) /// A reply to an async alert request was received /mob/living/simple_mob/proc/reply_ghost_join(response) @@ -64,7 +64,7 @@ /mob/living/simple_mob/proc/ghost_join(mob/observer/dead/D) log_and_message_admins("[key_name_admin(D)] joined [src] as a ghost [ADMIN_FLW(src)]") active_ghost_pods -= src - + // Move the ghost in if(D.mind) D.mind.active = TRUE @@ -72,7 +72,7 @@ else src.ckey = D.ckey qdel(D) - + // Clean up the simplemob ghostjoin = FALSE ghostjoin_icon() @@ -91,14 +91,14 @@ return FALSE // At this point we can at least send them messages as to why they can't join, since they are a mob with a client - if(!ghostjoin) + if(!ghostjoin) to_chat(D, "Sorry, [src] is no longer ghost-joinable.") return FALSE if(ckey) to_chat(D, "Sorry, someone else has already inhabited [src].") return FALSE - + if(capture_caught && !D.client.prefs.capture_crystal) to_chat(D, "Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.") return FALSE @@ -128,7 +128,7 @@ else . += "The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses." -/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user) +/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user) if(!target.Adjacent(user)) return FALSE if(user.a_intent != I_HELP) //be gentle @@ -150,10 +150,10 @@ if(!advanced) to_chat(user, "[src] doesn't seem to work on that.") return FALSE - if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS + if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS to_chat(user, "[src] doesn't seem to work on that.") return FALSE - if(!target.mind) + if(!target.mind) user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]") if(do_after(user, revive_time, exclusive = TASK_USER_EXCLUSIVE, target = target)) target.faction = user.faction @@ -197,7 +197,7 @@ icon_state = "[initial(icon_state)]-o" update_icon() return - + /obj/item/device/denecrotizer/proc/basic_rez(mob/living/simple_mob/target, mob/living/user) //so medical can have a way to bring back people's pets or whatever, does not change any settings about the mob or offer it to ghosts. user.visible_message("[user] presses [src] to [target]...", runemessage = "presses [src] to [target]") if(do_after(user, revive_time, exclusive = TASK_ALL_EXCLUSIVE, target = target)) @@ -235,9 +235,9 @@ I.invisibility = INVISIBILITY_OBSERVER I.plane = PLANE_GHOSTS I.appearance_flags = KEEP_APART|RESET_TRANSFORM - + cut_overlay(I) - + if(ghostjoin) add_overlay(I) @@ -247,4 +247,4 @@ icon_state = "m-denecrotizer" advanced = 0 //This one isn't as fancy cooldown = 5 MINUTES //not as long - charges = 20 //in case spiders merc Ian \ No newline at end of file + charges = 20 //in case spiders merc Ian diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 980685f1241..1861694fae9 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -45,8 +45,8 @@ var/list/GPS_list = list() if(istype(loc, /mob)) holder = loc - GLOB.moved_event.register(holder, src, .proc/update_compass) - GLOB.dir_set_event.register(holder, src, .proc/update_compass) + GLOB.moved_event.register(holder, src, PROC_REF(update_compass)) + GLOB.dir_set_event.register(holder, src, PROC_REF(update_compass)) if(holder && tracking) if(!is_in_processing_list) diff --git a/code/game/objects/items/devices/translocator_vr.dm b/code/game/objects/items/devices/translocator_vr.dm index 3a0fb80bd0b..57630d9c88f 100644 --- a/code/game/objects/items/devices/translocator_vr.dm +++ b/code/game/objects/items/devices/translocator_vr.dm @@ -125,7 +125,7 @@ This device can be easily used to break ERP preferences due to the nature of tel Make sure you carefully examine someone's OOC prefs before teleporting them if you are going to use this device for ERP purposes. This device records all warnings given and teleport events for admin review in case of pref-breaking, so just don't do it. "},"OOC Warning") - var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!choice) return diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm index ef5ae25fa71..268131fb7de 100644 --- a/code/game/objects/items/devices/uplink.dm +++ b/code/game/objects/items/devices/uplink.dm @@ -25,7 +25,7 @@ /obj/item/device/uplink/Initialize(var/mapload) . = ..() - addtimer(CALLBACK(src, .proc/next_offer), offer_time) //It seems like only the /hidden type actually makes use of this... + addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time) //It seems like only the /hidden type actually makes use of this... /obj/item/device/uplink/get_item_cost(var/item_type, var/item_cost) return (discount_item && (item_type == discount_item)) ? max(1, round(item_cost*discount_amount)) : item_cost @@ -63,7 +63,7 @@ discount_amount = pick(90;0.9, 80;0.8, 70;0.7, 60;0.6, 50;0.5, 40;0.4, 30;0.3, 20;0.2, 10;0.1) next_offer_time = world.time + offer_time SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/next_offer), offer_time) + addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time) // Toggles the uplink on and off. Normally this will bypass the item's normal functions and go to the uplink menu, if activated. /obj/item/device/uplink/hidden/proc/toggle() diff --git a/code/game/objects/items/toys/mech_toys.dm b/code/game/objects/items/toys/mech_toys.dm index 3fdb9c66598..d2d88f4a793 100644 --- a/code/game/objects/items/toys/mech_toys.dm +++ b/code/game/objects/items/toys/mech_toys.dm @@ -170,7 +170,7 @@ to_chat(user, "You offer battle to [target.name]!") to_chat(target, "[user.name] wants to battle with [T.His] [name]! Attack them with a toy mech to initiate combat.") wants_to_battle = TRUE - addtimer(CALLBACK(src, .proc/withdraw_offer, user), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(withdraw_offer), user), 6 SECONDS) return ..() @@ -602,4 +602,4 @@ #undef SPECIAL_ATTACK_DAMAGE #undef SPECIAL_ATTACK_UTILITY #undef SPECIAL_ATTACK_OTHER -#undef MAX_BATTLE_LENGTH \ No newline at end of file +#undef MAX_BATTLE_LENGTH diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index cb879b71398..f999c701450 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -174,7 +174,7 @@ playsound(user, 'sound/voice/shriek1.ogg', 10, 0) src.visible_message("Skreee!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/vox/proc/cooldownreset() @@ -224,7 +224,7 @@ playsound(user, 'sound/machines/ping.ogg', 10, 0) src.visible_message("Ping!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/ipc/proc/cooldownreset() @@ -241,7 +241,7 @@ playsound(user, 'sound/machines/ding.ogg', 10, 0) src.visible_message("Ding!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/snakeplushie @@ -274,14 +274,14 @@ atom_say(pick(responses)) playsound(user, 'sound/effects/whistle.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/marketable_pip/attack_self(mob/user as mob) if(!cooldown) playsound(user, 'sound/effects/whistle.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/marketable_pip/proc/cooldownreset() @@ -299,7 +299,7 @@ playsound(user, 'sound/voice/moth/scream_moth.ogg', 10, 0) src.visible_message("Aaaaaaa.") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/moth/proc/cooldownreset() @@ -344,7 +344,7 @@ playsound(user, 'sound/weapons/slice.ogg', 10, 0) src.visible_message("Stab!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/susblue @@ -470,7 +470,7 @@ flick("[initial(icon_state)]2", src) user.visible_message("[user] doesn't blind [M] with the toy flash!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/flash/proc/cooldownreset() @@ -539,7 +539,7 @@ user.visible_message("[user] asks the AI core to state laws.") user.visible_message("[src] says \"[answer]\"") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/AI/proc/cooldownreset() @@ -819,7 +819,7 @@ if(!cooldown) playsound(user, 'sound/weapons/chainsaw_startup.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/chainsaw/proc/cooldownreset() diff --git a/code/game/objects/items/weapons/RCD_vr.dm b/code/game/objects/items/weapons/RCD_vr.dm index d120e593f4f..48f380f1ae1 100644 --- a/code/game/objects/items/weapons/RCD_vr.dm +++ b/code/game/objects/items/weapons/RCD_vr.dm @@ -36,20 +36,20 @@ /obj/item/weapon/rcd/update_icon() var/nearest_ten = round((stored_matter/max_stored_matter)*10, 1) - + //Just to prevent updates every use if(ammostate == nearest_ten) return //No change ammostate = nearest_ten - + cut_overlays() - + //Main sprite update if(!nearest_ten) icon_state = "[initial(icon_state)]_empty" else icon_state = "[initial(icon_state)]" - + add_overlay("[initial(icon_state)]_charge[nearest_ten]") /obj/item/weapon/rcd/proc/perform_effect(var/atom/A, var/time_taken) @@ -98,12 +98,12 @@ if(user.incapacitated()) world.log << "Two" return FALSE - + var/obj/item/rig_module/device/D = loc if(!istype(D) || !D?.holder?.wearer == user) world.log << "Three" return FALSE - + return TRUE /obj/item/weapon/rcd/attack_self(mob/living/user) @@ -134,7 +134,7 @@ "Change Window Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "windowtype") ) */ - var/choice = show_radial_menu(user, user, choices, custom_check = CALLBACK(src, .proc/check_menu, user), tooltips = TRUE) + var/choice = show_radial_menu(user, user, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), tooltips = TRUE) if(!check_menu(user)) return switch(choice) @@ -206,7 +206,7 @@ status = rcd_status delay = rcd_delay if (status == RCD_DECONSTRUCT) - addtimer(CALLBACK(src, /atom/.proc/update_icon), 11) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 11) delay -= 11 icon_state = "rcd_end_reverse" else @@ -228,7 +228,7 @@ qdel(src) else icon_state = "rcd_end" - addtimer(CALLBACK(src, .proc/end), 15) + addtimer(CALLBACK(src, PROC_REF(end)), 15) /obj/effect/constructing_effect/proc/end() qdel(src) diff --git a/code/game/objects/items/weapons/RMS_vr.dm b/code/game/objects/items/weapons/RMS_vr.dm index b0a72144d47..69c5f61e64b 100644 --- a/code/game/objects/items/weapons/RMS_vr.dm +++ b/code/game/objects/items/weapons/RMS_vr.dm @@ -219,7 +219,7 @@ "Random" = radial_image_random ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(choice) diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 36447ce9cc3..da3e3673456 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -249,8 +249,8 @@ //Make it so the crystal knows if its mob references get deleted to make sure things get cleaned up /obj/item/capture_crystal/proc/knowyoursignals(mob/living/M, mob/living/U) - RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/mob_was_deleted, TRUE) - RegisterSignal(U, COMSIG_PARENT_QDELETING, .proc/owner_was_deleted, TRUE) + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(mob_was_deleted), TRUE) + RegisterSignal(U, COMSIG_PARENT_QDELETING, PROC_REF(owner_was_deleted), TRUE) //The basic capture command does most of the registration work. /obj/item/capture_crystal/proc/capture(mob/living/M, mob/living/U) @@ -856,4 +856,4 @@ /mob/living var/capture_crystal = TRUE //If TRUE, the mob is capturable. Otherwise it isn't. - var/capture_caught = FALSE //If TRUE, the mob has already been caught, and so cannot be caught again. \ No newline at end of file + var/capture_caught = FALSE //If TRUE, the mob has already been caught, and so cannot be caught again. diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index 20fe500575d..6352f4ff9e4 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -50,7 +50,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( var/image/bible_image = image(icon = 'icons/obj/storage.dmi', icon_state = GLOB.biblestates[i]) skins += list("[GLOB.biblenames[i]]" = bible_image) - var/choice = show_radial_menu(user, src, skins, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 40, require_near = TRUE) + var/choice = show_radial_menu(user, src, skins, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 40, require_near = TRUE) if(!choice) return FALSE var/bible_index = GLOB.biblenames.Find(choice) @@ -112,4 +112,4 @@ GLOBAL_LIST_INIT(bibleitemstates, list( /obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob) if (src.use_sound) playsound(src, src.use_sound, 50, 1, -5) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/structures/crates_lockers/__closets.dm b/code/game/objects/structures/crates_lockers/__closets.dm index cf196ddf0a0..05661ccedb0 100644 --- a/code/game/objects/structures/crates_lockers/__closets.dm +++ b/code/game/objects/structures/crates_lockers/__closets.dm @@ -526,7 +526,7 @@ animate(door_obj, transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag, flags = ANIMATION_END_NOW) else animate(transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag) - addtimer(CALLBACK(src, .proc/end_door_animation,closing), closet_appearance.door_anim_time, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(end_door_animation), closing), closet_appearance.door_anim_time, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/structure/closet/proc/end_door_animation(closing = FALSE) is_animating_door = FALSE diff --git a/code/game/objects/structures/ghost_pods/ghost_pods.dm b/code/game/objects/structures/ghost_pods/ghost_pods.dm index 6c856ceb7f2..5a5ed5db2f7 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods.dm @@ -73,13 +73,13 @@ /obj/structure/ghost_pod/automatic/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/trigger), delay_to_self_open) + addtimer(CALLBACK(src, PROC_REF(trigger)), delay_to_self_open) /obj/structure/ghost_pod/automatic/trigger() . = ..() if(. == FALSE) // If we failed to get a volunteer, try again later if allowed to. if(delay_to_try_again) - addtimer(CALLBACK(src, .proc/trigger), delay_to_try_again) + addtimer(CALLBACK(src, PROC_REF(trigger)), delay_to_try_again) // This type is triggered by a ghost clicking on it, as opposed to a living player. A ghost query type isn't needed. /obj/structure/ghost_pod/ghost_activated diff --git a/code/game/socket_talk.dm b/code/game/socket_talk.dm index 8484b636b8d..6cad496937c 100644 --- a/code/game/socket_talk.dm +++ b/code/game/socket_talk.dm @@ -8,15 +8,15 @@ src.enabled = config.socket_talk if(enabled) - call("DLLSocket.so","establish_connection")("127.0.0.1","8019") + LIBCALL("DLLSocket.so","establish_connection")("127.0.0.1","8019") proc send_raw(message) if(enabled) - return call("DLLSocket.so","send_message")(message) + return LIBCALL("DLLSocket.so","send_message")(message) receive_raw() if(enabled) - return call("DLLSocket.so","recv_message")() + return LIBCALL("DLLSocket.so","recv_message")() send_log(var/log, var/message) return send_raw("type=log&log=[log]&message=[message]") send_keepalive() diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index baba14563cf..fe64b973460 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -445,7 +445,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null ENABLE_BITFIELD(options, SDQL2_OPTION_DO_NOT_AUTOGC) /datum/SDQL2_query/proc/ARun() - INVOKE_ASYNC(src, .proc/Run) + INVOKE_ASYNC(src, PROC_REF(Run)) /datum/SDQL2_query/proc/Run() if(SDQL2_IS_RUNNING) diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm index 8a101decd7a..f12a337a10c 100644 --- a/code/modules/ai/ai_holder.dm +++ b/code/modules/ai/ai_holder.dm @@ -210,7 +210,7 @@ holder = new_holder home_turf = get_turf(holder) manage_processing(AI_PROCESSING) - GLOB.stat_set_event.register(holder, src, .proc/holder_stat_change) + GLOB.stat_set_event.register(holder, src, PROC_REF(holder_stat_change)) ..() /datum/ai_holder/Destroy() @@ -516,4 +516,4 @@ #undef AI_NO_PROCESS #undef AI_PROCESSING -#undef AI_FASTPROCESSING \ No newline at end of file +#undef AI_FASTPROCESSING diff --git a/code/modules/artifice/telecube.dm b/code/modules/artifice/telecube.dm index 2b304560942..bca000870fe 100644 --- a/code/modules/artifice/telecube.dm +++ b/code/modules/artifice/telecube.dm @@ -193,10 +193,10 @@ /obj/item/weapon/telecube/proc/cooldown(var/mate_too = FALSE) if(!ready) return - + ready = FALSE update_icon() - addtimer(CALLBACK(src, .proc/ready), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(ready)), cooldown_time) if(mate_too && mate) mate.cooldown(mate_too = FALSE) //No infinite recursion pls diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 60eee032656..a7267ca3428 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -50,7 +50,7 @@ switch(action) if("signal") - INVOKE_ASYNC(src, .proc/signal) + INVOKE_ASYNC(src, PROC_REF(signal)) . = TRUE if("freq") frequency = unformat_frequency(params["freq"]) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 99d56623b3c..8c624ff3691 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -448,7 +448,7 @@ src << browse('code/modules/asset_cache/validate_assets.html', "window=asset_cache_browser") //Precache the client with all other assets slowly, so as to not block other browse() calls - addtimer(CALLBACK(GLOBAL_PROC, /proc/getFilesSlow, src, SSassets.preload, FALSE), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(getFilesSlow), src, SSassets.preload, FALSE), 5 SECONDS) /mob/proc/MayRespawn() return 0 diff --git a/code/modules/client/preference_setup/loadout/loadout_mask.dm b/code/modules/client/preference_setup/loadout/loadout_mask.dm index 79cced4864a..3531cfff729 100644 --- a/code/modules/client/preference_setup/loadout/loadout_mask.dm +++ b/code/modules/client/preference_setup/loadout/loadout_mask.dm @@ -68,11 +68,11 @@ for(var/gaiter in typesof(/obj/item/clothing/accessory/gaiter)) var/obj/item/clothing/accessory/gaiter_type = gaiter gaiters[initial(gaiter_type.name)] = gaiter_type - gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, /proc/cmp_text_asc)) + gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, GLOBAL_PROC_REF(cmp_text_asc))) /datum/gear/mask/lace display_name = "lace veil" path = /obj/item/clothing/mask/lacemask /datum/gear/mask/lace/New() - gear_tweaks += gear_tweak_free_color_choice \ No newline at end of file + gear_tweaks += gear_tweak_free_color_choice diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm index b9cb44faea0..4aaff663542 100644 --- a/code/modules/clothing/under/accessories/accessory_vr.dm +++ b/code/modules/clothing/under/accessories/accessory_vr.dm @@ -127,7 +127,7 @@ usr.audible_message("[usr] jingles the [src]'s bell.", runemessage = "jingle") playsound(src, 'sound/items/pickup/ring.ogg', 50, 1) jingled = 1 - addtimer(CALLBACK(src, .proc/jingledreset), 50) + addtimer(CALLBACK(src, PROC_REF(jingledreset)), 50) return /obj/item/clothing/accessory/collar/bell/proc/jingledreset() @@ -721,4 +721,4 @@ name = "drab crop jacket" desc = "A cut down jacket that looks like it's light enough to wear on top of some other clothes. This one's a sort of olive-drab kind of colour." icon_state = "cropjacket_drab" - item_state = "cropjacket_drab" \ No newline at end of file + item_state = "cropjacket_drab" diff --git a/code/modules/economy/vending.dm b/code/modules/economy/vending.dm index 929023ce86d..e17d5c951f7 100644 --- a/code/modules/economy/vending.dm +++ b/code/modules/economy/vending.dm @@ -619,7 +619,7 @@ GLOBAL_LIST_EMPTY(vending_products) use_power(vend_power_usage) //actuators and stuff flick("[icon_state]-vend",src) - addtimer(CALLBACK(src, .proc/delayed_vend, R, user), vend_delay) + addtimer(CALLBACK(src, PROC_REF(delayed_vend), R, user), vend_delay) /obj/machinery/vending/proc/delayed_vend(datum/stored_item/vending_product/R, mob/user) R.get_product(get_turf(src)) @@ -777,7 +777,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(!throw_item) return FALSE throw_item.vendor_action(src) - INVOKE_ASYNC(throw_item, /atom/movable.proc/throw_at, target, rand(3, 10), rand(1, 3), src) + INVOKE_ASYNC(throw_item, TYPE_PROC_REF(/atom/movable, throw_at), target, rand(3, 10), rand(1, 3), src) visible_message("\The [src] launches \a [throw_item] at \the [target]!") return 1 diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 7f991b44fc2..5f7640b3216 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -69,7 +69,7 @@ // Spawn a single carp at given location. /datum/event/carp_migration/proc/spawn_one_carp(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/carp/event(loc) - GLOB.destroyed_event.register(M, src, .proc/on_carp_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_carp_destruction)) spawned_carp.Add(M) return M @@ -83,7 +83,7 @@ // If carp is bomphed, remove it from the list. /datum/event/carp_migration/proc/on_carp_destruction(var/mob/M) spawned_carp -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_carp_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_carp_destruction)) /datum/event/carp_migration/end() . = ..() diff --git a/code/modules/events/gnat_migration.dm b/code/modules/events/gnat_migration.dm index e807f85b3c6..8d0428eab8e 100644 --- a/code/modules/events/gnat_migration.dm +++ b/code/modules/events/gnat_migration.dm @@ -69,7 +69,7 @@ // Spawn a single gnat at given location. /datum/event/gnat_migration/proc/spawn_one_gnat(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/gnat(loc) - GLOB.destroyed_event.register(M, src, .proc/on_gnat_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_gnat_destruction)) spawned_gnat.Add(M) return M @@ -83,7 +83,7 @@ // If gnat is bomphed, remove it from the list. /datum/event/gnat_migration/proc/on_gnat_destruction(var/mob/M) spawned_gnat -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_gnat_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_gnat_destruction)) /datum/event/gnat_migration/end() . = ..() diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index d0d221d5fd1..17fcdec8d67 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -53,7 +53,7 @@ // Spawn a single vermin at given location. /datum/event/infestation/proc/spawn_one_vermin(var/loc) var/mob/living/simple_mob/animal/M = new spawn_types(loc) - GLOB.destroyed_event.register(M, src, .proc/on_vermin_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_vermin_destruction)) spawned_vermin.Add(M) return M @@ -67,7 +67,7 @@ // If vermin is kill, remove it from the list. /datum/event/infestation/proc/on_vermin_destruction(var/mob/M) spawned_vermin -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_vermin_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_vermin_destruction)) @@ -75,4 +75,4 @@ command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding all over the facility. Clear them out, before this starts to affect productivity.", "Vermin infestation") #undef VERM_MICE -#undef VERM_LIZARDS \ No newline at end of file +#undef VERM_LIZARDS diff --git a/code/modules/events/jellyfish_migration.dm b/code/modules/events/jellyfish_migration.dm index 7498539ae14..0a0f6394517 100644 --- a/code/modules/events/jellyfish_migration.dm +++ b/code/modules/events/jellyfish_migration.dm @@ -69,7 +69,7 @@ // Spawn a single jellyfish at given location. /datum/event/jellyfish_migration/proc/spawn_one_jellyfish(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc) - GLOB.destroyed_event.register(M, src, .proc/on_jellyfish_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_jellyfish_destruction)) spawned_jellyfish.Add(M) return M @@ -83,7 +83,7 @@ // If jellyfish is bomphed, remove it from the list. /datum/event/jellyfish_migration/proc/on_jellyfish_destruction(var/mob/M) spawned_jellyfish -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_jellyfish_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_jellyfish_destruction)) /datum/event/jellyfish_migration/end() . = ..() diff --git a/code/modules/events/ray_migration.dm b/code/modules/events/ray_migration.dm index 3df3971a814..559f77169bb 100644 --- a/code/modules/events/ray_migration.dm +++ b/code/modules/events/ray_migration.dm @@ -69,7 +69,7 @@ // Spawn a single ray at given location. /datum/event/ray_migration/proc/spawn_one_ray(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/ray(loc) - GLOB.destroyed_event.register(M, src, .proc/on_ray_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_ray_destruction)) spawned_ray.Add(M) return M @@ -83,7 +83,7 @@ // If ray is bomphed, remove it from the list. /datum/event/ray_migration/proc/on_ray_destruction(var/mob/M) spawned_ray -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_ray_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_ray_destruction)) /datum/event/ray_migration/end() . = ..() diff --git a/code/modules/events/shark_migration.dm b/code/modules/events/shark_migration.dm index 7baed0af9c1..dc3d0d94383 100644 --- a/code/modules/events/shark_migration.dm +++ b/code/modules/events/shark_migration.dm @@ -69,7 +69,7 @@ // Spawn a single shark at given location. /datum/event/shark_migration/proc/spawn_one_shark(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/shark/event(loc) - GLOB.destroyed_event.register(M, src, .proc/on_shark_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_shark_destruction)) spawned_shark.Add(M) return M @@ -83,7 +83,7 @@ // If shark is bomphed, remove it from the list. /datum/event/shark_migration/proc/on_shark_destruction(var/mob/M) spawned_shark -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_shark_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_shark_destruction)) /datum/event/shark_migration/end() . = ..() diff --git a/code/modules/ext_scripts/irc.dm b/code/modules/ext_scripts/irc.dm index a554cdd20a9..5cfeae553cc 100644 --- a/code/modules/ext_scripts/irc.dm +++ b/code/modules/ext_scripts/irc.dm @@ -18,7 +18,7 @@ nudge_lib = "lib/nudge.so" spawn(0) - call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[escape_shell_arg(msg)]") + LIBCALL(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[escape_shell_arg(msg)]") else spawn(0) ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [escape_shell_arg(msg)]") @@ -39,4 +39,3 @@ /hook/startup/proc/ircNotify() send2mainirc("Server starting up on byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]") return 1 - diff --git a/code/modules/food/kitchen/smartfridge/smartfridge.dm b/code/modules/food/kitchen/smartfridge/smartfridge.dm index c683bf9a603..1a10b3c219b 100644 --- a/code/modules/food/kitchen/smartfridge/smartfridge.dm +++ b/code/modules/food/kitchen/smartfridge/smartfridge.dm @@ -119,7 +119,7 @@ user.remove_from_mob(O) stock(O) user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") - sortTim(item_records, /proc/cmp_stored_item_name) + sortTim(item_records, GLOBAL_PROC_REF(cmp_stored_item_name)) else if(istype(O, /obj/item/weapon/storage/bag)) var/obj/item/weapon/storage/bag/P = O diff --git a/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm b/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm index 54548a88dda..c3cd5d0b243 100644 --- a/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm +++ b/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm @@ -70,7 +70,7 @@ for(var/obj/machinery/door/airlock/door in area.contents) if(can_break_door(door)) - addtimer(CALLBACK(src, .proc/break_door, door), 1) // Emagging proc is actually a blocking proc and that's bad for the ticker. + addtimer(CALLBACK(src, PROC_REF(break_door), door), 1) // Emagging proc is actually a blocking proc and that's bad for the ticker. door.visible_message(span("danger", "\The [door]'s panel sparks!")) playsound(door, "sparks", 50, 1) log_debug("Airlock Failure event has broken \the [door] airlock in [area].") diff --git a/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm b/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm index ebd137b404f..c81968c23e8 100644 --- a/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm +++ b/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm @@ -38,7 +38,7 @@ Please allow for up to one minute while radiation levels dissipate, and report to \ medbay if you experience any unusual symptoms. Maintenance will lose all \ access again shortly.", "Anomaly Alert") - addtimer(CALLBACK(src, .proc/maint_callback), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(maint_callback)), 2 MINUTES) /datum/event2/event/radiation_storm/proc/maint_callback() revoke_maint_all_access() diff --git a/code/modules/gamemaster/event2/events/mob_spawning.dm b/code/modules/gamemaster/event2/events/mob_spawning.dm index 4f3bcffa027..35321cd2f06 100644 --- a/code/modules/gamemaster/event2/events/mob_spawning.dm +++ b/code/modules/gamemaster/event2/events/mob_spawning.dm @@ -80,7 +80,7 @@ /datum/event2/event/mob_spawning/proc/spawn_one_mob(new_loc, mob_type) var/mob/living/simple_mob/M = new mob_type(new_loc) - GLOB.destroyed_event.register(M, src, .proc/on_mob_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_mob_destruction)) spawned_mobs += M return M @@ -94,4 +94,4 @@ // If simple_mob is bomphed, remove it from the list. /datum/event2/event/mob_spawning/proc/on_mob_destruction(mob/M) spawned_mobs -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_mob_destruction) \ No newline at end of file + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_mob_destruction)) diff --git a/code/modules/gamemaster/event2/events/security/prison_break.dm b/code/modules/gamemaster/event2/events/security/prison_break.dm index 4684f0ae177..80f6ad2f9a7 100644 --- a/code/modules/gamemaster/event2/events/security/prison_break.dm +++ b/code/modules/gamemaster/event2/events/security/prison_break.dm @@ -205,7 +205,7 @@ Disabling the main breaker in the APCs will protect the APC's room from being compromised.")) var/time_to_flicker = start_delay - 10 SECONDS - addtimer(CALLBACK(src, .proc/flicker_area), time_to_flicker) + addtimer(CALLBACK(src, PROC_REF(flicker_area)), time_to_flicker) /datum/event2/event/prison_break/proc/flicker_area() diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm index a37d7a2dd9c..cf37e25c9b0 100644 --- a/code/modules/instruments/instrument_data/_instrument_data.dm +++ b/code/modules/instruments/instrument_data/_instrument_data.dm @@ -88,7 +88,7 @@ samples = list() for(var/key in real_samples) real_keys += text2num(key) - sortTim(real_keys, /proc/cmp_numeric_asc, associative = FALSE) + sortTim(real_keys, GLOBAL_PROC_REF(cmp_numeric_asc), associative = FALSE) for(var/i in 1 to (length(real_keys) - 1)) var/from_key = real_keys[i] diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index def8741909e..4d6725f8f1c 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -81,8 +81,8 @@ /obj/item/instrument/piano_synth/headphones/Initialize() . = ..() - RegisterSignal(src, COMSIG_SONG_START, .proc/start_playing) - RegisterSignal(src, COMSIG_SONG_END, .proc/stop_playing) + RegisterSignal(src, COMSIG_SONG_START, PROC_REF(start_playing)) + RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) /** * Called by a component signal when our song starts playing. @@ -252,7 +252,7 @@ /obj/item/instrument/harmonica/equipped(mob/M, slot) . = ..() - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /obj/item/instrument/harmonica/dropped(mob/M) . = ..() diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index d63ae107cd7..c4941cec136 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -160,7 +160,7 @@ tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) else if(href_list["play"]) - INVOKE_ASYNC(src, .proc/start_playing, usr) + INVOKE_ASYNC(src, PROC_REF(start_playing), usr) else if(href_list["newline"]) var/newline = html_encode(tgui_input_text(usr, "Enter your line: ", parent.name)) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index a83924a5d4a..13bb7675799 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -359,7 +359,7 @@ . = ..() set_pin_data(IC_INPUT, 1, frequency) set_pin_data(IC_INPUT, 2, code) - addtimer(CALLBACK(src, .proc/set_frequency, frequency), 40) + addtimer(CALLBACK(src, PROC_REF(set_frequency), frequency), 40) /obj/item/integrated_circuit/input/signaler/Destroy() if(radio_controller) diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 9a193f9bf7e..a20a02c8f1c 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -444,11 +444,11 @@ /obj/item/integrated_circuit/output/holographic_projector/Initialize() . = ..() - GLOB.moved_event.register(src, src, .proc/on_moved) + GLOB.moved_event.register(src, src, PROC_REF(on_moved)) /obj/item/integrated_circuit/output/holographic_projector/Destroy() destroy_hologram() - GLOB.moved_event.unregister(src, src, .proc/on_moved) + GLOB.moved_event.unregister(src, src, PROC_REF(on_moved)) return ..() /obj/item/integrated_circuit/output/holographic_projector/do_work() diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index 9633ef78813..1acaea0f3bc 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -25,7 +25,7 @@ var/new_delay = CLAMP(delay_input, 1, 1 HOUR) delay = new_delay - addtimer(CALLBACK(src, .proc/activate_pin, 2), delay) + addtimer(CALLBACK(src, PROC_REF(activate_pin), 2), delay) /obj/item/integrated_circuit/time/ticker name = "ticker circuit" @@ -65,7 +65,7 @@ /obj/item/integrated_circuit/time/ticker/proc/tick() if(is_running && check_power()) - addtimer(CALLBACK(src, .proc/tick), delay) + addtimer(CALLBACK(src, PROC_REF(tick)), delay) if(world.time > next_fire) next_fire = world.time + delay activate_pin(1) diff --git a/code/modules/mining/kinetic_crusher.dm b/code/modules/mining/kinetic_crusher.dm index 043dfe81885..2a668262824 100644 --- a/code/modules/mining/kinetic_crusher.dm +++ b/code/modules/mining/kinetic_crusher.dm @@ -69,8 +69,8 @@ /obj/item/weapon/kinetic_crusher/Initialize() . = ..() if(requires_Wield) - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/weapon/kinetic_crusher/ComponentInitialize() . = ..() @@ -163,7 +163,7 @@ D.fire() charged = FALSE update_icon() - addtimer(CALLBACK(src, .proc/Recharge), charge_time) + addtimer(CALLBACK(src, PROC_REF(Recharge)), charge_time) // * (user?.ConflictElementCount(CONFLICT_ELEMENT_CRUSHER) || 1 - tentatively commented out return if(proximity_flag && isliving(target)) @@ -258,7 +258,7 @@ update_item_state = FALSE slot_flags = SLOT_BELT - + /obj/item/weapon/kinetic_crusher/machete/gauntlets @@ -425,4 +425,3 @@ but alas - hatterhat */ - diff --git a/code/modules/mob/living/carbon/human/human_modular_limbs.dm b/code/modules/mob/living/carbon/human/human_modular_limbs.dm index c38bf4ebd63..481c9e57341 100644 --- a/code/modules/mob/living/carbon/human/human_modular_limbs.dm +++ b/code/modules/mob/living/carbon/human/human_modular_limbs.dm @@ -73,13 +73,13 @@ // Called in robotize(), replaced() and removed() to update our modular limb verbs. /mob/living/carbon/human/proc/refresh_modular_limb_verbs() if(length(get_modular_limbs(return_first_found = TRUE, validate_proc = /obj/item/organ/external/proc/can_attach_modular_limb_here))) - verbs |= .proc/attach_limb_verb + verbs |= PROC_REF(attach_limb_verb) else - verbs -= .proc/attach_limb_verb + verbs -= PROC_REF(attach_limb_verb) if(length(get_modular_limbs(return_first_found = TRUE, validate_proc = /obj/item/organ/external/proc/can_remove_modular_limb))) - verbs |= .proc/detach_limb_verb + verbs |= PROC_REF(detach_limb_verb) else - verbs -= .proc/detach_limb_verb + verbs -= PROC_REF(detach_limb_verb) // Proc helper for attachment verb. /mob/living/carbon/human/proc/check_can_attach_modular_limb(var/obj/item/organ/external/E) diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm index d9af7a3689a..eb93f679e3a 100644 --- a/code/modules/mob/living/inventory.dm +++ b/code/modules/mob/living/inventory.dm @@ -49,7 +49,7 @@ . = drop_r_hand(Target) if (istype(item_dropped) && !QDELETED(item_dropped) && is_preference_enabled(/datum/client_preference/drop_sounds)) - addtimer(CALLBACK(src, .proc/make_item_drop_sound, item_dropped), 1) + addtimer(CALLBACK(src, PROC_REF(make_item_drop_sound), item_dropped), 1) /mob/proc/make_item_drop_sound(obj/item/I) if(QDELETED(I)) @@ -119,14 +119,14 @@ // We're the first! if(!L) L = list() - + // Lefty grab! if (istype(l_hand, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = l_hand L |= G.affecting if(mobchain_limit-- > 0) G.affecting?.ret_grab(L, mobchain_limit) // Recurse! They can update the list. It's the same instance as ours. - + // Righty grab! if (istype(r_hand, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = r_hand @@ -144,7 +144,7 @@ if(!checkClickCooldown()) return - + setClickCooldown(1) if(istype(loc,/obj/mecha)) return @@ -272,7 +272,7 @@ if(..()) return TRUE - // If anyone wants the inventory panel to actually work, + // If anyone wants the inventory panel to actually work, // add code to handle actions "mask", "l_hand", "r_hand", "back", "pockets", and "internals" here // No mobs other than humans actually supported stripping or putting stuff on before the /datum/inventory_panel was // created, so feature parity demands not adding that and risking breaking stuff @@ -345,12 +345,12 @@ data["sensors"] = FALSE if(istype(suit) && suit.has_sensor == 1) data["sensors"] = TRUE - + data["handcuffed"] = FALSE if(H.handcuffed) data["handcuffed"] = TRUE data["handcuffedParams"] = list("slot" = slot_handcuffed) - + data["legcuffed"] = FALSE if(H.legcuffed) data["legcuffed"] = TRUE @@ -360,4 +360,4 @@ if(suit && LAZYLEN(suit.accessories)) data["accessory"] = TRUE - return data \ No newline at end of file + return data diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 311682f0566..aae66646cac 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1258,7 +1258,7 @@ /datum/component/character_setup/RegisterWithParent() . = ..() - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) var/mob/owner = parent if(owner.client) create_mob_button(parent) @@ -1276,7 +1276,7 @@ var/datum/hud/HUD = user.hud_used if(!screen_icon) screen_icon = new() - RegisterSignal(screen_icon, COMSIG_CLICK, .proc/character_setup_click) + RegisterSignal(screen_icon, COMSIG_CLICK, PROC_REF(character_setup_click)) if(ispAI(user)) screen_icon.icon = 'icons/mob/pai_hud.dmi' screen_icon.screen_loc = ui_acti diff --git a/code/modules/mob/living/silicon/robot/robot_animation_vr.dm b/code/modules/mob/living/silicon/robot/robot_animation_vr.dm index f69b1049cd9..6d1c66be63c 100644 --- a/code/modules/mob/living/silicon/robot/robot_animation_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_animation_vr.dm @@ -1,5 +1,5 @@ /mob/living/silicon/robot/proc/transform_with_anim() - INVOKE_ASYNC(src, .proc/do_transform_animation) + INVOKE_ASYNC(src, PROC_REF(do_transform_animation)) /mob/living/silicon/robot/proc/do_transform_animation() notransform = TRUE @@ -19,4 +19,4 @@ if(!prev_lockcharge) SetLockdown(0) anchored = FALSE - notransform = FALSE \ No newline at end of file + notransform = FALSE diff --git a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm index cc4ca44253e..87b23bf457a 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/thinktank/thinktank_interactions.dm @@ -65,7 +65,7 @@ if(key != user.key) key = user.key SetName("[modtype] [braintype]-[rand(100,999)]") - addtimer(CALLBACK(src, .proc/welcome_client), 1) + addtimer(CALLBACK(src, PROC_REF(welcome_client)), 1) qdel(user) /mob/living/silicon/robot/platform/proc/welcome_client() diff --git a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm index d9b544cc735..8a998d48eae 100644 --- a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm @@ -8,7 +8,7 @@ //The MOB being invisible presents some problems though, which I am not entirely sure how to resolve //Such as, being unable to be attacked by other mobs, and possibly unable to be attacked by players. -//This does not at all prevent the mob from attacking other things though +//This does not at all prevent the mob from attacking other things though //so in general, please ensure that you never spawn these where players can ordinarily access them. //The mob was made invisible though, because the sensors can't detect invisible objects, so when the /visitable/simplemob was made invisible @@ -47,7 +47,7 @@ /obj/effect/overmap/visitable/simplemob/proc/om_mob_event_setup() scanner_desc = parent.scanner_desc - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_parent_moved) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_moved)) skybox_pixel_x = rand(-100,100) if(known) name = initial(parent.name) @@ -109,4 +109,3 @@ /mob/living/simple_mob/vore/overmap/Destroy() qdel_null(child_om_marker) return ..() - diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm index 6fea80f6260..6b4b514e283 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm @@ -242,7 +242,7 @@ else if(prob(0.5)) holder.lay_down() go_sleep() - addtimer(CALLBACK(src, .proc/consider_awakening), rand(1 MINUTE, 5 MINUTES), TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) + addtimer(CALLBACK(src, PROC_REF(consider_awakening)), rand(1 MINUTE, 5 MINUTES), TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) else return ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm index 9346ecd9ac2..a59560f2e1e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm @@ -192,7 +192,7 @@ . = ..() icon_living = "spookyghost-[rand(1,2)]" icon_state = icon_living - addtimer(CALLBACK(src, .proc/death), 35 SECONDS) + addtimer(CALLBACK(src, PROC_REF(death)), 35 SECONDS) update_icon() /datum/ai_holder/simple_mob/melee/space_ghost diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother_spawn.dm b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother_spawn.dm index 8d07077f1a0..5ebb7df0d7c 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother_spawn.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/giant_spider/broodmother_spawn.dm @@ -10,7 +10,7 @@ /mob/living/simple_mob/animal/giant_spider/frost/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/frost/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -28,7 +28,7 @@ /mob/living/simple_mob/animal/giant_spider/electric/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/electric/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -43,7 +43,7 @@ /mob/living/simple_mob/animal/giant_spider/hunter/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/hunter/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -58,7 +58,7 @@ /mob/living/simple_mob/animal/giant_spider/lurker/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/lurker/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -74,7 +74,7 @@ /mob/living/simple_mob/animal/giant_spider/nurse/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/nurse/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -89,7 +89,7 @@ /mob/living/simple_mob/animal/giant_spider/pepper/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/pepper/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -107,7 +107,7 @@ /mob/living/simple_mob/animal/giant_spider/thermic/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/thermic/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -122,7 +122,7 @@ /mob/living/simple_mob/animal/giant_spider/tunneler/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/tunneler/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -139,7 +139,7 @@ /mob/living/simple_mob/animal/giant_spider/webslinger/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/webslinger/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) @@ -157,7 +157,7 @@ /mob/living/simple_mob/animal/giant_spider/broodling/Initialize() . = ..() adjust_scale(0.75) - addtimer(CALLBACK(src, .proc/death), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(death)), 2 MINUTES) /mob/living/simple_mob/animal/giant_spider/broodling/death() new /obj/effect/decal/cleanable/spiderling_remains(src.loc) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm index 27bd772e250..b9297da8527 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/possum.dm @@ -88,7 +88,7 @@ /datum/ai_holder/simple_mob/passive/possum/poppy/on_hear_say(mob/living/speaker, message) . = ..() - addtimer(CALLBACK(src, .proc/check_keywords, message), rand(1 SECOND, 3 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(check_keywords), message), rand(1 SECOND, 3 SECONDS)) /datum/ai_holder/simple_mob/passive/possum/poppy/proc/check_keywords(var/message) var/mob/living/simple_mob/animal/passive/opossum/poss = holder @@ -205,4 +205,4 @@ hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "pouch") /decl/mob_organ_names/poppy - hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "pouch", "cute little jacket") \ No newline at end of file + hit_zones = list("head", "body", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "pouch", "cute little jacket") diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm index ae1a90f303a..6b6cc5a1924 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/bigdragon.dm @@ -733,7 +733,7 @@ I think I covered everything. var/atom/movable/AM = am if(AM == src || AM.anchored) continue - addtimer(CALLBACK(src, .proc/yeet, am), 1) + addtimer(CALLBACK(src, PROC_REF(yeet), am), 1) playsound(src, "sound/weapons/punchmiss.ogg", 50, 1) //Split repulse into two parts so I can recycle this later @@ -766,7 +766,7 @@ I think I covered everything. do_windup_animation(A, charge_warmup) //callbacks are more reliable than byond's process scheduler - addtimer(CALLBACK(src, .proc/chargeend, A), charge_warmup) + addtimer(CALLBACK(src, PROC_REF(chargeend), A), charge_warmup) /mob/living/simple_mob/vore/bigdragon/proc/chargeend(var/atom/A, var/explicit = 0, var/gentle = 0) @@ -804,7 +804,7 @@ I think I covered everything. set_AI_busy(TRUE) flames = 1 build_icons() - addtimer(CALLBACK(src, .proc/firebreathend, A), charge_warmup) + addtimer(CALLBACK(src, PROC_REF(firebreathend), A), charge_warmup) playsound(src, "sound/magic/Fireball.ogg", 50, 1) /mob/living/simple_mob/vore/bigdragon/proc/firebreathend(var/atom/A) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm index 0b6e6e5607c..8cbf335e3ad 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm @@ -44,8 +44,8 @@ /mob/living/dominated_brain/proc/lets_register_our_signals() if(prey_body) - RegisterSignal(prey_body, COMSIG_PARENT_QDELETING, .proc/prey_was_deleted, TRUE) - RegisterSignal(pred_body, COMSIG_PARENT_QDELETING, .proc/pred_was_deleted, TRUE) + RegisterSignal(prey_body, COMSIG_PARENT_QDELETING, PROC_REF(prey_was_deleted), TRUE) + RegisterSignal(pred_body, COMSIG_PARENT_QDELETING, PROC_REF(pred_was_deleted), TRUE) /mob/living/dominated_brain/proc/lets_unregister_our_signals() prey_was_deleted() diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm index a3b76c282b3..dfa3bfe5419 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/frog.dm @@ -54,7 +54,7 @@ /mob/living/simple_mob/vore/aggressive/frog/do_special_attack(atom/A) set_AI_busy(TRUE) do_windup_animation(A, 20) - addtimer(CALLBACK(src, .proc/chargeend, A), 20) + addtimer(CALLBACK(src, PROC_REF(chargeend), A), 20) /mob/living/simple_mob/vore/aggressive/frog/proc/chargeend(atom/A) if(stat) //you are dead diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm b/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm index 99720acb242..02f2fa025db 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/pakkun.dm @@ -130,7 +130,7 @@ /mob/living/simple_mob/vore/pakkun/on_throw_vore_special(var/pred, var/mob/living/target) if(pred && !extra_posessive && !(LAZYFIND(prey_excludes, target))) LAZYSET(prey_excludes, target, world.time) - addtimer(CALLBACK(src, .proc/removeMobFromPreyExcludes, WEAKREF(target)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(removeMobFromPreyExcludes), WEAKREF(target)), 5 MINUTES) if(ai_holder) ai_holder.remove_target() @@ -155,7 +155,7 @@ for(var/mob/living/L in living_mobs(0)) if(!(LAZYFIND(prey_excludes, L))) LAZYSET(prey_excludes, L, world.time) - addtimer(CALLBACK(src, .proc/removeMobFromPreyExcludes, WEAKREF(L)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(removeMobFromPreyExcludes), WEAKREF(L)), 5 MINUTES) else ..() diff --git a/code/modules/nifsoft/nif_tgui.dm b/code/modules/nifsoft/nif_tgui.dm index 203e0bb8587..b3f21c39e5d 100644 --- a/code/modules/nifsoft/nif_tgui.dm +++ b/code/modules/nifsoft/nif_tgui.dm @@ -31,7 +31,7 @@ /datum/component/nif_menu/RegisterWithParent() . = ..() - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) var/mob/owner = parent if(owner.client) create_mob_button(parent) @@ -53,7 +53,7 @@ var/datum/hud/HUD = user.hud_used if(!screen_icon) screen_icon = new() - RegisterSignal(screen_icon, COMSIG_CLICK, .proc/nif_menu_click) + RegisterSignal(screen_icon, COMSIG_CLICK, PROC_REF(nif_menu_click)) screen_icon.icon = HUD.ui_style screen_icon.color = HUD.ui_color screen_icon.alpha = HUD.ui_alpha @@ -65,7 +65,7 @@ /datum/component/nif_menu/proc/nif_menu_click(source, location, control, params, user) var/mob/living/carbon/human/H = user if(istype(H) && H.nif) - INVOKE_ASYNC(H.nif, .proc/tgui_interact, user) + INVOKE_ASYNC(H.nif, PROC_REF(tgui_interact), user) /** * Screen object for NIF menu access diff --git a/code/modules/overmap/disperser/disperser_console.dm b/code/modules/overmap/disperser/disperser_console.dm index d67bb87c5cf..a173163c17e 100644 --- a/code/modules/overmap/disperser/disperser_console.dm +++ b/code/modules/overmap/disperser/disperser_console.dm @@ -55,9 +55,9 @@ middle = M back = B if(is_valid_setup()) - GLOB.destroyed_event.register(F, src, .proc/release_links) - GLOB.destroyed_event.register(M, src, .proc/release_links) - GLOB.destroyed_event.register(B, src, .proc/release_links) + GLOB.destroyed_event.register(F, src, PROC_REF(release_links)) + GLOB.destroyed_event.register(M, src, PROC_REF(release_links)) + GLOB.destroyed_event.register(B, src, PROC_REF(release_links)) return TRUE return FALSE @@ -69,9 +69,9 @@ return FALSE /obj/machinery/computer/ship/disperser/proc/release_links() - GLOB.destroyed_event.unregister(front, src, .proc/release_links) - GLOB.destroyed_event.unregister(middle, src, .proc/release_links) - GLOB.destroyed_event.unregister(back, src, .proc/release_links) + GLOB.destroyed_event.unregister(front, src, PROC_REF(release_links)) + GLOB.destroyed_event.unregister(middle, src, PROC_REF(release_links)) + GLOB.destroyed_event.unregister(back, src, PROC_REF(release_links)) front = null middle = null back = null @@ -207,4 +207,4 @@ . = TRUE if(. && !issilicon(usr)) - playsound(src, "terminal_type", 50, 1) \ No newline at end of file + playsound(src, "terminal_type", 50, 1) diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index d3da39a343e..285d1e3a1b4 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -268,7 +268,7 @@ I.appearance_flags = KEEP_APART|RESET_TRANSFORM|RESET_COLOR add_overlay(I) - addtimer(CALLBACK(src, .proc/distress_update), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(distress_update)), 5 MINUTES) return TRUE /obj/effect/overmap/visitable/proc/get_distress_info() diff --git a/code/modules/overmap/ships/landable.dm b/code/modules/overmap/ships/landable.dm index a76a39b60e6..45c8386da53 100644 --- a/code/modules/overmap/ships/landable.dm +++ b/code/modules/overmap/ships/landable.dm @@ -71,8 +71,8 @@ if(istype(shuttle_datum,/datum/shuttle/autodock/overmap)) var/datum/shuttle/autodock/overmap/oms = shuttle_datum oms.myship = src - GLOB.shuttle_pre_move_event.register(shuttle_datum, src, .proc/pre_shuttle_jump) - GLOB.shuttle_moved_event.register(shuttle_datum, src, .proc/on_shuttle_jump) + GLOB.shuttle_pre_move_event.register(shuttle_datum, src, PROC_REF(pre_shuttle_jump)) + GLOB.shuttle_moved_event.register(shuttle_datum, src, PROC_REF(on_shuttle_jump)) on_landing(landmark, shuttle_datum.current_location) // We "land" at round start to properly place ourselves on the overmap. @@ -144,7 +144,7 @@ /obj/effect/shuttle_landmark/visiting_shuttle/shuttle_arrived(datum/shuttle/shuttle) LAZYSET(core_landmark.visitors, src, shuttle) - GLOB.shuttle_moved_event.register(shuttle, src, .proc/shuttle_left) + GLOB.shuttle_moved_event.register(shuttle, src, PROC_REF(shuttle_left)) /obj/effect/shuttle_landmark/visiting_shuttle/proc/shuttle_left(datum/shuttle/shuttle, obj/effect/shuttle_landmark/old_landmark, obj/effect/shuttle_landmark/new_landmark) if(old_landmark == src) @@ -206,4 +206,4 @@ if(SHIP_STATUS_TRANSIT) return "Maneuvering under secondary thrust." if(SHIP_STATUS_OVERMAP) - return "In open space." \ No newline at end of file + return "In open space." diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 708fe7fca4f..ae9bb2f509c 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -61,7 +61,7 @@ switch(action) if("make_copy") - addtimer(CALLBACK(src, .proc/copy_operation, usr), 0) + addtimer(CALLBACK(src, PROC_REF(copy_operation), usr), 0) . = TRUE if("remove") if(copyitem) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f206259e424..8c0d3e90202 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -975,7 +975,7 @@ GLOBAL_LIST_EMPTY(apcs) for(var/obj/machinery/light/L in area) if(!initial(L.no_emergency)) //If there was an override set on creation, keep that override L.no_emergency = emergency_lights - INVOKE_ASYNC(L, /obj/machinery/light/.proc/update, FALSE) + INVOKE_ASYNC(L, TYPE_PROC_REF(/obj/machinery/light, update), FALSE) CHECK_TICK if("overload") if(locked_exception) // Reusing for simplicity! @@ -1372,4 +1372,4 @@ GLOBAL_LIST_EMPTY(apcs) #undef APC_HAS_ELECTRONICS_NONE #undef APC_HAS_ELECTRONICS_WIRED -#undef APC_HAS_ELECTRONICS_SECURED \ No newline at end of file +#undef APC_HAS_ELECTRONICS_SECURED diff --git a/code/modules/power/port_gen_vr.dm b/code/modules/power/port_gen_vr.dm index 6296d3c9b4a..61341a92cdd 100644 --- a/code/modules/power/port_gen_vr.dm +++ b/code/modules/power/port_gen_vr.dm @@ -156,7 +156,7 @@ "You hear a loud electrical crack!") playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_gen * 0.05) - addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. /obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj) . = ..() diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 33caa542a49..e36a1f1dc31 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -83,7 +83,7 @@ flick("coilhit", src) playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5) tesla_zap(src, 5, power_produced) - //addtimer(CALLBACK(src, .proc/reset_shocked), 10) + //addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) spawn(10) reset_shocked() else ..() diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 6163b3a8a11..a3530f8e411 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -101,7 +101,7 @@ energy_to_raise = energy_to_raise * 1.25 playsound(src, 'sound/effects/lightning_chargeup.ogg', 100, 1, extrarange = 30) - //addtimer(CALLBACK(src, .proc/new_mini_ball), 100) + //addtimer(CALLBACK(src, PROC_REF(new_mini_ball)), 100) spawn(100) new_mini_ball() else if(energy < energy_to_lower && orbiting_balls.len) diff --git a/code/modules/power/tesla/tesla_act.dm b/code/modules/power/tesla/tesla_act.dm index 01b58f8a809..8111d1e4d11 100644 --- a/code/modules/power/tesla/tesla_act.dm +++ b/code/modules/power/tesla/tesla_act.dm @@ -9,8 +9,8 @@ being_shocked = TRUE var/power_bounced = power / 2 tesla_zap(src, 3, power_bounced) - //addtimer(CALLBACK(src, .proc/reset_shocked), 10) - //schedule_task_with_source_in(10, src, .proc/reset_shocked) + //addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10) + //schedule_task_with_source_in(10, src, PROC_REF(reset_shocked)) spawn(10) reset_shocked() /obj/proc/reset_shocked() @@ -63,12 +63,3 @@ /obj/mecha/tesla_act(power) ..() take_damage(power / 200, "energy") // A surface lightning strike will do 100 damage. - - - - - - - - - diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm index 8792b0feb1c..689be8359d9 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator_vr.dm @@ -182,7 +182,7 @@ if(!QDELING(src) && !holds_charge) // Put it on a delay because moving item from slot to hand // calls dropped(). - addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) + addtimer(CALLBACK(src, PROC_REF(empty_if_not_held)), 2) /obj/item/weapon/gun/energy/kinetic_accelerator/proc/empty_if_not_held() if(!ismob(loc) && !istype(loc, /obj/item/integrated_circuit)) @@ -206,7 +206,7 @@ var/carried = max(1, loc.ConflictElementCount(CONFLICT_ELEMENT_KA)) deltimer(recharge_timerid) - recharge_timerid = addtimer(CALLBACK(src, .proc/reload), recharge_time * carried, TIMER_STOPPABLE) + recharge_timerid = addtimer(CALLBACK(src, PROC_REF(reload)), recharge_time * carried, TIMER_STOPPABLE) /obj/item/weapon/gun/energy/kinetic_accelerator/emp_act(severity) return diff --git a/code/modules/projectiles/guns/projectile/smartgun.dm b/code/modules/projectiles/guns/projectile/smartgun.dm index c74f1b6122d..ba13558160c 100644 --- a/code/modules/projectiles/guns/projectile/smartgun.dm +++ b/code/modules/projectiles/guns/projectile/smartgun.dm @@ -34,7 +34,7 @@ var/image/I = ..() if(I) I.pixel_x = -16 - return I + return I /obj/item/weapon/gun/projectile/smartgun/loaded magazine_type = /obj/item/ammo_magazine/smartgun @@ -68,7 +68,7 @@ return cycling = TRUE - + if(closed) icon_state = "[initial(icon_state)]_open" playsound(src, 'sound/weapons/smartgunopen.ogg', 75, 0) @@ -77,7 +77,7 @@ icon_state = "[initial(icon_state)]_closed" playsound(src, 'sound/weapons/smartgunclose.ogg', 75, 0) to_chat(user, "You ready [src] so that it can be fired.") - addtimer(CALLBACK(src, .proc/toggle_real_state), 2 SECONDS, TIMER_UNIQUE) + addtimer(CALLBACK(src, PROC_REF(toggle_real_state)), 2 SECONDS, TIMER_UNIQUE) /obj/item/weapon/gun/projectile/smartgun/proc/toggle_real_state() cycling = FALSE @@ -147,4 +147,3 @@ max_ammo = 5 ammo_type = /obj/item/ammo_casing/smartgun multiple_sprites = TRUE - diff --git a/code/modules/random_map/drop/droppod_doors.dm b/code/modules/random_map/drop/droppod_doors.dm index c19aba40fd5..78df7a66995 100644 --- a/code/modules/random_map/drop/droppod_doors.dm +++ b/code/modules/random_map/drop/droppod_doors.dm @@ -13,7 +13,7 @@ /obj/structure/droppod_door/Initialize(var/mapload, var/autoopen) . = ..() if(autoopen) - addtimer(CALLBACK(src, .proc/deploy), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(deploy)), 10 SECONDS) /obj/structure/droppod_door/attack_ai(var/mob/user) if(!user.Adjacent(src)) @@ -76,4 +76,4 @@ door_bottom.density = FALSE door_bottom.set_opacity(0) door_bottom.dir = src.dir - door_bottom.icon_state = "rampbottom" \ No newline at end of file + door_bottom.icon_state = "rampbottom" diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index a69a57015e1..5bf3d94fffc 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -110,7 +110,7 @@ Note: Must be placed within 3 tiles of the R&D Console qdel(B) playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) rped_recycler_ready = FALSE - addtimer(CALLBACK(src, .proc/rped_ready), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(rped_ready)), 5 SECONDS) to_chat(user, "You deconstruct all the parts of rating [lowest_rating] in [replacer] with [src].") return 1 else @@ -118,4 +118,4 @@ Note: Must be placed within 3 tiles of the R&D Console /obj/machinery/r_n_d/destructive_analyzer/proc/rped_ready() rped_recycler_ready = TRUE - playsound(get_turf(src), 'sound/machines/chime.ogg', 50, 1) \ No newline at end of file + playsound(get_turf(src), 'sound/machines/chime.ogg', 50, 1) diff --git a/code/modules/research/rdconsole_tgui.dm b/code/modules/research/rdconsole_tgui.dm index bbd340fd0a8..b9683c0f435 100644 --- a/code/modules/research/rdconsole_tgui.dm +++ b/code/modules/research/rdconsole_tgui.dm @@ -242,7 +242,7 @@ "chem_list" = chem_list, ))) - data = sortTim(data, /proc/cmp_designs_rdconsole, FALSE) + data = sortTim(data, GLOBAL_PROC_REF(cmp_designs_rdconsole), FALSE) if(LAZYLEN(data) > ENTRIES_PER_RDPAGE) var/first_index = clamp(ENTRIES_PER_RDPAGE * page, 1, LAZYLEN(data)) var/last_index = min((ENTRIES_PER_RDPAGE * page) + ENTRIES_PER_RDPAGE, LAZYLEN(data) + 1) @@ -280,7 +280,7 @@ "chem_list" = chem_list, ))) - data = sortTim(data, /proc/cmp_designs_rdconsole, FALSE) + data = sortTim(data, GLOBAL_PROC_REF(cmp_designs_rdconsole), FALSE) if(LAZYLEN(data) > ENTRIES_PER_RDPAGE) var/first_index = clamp(ENTRIES_PER_RDPAGE * page, 1, LAZYLEN(data)) var/last_index = min((ENTRIES_PER_RDPAGE * page) + ENTRIES_PER_RDPAGE, LAZYLEN(data) + 1) @@ -303,7 +303,7 @@ "id" = D.id, ))) - data = sortTim(data, /proc/cmp_designs_rdconsole, FALSE) + data = sortTim(data, GLOBAL_PROC_REF(cmp_designs_rdconsole), FALSE) if(LAZYLEN(data) > ENTRIES_PER_RDPAGE) var/first_index = clamp(ENTRIES_PER_RDPAGE * page, 1, LAZYLEN(data)) var/last_index = clamp((ENTRIES_PER_RDPAGE * page) + ENTRIES_PER_RDPAGE, 1, LAZYLEN(data) + 1) @@ -637,4 +637,4 @@ PR.info_links = PR.info PR.icon_state = "paper_words" PR.forceMove(loc) - busy_msg = null \ No newline at end of file + busy_msg = null diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 9f83cdf933a..e486197b843 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -116,7 +116,7 @@ @param time: time to sleep in deciseconds (1/10th second) */ - interpreter.SetProc("sleep", /proc/delay) + interpreter.SetProc("sleep", GLOBAL_PROC_REF(delay)) /* -> Replaces a string with another string @@ -127,7 +127,7 @@ @param replacestring: the string to replace the substring with */ - interpreter.SetProc("replace", /proc/string_replacetext) + interpreter.SetProc("replace", GLOBAL_PROC_REF(string_replacetext)) /* -> Locates an element/substring inside of a list or string @@ -139,7 +139,7 @@ @param end: the position to end in */ - interpreter.SetProc("find", /proc/smartfind) + interpreter.SetProc("find", GLOBAL_PROC_REF(smartfind)) /* -> Finds the length of a string or list @@ -148,42 +148,42 @@ @param container: the list or container to measure */ - interpreter.SetProc("length", /proc/smartlength) + interpreter.SetProc("length", GLOBAL_PROC_REF(smartlength)) /* -- Clone functions, carried from default BYOND procs --- */ // vector namespace - interpreter.SetProc("vector", /proc/n_list) - interpreter.SetProc("at", /proc/n_listpos) - interpreter.SetProc("copy", /proc/n_listcopy) - interpreter.SetProc("push_back", /proc/n_listadd) - interpreter.SetProc("remove", /proc/n_listremove) - interpreter.SetProc("cut", /proc/n_listcut) - interpreter.SetProc("swap", /proc/n_listswap) - interpreter.SetProc("insert", /proc/n_listinsert) + interpreter.SetProc("vector", GLOBAL_PROC_REF(n_list)) + interpreter.SetProc("at", GLOBAL_PROC_REF(n_listpos)) + interpreter.SetProc("copy", GLOBAL_PROC_REF(n_listcopy)) + interpreter.SetProc("push_back", GLOBAL_PROC_REF(n_listadd)) + interpreter.SetProc("remove", GLOBAL_PROC_REF(n_listremove)) + interpreter.SetProc("cut", GLOBAL_PROC_REF(n_listcut)) + interpreter.SetProc("swap", GLOBAL_PROC_REF(n_listswap)) + interpreter.SetProc("insert", GLOBAL_PROC_REF(n_listinsert)) - interpreter.SetProc("pick", /proc/n_pick) - interpreter.SetProc("prob", /proc/prob_chance) - interpreter.SetProc("substr", /proc/docopytext) + interpreter.SetProc("pick", GLOBAL_PROC_REF(n_pick)) + interpreter.SetProc("prob", GLOBAL_PROC_REF(prob_chance)) + interpreter.SetProc("substr", GLOBAL_PROC_REF(docopytext)) // Donkie~ // Strings - interpreter.SetProc("lower", /proc/n_lower) - interpreter.SetProc("upper", /proc/n_upper) - interpreter.SetProc("explode", /proc/string_explode) - interpreter.SetProc("repeat", /proc/n_repeat) - interpreter.SetProc("reverse", /proc/n_reverse) - interpreter.SetProc("tonum", /proc/n_str2num) + interpreter.SetProc("lower", GLOBAL_PROC_REF(n_lower)) + interpreter.SetProc("upper", GLOBAL_PROC_REF(n_upper)) + interpreter.SetProc("explode", GLOBAL_PROC_REF(string_explode)) + interpreter.SetProc("repeat", GLOBAL_PROC_REF(n_repeat)) + interpreter.SetProc("reverse", GLOBAL_PROC_REF(n_reverse)) + interpreter.SetProc("tonum", GLOBAL_PROC_REF(n_str2num)) // Numbers - interpreter.SetProc("tostring", /proc/n_num2str) - interpreter.SetProc("sqrt", /proc/n_sqrt) - interpreter.SetProc("abs", /proc/n_abs) - interpreter.SetProc("floor", /proc/n_floor) - interpreter.SetProc("ceil", /proc/n_ceil) - interpreter.SetProc("round", /proc/n_round) - interpreter.SetProc("clamp", /proc/n_clamp) - interpreter.SetProc("inrange", /proc/n_inrange) + interpreter.SetProc("tostring", GLOBAL_PROC_REF(n_num2str)) + interpreter.SetProc("sqrt", GLOBAL_PROC_REF(n_sqrt)) + interpreter.SetProc("abs", GLOBAL_PROC_REF(n_abs)) + interpreter.SetProc("floor", GLOBAL_PROC_REF(n_floor)) + interpreter.SetProc("ceil", GLOBAL_PROC_REF(n_ceil)) + interpreter.SetProc("round", GLOBAL_PROC_REF(n_round)) + interpreter.SetProc("clamp", GLOBAL_PROC_REF(n_clamp)) + interpreter.SetProc("inrange", GLOBAL_PROC_REF(n_inrange)) // End of Donkie~ @@ -278,4 +278,3 @@ var/pass = S.relay_information(newsign, /obj/machinery/telecomms/hub) if(!pass) S.relay_information(newsign, /obj/machinery/telecomms/broadcaster) // send this simple message to broadcasters - diff --git a/code/modules/shieldgen/directional_shield.dm b/code/modules/shieldgen/directional_shield.dm index b298e028a72..6754878674f 100644 --- a/code/modules/shieldgen/directional_shield.dm +++ b/code/modules/shieldgen/directional_shield.dm @@ -102,13 +102,13 @@ START_PROCESSING(SSobj, src) if(always_on) create_shields() - GLOB.moved_event.register(src, src, .proc/moved_event) + GLOB.moved_event.register(src, src, PROC_REF(moved_event)) return ..() /obj/item/shield_projector/Destroy() destroy_shields() STOP_PROCESSING(SSobj, src) - GLOB.moved_event.unregister(src, src, .proc/moved_event) + GLOB.moved_event.unregister(src, src, PROC_REF(moved_event)) return ..() /obj/item/shield_projector/proc/moved_event() diff --git a/code/modules/shieldgen/energy_shield.dm b/code/modules/shieldgen/energy_shield.dm index 0982b2d3b80..68c03ff1fef 100644 --- a/code/modules/shieldgen/energy_shield.dm +++ b/code/modules/shieldgen/energy_shield.dm @@ -147,7 +147,7 @@ continue // Note: Range is a non-exact aproximation of the spread effect. If it doesn't look good // we'll need to switch to actually walking along the shields to get exact number of steps away. - addtimer(CALLBACK(S, .proc/impact_flash), get_dist(src, S) * 2) + addtimer(CALLBACK(S, PROC_REF(impact_flash)), get_dist(src, S) * 2) impact_flash() // Small visual effect, makes the shield tiles brighten up by becoming more opaque for a moment diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm index 1051ba6c2d9..6cfe6ba6a37 100644 --- a/code/modules/shuttles/shuttles_web.dm +++ b/code/modules/shuttles/shuttles_web.dm @@ -208,7 +208,7 @@ /obj/machinery/computer/shuttle_control/web/tgui_data(mob/user) var/list/data = list() - + var/list/routes[0] var/datum/shuttle/autodock/web_shuttle/shuttle = SSshuttles.shuttles[shuttle_tag] if(!istype(shuttle)) @@ -409,10 +409,10 @@ /obj/shuttle_connector/Initialize() . = ..() - GLOB.shuttle_added.register_global(src, .proc/setup_routes) + GLOB.shuttle_added.register_global(src, PROC_REF(setup_routes)) /obj/shuttle_connector/Destroy() - GLOB.shuttle_added.unregister_global(src, .proc/setup_routes) + GLOB.shuttle_added.unregister_global(src, PROC_REF(setup_routes)) . = ..() // This is called whenever a shuttle is initialized. If its our shuttle, do our thing! diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index 0fc0076c8ba..904a3d8518f 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -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) diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index a90d69689ba..169cd5a3da8 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -65,13 +65,13 @@ owner = H if(owner) - GLOB.moved_event.register(owner, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(owner, src, PROC_REF(update_active_camera_screen)) check_whitelist = check_species_whitelist whitelist = species_whitelist blacklist = species_blacklist /datum/tgui_module/appearance_changer/Destroy() - GLOB.moved_event.unregister(owner, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(owner, src, PROC_REF(update_active_camera_screen)) last_camera_turf = null qdel(cam_screen) QDEL_LIST(cam_plane_masters) diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index fa67030d557..5a4551f260b 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -34,7 +34,7 @@ cam_screen.assigned_map = map_name cam_screen.del_on_map_removal = FALSE cam_screen.screen_loc = "[map_name]:1,1" - + cam_plane_masters = get_tgui_plane_masters() for(var/obj/screen/instance as anything in cam_plane_masters) @@ -68,7 +68,7 @@ /datum/tgui_module/camera/Destroy() if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = null last_camera_turf = null qdel(cam_screen) @@ -131,7 +131,7 @@ /datum/tgui_module/camera/tgui_act(action, params) if(..()) return TRUE - + if(action && !issilicon(usr)) playsound(tgui_host(), "terminal_type", 50, 1) @@ -140,9 +140,9 @@ var/list/cameras = get_available_cameras(usr) var/obj/machinery/camera/C = cameras["[ckey(c_tag)]"] if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = C - GLOB.moved_event.register(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(active_camera, src, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() return TRUE @@ -167,9 +167,9 @@ if(target) if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = target - GLOB.moved_event.register(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(active_camera, src, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() . = TRUE @@ -273,7 +273,7 @@ // Turn off the console if(length(concurrent_users) == 0 && is_living) if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = null playsound(tgui_host(), 'sound/machines/terminal_off.ogg', 25, FALSE) @@ -298,4 +298,3 @@ /datum/tgui_module/camera/bigscreen/tgui_state(mob/user) return GLOB.tgui_physical_state_bigscreen - \ No newline at end of file diff --git a/code/modules/tgui/modules/ntos-only/uav.dm b/code/modules/tgui/modules/ntos-only/uav.dm index 252c19d2288..eec4a420789 100644 --- a/code/modules/tgui/modules/ntos-only/uav.dm +++ b/code/modules/tgui/modules/ntos-only/uav.dm @@ -94,7 +94,7 @@ signal_strength = 0 current_uav = U - RegisterSignal(U, COMSIG_MOVABLE_Z_CHANGED, .proc/current_uav_changed_z) + RegisterSignal(U, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(current_uav_changed_z)) if(LAZYLEN(viewers)) for(var/datum/weakref/W in viewers) diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 39835cc8c7a..5c39c756adf 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -197,7 +197,7 @@ return //if(!COOLDOWN_FINISHED(src, refresh_cooldown)) //refreshing = TRUE - //addtimer(CALLBACK(src, .proc/send_full_update), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE) + //addtimer(CALLBACK(src, PROC_REF(send_full_update)), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE) //return //refreshing = FALSE var/should_update_data = force || status >= STATUS_UPDATE diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 77570c686cb..d2cf51e6328 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -89,7 +89,7 @@ Notes: /datum/tooltip/proc/hide() if (queueHide) - addtimer(CALLBACK(src, .proc/do_hide), 1) + addtimer(CALLBACK(src, PROC_REF(do_hide)), 1) else do_hide() diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm index 3fc8e0c98bf..3ef89ec260d 100644 --- a/code/modules/vchat/vchat_client.dm +++ b/code/modules/vchat/vchat_client.dm @@ -310,7 +310,7 @@ GLOBAL_LIST_EMPTY(bicon_cache) // Cache of the tag results, not the icons base64 = icon2base64(A.examine_icon(), key) GLOB.bicon_cache[key] = base64 if(changes_often) - addtimer(CALLBACK(GLOBAL_PROC, .proc/expire_bicon_cache, key), 50 SECONDS, TIMER_UNIQUE) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(expire_bicon_cache), key), 50 SECONDS, TIMER_UNIQUE) // May add a class to the img tag created by bicon if(use_class) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 02960e0a4bd..b434dd6ffbe 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -298,7 +298,7 @@ // Intended for simple mobs if(!owner.client && autotransferlocation && autotransferchance > 0) - addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, thing, autotransferlocation), autotransferwait) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/belly, check_autotransfer), thing, autotransferlocation), autotransferwait) // Called whenever an atom leaves this belly /obj/belly/Exited(atom/movable/thing, atom/OldLoc) @@ -1159,7 +1159,7 @@ else // Didn't transfer, so wait before retrying // I feel like there's a way to make this timer looping using the normal looping thing, but pass in the ID and cancel it if we aren't looping again - addtimer(CALLBACK(src, .proc/check_autotransfer, prey, autotransferlocation), autotransferwait) + addtimer(CALLBACK(src, PROC_REF(check_autotransfer), prey, autotransferlocation), autotransferwait) // Belly copies and then returns the copy // Needs to be updated for any var changes diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 66739c747b6..dcd06ea333e 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -1193,7 +1193,7 @@ /datum/component/vore_panel/RegisterWithParent() . = ..() - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) var/mob/living/owner = parent if(owner.client) create_mob_button(parent) @@ -1215,7 +1215,7 @@ var/datum/hud/HUD = user.hud_used if(!screen_icon) screen_icon = new() - RegisterSignal(screen_icon, COMSIG_CLICK, .proc/vore_panel_click) + RegisterSignal(screen_icon, COMSIG_CLICK, PROC_REF(vore_panel_click)) if(ispAI(user)) screen_icon.icon = 'icons/mob/pai_hud.dmi' screen_icon.screen_loc = ui_acti @@ -1229,7 +1229,7 @@ /datum/component/vore_panel/proc/vore_panel_click(source, location, control, params, user) var/mob/living/owner = user if(istype(owner) && owner.vorePanel) - INVOKE_ASYNC(owner.vorePanel, .proc/tgui_interact, user) + INVOKE_ASYNC(owner.vorePanel, PROC_REF(tgui_interact), user) /** * Screen object for vore panel diff --git a/code/modules/vore/eating/simple_animal_vr.dm b/code/modules/vore/eating/simple_animal_vr.dm index 243fbbd863d..e18d93fe360 100644 --- a/code/modules/vore/eating/simple_animal_vr.dm +++ b/code/modules/vore/eating/simple_animal_vr.dm @@ -88,7 +88,7 @@ for(var/mob/living/L in living_mobs(0)) //add everyone on the tile to the do-not-eat list for a while if(!(LAZYFIND(prey_excludes, L))) // Unless they're already on it, just to avoid fuckery. LAZYSET(prey_excludes, L, world.time) - addtimer(CALLBACK(src, .proc/removeMobFromPreyExcludes, WEAKREF(L)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(removeMobFromPreyExcludes), WEAKREF(L)), 5 MINUTES) else if(istype(O, /obj/item/device/healthanalyzer)) var/healthpercent = health/maxHealth*100 to_chat(user, "[src] seems to be [healthpercent]% healthy.") diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm index f09077ee4b8..4088c22aed8 100644 --- a/code/modules/vore/resizing/sizegun_vr.dm +++ b/code/modules/vore/resizing/sizegun_vr.dm @@ -25,7 +25,7 @@ /obj/item/weapon/gun/energy/sizegun/New() ..() - verbs += .proc/select_size + verbs += PROC_REF(select_size) /obj/item/weapon/gun/energy/sizegun/attack_self(mob/user) . = ..() @@ -192,4 +192,4 @@ muzzle_type = /obj/effect/projectile/muzzle/darkmatter tracer_type = /obj/effect/projectile/tracer/darkmatter - impact_type = /obj/effect/projectile/impact/darkmatter \ No newline at end of file + impact_type = /obj/effect/projectile/impact/darkmatter diff --git a/code/modules/webhooks/_webhook.dm b/code/modules/webhooks/_webhook.dm index e7cfb646cd7..f1cf4841c48 100644 --- a/code/modules/webhooks/_webhook.dm +++ b/code/modules/webhooks/_webhook.dm @@ -10,7 +10,7 @@ if (!target_url) return -1 - var/result = call(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) + var/result = LIBCALL(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) result = cached_json_decode(result) if (result["error_code"]) diff --git a/tgui/docs/tgui-for-custom-html-popups.md b/tgui/docs/tgui-for-custom-html-popups.md index f25060e9fa0..f7efffbe081 100644 --- a/tgui/docs/tgui-for-custom-html-popups.md +++ b/tgui/docs/tgui-for-custom-html-popups.md @@ -193,7 +193,7 @@ To receive it in DM, you must register a delegate proc (callback) that will rece ```dm /datum/my_object/proc/initialize() // ... - window.subscribe(src, .proc/on_message) + window.subscribe(src, PROC_REF(on_message)) /datum/my_object/proc/on_message(type, payload) if (type == "click") process_button_click(payload["button"]) From fc883fbf163a7094c13a9c431a5a9ce8d3fdfb15 Mon Sep 17 00:00:00 2001 From: Youtubeboy139 Date: Sun, 4 Jun 2023 19:33:04 -0400 Subject: [PATCH 05/17] Removes Extra Exploration Seating Area --- maps/stellar_delight/stellar_delight1.dmm | 719 ++++++++++------------ 1 file changed, 311 insertions(+), 408 deletions(-) diff --git a/maps/stellar_delight/stellar_delight1.dmm b/maps/stellar_delight/stellar_delight1.dmm index 9b433defd3d..569d141810f 100644 --- a/maps/stellar_delight/stellar_delight1.dmm +++ b/maps/stellar_delight/stellar_delight1.dmm @@ -296,10 +296,10 @@ dir = 8; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 }, /turf/simulated/floor/tiled/milspec, @@ -2461,13 +2461,6 @@ }, /turf/simulated/floor, /area/maintenance/stellardelight/substation/exploration) -"ey" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "1-2" - }, -/turf/simulated/wall/bay/purple, -/area/stellardelight/deck1/exploration) "ez" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/sterile/latex, @@ -3526,30 +3519,6 @@ "gQ" = ( /turf/simulated/wall/bay/brown, /area/stellardelight/deck1/oreprocessing) -"gS" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "1-8" - }, -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 6 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 1 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) "gT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5139,19 +5108,21 @@ "jZ" = ( /obj/structure/cable/green{ color = "#42038a"; - icon_state = "4-8" + icon_state = "2-4" }, /obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 + dir = 4; + icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 6 + }, +/obj/effect/floor_decal/steeldecal/steel_decals6, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 }, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "ka" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/floor_decal/industrial/warning{ @@ -6080,15 +6051,6 @@ }, /turf/simulated/floor/tiled/monotile, /area/janitor) -"md" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair/backed_red{ - dir = 8 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) "me" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -6403,18 +6365,6 @@ }, /turf/simulated/floor/reinforced, /area/stellardelight/deck1/shuttlebay) -"mH" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/bed/chair/backed_red{ - dir = 4 - }, -/obj/machinery/firealarm/angled{ - dir = 8 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) "mI" = ( /obj/machinery/door/firedoor/glass/hidden/steel{ dir = 1 @@ -6468,12 +6418,11 @@ /turf/simulated/floor/tiled/techmaint, /area/stellardelight/deck1/fore) "mP" = ( -/obj/machinery/computer/ship/navigation/telescreen{ - pixel_x = -32 +/obj/machinery/light/small{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "mQ" = ( /obj/machinery/door/firedoor/glass/hidden/steel{ dir = 8 @@ -7161,20 +7110,12 @@ /turf/simulated/floor/tiled/white, /area/medical/patient_wing) "oq" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/computer/ship/navigation/telescreen{ + pixel_x = -32 }, -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "1-8" - }, -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "1-4" - }, -/turf/simulated/floor/airless, -/area/stellardelight/deck1/exterior) +/turf/simulated/floor/tiled/milspec, +/area/stellardelight/deck1/explobriefing) "or" = ( /obj/structure/window/reinforced/full, /obj/structure/window/reinforced{ @@ -7516,11 +7457,14 @@ /turf/simulated/floor/tiled/dark, /area/security/armoury) "pd" = ( -/obj/machinery/computer/ship/navigation/telescreen{ - pixel_x = -64 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/closet, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "pe" = ( /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/stellardelight/deck1/miningshuttle) @@ -8074,10 +8018,9 @@ /area/stellardelight/deck1/explobriefing) "ql" = ( /obj/structure/table/woodentable, -/obj/machinery/light{ - dir = 1 +/obj/machinery/microwave{ + pixel_y = 7 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "qm" = ( @@ -8646,14 +8589,24 @@ "rB" = ( /obj/structure/cable/green{ color = "#42038a"; - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/light/small{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/angled_bay/hatch{ + dir = 4; + door_color = "#ffffff"; + name = "maintenance access"; + req_one_access = null; + stripe_color = "#5a19a8" + }, /turf/simulated/floor, /area/maintenance/stellardelight/deck1/exploration) "rC" = ( @@ -8745,12 +8698,20 @@ /turf/simulated/floor/tiled/steel_ridged, /area/medical/morgue) "rM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "1-4" + }, +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "1-8" + }, +/turf/simulated/floor/airless, +/area/stellardelight/deck1/exterior) "rN" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -9458,10 +9419,8 @@ /turf/simulated/floor/airless, /area/stellardelight/deck1/exterior) "tm" = ( -/obj/structure/dogbed, -/mob/living/simple_mob/animal/passive/tindalos/twigs, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/turf/simulated/wall/bay/r_wall/purple, +/area/maintenance/stellardelight/deck1/exploration) "tn" = ( /obj/machinery/light{ dir = 4 @@ -9838,12 +9797,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/stellardelight/deck1/port) -"uf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) "ug" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -9970,11 +9923,6 @@ "uw" = ( /turf/space/internal_edge/left, /area/stellardelight/deck1/starboard) -"ux" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) "uy" = ( /obj/structure/table/rack/shelf/steel, /obj/item/weapon/gun/energy/ionrifle/pistol, @@ -10289,11 +10237,9 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/toilet) "ve" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/closet/emcloset, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "vf" = ( /obj/machinery/door/firedoor/glass, /obj/structure/cable/yellow{ @@ -10777,9 +10723,12 @@ "wk" = ( /obj/structure/cable/green{ color = "#42038a"; - icon_state = "1-2" + icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/power/apc/angled{ + dir = 8 + }, /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "wm" = ( @@ -10813,12 +10762,13 @@ /turf/simulated/floor/tiled/eris/steel/cargo, /area/stellardelight/deck1/mining) "wq" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/alarm/angled{ - dir = 4 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) +/obj/structure/table/rack, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/clean, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "ws" = ( /obj/structure/cable/pink{ icon_state = "4-8" @@ -13197,12 +13147,6 @@ /obj/effect/landmark/start/visitor, /turf/simulated/floor/wood, /area/library) -"By" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) "Bz" = ( /obj/structure/cable/green{ icon_state = "1-4" @@ -13570,15 +13514,13 @@ /turf/simulated/floor/wood, /area/library) "Cl" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/camera/network/command{ - dir = 4 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) +/obj/structure/table/rack/shelf, +/obj/random/contraband, +/obj/random/maintenance/research, +/obj/random/maintenance, +/obj/random/maintenance, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "Cm" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/structure/disposalpipe/up{ @@ -13782,13 +13724,12 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/medical/virology) "CK" = ( -/obj/machinery/button/remote/blast_door{ - id = "explowindowlockdown"; - name = "Window Lockdown"; - pixel_y = 25 +/obj/item/device/radio/intercom{ + dir = 1; + pixel_y = 24 }, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "CL" = ( /obj/structure/stairs/spawner/north, /obj/structure/window/reinforced{ @@ -13869,24 +13810,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/stellardelight/deck1/aft) -"CW" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) "CX" = ( /obj/effect/floor_decal/chapel{ dir = 1 @@ -14314,6 +14237,14 @@ }, /turf/simulated/floor/tiled/techfloor, /area/rnd/workshop) +"DX" = ( +/obj/structure/closet/crate, +/obj/random/maintenance/clean, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "DY" = ( /obj/structure/railing/grey{ dir = 4 @@ -14974,12 +14905,12 @@ "Fy" = ( /obj/structure/flora/pottedplant/orientaltree, /obj/machinery/light, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, /obj/machinery/camera/network/command{ dir = 9 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "Fz" = ( @@ -15634,18 +15565,11 @@ /turf/simulated/floor, /area/stellardelight/deck1/explobriefing) "Hf" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/structure/bed/chair/backed_red{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - dir = 8; - pixel_x = -24 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/table/rack/shelf, +/obj/random/maintenance/research, +/obj/random/maintenance, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "Hg" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -15883,11 +15807,16 @@ /turf/simulated/floor/tiled/dark, /area/security/lobby) "HG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 +/obj/structure/table/woodentable, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/camera/network/command{ + dir = 4 }, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "HH" = ( /obj/machinery/door/firedoor/glass, /obj/structure/window/bay/reinforced, @@ -15964,13 +15893,26 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/medical/exam_room) "HS" = ( -/obj/structure/table/woodentable, -/obj/machinery/microwave{ - pixel_y = 7 +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "1-8" }, -/obj/item/device/radio/intercom{ - dir = 1; - pixel_y = 24 +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 6 + }, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 }, /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) @@ -16767,11 +16709,15 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/stellardelight/deck1/lowermed) "Jz" = ( -/obj/machinery/newscaster{ - pixel_y = 28 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/closet, +/obj/random/contraband, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance/cargo, +/obj/random/maintenance/research, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "JA" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -17554,16 +17500,16 @@ /turf/simulated/floor/tiled/techmaint, /area/stellardelight/deck1/starboard) "Lp" = ( -/obj/machinery/power/apc/angled{ - dir = 8 - }, -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) +/obj/structure/closet, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance/cargo, +/obj/random/maintenance/research, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "Lq" = ( /obj/structure/cable/green{ color = "#42038a"; @@ -17807,25 +17753,11 @@ /turf/simulated/floor/tiled/dark, /area/security/security_cell_hallway) "LO" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "2-8" - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "LP" = ( /obj/structure/table/standard, /obj/machinery/cell_charger, @@ -18832,12 +18764,15 @@ /turf/simulated/floor/tiled/dark, /area/rnd/xenobiology) "NY" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "1-2" +/obj/machinery/door/airlock/angled_bay/hatch{ + dir = 4; + door_color = "#e6ab22"; + name = "Exploration Substation"; + req_one_access = list(10); + stripe_color = "#e6ab22" }, -/turf/simulated/wall/bay/r_wall/steel, -/area/stellardelight/deck1/exploration) +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "NZ" = ( /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 5 @@ -19499,9 +19434,14 @@ /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/exploration) "PE" = ( -/obj/machinery/alarm/angled, +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "PF" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -20604,8 +20544,8 @@ /turf/simulated/floor/tiled/eris, /area/rnd/xenobiology/xenoflora) "RS" = ( -/turf/simulated/wall/bay/purple, -/area/stellardelight/deck1/explobriefing) +/turf/simulated/wall/bay/steel, +/area/maintenance/stellardelight/deck1/exploration) "RT" = ( /obj/machinery/door/firedoor/glass, /obj/structure/cable/white{ @@ -20833,11 +20773,13 @@ /turf/simulated/floor, /area/maintenance/stellardelight/substation/security) "Sn" = ( -/obj/structure/flora/pottedplant/orientaltree, -/obj/machinery/light, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 +/obj/structure/dogbed, +/mob/living/simple_mob/animal/passive/tindalos/twigs, +/obj/structure/cable/green{ + color = "#42038a"; + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "Sq" = ( @@ -21422,27 +21364,10 @@ /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "TD" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 5 - }, +/obj/structure/flora/pottedplant/orientaltree, +/obj/machinery/light, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "TE" = ( /obj/effect/floor_decal/milspec/color/orange/half, /turf/simulated/floor/tiled/dark, @@ -21545,13 +21470,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/stellardelight/deck1/aft) -"TP" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 4 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) "TQ" = ( /obj/structure/cable/green{ icon_state = "1-8" @@ -21568,24 +21486,13 @@ /turf/simulated/floor, /area/maintenance/stellardelight/deck1/starboardcent) "TR" = ( -/obj/structure/cable/green{ - color = "#42038a"; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 8 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/obj/structure/table/rack, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "TS" = ( /obj/random/maintenance/security, /obj/random/maintenance/security, @@ -21834,11 +21741,12 @@ /turf/simulated/floor/tiled/milspec, /area/stellardelight/deck1/explobriefing) "Up" = ( -/obj/machinery/status_display{ - pixel_y = 32 - }, -/turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/explobriefing) +/obj/structure/table/rack/shelf, +/obj/random/medical, +/obj/random/medical, +/obj/random/maintenance, +/turf/simulated/floor, +/area/maintenance/stellardelight/deck1/exploration) "Uq" = ( /obj/structure/cable/pink{ icon_state = "1-2" @@ -23491,14 +23399,9 @@ /turf/simulated/floor/tiled/techfloor, /area/stellardelight/deck1/researchserver) "XH" = ( -/obj/machinery/status_display{ - pixel_y = 32 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 1 - }, +/obj/machinery/alarm/angled, /turf/simulated/floor/tiled/milspec, -/area/stellardelight/deck1/exploration) +/area/stellardelight/deck1/explobriefing) "XJ" = ( /obj/structure/disposalpipe/segment, /obj/effect/floor_decal/milspec/color/emerald/half{ @@ -30669,7 +30572,7 @@ iU iU iU KZ -vT +mP tE Jo BP @@ -30677,7 +30580,7 @@ Cc gw xw vT -Gy +DX ra bD vF @@ -30813,13 +30716,13 @@ um In wm Ag +wm Ly wm wm -rB wm Np -Oz +vT ra RF vF @@ -30953,16 +30856,16 @@ KD KP um if -WM -WM -WM -WM -WM -WM -WM -XD -WM -nk +RS +RS +NY +RS +RS +RS +RS +rB +RS +ra RF vF bD @@ -31095,16 +30998,16 @@ ng cC um if -WM +RS Cl -wq +vT mP Lp -wk -sT -gS -Sn -nk +RS +wq +if +Gy +ra bD hE JE @@ -31237,18 +31140,18 @@ um Jp um if -WM -Rz -Rz -Uo -kg -kg -kg -ji -kO -He -JE -en +RS +Hf +vT +vT +Jz +RS +TR +if +ve +ra +RF +vF uq RF vF @@ -31379,16 +31282,16 @@ Mn PL DQ XM -WM +RS Up -Rz -TC -zZ -yP -zZ -OB -Rz -ny +vT +vT +pd +RS +LO +if +pd +ra bD vF uq @@ -31521,16 +31424,16 @@ Ua Ua Ua Ec +RS +tm WM -HS -Rz -TC -oZ -Zh -rt -OB -Rz -ny +WM +WM +WM +WM +XD +WM +nk uq vF uq @@ -31663,16 +31566,16 @@ ex Pu Ua Ec -WM -Rz -Rz -NA -An -An -An -sN -Rz -ny +Jz +tm +HG +oq +wk +Sn +sT +HS +TD +nk bD vF uq @@ -31805,16 +31708,16 @@ fQ nl MV gt -WM +Oz +tm ql -TP -CW -Fx -fe -qk -aC -Fy -nk +Rz +Rz +Rz +Rz +sN +Rz +ny bD vF uq @@ -31949,16 +31852,16 @@ pC pC pC pC -vy -mW -RS -RS -RS -RS -RS -nk -RF -vF +Rz +Uo +kg +kg +kg +ji +kO +He +JE +rM uq RF vF @@ -32092,13 +31995,13 @@ nd Nx pC XH -TR -WH -mH -WH -WH -Hf -LZ +TC +zZ +yP +zZ +OB +Rz +nk bD hE JE @@ -32234,13 +32137,13 @@ ZQ sO pC CK -jZ -DO -uf -DO -pd -ve -uB +TC +oZ +Zh +rt +OB +Rz +ny uq vF bD @@ -32375,14 +32278,14 @@ tY tY zK pC -By -TD -ux -rM -Qt -Qt -HG -uB +Rz +NA +An +An +An +sN +Rz +ny uq vF uq @@ -32519,12 +32422,12 @@ eJ pC PE jZ -PC -PC -PC -md -tm -LZ +Fx +fe +qk +aC +Fy +nk bD vF uq @@ -32659,16 +32562,16 @@ AD UR xk pC -Jz -LO -ey -ey -ey -ey -ey -NY -JE -oq +vy +mW +WM +WM +WM +WM +WM +nk +RF +vF uq uq uq @@ -32803,10 +32706,10 @@ tu pC zL SE +Dt vz WH WH -WH gh uB bD @@ -33087,7 +32990,7 @@ Pw DO iQ KU -PC +DO PC lw PC From b25c754e07e06a6e7767128e2d5d77d8d56f24e2 Mon Sep 17 00:00:00 2001 From: Heroman Date: Tue, 6 Jun 2023 09:37:32 +1000 Subject: [PATCH 06/17] Adds altevian ramen and taco to altevian vendor --- code/modules/economy/vending_machines_vr.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 48244e3ff99..0b12a5cdcce 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -3519,6 +3519,8 @@ /obj/item/weapon/reagent_containers/food/snacks/ratfruitcake = 15, /obj/item/weapon/reagent_containers/food/snacks/ratpackburger = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackcheese = 8, + /obj/item/weapon/reagent_containers/food/snacks/ratpackramen = 8, + /obj/item/weapon/reagent_containers/food/snacks/ratpacktaco = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackturkey = 2) prices = list(/obj/item/weapon/reagent_containers/food/snacks/ratprotein = 8, @@ -3527,4 +3529,6 @@ /obj/item/weapon/reagent_containers/food/snacks/ratfruitcake = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackburger = 10, /obj/item/weapon/reagent_containers/food/snacks/ratpackcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/ratpackramen = 10, + /obj/item/weapon/reagent_containers/food/snacks/ratpacktaco = 10, /obj/item/weapon/reagent_containers/food/snacks/ratpackturkey = 200) From 1c7d7896276bc4892eb9624845d51d8f538f1e7c Mon Sep 17 00:00:00 2001 From: Rick4242 <42255398+Rick4242@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:25:11 -0500 Subject: [PATCH 07/17] Variety Add-on Patch Goes back and touches/fixes-up #14938. Adds two missing options for the shark 'head' parts that were previously missing, as well as spruces-up their sprites. - "shark upper ears and fin alt style (Colorable)" - "shark lower ears and fin (Colorable)" --- .../new_player/sprite_accessories_ear_vr.dm | 19 ++++++++++++++++-- icons/mob/vore/ears_vr.dmi | Bin 33150 -> 33164 bytes 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm index 28efe9b94ae..c3fa0a98cee 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm @@ -984,11 +984,26 @@ color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin" -/datum/sprite_accessory/ears/sharklowhboth +/datum/sprite_accessory/ears/sharkhighbothalt + name = "shark upper ears and fin alt style (Colorable)" + desc = "" + icon_state = "shark_ears_upper" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "shark_fin_alt" + +/datum/sprite_accessory/ears/sharklowboth + name = "shark lower ears and fin (Colorable)" + desc = "" + icon_state = "shark_ears_lower" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "shark_fin" + +/datum/sprite_accessory/ears/sharklowbothalt name = "shark lower ears and fin alt style (Colorable)" desc = "" icon_state = "shark_ears_lower" do_colouration = 1 color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin_alt" - diff --git a/icons/mob/vore/ears_vr.dmi b/icons/mob/vore/ears_vr.dmi index e6d8d921bf420c5930de7b56fba102d092c5bf20..2d3a62066d77ac3fd6716ef39fdff31985870485 100644 GIT binary patch delta 9376 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 delta 9391 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 Date: Wed, 7 Jun 2023 00:49:10 +0200 Subject: [PATCH 08/17] tgui no yell --- tgui/packages/tgui/hotkeys.ts | 6 +++--- tgui/public/tgui.bundle.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tgui/packages/tgui/hotkeys.ts b/tgui/packages/tgui/hotkeys.ts index f7176bd0030..6e945cf4ebd 100644 --- a/tgui/packages/tgui/hotkeys.ts +++ b/tgui/packages/tgui/hotkeys.ts @@ -103,14 +103,14 @@ const handlePassthrough = (key: KeyEvent) => { // KeyDown if (key.isDown() && !keyState[byondKeyCode]) { keyState[byondKeyCode] = true; - const command = `KeyDown "${byondKeyCode}"`; + const command = `TguiKeyDown "${byondKeyCode}"`; logger.debug(command); return Byond.command(command); } // KeyUp if (key.isUp() && keyState[byondKeyCode]) { keyState[byondKeyCode] = false; - const command = `KeyUp "${byondKeyCode}"`; + const command = `TguiKeyUp "${byondKeyCode}"`; logger.debug(command); return Byond.command(command); } @@ -139,7 +139,7 @@ export const releaseHeldKeys = () => { if (keyState[byondKeyCode]) { keyState[byondKeyCode] = false; logger.log(`releasing key "${byondKeyCode}"`); - Byond.command(`KeyUp "${byondKeyCode}"`); + Byond.command(`TguiKeyUp "${byondKeyCode}"`); } } }; diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index f7847e1e0c5..56dd8c59044 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1 +1 @@ -!function(){var e={21926:function(e,t,n){"use strict";t.__esModule=!0,t.createPopper=void 0,t.popperGenerator=h;var o=m(n(48764)),r=m(n(68349)),a=m(n(3671)),i=m(n(55490)),c=(m(n(40755)),m(n(69282))),l=m(n(27672)),d=(m(n(30752)),m(n(12459)),m(n(27629)),m(n(54220))),s=m(n(75949));t.detectOverflow=s["default"];var u=n(79388);n(15954);function m(e){return e&&e.__esModule?e:{"default":e}}var p={placement:"bottom",modifiers:[],strategy:"absolute"};function f(){for(var e=arguments.length,t=new Array(e),n=0;n0&&(a=(0,r.round)(n.width)/l||1),c>0&&(i=(0,r.round)(n.height)/c||1)}return{width:n.width/a,height:n.height/i,top:n.top/i,right:n.right/a,bottom:n.bottom/i,left:n.left/a,x:n.left/a,y:n.top/i}};var o=n(79388),r=n(36291)},65647:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){var o="clippingParents"===t?function(e){var t=(0,i["default"])((0,m["default"])(e)),n=["absolute","fixed"].indexOf((0,d["default"])(e).position)>=0&&(0,s.isHTMLElement)(e)?(0,c["default"])(e):e;if(!(0,s.isElement)(n))return[];return t.filter((function(e){return(0,s.isElement)(e)&&(0,p["default"])(e,n)&&"body"!==(0,f["default"])(e)}))}(e):[].concat(t),r=[].concat(o,[n]),a=r[0],l=r.reduce((function(t,n){var o=N(e,n);return t.top=(0,C.max)(o.top,t.top),t.right=(0,C.min)(o.right,t.right),t.bottom=(0,C.min)(o.bottom,t.bottom),t.left=(0,C.max)(o.left,t.left),t}),N(e,a));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l};var o=n(15954),r=b(n(8204)),a=b(n(40015)),i=b(n(3671)),c=b(n(55490)),l=b(n(25890)),d=b(n(40755)),s=n(79388),u=b(n(11100)),m=b(n(95136)),p=b(n(62215)),f=b(n(38569)),h=b(n(73060)),C=n(36291);function b(e){return e&&e.__esModule?e:{"default":e}}function N(e,t){return t===o.viewport?(0,h["default"])((0,r["default"])(e)):(0,s.isElement)(t)?function(e){var t=(0,u["default"])(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):(0,h["default"])((0,a["default"])((0,l["default"])(e)))}},48764:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t,n){void 0===n&&(n=!1);var u=(0,i.isHTMLElement)(t),m=(0,i.isHTMLElement)(t)&&function(e){var t=e.getBoundingClientRect(),n=(0,s.round)(t.width)/e.offsetWidth||1,o=(0,s.round)(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),p=(0,l["default"])(t),f=(0,o["default"])(e,m),h={scrollLeft:0,scrollTop:0},C={x:0,y:0};(u||!u&&!n)&&(("body"!==(0,a["default"])(t)||(0,d["default"])(p))&&(h=(0,r["default"])(t)),(0,i.isHTMLElement)(t)?((C=(0,o["default"])(t,!0)).x+=t.clientLeft,C.y+=t.clientTop):p&&(C.x=(0,c["default"])(p)));return{x:f.left+h.scrollLeft-C.x,y:f.top+h.scrollTop-C.y,width:f.width,height:f.height}};var o=u(n(11100)),r=u(n(3514)),a=u(n(38569)),i=n(79388),c=u(n(36056)),l=u(n(25890)),d=u(n(57360)),s=n(36291);function u(e){return e&&e.__esModule?e:{"default":e}}},40755:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,r["default"])(e).getComputedStyle(e)};var o,r=(o=n(96904))&&o.__esModule?o:{"default":o}},25890:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(((0,o.isElement)(e)?e.ownerDocument:e.document)||window.document).documentElement};var o=n(79388)},40015:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=(0,o["default"])(e),l=(0,i["default"])(e),d=null==(t=e.ownerDocument)?void 0:t.body,s=(0,c.max)(n.scrollWidth,n.clientWidth,d?d.scrollWidth:0,d?d.clientWidth:0),u=(0,c.max)(n.scrollHeight,n.clientHeight,d?d.scrollHeight:0,d?d.clientHeight:0),m=-l.scrollLeft+(0,a["default"])(e),p=-l.scrollTop;"rtl"===(0,r["default"])(d||n).direction&&(m+=(0,c.max)(n.clientWidth,d?d.clientWidth:0)-s);return{width:s,height:u,x:m,y:p}};var o=l(n(25890)),r=l(n(40755)),a=l(n(36056)),i=l(n(69211)),c=n(36291);function l(e){return e&&e.__esModule?e:{"default":e}}},41829:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},68349:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=e.offsetWidth,o=e.offsetHeight;Math.abs(t.width-n)<=1&&(n=t.width);Math.abs(t.height-o)<=1&&(o=t.height);return{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}};var o,r=(o=n(11100))&&o.__esModule?o:{"default":o}},38569:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e?(e.nodeName||"").toLowerCase():null}},3514:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return e!==(0,r["default"])(e)&&(0,a.isHTMLElement)(e)?(0,i["default"])(e):(0,o["default"])(e)};var o=c(n(69211)),r=c(n(96904)),a=n(79388),i=c(n(41829));function c(e){return e&&e.__esModule?e:{"default":e}}},55490:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=s(e);for(;n&&(0,c["default"])(n)&&"static"===(0,a["default"])(n).position;)n=s(n);if(n&&("html"===(0,r["default"])(n)||"body"===(0,r["default"])(n)&&"static"===(0,a["default"])(n).position))return t;return n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&(0,i.isHTMLElement)(e)){if("fixed"===(0,a["default"])(e).position)return null}var n=(0,l["default"])(e);(0,i.isShadowRoot)(n)&&(n=n.host);for(;(0,i.isHTMLElement)(n)&&["html","body"].indexOf((0,r["default"])(n))<0;){var o=(0,a["default"])(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t};var o=d(n(96904)),r=d(n(38569)),a=d(n(40755)),i=n(79388),c=d(n(94437)),l=d(n(95136));function d(e){return e&&e.__esModule?e:{"default":e}}function s(e){return(0,i.isHTMLElement)(e)&&"fixed"!==(0,a["default"])(e).position?e.offsetParent:null}},95136:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){if("html"===(0,o["default"])(e))return e;return e.assignedSlot||e.parentNode||((0,a.isShadowRoot)(e)?e.host:null)||(0,r["default"])(e)};var o=i(n(38569)),r=i(n(25890)),a=n(79388);function i(e){return e&&e.__esModule?e:{"default":e}}},43367:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function l(e){if(["html","body","#document"].indexOf((0,a["default"])(e))>=0)return e.ownerDocument.body;if((0,i.isHTMLElement)(e)&&(0,r["default"])(e))return e;return l((0,o["default"])(e))};var o=c(n(95136)),r=c(n(57360)),a=c(n(38569)),i=n(79388);function c(e){return e&&e.__esModule?e:{"default":e}}},8204:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,o["default"])(e),n=(0,r["default"])(e),i=t.visualViewport,c=n.clientWidth,l=n.clientHeight,d=0,s=0;i&&(c=i.width,l=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(d=i.offsetLeft,s=i.offsetTop));return{width:c,height:l,x:d+(0,a["default"])(e),y:s}};var o=i(n(96904)),r=i(n(25890)),a=i(n(36056));function i(e){return e&&e.__esModule?e:{"default":e}}},96904:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}},69211:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}};var o,r=(o=n(96904))&&o.__esModule?o:{"default":o}},36056:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return(0,o["default"])((0,r["default"])(e)).left+(0,a["default"])(e).scrollLeft};var o=i(n(11100)),r=i(n(25890)),a=i(n(69211));function i(e){return e&&e.__esModule?e:{"default":e}}},79388:function(e,t,n){"use strict";t.__esModule=!0,t.isElement=function(e){var t=(0,r["default"])(e).Element;return e instanceof t||e instanceof Element},t.isHTMLElement=function(e){var t=(0,r["default"])(e).HTMLElement;return e instanceof t||e instanceof HTMLElement},t.isShadowRoot=function(e){if("undefined"==typeof ShadowRoot)return!1;var t=(0,r["default"])(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot};var o,r=(o=n(96904))&&o.__esModule?o:{"default":o}},57360:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=(0,r["default"])(e),n=t.overflow,o=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+o)};var o,r=(o=n(40755))&&o.__esModule?o:{"default":o}},94437:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return["table","td","th"].indexOf((0,r["default"])(e))>=0};var o,r=(o=n(38569))&&o.__esModule?o:{"default":o}},3671:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function l(e,t){var n;void 0===t&&(t=[]);var c=(0,o["default"])(e),d=c===(null==(n=e.ownerDocument)?void 0:n.body),s=(0,a["default"])(c),u=d?[s].concat(s.visualViewport||[],(0,i["default"])(c)?c:[]):c,m=t.concat(u);return d?m:m.concat(l((0,r["default"])(u)))};var o=c(n(43367)),r=c(n(95136)),a=c(n(96904)),i=c(n(57360));function c(e){return e&&e.__esModule?e:{"default":e}}},15954:function(e,t){"use strict";t.__esModule=!0,t.write=t.viewport=t.variationPlacements=t.top=t.start=t.right=t.reference=t.read=t.popper=t.placements=t.modifierPhases=t.main=t.left=t.end=t.clippingParents=t.bottom=t.beforeWrite=t.beforeRead=t.beforeMain=t.basePlacements=t.auto=t.afterWrite=t.afterRead=t.afterMain=void 0;t.top="top";var n="bottom";t.bottom=n;var o="right";t.right=o;var r="left";t.left=r;var a="auto";t.auto=a;var i=["top",n,o,r];t.basePlacements=i;var c="start";t.start=c;var l="end";t.end=l;t.clippingParents="clippingParents";t.viewport="viewport";t.popper="popper";t.reference="reference";var d=i.reduce((function(e,t){return e.concat([t+"-"+c,t+"-"+l])}),[]);t.variationPlacements=d;var s=[].concat(i,[a]).reduce((function(e,t){return e.concat([t,t+"-"+c,t+"-"+l])}),[]);t.placements=s;var u="beforeRead";t.beforeRead=u;var m="read";t.read=m;var p="afterRead";t.afterRead=p;var f="beforeMain";t.beforeMain=f;var h="main";t.main=h;var C="afterMain";t.afterMain=C;var b="beforeWrite";t.beforeWrite=b;var N="write";t.write=N;var g="afterWrite";t.afterWrite=g;var V=[u,m,p,f,h,C,b,N,g];t.modifierPhases=V},37809:function(e,t,n){"use strict";t.__esModule=!0;var o={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};t.popperGenerator=t.detectOverflow=t.createPopperLite=t.createPopperBase=t.createPopper=void 0;var r=n(15954);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===r[e]||(t[e]=r[e]))}));var a=n(4207);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===a[e]||(t[e]=a[e]))}));var i=n(21926);t.popperGenerator=i.popperGenerator,t.detectOverflow=i.detectOverflow,t.createPopperBase=i.createPopper;var c=n(17827);t.createPopper=c.createPopper;var l=n(47952);t.createPopperLite=l.createPopper},89290:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(38569))&&o.__esModule?o:{"default":o},a=n(79388);var i={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},i=t.elements[e];(0,a.isHTMLElement)(i)&&(0,r["default"])(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],i=t.attributes[e]||{},c=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});(0,a.isHTMLElement)(o)&&(0,r["default"])(o)&&(Object.assign(o.style,c),Object.keys(i).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};t["default"]=i},71313:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=m(n(27629)),r=m(n(68349)),a=m(n(62215)),i=m(n(55490)),c=m(n(78772)),l=n(54444),d=m(n(11277)),s=m(n(45674)),u=n(15954);n(79388);function m(e){return e&&e.__esModule?e:{"default":e}}var p=function(e,t){return e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,(0,d["default"])("number"!=typeof e?e:(0,s["default"])(e,u.basePlacements))};var f={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,a=e.name,d=e.options,s=n.elements.arrow,m=n.modifiersData.popperOffsets,f=(0,o["default"])(n.placement),h=(0,c["default"])(f),C=[u.left,u.right].indexOf(f)>=0?"height":"width";if(s&&m){var b=p(d.padding,n),N=(0,r["default"])(s),g="y"===h?u.top:u.left,V="y"===h?u.bottom:u.right,v=n.rects.reference[C]+n.rects.reference[h]-m[h]-n.rects.popper[C],_=m[h]-n.rects.reference[h],y=(0,i["default"])(s),k=y?"y"===h?y.clientHeight||0:y.clientWidth||0:0,x=v/2-_/2,w=b[g],B=k-N[C]-b[V],L=k/2-N[C]/2+x,S=(0,l.within)(w,L,B),I=h;n.modifiersData[a]=((t={})[I]=S,t.centerOffset=S-L,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&(0,a["default"])(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};t["default"]=f},54680:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0,t.mapToStyles=p;var o=n(15954),r=u(n(55490)),a=u(n(96904)),i=u(n(25890)),c=u(n(40755)),l=u(n(27629)),d=u(n(31686)),s=n(36291);function u(e){return e&&e.__esModule?e:{"default":e}}var m={top:"auto",right:"auto",bottom:"auto",left:"auto"};function p(e){var t,n=e.popper,l=e.popperRect,d=e.placement,u=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,C=e.adaptive,b=e.roundOffsets,N=e.isFixed,g=p.x,V=void 0===g?0:g,v=p.y,_=void 0===v?0:v,y="function"==typeof b?b({x:V,y:_}):{x:V,y:_};V=y.x,_=y.y;var k=p.hasOwnProperty("x"),x=p.hasOwnProperty("y"),w=o.left,B=o.top,L=window;if(C){var S=(0,r["default"])(n),I="clientHeight",T="clientWidth";if(S===(0,a["default"])(n)&&(S=(0,i["default"])(n),"static"!==(0,c["default"])(S).position&&"absolute"===f&&(I="scrollHeight",T="scrollWidth")),d===o.top||(d===o.left||d===o.right)&&u===o.end)B=o.bottom,_-=(N&&S===L&&L.visualViewport?L.visualViewport.height:S[I])-l.height,_*=h?1:-1;if(d===o.left||(d===o.top||d===o.bottom)&&u===o.end)w=o.right,V-=(N&&S===L&&L.visualViewport?L.visualViewport.width:S[T])-l.width,V*=h?1:-1}var M,A=Object.assign({position:f},C&&m),E=!0===b?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:(0,s.round)(t*o)/o||0,y:(0,s.round)(n*o)/o||0}}({x:V,y:_}):{x:V,y:_};return V=E.x,_=E.y,h?Object.assign({},A,((M={})[B]=x?"0":"",M[w]=k?"0":"",M.transform=(L.devicePixelRatio||1)<=1?"translate("+V+"px, "+_+"px)":"translate3d("+V+"px, "+_+"px, 0)",M)):Object.assign({},A,((t={})[B]=x?_+"px":"",t[w]=k?V+"px":"",t.transform="",t))}var f={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,a=n.adaptive,i=void 0===a||a,c=n.roundOffsets,s=void 0===c||c,u={placement:(0,l["default"])(t.placement),variation:(0,d["default"])(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,p(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,p(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};t["default"]=f},53887:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(96904))&&o.__esModule?o:{"default":o};var a={passive:!0};var i={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,i=o.scroll,c=void 0===i||i,l=o.resize,d=void 0===l||l,s=(0,r["default"])(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return c&&u.forEach((function(e){e.addEventListener("scroll",n.update,a)})),d&&s.addEventListener("resize",n.update,a),function(){c&&u.forEach((function(e){e.removeEventListener("scroll",n.update,a)})),d&&s.removeEventListener("resize",n.update,a)}},data:{}};t["default"]=i},82566:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=s(n(31477)),r=s(n(27629)),a=s(n(44214)),i=s(n(75949)),c=s(n(2894)),l=n(15954),d=s(n(31686));function s(e){return e&&e.__esModule?e:{"default":e}}var u={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var u=n.mainAxis,m=void 0===u||u,p=n.altAxis,f=void 0===p||p,h=n.fallbackPlacements,C=n.padding,b=n.boundary,N=n.rootBoundary,g=n.altBoundary,V=n.flipVariations,v=void 0===V||V,_=n.allowedAutoPlacements,y=t.options.placement,k=(0,r["default"])(y),x=h||(k===y||!v?[(0,o["default"])(y)]:function(e){if((0,r["default"])(e)===l.auto)return[];var t=(0,o["default"])(e);return[(0,a["default"])(e),t,(0,a["default"])(t)]}(y)),w=[y].concat(x).reduce((function(e,n){return e.concat((0,r["default"])(n)===l.auto?(0,c["default"])(t,{placement:n,boundary:b,rootBoundary:N,padding:C,flipVariations:v,allowedAutoPlacements:_}):n)}),[]),B=t.rects.reference,L=t.rects.popper,S=new Map,I=!0,T=w[0],M=0;M=0,F=O?"width":"height",D=(0,i["default"])(t,{placement:A,boundary:b,rootBoundary:N,altBoundary:g,padding:C}),R=O?P?l.right:l.left:P?l.bottom:l.top;B[F]>L[F]&&(R=(0,o["default"])(R));var j=(0,o["default"])(R),W=[];if(m&&W.push(D[E]<=0),f&&W.push(D[R]<=0,D[j]<=0),W.every((function(e){return e}))){T=A,I=!1;break}S.set(A,W)}if(I)for(var z=function(e){var t=w.find((function(t){var n=S.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return T=t,"break"},U=v?3:1;U>0;U--){if("break"===z(U))break}t.placement!==T&&(t.modifiersData[s]._skip=!0,t.placement=T,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};t["default"]=u},27353:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=n(15954),a=(o=n(75949))&&o.__esModule?o:{"default":o};function i(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function c(e){return[r.top,r.right,r.bottom,r.left].some((function(t){return e[t]>=0}))}var l={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,l=t.modifiersData.preventOverflow,d=(0,a["default"])(t,{elementContext:"reference"}),s=(0,a["default"])(t,{altBoundary:!0}),u=i(d,o),m=i(s,r,l),p=c(u),f=c(m);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:m,isReferenceHidden:p,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":f})}};t["default"]=l},4207:function(e,t,n){"use strict";t.__esModule=!0,t.preventOverflow=t.popperOffsets=t.offset=t.hide=t.flip=t.eventListeners=t.computeStyles=t.arrow=t.applyStyles=void 0;var o=m(n(89290));t.applyStyles=o["default"];var r=m(n(71313));t.arrow=r["default"];var a=m(n(54680));t.computeStyles=a["default"];var i=m(n(53887));t.eventListeners=i["default"];var c=m(n(82566));t.flip=c["default"];var l=m(n(27353));t.hide=l["default"];var d=m(n(99873));t.offset=d["default"];var s=m(n(83662));t.popperOffsets=s["default"];var u=m(n(21031));function m(e){return e&&e.__esModule?e:{"default":e}}t.preventOverflow=u["default"]},99873:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0,t.distanceAndSkiddingToXY=i;var o,r=(o=n(27629))&&o.__esModule?o:{"default":o},a=n(15954);function i(e,t,n){var o=(0,r["default"])(e),i=[a.left,a.top].indexOf(o)>=0?-1:1,c="function"==typeof n?n(Object.assign({},t,{placement:e})):n,l=c[0],d=c[1];return l=l||0,d=(d||0)*i,[a.left,a.right].indexOf(o)>=0?{x:d,y:l}:{x:l,y:d}}var c={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,c=void 0===r?[0,0]:r,l=a.placements.reduce((function(e,n){return e[n]=i(n,t.rects,c),e}),{}),d=l[t.placement],s=d.x,u=d.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=l}};t["default"]=c},83662:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o,r=(o=n(2002))&&o.__esModule?o:{"default":o};var a={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=(0,r["default"])({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}};t["default"]=a},21031:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=void 0;var o=n(15954),r=f(n(27629)),a=f(n(78772)),i=f(n(16696)),c=n(54444),l=f(n(68349)),d=f(n(55490)),s=f(n(75949)),u=f(n(31686)),m=f(n(22710)),p=n(36291);function f(e){return e&&e.__esModule?e:{"default":e}}var h={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,f=e.name,h=n.mainAxis,C=void 0===h||h,b=n.altAxis,N=void 0!==b&&b,g=n.boundary,V=n.rootBoundary,v=n.altBoundary,_=n.padding,y=n.tether,k=void 0===y||y,x=n.tetherOffset,w=void 0===x?0:x,B=(0,s["default"])(t,{boundary:g,rootBoundary:V,padding:_,altBoundary:v}),L=(0,r["default"])(t.placement),S=(0,u["default"])(t.placement),I=!S,T=(0,a["default"])(L),M=(0,i["default"])(T),A=t.modifiersData.popperOffsets,E=t.rects.reference,P=t.rects.popper,O="function"==typeof w?w(Object.assign({},t.rects,{placement:t.placement})):w,F="number"==typeof O?{mainAxis:O,altAxis:O}:Object.assign({mainAxis:0,altAxis:0},O),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(A){if(C){var j,W="y"===T?o.top:o.left,z="y"===T?o.bottom:o.right,U="y"===T?"height":"width",H=A[T],G=H+B[W],K=H-B[z],Y=k?-P[U]/2:0,q=S===o.start?E[U]:P[U],$=S===o.start?-P[U]:-E[U],X=t.elements.arrow,Q=k&&X?(0,l["default"])(X):{width:0,height:0},J=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:(0,m["default"])(),Z=J[W],ee=J[z],te=(0,c.within)(0,E[U],Q[U]),ne=I?E[U]/2-Y-te-Z-F.mainAxis:q-te-Z-F.mainAxis,oe=I?-E[U]/2+Y+te+ee+F.mainAxis:$+te+ee+F.mainAxis,re=t.elements.arrow&&(0,d["default"])(t.elements.arrow),ae=re?"y"===T?re.clientTop||0:re.clientLeft||0:0,ie=null!=(j=null==D?void 0:D[T])?j:0,ce=H+ne-ie-ae,le=H+oe-ie,de=(0,c.within)(k?(0,p.min)(G,ce):G,H,k?(0,p.max)(K,le):K);A[T]=de,R[T]=de-H}if(N){var se,ue="x"===T?o.top:o.left,me="x"===T?o.bottom:o.right,pe=A[M],fe="y"===M?"height":"width",he=pe+B[ue],Ce=pe-B[me],be=-1!==[o.top,o.left].indexOf(L),Ne=null!=(se=null==D?void 0:D[M])?se:0,ge=be?he:pe-E[fe]-P[fe]-Ne+F.altAxis,Ve=be?pe+E[fe]+P[fe]-Ne-F.altAxis:Ce,ve=k&&be?(0,c.withinMaxClamp)(ge,pe,Ve):(0,c.within)(k?ge:he,pe,k?Ve:Ce);A[M]=ve,R[M]=ve-pe}t.modifiersData[f]=R}},requiresIfExists:["offset"]};t["default"]=h},47952:function(e,t,n){"use strict";t.__esModule=!0,t.defaultModifiers=t.createPopper=void 0;var o=n(21926);t.popperGenerator=o.popperGenerator,t.detectOverflow=o.detectOverflow;var r=l(n(53887)),a=l(n(83662)),i=l(n(54680)),c=l(n(89290));function l(e){return e&&e.__esModule?e:{"default":e}}var d=[r["default"],a["default"],i["default"],c["default"]];t.defaultModifiers=d;var s=(0,o.popperGenerator)({defaultModifiers:d});t.createPopper=s},17827:function(e,t,n){"use strict";t.__esModule=!0;var o={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};t.defaultModifiers=t.createPopperLite=t.createPopper=void 0;var r=n(21926);t.popperGenerator=r.popperGenerator,t.detectOverflow=r.detectOverflow;var a=C(n(53887)),i=C(n(83662)),c=C(n(54680)),l=C(n(89290)),d=C(n(99873)),s=C(n(82566)),u=C(n(21031)),m=C(n(71313)),p=C(n(27353)),f=n(47952);t.createPopperLite=f.createPopper;var h=n(4207);function C(e){return e&&e.__esModule?e:{"default":e}}Object.keys(h).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===h[e]||(t[e]=h[e]))}));var b=[a["default"],i["default"],c["default"],l["default"],d["default"],s["default"],u["default"],m["default"],p["default"]];t.defaultModifiers=b;var N=(0,r.popperGenerator)({defaultModifiers:b});t.createPopperLite=t.createPopper=N},2894:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,c=n.placement,l=n.boundary,d=n.rootBoundary,s=n.padding,u=n.flipVariations,m=n.allowedAutoPlacements,p=void 0===m?r.placements:m,f=(0,o["default"])(c),h=f?u?r.variationPlacements:r.variationPlacements.filter((function(e){return(0,o["default"])(e)===f})):r.basePlacements,C=h.filter((function(e){return p.indexOf(e)>=0}));0===C.length&&(C=h);var b=C.reduce((function(t,n){return t[n]=(0,a["default"])(e,{placement:n,boundary:l,rootBoundary:d,padding:s})[(0,i["default"])(n)],t}),{});return Object.keys(b).sort((function(e,t){return b[e]-b[t]}))};var o=c(n(31686)),r=n(15954),a=c(n(75949)),i=c(n(27629));function c(e){return e&&e.__esModule?e:{"default":e}}},2002:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t,n=e.reference,c=e.element,l=e.placement,d=l?(0,o["default"])(l):null,s=l?(0,r["default"])(l):null,u=n.x+n.width/2-c.width/2,m=n.y+n.height/2-c.height/2;switch(d){case i.top:t={x:u,y:n.y-c.height};break;case i.bottom:t={x:u,y:n.y+n.height};break;case i.right:t={x:n.x+n.width,y:m};break;case i.left:t={x:n.x-c.width,y:m};break;default:t={x:n.x,y:n.y}}var p=d?(0,a["default"])(d):null;if(null!=p){var f="y"===p?"height":"width";switch(s){case i.start:t[p]=t[p]-(n[f]/2-c[f]/2);break;case i.end:t[p]=t[p]+(n[f]/2-c[f]/2)}}return t};var o=c(n(27629)),r=c(n(31686)),a=c(n(78772)),i=n(15954);function c(e){return e&&e.__esModule?e:{"default":e}}},27672:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=undefined,n(e())}))}))),t}}},75949:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e,t){void 0===t&&(t={});var n=t,m=n.placement,p=void 0===m?e.placement:m,f=n.boundary,h=void 0===f?l.clippingParents:f,C=n.rootBoundary,b=void 0===C?l.viewport:C,N=n.elementContext,g=void 0===N?l.popper:N,V=n.altBoundary,v=void 0!==V&&V,_=n.padding,y=void 0===_?0:_,k=(0,s["default"])("number"!=typeof y?y:(0,u["default"])(y,l.basePlacements)),x=g===l.popper?l.reference:l.popper,w=e.rects.popper,B=e.elements[v?x:g],L=(0,o["default"])((0,d.isElement)(B)?B:B.contextElement||(0,r["default"])(e.elements.popper),h,b),S=(0,a["default"])(e.elements.reference),I=(0,i["default"])({reference:S,element:w,strategy:"absolute",placement:p}),T=(0,c["default"])(Object.assign({},w,I)),M=g===l.popper?T:S,A={top:L.top-M.top+k.top,bottom:M.bottom-L.bottom+k.bottom,left:L.left-M.left+k.left,right:M.right-L.right+k.right},E=e.modifiersData.offset;if(g===l.popper&&E){var P=E[p];Object.keys(A).forEach((function(e){var t=[l.right,l.bottom].indexOf(e)>=0?1:-1,n=[l.top,l.bottom].indexOf(e)>=0?"y":"x";A[e]+=P[n]*t}))}return A};var o=m(n(65647)),r=m(n(25890)),a=m(n(11100)),i=m(n(2002)),c=m(n(73060)),l=n(15954),d=n(79388),s=m(n(11277)),u=m(n(45674));function m(e){return e&&e.__esModule?e:{"default":e}}},45674:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}},80885:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o=0?"x":"y"}},31477:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/left|right|bottom|top/g,(function(e){return n[e]}))};var n={left:"right",right:"left",bottom:"top",top:"bottom"}},44214:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.replace(/start|end/g,(function(e){return n[e]}))};var n={start:"end",end:"start"}},31686:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return e.split("-")[1]}},36291:function(e,t){"use strict";t.__esModule=!0,t.round=t.min=t.max=void 0;var n=Math.max;t.max=n;var o=Math.min;t.min=o;var r=Math.round;t.round=r},54220:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){var t=e.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}},11277:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},(0,r["default"])(),e)};var o,r=(o=n(22710))&&o.__esModule?o:{"default":o}},69282:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){var t=function(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}(e);return o.modifierPhases.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])};var o=n(15954)},73060:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},12459:function(e,t){"use strict";t.__esModule=!0,t["default"]=function(e,t){var n=new Set;return e.filter((function(e){var o=t(e);if(!n.has(o))return n.add(o),!0}))}},30752:function(e,t,n){"use strict";t.__esModule=!0,t["default"]=function(e){e.forEach((function(t){[].concat(Object.keys(t),a).filter((function(e,t,n){return n.indexOf(e)===t})).forEach((function(n){switch(n){case"name":t.name;break;case"enabled":t.enabled;break;case"phase":r.modifierPhases.indexOf(t.phase);break;case"fn":t.fn;break;case"effect":null!=t.effect&&t.effect;break;case"requires":null!=t.requires&&Array.isArray(t.requires);break;case"requiresIfExists":Array.isArray(t.requiresIfExists)}t.requires&&t.requires.forEach((function(t){e.find((function(e){return e.name===t}))}))}))}))};(o=n(80885))&&o.__esModule;var o,r=n(15954);var a=["name","enabled","phase","fn","effect","requires","options"]},54444:function(e,t,n){"use strict";t.__esModule=!0,t.within=r,t.withinMaxClamp=function(e,t,n){var o=r(e,t,n);return o>n?n:o};var o=n(36291);function r(e,t,n){return(0,o.max)(e,(0,o.min)(t,n))}},7696:function(e,t,n){"use strict";var o=n(45744),r=n(56279),a=TypeError;e.exports=function(e){if(o(e))return e;throw a(r(e)+" is not a function")}},99079:function(e,t,n){"use strict";var o=n(49332),r=n(56279),a=TypeError;e.exports=function(e){if(o(e))return e;throw a(r(e)+" is not a constructor")}},3760:function(e,t,n){"use strict";var o=n(45744),r=String,a=TypeError;e.exports=function(e){if("object"==typeof e||o(e))return e;throw a("Can't set "+r(e)+" as a prototype")}},48144:function(e,t,n){"use strict";var o=n(43741),r=n(48525),a=n(92723).f,i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a(c,i,{configurable:!0,value:r(null)}),e.exports=function(e){c[i][e]=!0}},21679:function(e,t,n){"use strict";var o=n(59529).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},41706:function(e,t,n){"use strict";var o=n(76469),r=TypeError;e.exports=function(e,t){if(o(t,e))return e;throw r("Incorrect invocation")}},65522:function(e,t,n){"use strict";var o=n(5484),r=String,a=TypeError;e.exports=function(e){if(o(e))return e;throw a(r(e)+" is not an object")}},65167:function(e){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},26974:function(e,t,n){"use strict";var o=n(39125);e.exports=o((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},92574:function(e,t,n){"use strict";var o,r,a,i=n(65167),c=n(77849),l=n(61770),d=n(45744),s=n(5484),u=n(77807),m=n(10374),p=n(56279),f=n(87229),h=n(73e3),C=n(92723).f,b=n(76469),N=n(56997),g=n(44958),V=n(43741),v=n(8220),_=n(48797),y=_.enforce,k=_.get,x=l.Int8Array,w=x&&x.prototype,B=l.Uint8ClampedArray,L=B&&B.prototype,S=x&&N(x),I=w&&N(w),T=Object.prototype,M=l.TypeError,A=V("toStringTag"),E=v("TYPED_ARRAY_TAG"),P="TypedArrayConstructor",O=i&&!!g&&"Opera"!==m(l.opera),F=!1,D={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},R={BigInt64Array:8,BigUint64Array:8},j=function(e){if(!s(e))return!1;var t=m(e);return"DataView"===t||u(D,t)||u(R,t)},W=function(e){if(!s(e))return!1;var t=m(e);return u(D,t)||u(R,t)};for(o in D)(a=(r=l[o])&&r.prototype)?y(a).TypedArrayConstructor=r:O=!1;for(o in R)(a=(r=l[o])&&r.prototype)&&(y(a).TypedArrayConstructor=r);if((!O||!d(S)||S===Function.prototype)&&(S=function(){throw M("Incorrect invocation")},O))for(o in D)l[o]&&g(l[o],S);if((!O||!I||I===T)&&(I=S.prototype,O))for(o in D)l[o]&&g(l[o].prototype,I);if(O&&N(L)!==I&&g(L,I),c&&!u(I,A))for(o in F=!0,C(I,A,{get:function(){return s(this)?this[E]:undefined}}),D)l[o]&&f(l[o],E,o);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_TAG:F&&E,aTypedArray:function(e){if(W(e))return e;throw M("Target is not a typed array")},aTypedArrayConstructor:function(e){if(d(e)&&(!g||b(S,e)))return e;throw M(p(e)+" is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n,o){if(c){if(n)for(var r in D){var a=l[r];if(a&&u(a.prototype,e))try{delete a.prototype[e]}catch(i){try{a.prototype[e]=t}catch(d){}}}I[e]&&!n||h(I,e,n?t:O&&w[e]||t,o)}},exportTypedArrayStaticMethod:function(e,t,n){var o,r;if(c){if(g){if(n)for(o in D)if((r=l[o])&&u(r,e))try{delete r[e]}catch(a){}if(S[e]&&!n)return;try{return h(S,e,n?t:O&&S[e]||t)}catch(a){}}for(o in D)!(r=l[o])||r[e]&&!n||h(r,e,t)}},getTypedArrayConstructor:function z(e){var t=N(e);if(s(t)){var n=k(t);return n&&u(n,P)?n.TypedArrayConstructor:z(t)}},isView:j,isTypedArray:W,TypedArray:S,TypedArrayPrototype:I}},10377:function(e,t,n){"use strict";var o=n(61770),r=n(90655),a=n(77849),i=n(65167),c=n(82429),l=n(87229),d=n(60495),s=n(39125),u=n(41706),m=n(94868),p=n(87543),f=n(76124),h=n(29209),C=n(56997),b=n(44958),N=n(94600).f,g=n(92723).f,V=n(8093),v=n(74337),_=n(93182),y=n(48797),k=c.PROPER,x=c.CONFIGURABLE,w=y.get,B=y.set,L="ArrayBuffer",S="DataView",I="Wrong index",T=o.ArrayBuffer,M=T,A=M&&M.prototype,E=o.DataView,P=E&&E.prototype,O=Object.prototype,F=o.Array,D=o.RangeError,R=r(V),j=r([].reverse),W=h.pack,z=h.unpack,U=function(e){return[255&e]},H=function(e){return[255&e,e>>8&255]},G=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},K=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Y=function(e){return W(e,23,4)},q=function(e){return W(e,52,8)},$=function(e,t){g(e.prototype,t,{get:function(){return w(this)[t]}})},X=function(e,t,n,o){var r=f(n),a=w(e);if(r+t>a.byteLength)throw D(I);var i=w(a.buffer).bytes,c=r+a.byteOffset,l=v(i,c,c+t);return o?l:j(l)},Q=function(e,t,n,o,r,a){var i=f(n),c=w(e);if(i+t>c.byteLength)throw D(I);for(var l=w(c.buffer).bytes,d=i+c.byteOffset,s=o(+r),u=0;ute;)(Z=ee[te++])in M||l(M,Z,T[Z]);A.constructor=M}b&&C(P)!==O&&b(P,O);var ne=new E(new M(2)),oe=r(P.setInt8);ne.setInt8(0,2147483648),ne.setInt8(1,2147483649),!ne.getInt8(0)&&ne.getInt8(1)||d(P,{setInt8:function(e,t){oe(this,e,t<<24>>24)},setUint8:function(e,t){oe(this,e,t<<24>>24)}},{unsafe:!0})}else A=(M=function(e){u(this,A);var t=f(e);B(this,{bytes:R(F(t),0),byteLength:t}),a||(this.byteLength=t)}).prototype,P=(E=function(e,t,n){u(this,P),u(e,A);var o=w(e).byteLength,r=m(t);if(r<0||r>o)throw D("Wrong offset");if(r+(n=n===undefined?o-r:p(n))>o)throw D("Wrong length");B(this,{buffer:e,byteLength:n,byteOffset:r}),a||(this.buffer=e,this.byteLength=n,this.byteOffset=r)}).prototype,a&&($(M,"byteLength"),$(E,"buffer"),$(E,"byteLength"),$(E,"byteOffset")),d(P,{getInt8:function(e){return X(this,1,e)[0]<<24>>24},getUint8:function(e){return X(this,1,e)[0]},getInt16:function(e){var t=X(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=X(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return K(X(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return K(X(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return z(X(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return z(X(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){Q(this,1,e,U,t)},setUint8:function(e,t){Q(this,1,e,U,t)},setInt16:function(e,t){Q(this,2,e,H,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){Q(this,2,e,H,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){Q(this,4,e,G,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){Q(this,4,e,G,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){Q(this,4,e,Y,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){Q(this,8,e,q,t,arguments.length>2?arguments[2]:undefined)}});_(M,L),_(E,S),e.exports={ArrayBuffer:M,DataView:E}},21497:function(e,t,n){"use strict";var o=n(73502),r=n(312),a=n(10950),i=n(33099),c=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),l=a(n),d=r(e,l),s=r(t,l),u=arguments.length>2?arguments[2]:undefined,m=c((u===undefined?l:r(u,l))-s,l-d),p=1;for(s0;)s in n?n[d]=n[s]:i(n,d),d+=p,s+=p;return n}},8093:function(e,t,n){"use strict";var o=n(73502),r=n(312),a=n(10950);e.exports=function(e){for(var t=o(this),n=a(t),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,d=l===undefined?n:r(l,n);d>c;)t[c++]=e;return t}},29074:function(e,t,n){"use strict";var o=n(36249).forEach,r=n(74640)("forEach");e.exports=r?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}},15993:function(e,t,n){"use strict";var o=n(10950);e.exports=function(e,t){for(var n=0,r=o(t),a=new e(r);r>n;)a[n]=t[n++];return a}},49981:function(e,t,n){"use strict";var o=n(9341),r=n(76348),a=n(73502),i=n(63635),c=n(94535),l=n(49332),d=n(10950),s=n(61154),u=n(93247),m=n(52522),p=Array;e.exports=function(e){var t=a(e),n=l(this),f=arguments.length,h=f>1?arguments[1]:undefined,C=h!==undefined;C&&(h=o(h,f>2?arguments[2]:undefined));var b,N,g,V,v,_,y=m(t),k=0;if(!y||this===p&&c(y))for(b=d(t),N=n?new this(b):p(b);b>k;k++)_=C?h(t[k],k):t[k],s(N,k,_);else for(v=(V=u(t,y)).next,N=n?new this:[];!(g=r(v,V)).done;k++)_=C?i(V,h,[g.value,k],!0):g.value,s(N,k,_);return N.length=k,N}},89344:function(e,t,n){"use strict";var o=n(4254),r=n(312),a=n(10950),i=function(e){return function(t,n,i){var c,l=o(t),d=a(l),s=r(i,d);if(e&&n!=n){for(;d>s;)if((c=l[s++])!=c)return!0}else for(;d>s;s++)if((e||s in l)&&l[s]===n)return e||s||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},36249:function(e,t,n){"use strict";var o=n(9341),r=n(90655),a=n(83609),i=n(73502),c=n(10950),l=n(64711),d=r([].push),s=function(e){var t=1==e,n=2==e,r=3==e,s=4==e,u=6==e,m=7==e,p=5==e||u;return function(f,h,C,b){for(var N,g,V=i(f),v=a(V),_=o(h,C),y=c(v),k=0,x=b||l,w=t?x(f,y):n||m?x(f,0):undefined;y>k;k++)if((p||k in v)&&(g=_(N=v[k],k,V),e))if(t)w[k]=g;else if(g)switch(e){case 3:return!0;case 5:return N;case 6:return k;case 2:d(w,N)}else switch(e){case 4:return!1;case 7:d(w,N)}return u?-1:r||s?s:w}};e.exports={forEach:s(0),map:s(1),filter:s(2),some:s(3),every:s(4),find:s(5),findIndex:s(6),filterReject:s(7)}},93881:function(e,t,n){"use strict";var o=n(10261),r=n(4254),a=n(94868),i=n(10950),c=n(74640),l=Math.min,d=[].lastIndexOf,s=!!d&&1/[1].lastIndexOf(1,-0)<0,u=c("lastIndexOf"),m=s||!u;e.exports=m?function(e){if(s)return o(d,this,arguments)||0;var t=r(this),n=i(t),c=n-1;for(arguments.length>1&&(c=l(c,a(arguments[1]))),c<0&&(c=n+c);c>=0;c--)if(c in t&&t[c]===e)return c||0;return-1}:d},10112:function(e,t,n){"use strict";var o=n(39125),r=n(43741),a=n(64279),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},74640:function(e,t,n){"use strict";var o=n(39125);e.exports=function(e,t){var n=[][e];return!!n&&o((function(){n.call(null,t||function(){return 1},1)}))}},21038:function(e,t,n){"use strict";var o=n(7696),r=n(73502),a=n(83609),i=n(10950),c=TypeError,l=function(e){return function(t,n,l,d){o(n);var s=r(t),u=a(s),m=i(s),p=e?m-1:0,f=e?-1:1;if(l<2)for(;;){if(p in u){d=u[p],p+=f;break}if(p+=f,e?p<0:m<=p)throw c("Reduce of empty array with no initial value")}for(;e?p>=0:m>p;p+=f)p in u&&(d=n(d,u[p],p,s));return d}};e.exports={left:l(!1),right:l(!0)}},74337:function(e,t,n){"use strict";var o=n(312),r=n(10950),a=n(61154),i=Array,c=Math.max;e.exports=function(e,t,n){for(var l=r(e),d=o(t,l),s=o(n===undefined?l:n,l),u=i(c(s-d,0)),m=0;d0;)e[o]=e[--o];o!==a++&&(e[o]=n)}return e},i=function(e,t,n,o){for(var r=t.length,a=n.length,i=0,c=0;i1?arguments[1]:undefined);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!N(this,e)}}),a(p,n?{get:function(e){var t=N(this,e);return t&&t.value},set:function(e,t){return b(this,0===e?0:e,t)}}:{add:function(e){return b(this,e=0===e?0:e,e)}}),u&&o(p,"size",{get:function(){return C(this).size}}),s},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);d(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),s(t)}}},81995:function(e,t,n){"use strict";var o=n(90655),r=n(60495),a=n(49632).getWeakData,i=n(65522),c=n(5484),l=n(41706),d=n(47916),s=n(36249),u=n(77807),m=n(48797),p=m.set,f=m.getterFor,h=s.find,C=s.findIndex,b=o([].splice),N=0,g=function(e){return e.frozen||(e.frozen=new V)},V=function(){this.entries=[]},v=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};V.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=C(this.entries,(function(t){return t[0]===e}));return~t&&b(this.entries,t,1),!!~t}},e.exports={getConstructor:function(e,t,n,o){var s=e((function(e,r){l(e,m),p(e,{type:t,id:N++,frozen:undefined}),r!=undefined&&d(r,e[o],{that:e,AS_ENTRIES:n})})),m=s.prototype,h=f(t),C=function(e,t,n){var o=h(e),r=a(i(t),!0);return!0===r?g(o).set(t,n):r[o.id]=n,e};return r(m,{"delete":function(e){var t=h(this);if(!c(e))return!1;var n=a(e);return!0===n?g(t)["delete"](e):n&&u(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!c(e))return!1;var n=a(e);return!0===n?g(t).has(e):n&&u(n,t.id)}}),r(m,n?{get:function(e){var t=h(this);if(c(e)){var n=a(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return C(this,e,t)}}:{add:function(e){return C(this,e,!0)}}),s}}},18291:function(e,t,n){"use strict";var o=n(59450),r=n(61770),a=n(90655),i=n(16851),c=n(73e3),l=n(49632),d=n(47916),s=n(41706),u=n(45744),m=n(5484),p=n(39125),f=n(98994),h=n(93182),C=n(75121);e.exports=function(e,t,n){var b=-1!==e.indexOf("Map"),N=-1!==e.indexOf("Weak"),g=b?"set":"add",V=r[e],v=V&&V.prototype,_=V,y={},k=function(e){var t=a(v[e]);c(v,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(N&&!m(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return N&&!m(e)?undefined:t(this,0===e?0:e)}:"has"==e?function(e){return!(N&&!m(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(i(e,!u(V)||!(N||v.forEach&&!p((function(){(new V).entries().next()})))))_=n.getConstructor(t,e,b,g),l.enable();else if(i(e,!0)){var x=new _,w=x[g](N?{}:-0,1)!=x,B=p((function(){x.has(1)})),L=f((function(e){new V(e)})),S=!N&&p((function(){for(var e=new V,t=5;t--;)e[g](t,t);return!e.has(-0)}));L||((_=t((function(e,t){s(e,v);var n=C(new V,e,_);return t!=undefined&&d(t,n[g],{that:n,AS_ENTRIES:b}),n}))).prototype=v,v.constructor=_),(B||S)&&(k("delete"),k("has"),b&&k("get")),(S||w)&&k(g),N&&v.clear&&delete v.clear}return y[e]=_,o({global:!0,constructor:!0,forced:_!=V},y),h(_,e),N||n.setStrong(_,e,b),_}},35155:function(e,t,n){"use strict";var o=n(77807),r=n(75379),a=n(12488),i=n(92723);e.exports=function(e,t,n){for(var c=r(t),l=i.f,d=a.f,s=0;s"+l+""}},92413:function(e,t,n){"use strict";var o=n(80936).IteratorPrototype,r=n(48525),a=n(20471),i=n(93182),c=n(53481),l=function(){return this};e.exports=function(e,t,n,d){var s=t+" Iterator";return e.prototype=r(o,{next:a(+!d,n)}),i(e,s,!1,!0),c[s]=l,e}},87229:function(e,t,n){"use strict";var o=n(77849),r=n(92723),a=n(20471);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},20471:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},61154:function(e,t,n){"use strict";var o=n(23986),r=n(92723),a=n(20471);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},36849:function(e,t,n){"use strict";var o=n(90655),r=n(39125),a=n(79408).start,i=RangeError,c=Math.abs,l=Date.prototype,d=l.toISOString,s=o(l.getTime),u=o(l.getUTCDate),m=o(l.getUTCFullYear),p=o(l.getUTCHours),f=o(l.getUTCMilliseconds),h=o(l.getUTCMinutes),C=o(l.getUTCMonth),b=o(l.getUTCSeconds);e.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=d.call(new Date(-50000000000001))}))||!r((function(){d.call(new Date(NaN))}))?function(){if(!isFinite(s(this)))throw i("Invalid time value");var e=this,t=m(e),n=f(e),o=t<0?"-":t>9999?"+":"";return o+a(c(t),o?6:4,0)+"-"+a(C(e)+1,2,0)+"-"+a(u(e),2,0)+"T"+a(p(e),2,0)+":"+a(h(e),2,0)+":"+a(b(e),2,0)+"."+a(n,3,0)+"Z"}:d},81990:function(e,t,n){"use strict";var o=n(65522),r=n(2118),a=TypeError;e.exports=function(e){if(o(this),"string"===e||"default"===e)e="string";else if("number"!==e)throw a("Incorrect hint");return r(this,e)}},66384:function(e,t,n){"use strict";var o=n(28859),r=n(92723);e.exports=function(e,t,n){return n.get&&o(n.get,t,{getter:!0}),n.set&&o(n.set,t,{setter:!0}),r.f(e,t,n)}},73e3:function(e,t,n){"use strict";var o=n(45744),r=n(92723),a=n(28859),i=n(58962);e.exports=function(e,t,n,c){c||(c={});var l=c.enumerable,d=c.name!==undefined?c.name:t;return o(n)&&a(n,d,c),c.global?l?e[t]=n:i(t,n):(c.unsafe?e[t]&&(l=!0):delete e[t],l?e[t]=n:r.f(e,t,{value:n,enumerable:!1,configurable:!c.nonConfigurable,writable:!c.nonWritable})),e}},60495:function(e,t,n){"use strict";var o=n(73e3);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},58962:function(e,t,n){"use strict";var o=n(61770),r=Object.defineProperty;e.exports=function(e,t){try{r(o,e,{value:t,configurable:!0,writable:!0})}catch(n){o[e]=t}return t}},11335:function(e,t,n){"use strict";var o=n(59450),r=n(76348),a=n(37249),i=n(82429),c=n(45744),l=n(92413),d=n(56997),s=n(44958),u=n(93182),m=n(87229),p=n(73e3),f=n(43741),h=n(53481),C=n(80936),b=i.PROPER,N=i.CONFIGURABLE,g=C.IteratorPrototype,V=C.BUGGY_SAFARI_ITERATORS,v=f("iterator"),_="keys",y="values",k="entries",x=function(){return this};e.exports=function(e,t,n,i,f,C,w){l(n,t,i);var B,L,S,I=function(e){if(e===f&&P)return P;if(!V&&e in A)return A[e];switch(e){case _:case y:case k:return function(){return new n(this,e)}}return function(){return new n(this)}},T=t+" Iterator",M=!1,A=e.prototype,E=A[v]||A["@@iterator"]||f&&A[f],P=!V&&E||I(f),O="Array"==t&&A.entries||E;if(O&&(B=d(O.call(new e)))!==Object.prototype&&B.next&&(a||d(B)===g||(s?s(B,g):c(B[v])||p(B,v,x)),u(B,T,!0,!0),a&&(h[T]=x)),b&&f==y&&E&&E.name!==y&&(!a&&N?m(A,"name",y):(M=!0,P=function(){return r(E,this)})),f)if(L={values:I(y),keys:C?P:I(_),entries:I(k)},w)for(S in L)(V||M||!(S in A))&&p(A,S,L[S]);else o({target:t,proto:!0,forced:V||M},L);return a&&!w||A[v]===P||p(A,v,P,{name:f}),h[t]=P,L}},89604:function(e,t,n){"use strict";var o=n(62660),r=n(77807),a=n(68438),i=n(92723).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},33099:function(e,t,n){"use strict";var o=n(56279),r=TypeError;e.exports=function(e,t){if(!delete e[t])throw r("Cannot delete property "+o(t)+" of "+o(e))}},77849:function(e,t,n){"use strict";var o=n(39125);e.exports=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},50842:function(e,t,n){"use strict";var o=n(61770),r=n(5484),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},97989:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},13811:function(e,t,n){"use strict";var o=n(42630).match(/firefox\/(\d+)/i);e.exports=!!o&&+o[1]},15904:function(e){"use strict";e.exports="object"==typeof window&&"object"!=typeof Deno},86936:function(e,t,n){"use strict";var o=n(42630);e.exports=/MSIE|Trident/.test(o)},48715:function(e,t,n){"use strict";var o=n(42630),r=n(61770);e.exports=/ipad|iphone|ipod/i.test(o)&&r.Pebble!==undefined},25515:function(e,t,n){"use strict";var o=n(42630);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(o)},67745:function(e,t,n){"use strict";var o=n(61496),r=n(61770);e.exports="process"==o(r.process)},35016:function(e,t,n){"use strict";var o=n(42630);e.exports=/web0s(?!.*chrome)/i.test(o)},42630:function(e,t,n){"use strict";var o=n(54965);e.exports=o("navigator","userAgent")||""},64279:function(e,t,n){"use strict";var o,r,a=n(61770),i=n(42630),c=a.process,l=a.Deno,d=c&&c.versions||l&&l.version,s=d&&d.v8;s&&(r=(o=s.split("."))[0]>0&&o[0]<4?1:+(o[0]+o[1])),!r&&i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=+o[1]),e.exports=r},86778:function(e,t,n){"use strict";var o=n(42630).match(/AppleWebKit\/(\d+)\./);e.exports=!!o&&+o[1]},59096:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},59450:function(e,t,n){"use strict";var o=n(61770),r=n(12488).f,a=n(87229),i=n(73e3),c=n(58962),l=n(35155),d=n(16851);e.exports=function(e,t){var n,s,u,m,p,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(s in t){if(m=t[s],u=e.dontCallGetSet?(p=r(n,s))&&p.value:n[s],!d(h?s:f+(C?".":"#")+s,e.forced)&&u!==undefined){if(typeof m==typeof u)continue;l(m,u)}(e.sham||u&&u.sham)&&a(m,"sham",!0),i(n,s,m,e)}}},39125:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},6531:function(e,t,n){"use strict";n(50044);var o=n(90655),r=n(73e3),a=n(50174),i=n(39125),c=n(43741),l=n(87229),d=c("species"),s=RegExp.prototype;e.exports=function(e,t,n,u){var m=c(e),p=!i((function(){var t={};return t[m]=function(){return 7},7!=""[e](t)})),f=p&&!i((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[d]=function(){return n},n.flags="",n[m]=/./[m]),n.exec=function(){return t=!0,null},n[m](""),!t}));if(!p||!f||n){var h=o(/./[m]),C=t(m,""[e],(function(e,t,n,r,i){var c=o(e),l=t.exec;return l===a||l===s.exec?p&&!i?{done:!0,value:h(t,n,r)}:{done:!0,value:c(n,t,r)}:{done:!1}}));r(String.prototype,e,C[0]),r(s,m,C[1])}u&&l(s[m],"sham",!0)}},23507:function(e,t,n){"use strict";var o=n(98037),r=n(10950),a=n(97989),i=n(9341);e.exports=function c(e,t,n,l,d,s,u,m){for(var p,f=d,h=0,C=!!u&&i(u,m);h0&&o(p)?f=c(e,t,p,r(p),f,s-1)-1:(a(f+1),e[f]=p),f++),h++;return f}},57724:function(e,t,n){"use strict";var o=n(39125);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},10261:function(e,t,n){"use strict";var o=n(14687),r=Function.prototype,a=r.apply,i=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(o?i.bind(a):function(){return i.apply(a,arguments)})},9341:function(e,t,n){"use strict";var o=n(90655),r=n(7696),a=n(14687),i=o(o.bind);e.exports=function(e,t){return r(e),t===undefined?e:a?i(e,t):function(){return e.apply(t,arguments)}}},14687:function(e,t,n){"use strict";var o=n(39125);e.exports=!o((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},38349:function(e,t,n){"use strict";var o=n(90655),r=n(7696),a=n(5484),i=n(77807),c=n(53898),l=n(14687),d=Function,s=o([].concat),u=o([].join),m={},p=function(e,t,n){if(!i(m,t)){for(var o=[],r=0;r]*>)/g,s=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,o,u,m){var p=n+e.length,f=o.length,h=s;return u!==undefined&&(u=r(u),h=d),c(m,h,(function(r,c){var d;switch(i(c,0)){case"$":return"$";case"&":return e;case"`":return l(t,0,n);case"'":return l(t,p);case"<":d=u[l(c,1,-1)];break;default:var s=+c;if(0===s)return r;if(s>f){var m=a(s/10);return 0===m?r:m<=f?o[m-1]===undefined?i(c,1):o[m-1]+i(c,1):r}d=o[s-1]}return d===undefined?"":d}))}},61770:function(e,t,n){"use strict";var o=function(e){return e&&e.Math==Math&&e};e.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},77807:function(e,t,n){"use strict";var o=n(90655),r=n(73502),a=o({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(r(e),t)}},31645:function(e){"use strict";e.exports={}},66791:function(e,t,n){"use strict";var o=n(61770);e.exports=function(e,t){var n=o.console;n&&n.error&&(1==arguments.length?n.error(e):n.error(e,t))}},29093:function(e,t,n){"use strict";var o=n(54965);e.exports=o("document","documentElement")},17041:function(e,t,n){"use strict";var o=n(77849),r=n(39125),a=n(50842);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},29209:function(e){"use strict";var t=Array,n=Math.abs,o=Math.pow,r=Math.floor,a=Math.log,i=Math.LN2;e.exports={pack:function(e,c,l){var d,s,u,m=t(l),p=8*l-c-1,f=(1<>1,C=23===c?o(2,-24)-o(2,-77):0,b=e<0||0===e&&1/e<0?1:0,N=0;for((e=n(e))!=e||e===Infinity?(s=e!=e?1:0,d=f):(d=r(a(e)/i),e*(u=o(2,-d))<1&&(d--,u*=2),(e+=d+h>=1?C/u:C*o(2,1-h))*u>=2&&(d++,u/=2),d+h>=f?(s=0,d=f):d+h>=1?(s=(e*u-1)*o(2,c),d+=h):(s=e*o(2,h-1)*o(2,c),d=0));c>=8;)m[N++]=255&s,s/=256,c-=8;for(d=d<0;)m[N++]=255&d,d/=256,p-=8;return m[--N]|=128*b,m},unpack:function(e,t){var n,r=e.length,a=8*r-t-1,i=(1<>1,l=a-7,d=r-1,s=e[d--],u=127&s;for(s>>=7;l>0;)u=256*u+e[d--],l-=8;for(n=u&(1<<-l)-1,u>>=-l,l+=t;l>0;)n=256*n+e[d--],l-=8;if(0===u)u=1-c;else{if(u===i)return n?NaN:s?-Infinity:Infinity;n+=o(2,t),u-=c}return(s?-1:1)*n*o(2,u-t)}}},83609:function(e,t,n){"use strict";var o=n(90655),r=n(39125),a=n(61496),i=Object,c=o("".split);e.exports=r((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"==a(e)?c(e,""):i(e)}:i},75121:function(e,t,n){"use strict";var o=n(45744),r=n(5484),a=n(44958);e.exports=function(e,t,n){var i,c;return a&&o(i=t.constructor)&&i!==n&&r(c=i.prototype)&&c!==n.prototype&&a(e,c),e}},44790:function(e,t,n){"use strict";var o=n(90655),r=n(45744),a=n(42878),i=o(Function.toString);r(a.inspectSource)||(a.inspectSource=function(e){return i(e)}),e.exports=a.inspectSource},49632:function(e,t,n){"use strict";var o=n(59450),r=n(90655),a=n(31645),i=n(5484),c=n(77807),l=n(92723).f,d=n(94600),s=n(25586),u=n(65067),m=n(8220),p=n(57724),f=!1,h=m("meta"),C=0,b=function(e){l(e,h,{value:{objectID:"O"+C++,weakData:{}}})},N=e.exports={enable:function(){N.enable=function(){},f=!0;var e=d.f,t=r([].splice),n={};n[h]=1,e(n).length&&(d.f=function(n){for(var o=e(n),r=0,a=o.length;rN;N++)if((V=S(e[N]))&&d(h,V))return V;return new f(!1)}C=s(e,b)}for(v=C.next;!(_=r(v,C)).done;){try{V=S(_.value)}catch(I){m(C,"throw",I)}if("object"==typeof V&&V&&d(h,V))return V}return new f(!1)}},80261:function(e,t,n){"use strict";var o=n(76348),r=n(65522),a=n(36750);e.exports=function(e,t,n){var i,c;r(e);try{if(!(i=a(e,"return"))){if("throw"===t)throw n;return n}i=o(i,e)}catch(l){c=!0,i=l}if("throw"===t)throw n;if(c)throw i;return r(i),n}},80936:function(e,t,n){"use strict";var o,r,a,i=n(39125),c=n(45744),l=n(48525),d=n(56997),s=n(73e3),u=n(43741),m=n(37249),p=u("iterator"),f=!1;[].keys&&("next"in(a=[].keys())?(r=d(d(a)))!==Object.prototype&&(o=r):f=!0),o==undefined||i((function(){var e={};return o[p].call(e)!==e}))?o={}:m&&(o=l(o)),c(o[p])||s(o,p,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:f}},53481:function(e){"use strict";e.exports={}},10950:function(e,t,n){"use strict";var o=n(87543);e.exports=function(e){return o(e.length)}},28859:function(e,t,n){"use strict";var o=n(39125),r=n(45744),a=n(77807),i=n(77849),c=n(82429).CONFIGURABLE,l=n(44790),d=n(48797),s=d.enforce,u=d.get,m=Object.defineProperty,p=i&&!o((function(){return 8!==m((function(){}),"length",{value:8}).length})),f=String(String).split("String"),h=e.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||c&&e.name!==t)&&m(e,"name",{value:t,configurable:!0}),p&&n&&a(n,"arity")&&e.length!==n.arity&&m(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?i&&m(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=undefined)}catch(r){}var o=s(e);return a(o,"source")||(o.source=f.join("string"==typeof t?t:"")),e};Function.prototype.toString=h((function(){return r(this)&&u(this).source||l(this)}),"toString")},73346:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}:t},92647:function(e,t,n){"use strict";var o=n(61303),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),d=a(2,-126);e.exports=Math.fround||function(e){var t,n,a=+e,s=r(a),u=o(a);return sl||n!=n?u*Infinity:u*n}},12153:function(e){"use strict";var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},28010:function(e){"use strict";var t=Math.log;e.exports=Math.log1p||function(e){var n=+e;return n>-1e-8&&n<1e-8?n-n*n/2:t(1+n)}},61303:function(e){"use strict";e.exports=Math.sign||function(e){var t=+e;return 0==t||t!=t?t:t<0?-1:1}},9275:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var o=+e;return(o>0?n:t)(o)}},34063:function(e,t,n){"use strict";var o,r,a,i,c,l,d,s,u=n(61770),m=n(9341),p=n(12488).f,f=n(61777).set,h=n(25515),C=n(48715),b=n(35016),N=n(67745),g=u.MutationObserver||u.WebKitMutationObserver,V=u.document,v=u.process,_=u.Promise,y=p(u,"queueMicrotask"),k=y&&y.value;k||(o=function(){var e,t;for(N&&(e=v.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},h||N||b||!g||!V?!C&&_&&_.resolve?((d=_.resolve(undefined)).constructor=_,s=m(d.then,d),i=function(){s(o)}):N?i=function(){v.nextTick(o)}:(f=m(f,u),i=function(){f(o)}):(c=!0,l=V.createTextNode(""),new g(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c})),e.exports=k||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},58822:function(e,t,n){"use strict";var o=n(67581);e.exports=o&&!!Symbol["for"]&&!!Symbol.keyFor},67581:function(e,t,n){"use strict";var o=n(64279),r=n(39125);e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},37494:function(e,t,n){"use strict";var o=n(61770),r=n(45744),a=n(44790),i=o.WeakMap;e.exports=r(i)&&/native code/.test(a(i))},16002:function(e,t,n){"use strict";var o=n(7696),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},96794:function(e,t,n){"use strict";var o=n(71857),r=TypeError;e.exports=function(e){if(o(e))throw r("The method doesn't accept regular expressions");return e}},46329:function(e,t,n){"use strict";var o=n(61770).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},90119:function(e,t,n){"use strict";var o=n(61770),r=n(39125),a=n(90655),i=n(95372),c=n(56404).trim,l=n(93966),d=a("".charAt),s=o.parseFloat,u=o.Symbol,m=u&&u.iterator,p=1/s(l+"-0")!=-Infinity||m&&!r((function(){s(Object(m))}));e.exports=p?function(e){var t=c(i(e)),n=s(t);return 0===n&&"-"==d(t,0)?-0:n}:s},80280:function(e,t,n){"use strict";var o=n(61770),r=n(39125),a=n(90655),i=n(95372),c=n(56404).trim,l=n(93966),d=o.parseInt,s=o.Symbol,u=s&&s.iterator,m=/^[+-]?0x/i,p=a(m.exec),f=8!==d(l+"08")||22!==d(l+"0x16")||u&&!r((function(){d(Object(u))}));e.exports=f?function(e,t){var n=c(i(e));return d(n,t>>>0||(p(m,n)?16:10))}:d},35350:function(e,t,n){"use strict";var o=n(77849),r=n(90655),a=n(76348),i=n(39125),c=n(21417),l=n(41543),d=n(89328),s=n(73502),u=n(83609),m=Object.assign,p=Object.defineProperty,f=r([].concat);e.exports=!m||i((function(){if(o&&1!==m({b:1},m(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=m({},e)[n]||c(m({},t)).join("")!=r}))?function(e,t){for(var n=s(e),r=arguments.length,i=1,m=l.f,p=d.f;r>i;)for(var h,C=u(arguments[i++]),b=m?f(c(C),m(C)):c(C),N=b.length,g=0;N>g;)h=b[g++],o&&!a(p,C,h)||(n[h]=C[h]);return n}:m},48525:function(e,t,n){"use strict";var o,r=n(65522),a=n(86328),i=n(59096),c=n(31645),l=n(29093),d=n(50842),s=n(95541),u=s("IE_PROTO"),m=function(){},p=function(e){return"