diff --git a/code/controllers/subsystem/SSnightshift.dm b/code/controllers/subsystem/SSnightshift.dm index 49df5c617e5..c6cca6a0cee 100644 --- a/code/controllers/subsystem/SSnightshift.dm +++ b/code/controllers/subsystem/SSnightshift.dm @@ -59,4 +59,3 @@ SUBSYSTEM_DEF(nightshift) var/obj/machinery/power/apc/APC = A if(is_station_level(APC.z)) APC.set_nightshift(active) - CHECK_TICK diff --git a/code/controllers/subsystem/non_firing/SSmapping.dm b/code/controllers/subsystem/non_firing/SSmapping.dm index 208fc3be4ff..8a7b6a97247 100644 --- a/code/controllers/subsystem/non_firing/SSmapping.dm +++ b/code/controllers/subsystem/non_firing/SSmapping.dm @@ -108,9 +108,11 @@ SUBSYSTEM_DEF(mapping) var/list/pickable_turfs = list() for(var/turf/turfs in AR) pickable_turfs += turfs + CHECK_TICK var/turf/picked = safepick(pickable_turfs) if(picked && is_station_level(picked.z)) teleportlocs[AR.name] = AR + CHECK_TICK teleportlocs = sortAssoc(teleportlocs) @@ -121,8 +123,10 @@ SUBSYSTEM_DEF(mapping) var/list/pickable_turfs = list() for(var/turf/turfs in AR) pickable_turfs += turfs + CHECK_TICK if(length(pickable_turfs)) ghostteleportlocs[AR.name] = AR + CHECK_TICK ghostteleportlocs = sortAssoc(ghostteleportlocs) @@ -132,9 +136,11 @@ SUBSYSTEM_DEF(mapping) var/list/pickable_turfs = list() for(var/turf/turfs in AR) pickable_turfs += turfs + CHECK_TICK var/turf/picked = safepick(pickable_turfs) if(picked && is_station_level(picked.z)) existing_station_areas += AR + CHECK_TICK // World name if(GLOB.configuration.general.server_name) diff --git a/code/controllers/subsystem/processing/SSobj_tab_items.dm b/code/controllers/subsystem/processing/SSobj_tab_items.dm index 617b5e96682..d03fcd24e79 100644 --- a/code/controllers/subsystem/processing/SSobj_tab_items.dm +++ b/code/controllers/subsystem/processing/SSobj_tab_items.dm @@ -5,7 +5,7 @@ PROCESSING_SUBSYSTEM_DEF(obj_tab_items) wait = 0.1 SECONDS // I know this is mostly copypasta, but I want to change the processing logic -// Sorry bestie :( +// Sorry bestie :( // my name is AA and I am putting a ) here to make the bracket pairs right /datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE) if(!resumed) currentrun = processing.Copy() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index c09d202f866..a10af53d45e 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -159,6 +159,7 @@ /atom/proc/Initialize(mapload, ...) SHOULD_CALL_PARENT(TRUE) + SHOULD_NOT_SLEEP(TRUE) if(initialized) stack_trace("Warning: [src]([type]) initialized multiple times!") initialized = TRUE @@ -189,6 +190,7 @@ //called if Initialize returns INITIALIZE_HINT_LATELOAD /atom/proc/LateInitialize() + SHOULD_NOT_SLEEP(TRUE) return /atom/proc/onCentcom() diff --git a/code/game/machinery/computer/depot_consoles.dm b/code/game/machinery/computer/depot_consoles.dm index 1a44d688d6a..a59eb62726b 100644 --- a/code/game/machinery/computer/depot_consoles.dm +++ b/code/game/machinery/computer/depot_consoles.dm @@ -14,8 +14,6 @@ light_color = LIGHT_COLOR_PURE_CYAN req_access = list(ACCESS_SYNDICATE) bubble_icon = "syndibot" - var/window_height = 400 // should be roughly 100 per section. Allow extra space for the lockout alert. - var/window_width = 400 var/security_lockout = FALSE var/sound_yes = 'sound/machines/twobeep.ogg' var/sound_no = 'sound/machines/buzz-sigh.ogg' @@ -149,7 +147,6 @@ /obj/machinery/computer/syndicate_depot/doors name = "depot door control computer" req_access = list() - window_height = 300 var/pub_access = FALSE /obj/machinery/computer/syndicate_depot/doors/ui_data(mob/user) @@ -197,7 +194,6 @@ icon_screen = "explosive" req_access = list() alerts_when_broken = TRUE - window_height = 200 // this might appear big, but it has to have space for the lockout alert /obj/machinery/computer/syndicate_depot/selfdestruct/ui_data(mob/user) var/list/data = ..() @@ -227,7 +223,6 @@ icon_screen = "accelerator" req_access = list(ACCESS_SYNDICATE_LEADER) alerts_when_broken = TRUE - window_height = 280 var/area/syndicate_depot/perimeter/perimeterarea /obj/machinery/computer/syndicate_depot/shieldcontrol/Initialize(mapload) @@ -291,7 +286,6 @@ icon_screen = "syndishuttle" req_access = list() alerts_when_broken = TRUE - window_height = 300 var/message_sent = FALSE /obj/machinery/computer/syndicate_depot/syndiecomms/Initialize(mapload) @@ -394,7 +388,6 @@ name = "syndicate teleporter console" icon_screen = "telesci" icon_keyboard = "teleport_key" - window_height = 300 req_access = list(ACCESS_SYNDICATE_LEADER) var/obj/machinery/bluespace_beacon/syndicate/mybeacon var/obj/effect/portal/advanced/myportal @@ -454,9 +447,8 @@ var/desc = tgui_input_list(usr, "Please select a location to lock in.", "Syndicate Teleporter", L) return L[desc] -/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal() +/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal(turf/tele_target) if(portal_enabled && !myportal) - var/turf/tele_target = choosetarget() if(!tele_target) return var/turf/portal_turf = get_step(src, portaldir) @@ -508,21 +500,24 @@ if(!portal_enabled && myportal) to_chat(user, "Outgoing Teleport Portal: deactivating... please wait...") return - toggle_portal() - to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]") - updateUsrDialog() - playsound(user, sound_yes, 50, 0) -/obj/machinery/computer/syndicate_depot/teleporter/proc/toggle_portal() + var/turf/tele_target = null + if(!portal_enabled) + tele_target = choosetarget() + if(!tele_target) + return + portal_enabled = !portal_enabled - update_portal() + update_portal(tele_target) + + to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]") + playsound(user, sound_yes, 50, 0) /obj/machinery/computer/syndicate_depot/aiterminal name = "syndicate ai terminal" icon_screen = "command" req_access = list() - window_height = 750 // has to be very tall since it has many sections which can expand /obj/machinery/computer/syndicate_depot/aiterminal/ui_data(mob/user) var/list/data = ..() diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 017fede1164..567cc838aed 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -962,16 +962,6 @@ GLOBAL_LIST_EMPTY(turret_icons) build_step = 6 return - if(is_pen(I)) //you can rename turrets like bots! - var/t = input(user, "Enter new turret name", name, finish_name) as text - t = sanitize(copytext_char(t, 1, MAX_MESSAGE_LEN)) - if(!t) - return - if(!in_range(src, usr) && loc != usr) - return - - finish_name = t - return ..() /obj/machinery/porta_turret_construct/screwdriver_act(mob/living/user, obj/item/I) diff --git a/code/game/objects/effects/effect_system/effects_chem_smoke.dm b/code/game/objects/effects/effect_system/effects_chem_smoke.dm index 0dd6e181036..ccc7923c799 100644 --- a/code/game/objects/effects/effect_system/effects_chem_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_chem_smoke.dm @@ -45,6 +45,10 @@ /datum/effect_system/smoke_spread/chem + var/eff_range = 2 + var/eff_colour = "#12A5F4" // This is a random blue incase it doesnt get set right + var/process_count = 0 + var/max_process_count = 10 var/obj/chemholder var/list/smoked_atoms = list() @@ -94,22 +98,21 @@ /datum/effect_system/smoke_spread/chem/start(effect_range = 2) - set waitfor = FALSE + eff_colour = mix_color_from_reagents(chemholder.reagents.reagent_list) + eff_range = effect_range + START_PROCESSING(SSprocessing, src) - var/color = mix_color_from_reagents(chemholder.reagents.reagent_list) +/datum/effect_system/smoke_spread/chem/process() + process_count++ + if(eff_range < 3) + new /obj/effect/particle_effect/chem_smoke/small(location, eff_colour) + else + new /obj/effect/particle_effect/chem_smoke(location, eff_colour) - for(var/x in 0 to 99) - for(var/i = 0, i < rand(2, 6), i++) - if(effect_range < 3) - new /obj/effect/particle_effect/chem_smoke/small(location, color) - else - new /obj/effect/particle_effect/chem_smoke(location, color) - - if(x % 10 == 0) //Once every 10 ticks. - INVOKE_ASYNC(src, PROC_REF(SmokeEm), effect_range) - - sleep(1) - qdel(src) + INVOKE_ASYNC(src, PROC_REF(SmokeEm), eff_range) + if(process_count > max_process_count) + STOP_PROCESSING(SSprocessing, src) + qdel(src) /datum/effect_system/smoke_spread/chem/proc/SmokeEm(effect_range = 2) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index af7faad28a0..9c14f705f53 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -428,7 +428,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons if(isstorage(src)) // Don't tape the bag if we can put the duct tape inside it instead var/obj/item/storage/bag = src if(bag.can_be_inserted(I)) - return ..() + return var/obj/item/stack/tape_roll/TR = I var/list/clickparams = params2list(params) var/x_offset = text2num(clickparams["icon-x"]) @@ -443,8 +443,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons user.transfer_fingerprints_to(src) else to_chat(user, "You don't have enough tape to do that!") - else - return ..() /obj/item/proc/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) var/signal_result = (SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, owner, hitby, damage, attack_type)) + prob(final_block_chance) diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm index af9646366c7..d9304ac3bd9 100644 --- a/code/game/objects/items/devices/autopsy.dm +++ b/code/game/objects/items/devices/autopsy.dm @@ -86,7 +86,6 @@ R.name = "Official Coroner's Report - [dead_name]" R.info = "
[station_name()] - Coroner's Report


Name of Deceased: [dead_name]

Rank of Deceased: [rank]

Time of Death: [tod]

Cause of Death: [cause]

Trace Chemicals: [chems]

Additional Coroner's Notes: [notes]

Coroner's Signature: " playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, TRUE) - sleep(1 SECONDS) user.put_in_hands(R) /obj/item/autopsy_scanner/attack_self(mob/user) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index a21489172e8..e12847d2e64 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -103,7 +103,7 @@ /obj/attack_animal(mob/living/simple_animal/M) if((M.a_intent == INTENT_HELP && M.ckey) || (!M.melee_damage_upper && !M.obj_damage)) - M.custom_emote(EMOTE_VISIBLE, "[M.friendly] [src].") + M.emote("me", EMOTE_VISIBLE, "[M.friendly] [src].") return 0 else var/play_soundeffect = 1 diff --git a/code/modules/food_and_drinks/food/foods/pizza.dm b/code/modules/food_and_drinks/food/foods/pizza.dm index 0da9469455f..15c7baa3d3b 100644 --- a/code/modules/food_and_drinks/food/foods/pizza.dm +++ b/code/modules/food_and_drinks/food/foods/pizza.dm @@ -550,7 +550,6 @@ return playsound(src, I.usesound, 50, TRUE, 1) user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!") - sleep(5) if(chosen_wire == correct_wire) audible_message("[bicon(src)] [src] suddenly stops beeping and seems lifeless.") to_chat(user, "You did it!") diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 753b398e6a3..e19832d8500 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -111,9 +111,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking use_power(500) grinded++ - sleep(50) - pixel_x = initial(pixel_x) to_chat(user, "The machine now has [grinded] monkey\s worth of material stored.") + addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x)), 5 SECONDS) else to_chat(user, "The machine only accepts monkeys!") else diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm deleted file mode 100644 index 94ebc9c61bb..00000000000 --- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm +++ /dev/null @@ -1,80 +0,0 @@ -/obj/machinery/cooking - name = "oven" - desc = "Cookies are ready, dear." - icon = 'icons/obj/cooking_machines.dmi' - icon_state = "oven_off" - layer = 2.9 - density = TRUE - anchored = TRUE - idle_power_consumption = 5 - - var/candy = FALSE - var/on = FALSE //Is it making food already? - var/list/food_choices = list() - -/obj/machinery/cooking/Initialize(mapload) - . = ..() - updatefood() - -/obj/machinery/cooking/attackby(obj/item/I, mob/user, params) - if(on) - to_chat(user, "The machine is already running.") - return - else - var/obj/item/F = I - var/obj/item/food/snacks/customizable/C - C = tgui_input_list(user, "Select food to make.", "Cooking", food_choices) - if(!C) - return - else - to_chat(user, "You put [F] into [src] for cooking.") - user.drop_item() - F.loc = src - on = TRUE - if(!candy) - icon_state = "oven_on" - else - icon_state = "mixer_on" - sleep(100) - on = FALSE - if(!candy) - icon_state = "oven_off" - else - icon_state = "mixer_off" - C.loc = get_turf(src) - C.attackby(F,user, params) - playsound(loc, 'sound/machines/ding.ogg', 50, 1) - updatefood() - return - -/obj/machinery/cooking/proc/updatefood() - return - -/obj/machinery/cooking/oven - name = "oven" - desc = "Cookies are ready, dear." - icon = 'icons/obj/cooking_machines.dmi' - icon_state = "oven_off" - -/obj/machinery/cooking/oven/updatefood() - for(var/U in food_choices) - food_choices.Remove(U) - for(var/U in subtypesof(/obj/item/food/snacks/customizable/cook)) - var/obj/item/food/snacks/customizable/cook/V = new U - food_choices += V - return - -/obj/machinery/cooking/candy - name = "candy machine" - desc = "Get yer box of deep fried deep fried deep fried deep fried cotton candy cereal sandwich cookies here!" - icon = 'icons/obj/cooking_machines.dmi' - icon_state = "mixer_off" - candy = TRUE - -/obj/machinery/cooking/candy/updatefood() - for(var/U in food_choices) - food_choices.Remove(U) - for(var/U in subtypesof(/obj/item/food/snacks/customizable/candy)) - var/obj/item/food/snacks/customizable/candy/V = new U - food_choices += V - return diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index 02316f5a95c..466033801e0 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -360,11 +360,14 @@ var/amount = 1 /obj/item/book/random/Initialize() - ..() - var/list/books = GLOB.library_catalog.get_random_book(amount, FALSE) + . = ..() + addtimer(CALLBACK(src, PROC_REF(spawn_books)), 0) + +/obj/item/book/random/proc/spawn_books() + var/list/books = GLOB.library_catalog.get_random_book(amount) for(var/datum/cachedbook/book as anything in books) new /obj/item/book(loc, book, TRUE, FALSE) - return INITIALIZE_HINT_QDEL + qdel(src) /obj/item/book/random/triple amount = 3 diff --git a/code/modules/library/library_catalog.dm b/code/modules/library/library_catalog.dm index 84f097eeea8..cabc94a9c3b 100644 --- a/code/modules/library/library_catalog.dm +++ b/code/modules/library/library_catalog.dm @@ -236,7 +236,7 @@ * * range - Amount of books we want to grab at once * * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for */ -/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms, doAsync = TRUE) +/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms) var/list/search_query = build_search_query(search_terms) var/sql = "SELECT id, author, title, content, summary, rating, raters, primary_category, secondary_category, tertiary_category, ckey, reports FROM library" + search_query[1] + " LIMIT :lowerlimit, :upperlimit" var/list/sql_params = search_query[2] @@ -246,7 +246,7 @@ var/datum/db_query/select_query = SSdbcore.NewQuery(sql, sql_params) - if(!select_query.warn_execute(async = doAsync)) + if(!select_query.warn_execute()) qdel(select_query) return @@ -309,13 +309,13 @@ * Arguments: * * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for */ -/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms, async = TRUE) +/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms) var/list/search_query = build_search_query(search_terms) var/sql = "SELECT COUNT(id) FROM library" + search_query[1] var/list/sql_params = search_query[2] var/datum/db_query/count_query = SSdbcore.NewQuery(sql, sql_params) - if(!count_query.warn_execute(async)) + if(!count_query.warn_execute()) qdel(count_query) return @@ -365,7 +365,7 @@ * Arguments: * * amount - amount of random books to get */ -/datum/library_catalog/proc/get_random_book(amount = 1, doAsync = TRUE) +/datum/library_catalog/proc/get_random_book(amount = 1) if(!amount) return if(!SSdbcore.IsConnected()) @@ -374,7 +374,7 @@ var/list/sql_params = list("amount" = num_books ) var/sql = "SELECT id, author, title, content, summary, rating, primary_category, secondary_category, tertiary_category, ckey, reports FROM library GROUP BY title ORDER BY rand() LIMIT :amount" var/datum/db_query/query = SSdbcore.NewQuery(sql, sql_params) - if(!query.warn_execute(async = doAsync)) //this proc is used in initialize in some objects :) + if(!query.warn_execute()) qdel(query) return diff --git a/code/modules/library/library_computer.dm b/code/modules/library/library_computer.dm index bf3aa54934e..2bac8221c60 100644 --- a/code/modules/library/library_computer.dm +++ b/code/modules/library/library_computer.dm @@ -52,9 +52,7 @@ /obj/machinery/computer/library/Initialize(mapload) . = ..() - populate_booklist(async = FALSE) - //since ui_data screws up when SQL calls are made inside it, - //we must populate our booklist before ui_act is called for the first time + addtimer(CALLBACK(src, PROC_REF(populate_booklist)), 0) /obj/machinery/computer/library/attack_ai(mob/user) return attack_hand(user) @@ -538,11 +536,11 @@ * internal proc that will refresh our cached booklist, it needs to be called everytime we are switching parameters * that will affect what books will be displayed in our TGUI player book archive. */ -/obj/machinery/computer/library/proc/populate_booklist(async = TRUE) +/obj/machinery/computer/library/proc/populate_booklist() cached_booklist = list() //clear old list var/starting_book = (archive_page_num - 1) * LIBRARY_BOOKS_PER_PAGE var/range = LIBRARY_BOOKS_PER_PAGE - for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data, async)) + for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data)) //instead of just adding the datum to the cached_booklist, we want to make it an assoc list so we can just give it to the TGUI var/list/book_data = list( @@ -561,13 +559,13 @@ book_data["categories"] += book_category.description //we're displaying the cats onlys, so we don't need the ids cached_booklist += list(book_data) - num_pages = getmaxpages(async) + num_pages = getmaxpages() archive_page_num = clamp(archive_page_num, 1, num_pages) ///Returns the amount of pages we will need to hold all the book our DB has found -/obj/machinery/computer/library/proc/getmaxpages(async = TRUE) +/obj/machinery/computer/library/proc/getmaxpages() //if get_total_books doesn't return anything, just set pages to 1 so we don't break stuff - var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data, async)) + var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data)) var/page_count = round(book_count / LIBRARY_BOOKS_PER_PAGE) //Since 'round' gets the floor value it's likely there will be 1 page more than //the page count amount (almost guaranteed), we check for a remainder because of this diff --git a/code/modules/library/library_equipment.dm b/code/modules/library/library_equipment.dm index 00790622c60..82e88b3a1ca 100644 --- a/code/modules/library/library_equipment.dm +++ b/code/modules/library/library_equipment.dm @@ -149,7 +149,10 @@ /obj/structure/bookcase/random/Initialize(mapload) . = ..() - var/list/books = GLOB.library_catalog.get_random_book(book_count, doAsync = FALSE) + addtimer(CALLBACK(src, PROC_REF(load_books)), 0) + +/obj/structure/bookcase/random/proc/load_books() + var/list/books = GLOB.library_catalog.get_random_book(book_count) for(var/datum/cachedbook/book as anything in books) new /obj/item/book(src, book, TRUE, FALSE) update_icon(UPDATE_ICON_STATE) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index e5a281851a0..af923e9eaa4 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -106,7 +106,7 @@ if(speaker == src) for(var/datum/multilingual_say_piece/SP in message_pieces) if(SP.speaking && SP.speaking.flags & INNATE) - custom_emote(EMOTE_AUDIBLE, message_clean, TRUE) + emote("me", EMOTE_AUDIBLE, message_clean, TRUE) return if(!can_hear()) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 4c3cf14fd3f..b94de5402a0 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -334,7 +334,7 @@ /mob/living/simple_animal/hostile/proc/Aggro() vision_range = aggro_vision_range if(target && length(emote_taunt) && prob(taunt_chance)) - custom_emote(EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].") + emote("me", EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].") taunt_chance = max(taunt_chance-7,2) /mob/living/simple_animal/hostile/proc/LoseAggro() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm index 6452c440823..6e33ab51bc9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm @@ -240,7 +240,7 @@ Difficulty: Hard . = ..() var/newcolor = rgb(241, 137, 172) add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY) - beam_it_up() + addtimer(CALLBACK(src, PROC_REF(beam_it_up)), 0) /obj/effect/vetus_laser/ex_act(severity) return diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 96f7b7ecf4f..d28e071aa42 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -45,6 +45,7 @@ var/mob/living/carbon/human/H = user H.update_inv_l_hand() H.update_inv_r_hand() + else if(istype(W, /obj/item/photo)) amount++ photos++ @@ -53,8 +54,10 @@ to_chat(user, "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].") user.unEquip(W) W.loc = src + else if(W.get_heat()) burnpaper(W, user) + else if(istype(W, /obj/item/paper_bundle)) user.unEquip(W) for(var/obj/O in W) @@ -65,6 +68,7 @@ screen = 1 to_chat(user, "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].") qdel(W) + else if(is_pen(W) || istype(W, /obj/item/toy/crayon)) usr << browse("", "window=PaperBundle[UID()]") //Closes the dialog @@ -72,10 +76,6 @@ P.attackby(W, user, params) update_icon() - if(winget(usr, "PaperBundle[UID()]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME - attack_self(usr) //Update the browsed page. - add_fingerprint(usr) - return /obj/item/paper_bundle/proc/burnpaper(obj/item/heating_object, mob/user) var/class = "warning" @@ -136,7 +136,6 @@ /obj/item/paper_bundle/attack_self(mob/user as mob) show_content(user) add_fingerprint(usr) - return /obj/item/paper_bundle/Topic(href, href_list) if(..()) diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm index 090c86b5c44..8703241cb0b 100644 --- a/code/modules/power/apc/apc.dm +++ b/code/modules/power/apc/apc.dm @@ -911,7 +911,6 @@ if(L.nightshift_allowed) L.nightshift_enabled = nightshift_lights L.update(FALSE, play_sound = FALSE) - CHECK_TICK /obj/machinery/power/apc/proc/relock_callback() locked = TRUE diff --git a/code/modules/power/lights.dm b/code/modules/power/lights.dm index e0cc4c372a3..6c9db8515ea 100644 --- a/code/modules/power/lights.dm +++ b/code/modules/power/lights.dm @@ -825,9 +825,11 @@ // explode the light /obj/machinery/light/proc/explode() - var/turf/T = get_turf(loc) break_light_tube() // break it first to give a warning - sleep(2) + addtimer(CALLBACK(src, PROC_REF(actually_explode)), 2) + +/obj/machinery/light/proc/actually_explode() + var/turf/T = get_turf(loc) explosion(T, 0, 0, 2, 2) qdel(src) diff --git a/paradise.dme b/paradise.dme index f9f0d9f53b1..b0fd81970e2 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1881,7 +1881,6 @@ #include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm" #include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm" #include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm" -#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm" #include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm" #include "code\modules\food_and_drinks\kitchen_machinery\processor.dm" #include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm"