From 251bd3e06b1b223d30944dd9ad5b7133e23598d0 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 31 Dec 2020 12:33:05 -0800 Subject: [PATCH 01/29] logging --- code/modules/food_and_drinks/drinks/drinks.dm | 6 +++--- code/modules/food_and_drinks/food/condiment.dm | 8 ++++---- code/modules/food_and_drinks/food/snacks.dm | 4 ++-- code/modules/food_and_drinks/food/snacks_pie.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 6 +++--- .../chemistry/machinery/chem_dispenser.dm | 16 ++++++++++++++-- .../modules/reagents/reagent_containers/glass.dm | 2 +- .../reagents/reagent_containers/hypospray.dm | 4 ++-- .../reagents/reagent_containers/medspray.dm | 2 +- code/modules/reagents/reagent_containers/pill.dm | 5 +++-- code/modules/reagents/reagent_containers/rags.dm | 4 ++-- .../modules/reagents/reagent_containers/spray.dm | 4 ++++ .../reagents/reagent_containers/syringes.dm | 4 ++-- code/modules/reagents/reagent_dispenser.dm | 2 +- code/modules/surgery/dental_implant.dm | 2 +- 15 files changed, 44 insertions(+), 27 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 140923c1ef..3f51da22b3 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -48,7 +48,7 @@ var/fraction = min(gulp_size/reagents.total_volume, 1) checkLiked(fraction, M) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, gulp_size) + reagents.trans_to(M, gulp_size, log = TRUE) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 @@ -71,7 +71,7 @@ return var/refill = reagents.get_master_reagent_id() - var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You transfer [trans] units of the solution to [target].") if(iscyborg(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell @@ -92,7 +92,7 @@ to_chat(user, "[src] is full.") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You fill [src] with [trans] units of the contents of [target].") /obj/item/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 95e5c9fb56..dca12aa4f8 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -55,7 +55,7 @@ var/fraction = min(10/reagents.total_volume, 1) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, 10) + reagents.trans_to(M, 10, log = TRUE) playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 @@ -73,7 +73,7 @@ to_chat(user, "[src] is full!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You fill [src] with [trans] units of the contents of [target].") //Something like a glass or a food item. Player probably wants to transfer TO it. @@ -84,7 +84,7 @@ if(target.reagents.total_volume >= target.reagents.maximum_volume) to_chat(user, "you can't add anymore to [target]!") return - var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this) + var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You transfer [trans] units of the condiment to [target].") /obj/item/reagent_containers/food/condiment/on_reagent_change(changetype) @@ -270,7 +270,7 @@ return else to_chat(user, "You tear open [src] above [target] and the condiments drip onto it.") - src.reagents.trans_to(target, amount_per_transfer_from_this) + src.reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) qdel(src) /obj/item/reagent_containers/food/condiment/pack/on_reagent_change(changetype) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 4d5f4e2dd0..cb1ed628c4 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -160,7 +160,7 @@ All foods are distributed among various categories. Use common sense. SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user) var/fraction = min(bitesize / reagents.total_volume, 1) reagents.reaction(M, INGEST, fraction) - reagents.trans_to(M, bitesize) + reagents.trans_to(M, bitesize, log = TRUE) bitecount++ On_Consume(M) checkLiked(fraction, M) @@ -359,7 +359,7 @@ All foods are distributed among various categories. Use common sense. if(!M.is_drainable()) to_chat(user, "[M] is unable to be dunked in!") return - if(M.reagents.trans_to(src, dunk_amount)) //if reagents were transfered, show the message + if(M.reagents.trans_to(src, dunk_amount, log = TRUE)) //if reagents were transfered, show the message to_chat(user, "You dunk the [M].") return if(!M.reagents.total_volume) diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 24522503c1..a4287d3d19 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -54,7 +54,7 @@ H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) if(!H.is_mouth_covered()) - reagents.trans_to(H,15) //Cream pie combat + reagents.trans_to(H, 15, log = TRUE) //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a1a177c028..8467d00124 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -130,7 +130,7 @@ reagents.remove_any(min(0.5, nutridrain)) else reagents.remove_any(nutridrain) - + // Lack of nutrients hurts non-weeds if(reagents.total_volume <= 0 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) adjustHealth(-rand(1,3)) @@ -501,7 +501,7 @@ if(visi_msg) visible_message("[visi_msg].") - + for(var/obj/machinery/hydroponics/H in trays) //cause I don't want to feel like im juggling 15 tamagotchis and I can get to my real work of ripping flooring apart in hopes of validating my life choices of becoming a space-gardener //This was originally in apply_chemicals, but due to apply_chemicals only holding nutrients, we handle it here now. @@ -675,7 +675,7 @@ idle_power_usage = 0 self_sustaining = FALSE update_icon() - + /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds./// /obj/machinery/hydroponics/proc/adjustWater(adjustamt) waterlevel = clamp(waterlevel + adjustamt, 0, maxwater) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index db16a10d1d..7e6635af15 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -259,6 +259,7 @@ say("Not enough energy to complete operation!") return R.add_reagent(reagent, actual) + log_reagent("DISPENSER: ([COORD(src)]) ([REF(src)]) [key_name(usr)] dispensed [actual] of [reagent] to [beaker] ([REF(beaker)]).") work_animation() else @@ -281,11 +282,14 @@ var/list/chemicals_to_dispense = saved_recipes[params["recipe"]] if(!LAZYLEN(chemicals_to_dispense)) return + var/list/logstring = list() + var/earlyabort = TRUE for(var/key in chemicals_to_dispense) var/reagent = GLOB.name2reagent[translate_legacy_chem_id(key)] var/dispense_amount = chemicals_to_dispense[key] + logstring += "[reagent] = [dispense_amount]" if(!dispensable_reagents.Find(reagent)) - return + break if(!recording_recipe) if(!beaker) return @@ -295,11 +299,15 @@ if(actual) if(!cell.use(actual / powerefficiency)) say("Not enough energy to complete operation!") - return + earlyabort = TRUE + break R.add_reagent(reagent, actual) work_animation() else recording_recipe[key] += dispense_amount + logstring = logstring.Join(", ") + if(!recording_recipe) + log_reagent("DISPENSER: [key_name(usr)] dispensed recipe [params["recipe"]] with chemicals [logstring] to [beaker] ([REF(beaker)])[earlyabort? " (aborted early)":""]") . = TRUE if("clear_recipes") if(!is_operational()) @@ -322,15 +330,19 @@ if(saved_recipes[name] && alert("\"[name]\" already exists, do you want to overwrite it?",, "Yes", "No") == "No") return if(name && recording_recipe) + var/logstring = list() for(var/reagent in recording_recipe) var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent)] + logstring += "[reagent_id] = [recording_recipe[reagent]]" if(!dispensable_reagents.Find(reagent_id)) visible_message("[src] buzzes.", "You hear a faint buzz.") to_chat(usr, "[src] cannot find [reagent]!") playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) return saved_recipes[name] = recording_recipe + logstring = logstring.Join(", ") recording_recipe = null + log_reagent("DISPENSER: [key_name(usr)] recorded recipe [name] with chemicals [logstring]") . = TRUE if("cancel_recording") if(!is_operational()) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index ec26182813..6e1b753c32 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -455,7 +455,7 @@ grinded.on_grind() reagents.add_reagent_list(grinded.grind_results) if(grinded.reagents) //food and pills - grinded.reagents.trans_to(src, grinded.reagents.total_volume) + grinded.reagents.trans_to(src, grinded.reagents.total_volume, log = "mortar powdering") to_chat(user, "You break [grinded] into powder.") QDEL_NULL(grinded) return diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 5aeac1bc38..1f89af420e 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -41,7 +41,7 @@ if(M.reagents) var/trans = 0 if(!infinite) - trans = reagents.trans_to(M, amount_per_transfer_from_this) + trans = reagents.trans_to(M, amount_per_transfer_from_this, log = TRUE) else trans = reagents.copy_to(M, amount_per_transfer_from_this) @@ -427,7 +427,7 @@ var/fraction = min(vial.amount_per_transfer_from_this/vial.reagents.total_volume, 1) vial.reagents.reaction(L, method, fraction) - vial.reagents.trans_to(target, vial.amount_per_transfer_from_this) + vial.reagents.trans_to(target, vial.amount_per_transfer_from_this, log = TRUE) var/long_sound = vial.amount_per_transfer_from_this >= 15 playsound(loc, long_sound ? 'sound/items/hypospray_long.ogg' : pick('sound/items/hypospray.ogg','sound/items/hypospray2.ogg'), 50, 1, -1) to_chat(user, "You [fp_verb] [vial.amount_per_transfer_from_this] units of the solution. The hypospray's cartridge now contains [vial.reagents.total_volume] units.") diff --git a/code/modules/reagents/reagent_containers/medspray.dm b/code/modules/reagents/reagent_containers/medspray.dm index 052e85a3d1..8d30f25db2 100644 --- a/code/modules/reagents/reagent_containers/medspray.dm +++ b/code/modules/reagents/reagent_containers/medspray.dm @@ -80,7 +80,7 @@ playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6) var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, apply_type, fraction) - reagents.trans_to(L, amount_per_transfer_from_this) + reagents.trans_to(L, amount_per_transfer_from_this, log = TRUE) return /obj/item/reagent_containers/medspray/styptic diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 3c23794e5a..a5b4e5b8ab 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -56,7 +56,7 @@ log_combat(user, M, "fed", reagents.log_list()) if(reagents.total_volume) reagents.reaction(M, apply_type) - reagents.trans_to(M, reagents.total_volume) + reagents.trans_to(M, reagents.total_volume, log = TRUE) qdel(src) return TRUE @@ -76,7 +76,8 @@ user.visible_message("[user] slips something into [target]!", "You dissolve [src] in [target].", vision_distance = 2) - reagents.trans_to(target, reagents.total_volume) + log_combat(user, target, "spiked", src, reagents.log_list()) + reagents.trans_to(target, reagents.total_volume, log = TRUE) qdel(src) return STOP_ATTACK_PROC_CHAIN diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index 469a8ef907..5d94e78809 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -39,7 +39,7 @@ C.visible_message("[user] is trying to smother \the [C] with \the [src]!", "[user] is trying to smother you with \the [src]!", "You hear some struggling and muffled cries of surprise.") if(do_after(user, 20, target = C)) reagents.reaction(C, INGEST) - reagents.trans_to(C, 5) + reagents.trans_to(C, 5, log = TRUE) C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and a heavy breath taken.") log_combat(user, C, "smothered", log_object) else @@ -107,7 +107,7 @@ reagents.clear_reagents() else msg += "'s liquids into \the [target]" - reagents.trans_to(target, reagents.total_volume) + reagents.trans_to(target, reagents.total_volume, log = TRUE) to_chat(user, "[msg].") return TRUE diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 926ed27854..af053b592a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -81,6 +81,10 @@ else reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.color = mix_color_from_reagents(D.reagents.reagent_list) + var/turf/T = get_turf(src) + if(!T) + return + log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_string()])") var/wait_step = max(round(2+ spray_delay * INVERSE(range)), 2) last_spray = world.time INVOKE_ASYNC(src, .proc/do_spray, A, wait_step, D, range, puff_reagent_left) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index f42ae668c7..93a07b1a6e 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -113,7 +113,7 @@ to_chat(user, "You cannot directly remove reagents from [target]!") return - var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, log = TRUE) // transfer from, transfer to - who cares? to_chat(user, "You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units.") if (round(reagents.total_volume, 0.1) >= reagents.maximum_volume) @@ -158,7 +158,7 @@ L.log_message("injected themselves ([contained]) with [src.name]", LOG_ATTACK, color="orange") var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, INJECT, fraction) - reagents.trans_to(target, amount_per_transfer_from_this) + reagents.trans_to(target, amount_per_transfer_from_this, log = TRUE) to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index ffa3f7478b..39ccdd23a2 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -182,7 +182,7 @@ if(W.reagents.has_reagent(/datum/reagent/fuel, W.max_fuel)) to_chat(user, "Your [W.name] is already full!") return - reagents.trans_to(W, W.max_fuel) + reagents.trans_to(W, W.max_fuel, log = TRUE) user.visible_message("[user] refills [user.p_their()] [W.name].", "You refill [W].") playsound(src, 'sound/effects/refill.ogg', 50, 1) W.update_icon() diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 9d304b0727..311c886c9d 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -36,6 +36,6 @@ log_combat(owner, null, "swallowed an implanted pill", target) if(target.reagents.total_volume) target.reagents.reaction(owner, INGEST) - target.reagents.trans_to(owner, target.reagents.total_volume) + target.reagents.trans_to(owner, target.reagents.total_volume, log = TRUE) qdel(target) return 1 From 8a471d6984c101a8848ef80fe592c667a6fc9c0c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 31 Dec 2020 12:35:45 -0800 Subject: [PATCH 02/29] logs --- code/modules/reagents/chemistry/machinery/chem_dispenser.dm | 2 +- code/modules/reagents/reagent_containers/spray.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 7e6635af15..dda5689273 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -330,7 +330,7 @@ if(saved_recipes[name] && alert("\"[name]\" already exists, do you want to overwrite it?",, "Yes", "No") == "No") return if(name && recording_recipe) - var/logstring = list() + var/list/logstring = list() for(var/reagent in recording_recipe) var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent)] logstring += "[reagent_id] = [recording_recipe[reagent]]" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index af053b592a..eb3b80b693 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -84,7 +84,7 @@ var/turf/T = get_turf(src) if(!T) return - log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_string()])") + log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_list()])") var/wait_step = max(round(2+ spray_delay * INVERSE(range)), 2) last_spray = world.time INVOKE_ASYNC(src, .proc/do_spray, A, wait_step, D, range, puff_reagent_left) From 190fcb312b2ee99f78e86c2f6960f95d575333bf Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 1 Jan 2021 12:24:46 -0700 Subject: [PATCH 03/29] Update mobs.dm --- code/modules/movespeed/modifiers/mobs.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index f6cf84eb83..af1a465701 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -141,6 +141,8 @@ var/mob/living/L = target if(!(L.mobility_flags & MOBILITY_STAND)) return + if(isrobot(target)) + return max(1, existing + 1) var/static/datum/config_entry/number/movedelay/sprint_max_tiles_increase/SMTI if(!SMTI) SMTI = CONFIG_GET_ENTRY(number/movedelay/sprint_max_tiles_increase) From da358fa60a48c750c514ad4d82f6a0d685957f48 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 3 Jan 2021 18:12:33 -0700 Subject: [PATCH 04/29] Update mobs.dm --- code/modules/movespeed/modifiers/mobs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index af1a465701..da31346575 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -141,7 +141,7 @@ var/mob/living/L = target if(!(L.mobility_flags & MOBILITY_STAND)) return - if(isrobot(target)) + if(iscyborg(target)) return max(1, existing + 1) var/static/datum/config_entry/number/movedelay/sprint_max_tiles_increase/SMTI if(!SMTI) From fe4f184792883a81f4e8de3bb10399adcb8ec13d Mon Sep 17 00:00:00 2001 From: Xantholne Date: Mon, 4 Jan 2021 03:50:43 -0700 Subject: [PATCH 05/29] good night disky --- code/game/objects/structures/beds_chairs/bed.dm | 10 ++++++++++ .../antagonists/nukeop/equipment/nuclearbomb.dm | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 5f01a27825..2a703ad675 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -40,6 +40,16 @@ if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) deconstruct(TRUE) + else if(istype(W, /obj/item/bedsheet)) + if(user.transferItemToLoc(W, drop_location())) + to_chat(user, "You make \the [src] with [W].") + W.pixel_x = 0 + W.pixel_y = 0 + else if(istype(W, /obj/item/disk/nuclear)) + if(user.transferItemToLoc(W, drop_location())) + to_chat(user, "You tuck little disky into bed. Good night disky.") + W.pixel_x = 6 //make sure they reach the pillow + W.pixel_y = -6 else return ..() diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index a18906b70b..3991a0a01c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -634,7 +634,19 @@ This is here to make the tiles around the station mininuke change when it's arme STOP_PROCESSING(SSobj, src) CRASH("A fake nuke disk tried to call process(). Who the fuck and how the fuck") var/turf/newturf = get_turf(src) + if(newturf && lastlocation == newturf) + + // How comfy is disky? + var/disk_comfort_level = 0 + + // Checking for items that make disky comfy + for(var/obj/comfort_item in loc) + if(istype(comfort_item, /obj/item/bedsheet) || istype(comfort_item, /obj/structure/bed)) + disk_comfort_level++ + + if(disk_comfort_level >= 2) //Sleep tight, disky. + return if(last_disk_move < world.time - 5000 && prob((world.time - 5000 - last_disk_move)*0.0001)) var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && loneop.occurrences < loneop.max_occurrences) From 18a336cec5fc83c6b9d6488344659e1bfee24de2 Mon Sep 17 00:00:00 2001 From: Xantholne Date: Tue, 5 Jan 2021 02:47:21 -0700 Subject: [PATCH 06/29] Adds bed tucking element --- code/datums/elements/bed_tucking.dm | 60 +++++++++++++++++++ code/game/objects/items/devices/paicard.dm | 1 + code/game/objects/items/plushes.dm | 1 + code/game/objects/structures/bedsheet_bin.dm | 4 ++ .../nukeop/equipment/nuclearbomb.dm | 4 +- tgstation.dme | 1 + 6 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 code/datums/elements/bed_tucking.dm diff --git a/code/datums/elements/bed_tucking.dm b/code/datums/elements/bed_tucking.dm new file mode 100644 index 0000000000..602c93fab3 --- /dev/null +++ b/code/datums/elements/bed_tucking.dm @@ -0,0 +1,60 @@ +/// Tucking element, for things that can be tucked into bed. +/datum/element/bed_tuckable + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + /// our pixel_x offset - how much the item moves x when in bed (+x is closer to the pillow) + var/x_offset = 0 + /// our pixel_y offset - how much the item move y when in bed (-y is closer to the middle) + var/y_offset = 0 + /// our rotation degree - how much the item turns when in bed (+degrees turns it more parallel) + var/rotation_degree = 0 + +/datum/element/bed_tuckable/Attach(obj/target, x = 0, y = 0, rotation = 0) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + x_offset = x + y_offset = y + rotation_degree = rotation + RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, .proc/tuck_into_bed) + +/datum/element/bed_tuckable/Detach(obj/target) + . = ..() + UnregisterSignal(target, list(COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_PICKUP)) + +/** + * Tuck our object into bed. + * + * tucked - the object being tucked + * target_bed - the bed we're tucking them into + * tucker - the guy doing the tucking + */ +/datum/element/bed_tuckable/proc/tuck_into_bed(obj/item/tucked, obj/structure/bed/target_bed, mob/living/tucker) + + + if(!istype(target_bed)) + return + + if(!tucker.transferItemToLoc(tucked, target_bed.drop_location())) + return + + to_chat(tucker, "You lay [tucked] out on [target_bed].") + tucked.pixel_x = x_offset + tucked.pixel_y = y_offset + if(rotation_degree) + tucked.transform = turn(tucked.transform, rotation_degree) + RegisterSignal(tucked, COMSIG_ITEM_PICKUP, .proc/untuck) + + return COMPONENT_NO_AFTERATTACK + +/** + * If we rotate our object, then we need to un-rotate it when it's picked up + * + * tucked - the object that is tucked + */ +/datum/element/bed_tuckable/proc/untuck(obj/item/tucked) + + + tucked.transform = turn(tucked.transform, -rotation_degree) + UnregisterSignal(tucked, COMSIG_ITEM_PICKUP) \ No newline at end of file diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 7450cb937c..9a722feb6a 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -18,6 +18,7 @@ /obj/item/paicard/Initialize() SSpai.pai_card_list += src add_overlay("pai-off") + AddElement(/datum/element/bed_tuckable, 6, -5, 90) return ..() /obj/item/paicard/Destroy() diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 3588b7be63..d1174cded7 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -48,6 +48,7 @@ /obj/item/toy/plush/Initialize(mapload, set_snowflake_id) . = ..() AddComponent(/datum/component/squeak, squeak_override) + AddElement(/datum/element/bed_tuckable, 6, -5, 90) //have we decided if Pinocchio goes in the blue or pink aisle yet? if(gender == NEUTER) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index e718bce620..279f581b4d 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -22,6 +22,10 @@ LINEN BINS dog_fashion = /datum/dog_fashion/head/ghost var/list/dream_messages = list("white") +/obj/item/bedsheet/Initialize(mapload) + . = ..() + AddElement(/datum/element/bed_tuckable, 0, 0, 0) + /obj/item/bedsheet/attack(mob/living/M, mob/user) if(!attempt_initiate_surgery(src, M, user)) ..() diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 3991a0a01c..bc4727ab9f 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -620,6 +620,8 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Initialize() . = ..() + AddElement(/datum/element/bed_tuckable, 6, -6, 0) + if(!fake) GLOB.poi_list |= src last_disk_move = world.time @@ -646,7 +648,7 @@ This is here to make the tiles around the station mininuke change when it's arme disk_comfort_level++ if(disk_comfort_level >= 2) //Sleep tight, disky. - return + visible_message("[src] sleeps soundly. Sleep tight, disky.") if(last_disk_move < world.time - 5000 && prob((world.time - 5000 - last_disk_move)*0.0001)) var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && loneop.occurrences < loneop.max_occurrences) diff --git a/tgstation.dme b/tgstation.dme index 71abfdea8e..f816784c21 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -586,6 +586,7 @@ #include "code\datums\elements\_element.dm" #include "code\datums\elements\art.dm" #include "code\datums\elements\beauty.dm" +#include "code\datums\elements\bed_tucking.dm" #include "code\datums\elements\bsa_blocker.dm" #include "code\datums\elements\cleaning.dm" #include "code\datums\elements\decal.dm" From 2ad58a7a9d9a2b2fa6c39c3d5107f7677ae7e3f2 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Tue, 5 Jan 2021 17:47:05 -0700 Subject: [PATCH 07/29] Update mobs.dm --- code/modules/movespeed/modifiers/mobs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index da31346575..d453124b71 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -142,7 +142,7 @@ if(!(L.mobility_flags & MOBILITY_STAND)) return if(iscyborg(target)) - return max(1, existing + 1) + return max(1, existing - 1) var/static/datum/config_entry/number/movedelay/sprint_max_tiles_increase/SMTI if(!SMTI) SMTI = CONFIG_GET_ENTRY(number/movedelay/sprint_max_tiles_increase) From f5dc7d5c018dffc55c300d5b78da37ded00155c7 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 7 Jan 2021 22:27:13 +0200 Subject: [PATCH 08/29] Makes cursed heart more tolerable --- code/datums/action.dm | 4 ++++ code/modules/surgery/organs/heart.dm | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/datums/action.dm b/code/datums/action.dm index 284df6adda..9e25d0e3f3 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -2,6 +2,7 @@ #define AB_CHECK_STUN 2 #define AB_CHECK_LYING 4 #define AB_CHECK_CONSCIOUS 8 +#define AB_CHECK_ALIVE 16 /datum/action var/name = "Generic Action" @@ -115,6 +116,9 @@ if(check_flags & AB_CHECK_CONSCIOUS) if(owner.stat) return FALSE + if(check_flags & AB_CHECK_ALIVE) + if(owner.stat == DEAD) + return FALSE return TRUE /datum/action/proc/UpdateButtonIcon(status_only = FALSE, force = FALSE) diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 25b7e8fa48..6b3d47b587 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -114,7 +114,7 @@ obj/item/organ/heart/slime var/last_pump = 0 var/add_colour = TRUE //So we're not constantly recreating colour datums var/pump_delay = 30 //you can pump 1 second early, for lag, but no more (otherwise you could spam heal) - var/blood_loss = 100 //600 blood is human default, so 5 failures (below 122 blood is where humans die because reasons?) + var/blood_loss = 50 //600 blood is human default, so 5 failures (below 122 blood is where humans die because reasons?) //How much to heal per pump, negative numbers would HURT the player var/heal_brute = 0 @@ -123,7 +123,11 @@ obj/item/organ/heart/slime /obj/item/organ/heart/cursed/attack(mob/living/carbon/human/H, mob/living/carbon/human/user, obj/target) + if(H == user && istype(H)) + if(NOBLOOD in H.dna.species.species_traits) + to_chat(user, "[src] refuses to become one with [H]") + return playsound(user,'sound/effects/singlebeat.ogg',40,1) user.temporarilyRemoveItemFromInventory(src, TRUE) Insert(user) @@ -137,6 +141,8 @@ obj/item/organ/heart/slime if(world.time > (last_pump + pump_delay)) if(ishuman(owner) && owner.client) //While this entire item exists to make people suffer, they can't control disconnects. var/mob/living/carbon/human/H = owner + if(NOBLOOD in H.dna.species.species_traits) //Otherwise people without will be eternally stuck red + return if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) H.blood_volume = max(H.blood_volume - blood_loss, 0) to_chat(H, "You have to keep pumping your blood!") @@ -156,6 +162,8 @@ obj/item/organ/heart/slime return ..() /datum/action/item_action/organ_action/cursed_heart + check_flags = AB_CHECK_ALIVE //We wanna be able to do this always, else thisll just stupidly kill whoever has it + required_mobility_flags = NONE name = "Pump your blood" //You are now brea- pumping blood manually @@ -175,7 +183,8 @@ obj/item/organ/heart/slime var/mob/living/carbon/human/H = owner if(istype(H)) if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) - H.blood_volume = min(H.blood_volume + cursed_heart.blood_loss*0.5, BLOOD_VOLUME_MAXIMUM) + if(H.blood_volume < BLOOD_VOLUME_NORMAL) //We don't need to go too high, otherwise we get annoying messages. + H.blood_volume = min(H.blood_volume + cursed_heart.blood_loss * 0.5, BLOOD_VOLUME_MAXIMUM) H.remove_client_colour(/datum/client_colour/cursed_heart_blood) cursed_heart.add_colour = TRUE H.adjustBruteLoss(-cursed_heart.heal_brute) @@ -184,7 +193,7 @@ obj/item/organ/heart/slime /datum/client_colour/cursed_heart_blood - priority = 100 //it's an indicator you're dieing, so it's very high priority + priority = 100 //it's an indicator you're dying, so it's very high priority colour = "red" /obj/item/organ/heart/cybernetic From 108eace16ed69c880e58748e48d282adae447a8b Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Fri, 8 Jan 2021 02:37:39 +0100 Subject: [PATCH 09/29] fix --- code/game/objects/obj_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 3de28b38e8..73a21e4a25 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -109,7 +109,7 @@ return user.do_attack_animation(src) . = take_damage(damage_amount, damage_type, damage_flag, sound_effect, get_dir(src, user), armor_penetration) - user.DelayNextAction() + user.DelayNextAction(CLICK_CD_MELEE) /obj/attack_alien(mob/living/carbon/alien/humanoid/user) if(attack_generic(user, 60, BRUTE, "melee", 0)) From 0d781aa71ec04fbb233e9de317938f4cfa5660d4 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 8 Jan 2021 01:17:56 -0700 Subject: [PATCH 10/29] Update chem_dispenser.dm --- code/modules/reagents/chemistry/machinery/chem_dispenser.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index dda5689273..d1c18f0510 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -283,7 +283,7 @@ if(!LAZYLEN(chemicals_to_dispense)) return var/list/logstring = list() - var/earlyabort = TRUE + var/earlyabort = FALSE for(var/key in chemicals_to_dispense) var/reagent = GLOB.name2reagent[translate_legacy_chem_id(key)] var/dispense_amount = chemicals_to_dispense[key] From 10228378275cdb41fca543c570679cea6c08cf44 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Fri, 8 Jan 2021 01:29:20 -0700 Subject: [PATCH 11/29] Update misc.dm --- code/game/objects/effects/decals/cleanable/misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 0f7d7c185d..bb566f4d87 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -271,7 +271,7 @@ icon = 'icons/effects/atmospherics.dmi' gender = NEUTER mergeable_decal = TRUE - persistent = TRUE + persistent = FALSE /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" From 4f3df626c65e6ea250911798356f5983a42b681d Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Sat, 9 Jan 2021 00:09:17 +0100 Subject: [PATCH 12/29] no cell no problem --- code/game/objects/items/robot/robot_parts.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index e4d1dd8516..3ee69f6a86 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -304,9 +304,10 @@ O.job = "Cyborg" - O.cell = chest.cell - chest.cell.forceMove(O) - chest.cell = null + if(chest.cell) + O.cell = chest.cell + chest.cell.forceMove(O) + chest.cell = null W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. if(O.mmi) //we delete the mmi created by robot/New() qdel(O.mmi) @@ -346,10 +347,10 @@ O.lawupdate = FALSE O.make_laws() - - O.cell = chest.cell - chest.cell.forceMove(O) - chest.cell = null + if(chest.cell) + O.cell = chest.cell + chest.cell.forceMove(O) + chest.cell = null O.locked = panel_locked O.job = "Cyborg" forceMove(O) From 23c5f1744dd308d1a18bd9709161d2a7422a2e95 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Sat, 9 Jan 2021 00:12:10 +0100 Subject: [PATCH 13/29] actually --- code/game/objects/items/robot/robot_parts.dm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 3ee69f6a86..86468af355 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -304,10 +304,9 @@ O.job = "Cyborg" - if(chest.cell) - O.cell = chest.cell - chest.cell.forceMove(O) - chest.cell = null + O.cell = chest.cell + chest.cell.forceMove(O) + chest.cell = null W.forceMove(O)//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. if(O.mmi) //we delete the mmi created by robot/New() qdel(O.mmi) @@ -327,6 +326,9 @@ else if(istype(W, /obj/item/borg/upgrade/ai)) var/obj/item/borg/upgrade/ai/M = W if(check_completion()) + if(!chest.cell) + to_chat(user, "The endoskeleton still needs a power cell!") + return if(!isturf(loc)) to_chat(user, "You cannot install[M], the frame has to be standing on the ground to be perfectly precise!") return @@ -347,10 +349,9 @@ O.lawupdate = FALSE O.make_laws() - if(chest.cell) - O.cell = chest.cell - chest.cell.forceMove(O) - chest.cell = null + O.cell = chest.cell + chest.cell.forceMove(O) + chest.cell = null O.locked = panel_locked O.job = "Cyborg" forceMove(O) From 9cfd3c073ecbbd814b08385d2c8183198f2575da Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Sat, 9 Jan 2021 00:33:20 +0100 Subject: [PATCH 14/29] smol fix --- code/game/gamemodes/eldritch_cult/eldritch_cult.dm | 1 - code/modules/antagonists/eldritch_cult/eldritch_antag.dm | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/eldritch_cult/eldritch_cult.dm b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm index 20a129a5a3..a3e3c54dce 100644 --- a/code/game/gamemodes/eldritch_cult/eldritch_cult.dm +++ b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm @@ -41,7 +41,6 @@ break var/datum/mind/cultie = antag_pick(antag_candidates) antag_candidates -= cultie - cultie.special_role = ROLE_HERETIC cultie.restricted_roles = restricted_jobs culties += cultie diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index d54f008108..ea226a3cb6 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -31,6 +31,7 @@ /datum/antagonist/heretic/on_gain() var/mob/living/current = owner.current owner.teach_crafting_recipe(/datum/crafting_recipe/heretic/codex) + owner.special_role = ROLE_HERETIC if(ishuman(current)) forge_primary_objectives() gain_knowledge(/datum/eldritch_knowledge/spell/basic) @@ -49,7 +50,7 @@ for(var/X in researched_knowledge) var/datum/eldritch_knowledge/EK = researched_knowledge[X] EK.on_lose(owner.current) - + owner.special_role = null if(!silent) to_chat(owner.current, "Your mind begins to flare as the otherwordly knowledge escapes your grasp!") owner.current.log_message("has renounced the cult of the old ones!", LOG_ATTACK, color="#960000") From b52e8bf4476d7f98999b0ed1819b68e5a3b19bef Mon Sep 17 00:00:00 2001 From: TheSpaghetti <37235090+TheSpaghetti@users.noreply.github.com> Date: Sat, 9 Jan 2021 00:18:15 -0500 Subject: [PATCH 15/29] double punctuation bad no --- code/modules/food_and_drinks/food/snacks_bread.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 3b133d8675..f30d955b00 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -237,7 +237,7 @@ /obj/item/reagent_containers/food/snacks/store/bread/tumor_bread name = "dead tumor bread" - desc = "It's still within its expiration date, right?." + desc = "It's still within its expiration date, right?" icon_state = "tumorbread" slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tumor_bread list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/toxin = 10) From 04d60c85d9cd03b479a1ab3d0e4b013a27c1c5d5 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 9 Jan 2021 03:06:48 -0800 Subject: [PATCH 16/29] a --- .../research/designs/medical_designs.dm | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 66ae54ae9c..1fc61c9bed 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -637,20 +637,20 @@ name = "Cybernetic Liver" desc = "A cybernetic liver" id = "cybernetic_liver" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/liver/cybernetic - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_heart name = "Cybernetic Heart" desc = "A cybernetic heart" id = "cybernetic_heart" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/heart/cybernetic - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_heart_u @@ -668,40 +668,40 @@ name = "Upgraded Cybernetic Liver" desc = "An upgraded cybernetic liver" id = "cybernetic_liver_u" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/liver/cybernetic/upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_lungs name = "Cybernetic Lungs" desc = "A pair of cybernetic lungs." id = "cybernetic_lungs" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/lungs/cybernetic - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_lungs_u name = "Upgraded Cybernetic Lungs" desc = "A pair of upgraded cybernetic lungs." id = "cybernetic_lungs_u" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500) build_path = /obj/item/organ/lungs/cybernetic/upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_tongue name = "Cybernetic tongue" desc = "A fancy cybernetic tongue." id = "cybernetic_tongue" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 500, /datum/material/glass = 500) build_path = /obj/item/organ/tongue/cybernetic - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/cybernetic_ears @@ -925,88 +925,88 @@ name = "Surplus prosthetic left arm" desc = "Basic outdated and fragile prosthetic left arm." id = "basic_l_arm" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/l_arm/robot/surplus - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/basic_r_arm name = "Surplus prosthetic right arm" desc = "Basic outdated and fragile prosthetic left arm." id = "basic_r_arm" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/r_arm/robot/surplus - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/basic_l_leg name = "Surplus prosthetic left leg" desc = "Basic outdated and fragile prosthetic left leg." id = "basic_l_leg" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/l_leg/robot/surplus - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/basic_r_leg name = "Surplus prosthetic right leg" desc = "Basic outdated and fragile prosthetic right leg." id = "basic_r_leg" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500) construction_time = 20 build_path = /obj/item/bodypart/r_leg/robot/surplus - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/adv_r_leg name = "Advanced prosthetic right leg" desc = "A renforced prosthetic right leg." id = "adv_r_leg" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/r_leg/robot/surplus_upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/adv_l_leg name = "Advanced prosthetic left leg" desc = "A renforced prosthetic left leg." id = "adv_l_leg" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/l_leg/robot/surplus_upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/adv_l_arm name = "Advanced prosthetic left arm" desc = "A renforced prosthetic left arm." id = "adv_l_arm" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/l_arm/robot/surplus_upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/adv_r_arm name = "Advanced prosthetic right arm" desc = "A renforced prosthetic right arm." id = "adv_r_arm" - build_type = PROTOLATHE + build_type = PROTOLATHE | MECHFAB materials = list(/datum/material/iron = 6000, /datum/material/glass = 3500, /datum/material/gold = 500, /datum/material/titanium = 800) construction_time = 40 build_path = /obj/item/bodypart/r_arm/robot/surplus_upgraded - category = list("Medical Designs") + category = list("Misc","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL From 6d10ca9efa9646476942ce26a4a25625bb9e98a5 Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Sun, 10 Jan 2021 05:43:33 +1100 Subject: [PATCH 17/29] Fixes missing sprites on the steelwood bokkens, fixes further problems with crafting bokken parts --- .../recipes/recipes_weapon_and_ammo.dm | 6 +++--- icons/mob/clothing/belt.dmi | Bin 23894 -> 23894 bytes icons/mob/inhands/weapons/swords_lefthand.dmi | Bin 29789 -> 29790 bytes .../mob/inhands/weapons/swords_righthand.dmi | Bin 34404 -> 34405 bytes icons/obj/smith.dmi | Bin 16866 -> 16866 bytes 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index dae685b08f..6786f0c0f7 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -85,7 +85,7 @@ subcategory = CAT_MELEE /datum/crafting_recipe/bokken_steelwood - name = "Training Bokken" + name = "Training Steelwood Bokken" result = /obj/item/melee/bokken/steelwood tools = list(TOOL_SCREWDRIVER) reqs = list(/obj/item/bokken_steelblade = 1, @@ -294,7 +294,7 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/ishotgun +/datum/crafting_recipe/ishotgun name = "Improvised Shotgun" result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised reqs = list(/obj/item/pipe = 2, // putting a large amount of meaningless timegates by forcing people to turn base resources into upgraded resources kinda sucks @@ -510,7 +510,7 @@ category = CAT_WEAPONRY subcategory = CAT_PARTS -/datum/crafting_recipe/wakibokken_blade +/datum/crafting_recipe/wakibokken_steelblade name = "Training Wakizashi Ironwood Bokken Blade" result = /obj/item/wakibokken_steelblade tools = list(/obj/item/hatchet, TOOL_WELDER) diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index c1404cb044e78b60630bba7aa6bba581f66947b5..adcd7b64e10598b46a1518e1ecb857ef7cf2939c 100644 GIT binary patch delta 583 zcmV-N0=WIwx&hX@0gzS-EmN9A)%Bi!hbEC=8GjX1c7e>!+=TUm{`&*$3Z0nSe=|K$Ys-Ewg9x5`An@}a zOd^gREvG=vim3IFv$J&r97q%uQ5Mw|s;^blRz=;Y)3`kL3jrVKogUrl(OW%wBci7& zDu0A6U|HG%mc=b#S>6Jc1)g`crh4ZFiW;69C@Ohwps44$fh;;ADU?Peg}jKQ&=ipr zLL!o;Cr3;jlAYxpbR=t}&WX6A7qlGY-Ihy^NG+x;qS4s_-cWX_1v@R+YQYz)aB`70_)T ze2YFLO!CLXk(56ujtgkQrg7BC#ZL%r?IOsz%4lxbm;sk|%)sgo^4M3ckkVcX6+ZprZ%k|26cbd3e4z V_fL=2U!iQ^PaCm&_p`qOms(8l7*GHJ delta 583 zcmV-N0=WIwx&hX@0gzS-EK?dK)%Bi!ho+HW8Gi*ixj<%TZomJiHj`^}Z+7NpTWxxD zU7z1xQihCXXD%|1(L=_IYSTJSW@oOe&7NVzx8EONSLnpt{+sE6T3hye8AR~82LeC; zK^AfJXfp?LRz$6bl$@;_$bm#r5oJ+bq54`yZB^8bI*rR?zYy?&-s#b;9=+A0HzInf zqJKiz0+yvMU|HM(mgOyAS>SnBYpQo{ps3-wfufS<28w!~8_1#~l0s=jQpk%)3QZA7 zAtWMcdU8bWknAk)pm(xH>YRu>I-t!#-fgL*h}0q{5sl6c@QSiaE!b(nRtp}$4n2&c zVyS=H&|mHI9>(Yt-~bs2L@eVN1A|xMO@9~$#U1g6)lFf_B0Rz1lzvaB()ST|tjO4c zT^+gZgipNkl#-oyS)RxgicdKZHt1!q2Oy^cM{J!1FLTbj46KL~ZDEa|2B;0*DQ2e+ zK4k^B2ckKG9qPb9ojkuMgT{j$R`87N3OW{!eqA_a4ek+gzbZjf@A8@xI!46+FO&8G zBY*fTZnZ!bxN#(B3JJNJYvrDe9?}RSP@RE>S~aL0BSDJ|`W(F6e2@~9b#4je3h1^E zzD6GyS^kiCC*_Zc_XRXz(>Utn;xj^9y9jcw657-w^Jp z^F`oOT}uQ|Q=KnzJ~`@(qI%r_ZAmJ?^1KZkG}8*Zs|v|DY~g#nyuevm0zRoWO$~Tt z)&g!#8>A-;QCm}q(>SzZLYY=0*Zci5=<#*=Lr{W`7-V-t!LvCiu^$)BYJZRLrvbG) zj}O%y>uIhm?#iaCD+;zl6?U-4Mp|(KG@kf}<=HZM5ULDp2UEk&BJ+rrw_>dDZ>0Ve z#63;QfxW%DpZ87^n$XK6W_JcD%E}Hf_^)KiiY6&d-Tf|ynA|MS>3sHfd(t>UXocdP zu4|+XtgvY{@-s;3yZZU&9U@sR{QLu%-+c$l!v(huPw^}H_*#?o=O+FO$)oWdAU&-^ Iv!DXKain9JCjbBd delta 309 zcmV-50m}Z~=mFj60gxmCbFn2{0e=>#gM${RpN~B3gbqIN6y7jtSOGZRwl`=Y8+fvL zZ@vh8s%wb=YO3=^$|pyCQB#lmzb!}wSf00mLuOiGcU2)7hb?@MmlrrIOTZ_Url|ps z%v!*$X@j(cA!=(XaTlJ?O8&mg7m+UJ{hWFfWi^ABWx_Z=t?7u+^H#joV!YfaXloA@sPo9~Gg^3h(i Hp#r^em?4)A diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 9f59dbed064dbc3cf897dc13334dd80de1f0c6b0..50b0064de5604dca1a1616bff0c139fc4e9d1ccd 100644 GIT binary patch delta 308 zcmV-40n7g6i~{A10+1vDa3{AZLMR#~ye_-y!fE-Y{uc0XW^dH)tUnnAyNL zUj)9?wL}25)VY)M#Zh;P>T&Oe^f6DkS5uhp*}K0%v6jI8$w!8t}}l z1>Bo9NKY7|wx$xF)6j|uWm=6~ACGg;)9dn^padT=%I=1O7jshLI4zph5r5%N1L|;@ z9;!Rm(_C5HmrYk!6zs<;>|oE0wBi%cc;X+IXUpVCs4}n}ObrK%%p+Rfim@VKBbgec z9NE&(clH;W(1dn#m)#kpC@VX{;J<(+&ooJC>TYv6#^mO7P1mcZ+mpr-LMs&S^;jcq zU_DK%kzYVc-$l4L~^R%;` G0>*<7(V8d# delta 307 zcmV-30nGm8i~{700+1vDaj_*_0e=hB!9feu^CJ&Cp@$DVg*QwZRsc@7?G0MU24*(z z%@=_$buAGZsI95Q=QOlpLYY=0*T>@=^z^FyCMLm0jIz6-;KiJjI8F;@b$>+o(||f$ zribc|^)y!&_a)O66$SgT3Om?yBdz!ZG@kg!rP(rh5~>Vr2UEkrB9k*K#)^P#WNMId zWJ5pS*^nXIEWv!`vK=ag5eZ% From d7d342cc7561393a5b49168583105b413f699937 Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Sun, 10 Jan 2021 05:48:27 +1100 Subject: [PATCH 18/29] Back sprites as well --- icons/mob/clothing/back.dmi | Bin 106411 -> 106411 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index caa901a9fd294ee76a4c85ffe289e53822cd7311..2afd1b510bad492429a8a6e9527965035a006474 100644 GIT binary patch delta 1309 zcmV+&1>*XvzXq$n29P>`OK;;g5P;A2uMl>xauGT9?p}Ookwp=pyFC;=3nOYIPDF9E zB<07y@4;3qCzd%*ksv^TZ)QjiIWK)q{`mgq^Uvhz$MbxP&J){YldOJwn9p`p2Ayn@ z$K`yck!l@||M&m_lTGpo4XWU{1Jyiyn$JpdKG`Iz`K)r#qE9w|Np=;^qHqDK=|DA6 zkoSigtq{vAG3cTskbtr1gT_EAioReFZTQ43cw*Db`K&|(hh&p1)8%`)!rWt}F#pGv zf-V5Xz4M0uu)UTniH)^nY0}c;+0r^)rrCVva7VVBR%PqEEZh3SyWBFBVq06LQetV9 zuFk?c3QC_vvg;;)l;NEf-PsmPQeZ@^N7XwD2N8U_Fd|m7DaqE;?AP;YWa;Q<6qOt| zD6@vPChR~pfB*F)hvTOML1{Emt|Eu9$9Pm0g9X@<4PiX!souy!Sxr?appM%P>{gI+ z2i9Xe=e}+ZIx%b6$q%A35X7)P#NE+A01HtpVB4_+Bg6}C8iC7>SYGtb#&>mseLz9D z8pA^UULArK#4R77s<=`bY>n6H^+g&y{#;M^CuLx%g+Nnjbu}&?*6BK3-_)iN%yjv1 zSq-FF`tI+4wY{#$vpAOM#9U7bohOzzz25ig#FQOvM=M3qkUmxEIENgI|Nr7 z@IKD&AfOZX5{_H2xz~gy{t_=#zks0dypVv~c37|BoqV+iTM|OsvQ(mU zY~zQ2U9hYHQW{%Xr-W9P2LkU!+?I}$IB~DC5IAc<1$TEq<8}8dD!2jz8Xxm{jTrv@ z=XXJCj;=oB!a}+;;9F?H<^in0{{{{%yZD9j9fB*kEku2~750p0bm0V#afBD97cAOR zCm0tTu|*4U2P=)OxSA_^)fj>Oj#LBt(RRLnP5D3wmQql&@c|`AZ#l?e&9)KjTUQQ$ z^=Q>WaH-g0E*lfE#oTuYl1hGT_GE`bZAUr zpqzLFqe5KS( zy}0D_0zpl6x;MleLV1Yxk?%&VSJm8H!!2z-^tN*>7;~M#+_FLwPhhV+sBps_ul%o` zw&-#Vt~6BZcnMh_BU>ZJ%NGjA3d-qqGf_;Fh5`PbW^#KIOSaazERMm~lyS#AV717DuF(r8%u}!pG zQ$nZDEPiV68UM=CIhqQrR|@jpLC_9C@Wwj?cdXFj-f5wh4HX7(aR<6w-NW9aIs0-C zE6{AfqqDdZR2`-yTiBhI|a8p1p#oH?%IJr delta 1309 zcmV+&1>*XvzXq$n29P>`&2Hm341mwcQy4Q>XHlog%v^HVMF)!lJF|zyo()>2E!MK= zk>vcm{T>pxP8vr{7cB}D_(+PPM3MC8T_|Fxe!Z(4Y#AJ5bHTr}?ZT=aWscn$Ic+E&61ClVn%nED9H(nhsPG z1$lp{(F(D=5`!*E0tpz4K4=W2qUZ|-k;5l$!4pm|=d%(G9Fk44OqcKF3UiN@!u%gw z3c3IkkIn`EVS6oE5*usD(xj!wH%seunP&5u!yVajT9vKuvTW-Qd%0yQ#kRIgrNq)I zUA+nKC@B3Vl3h1{p$zY==*+fQk^&=QJ*wVOIEdiWff2EqO-Z(%X1~7eMwX6#Mp?;m zgEDJqYr+mx^Y>p*ayY&_5R^s}$1{^74pLT0!BPtD(3I%zIT#BR9@xNpF}oE! zxdZDl{^q_q2c4L;?Bp9!83bH;o`WFq!8I-XlR#fzs;ulS6$ChvBol$>z z(PNZ-RS63GBew7dTT=Y&pV5-C?<62?;0OJJn(Kt#u?R^?JFM66PQKcMEeWA*St?OF zw(-q>E?Cz7D2=VGPeLnu2LkU!+?I}WIB}=45Cm&L1!s3a<5l-7DmVfI8Xxj`jTrv@ z=XXJ4j;=oB!ZNxu;9F?H<^ilA{ss;$yZC|f9fB*kEks?q6?Tko=)wsu;|MQIFIcpt zPB1JuVv82y0ahAYaWz-;sxbol9jONPBX_=kO~pV6mQql&@c|`UZ#l?e&9)Kvtt*GW zdbH{wI8!%9UQc^GGtAw^**{7wY6G;LynI&#HKF59gAKVdeGxx@ z7w3FlASgixe<|h=%0sk|d^cdds^;bzZfWzOx1D3bkn05ImKB=#1NO>;3OB;>%Kz$V zi!RsTN<+1dmyngAT89o)li%U^)iJ|JRl)2hY=1x-SMi6oGT^nar5>?)Wx(rr7@9*~ z^rjXhrr~plq(U9BcYmWP*axU8@z+p)A3(5;HJ3g>Ro!@bmuCUIB0BkYOi3O`Y!fZl zl+fuTi=P^M#=o(2j;0dpm4du?5VS)O-0=><9V@hWbXuroLxllc+<`7v_ptY9&c58k z3N#z==q&C8Rfj3b*0-A1FIPi9t^|RM*OL6(_9oC4osW-n-wb_DzW;nmo_;(F&;J9c T+@j{kJm+eII|a8p1p#oHlTLT2 From d459f6db91093ef9c456241c7818db025d39b97f Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 9 Jan 2021 21:30:18 +0000 Subject: [PATCH 19/29] Update looc.dm --- code/modules/client/verbs/looc.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/client/verbs/looc.dm b/code/modules/client/verbs/looc.dm index 67563b99e5..e6e62280e2 100644 --- a/code/modules/client/verbs/looc.dm +++ b/code/modules/client/verbs/looc.dm @@ -17,7 +17,7 @@ GLOBAL_VAR_INIT(normal_looc_colour, "#6699CC") if(!msg) return - if(!(prefs.toggles & CHAT_OOC)) + if(!(prefs.chat_toggles & CHAT_OOC)) to_chat(src, " You have OOC muted.") return if(jobban_isbanned(mob, "OOC")) @@ -63,14 +63,14 @@ GLOBAL_VAR_INIT(normal_looc_colour, "#6699CC") if (isobserver(M)) continue //Also handled later. - if(C.prefs.toggles & CHAT_OOC) + if(C.prefs.chat_toggles & CHAT_OOC) if(GLOB.LOOC_COLOR) to_chat(C, "LOOC: [src.mob.name]: [msg]") else to_chat(C, "LOOC: [src.mob.name]: [msg]") for(var/client/C in GLOB.admins) - if(C.prefs.toggles & CHAT_OOC) + if(C.prefs.chat_toggles & CHAT_OOC) var/prefix = "(R)LOOC" if (C.mob in heard) prefix = "LOOC" From 562dbd5802652557eff04b1ee6235da30c540cf9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:34:08 -0600 Subject: [PATCH 20/29] Automatic changelog generation for PR #14016 [ci skip] --- html/changelogs/AutoChangeLog-pr-14016.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14016.yml diff --git a/html/changelogs/AutoChangeLog-pr-14016.yml b/html/changelogs/AutoChangeLog-pr-14016.yml new file mode 100644 index 0000000000..1aab587190 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14016.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - bugfix: "disabling adminhelp noises no longer disables looc" From b0f0d52bd9d65f8f1e33c4670bb6e2f4cd6cb659 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:36:31 -0600 Subject: [PATCH 21/29] Automatic changelog generation for PR #14010 [ci skip] --- html/changelogs/AutoChangeLog-pr-14010.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14010.yml diff --git a/html/changelogs/AutoChangeLog-pr-14010.yml b/html/changelogs/AutoChangeLog-pr-14010.yml new file mode 100644 index 0000000000..643f28dc99 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14010.yml @@ -0,0 +1,5 @@ +author: "shellspeed1" +delete-after: True +changes: + - rscadd: "The exofab can now print prosthetic limbs" + - bugfix: "The exofab was missing access to multiple cybernetic organs. This has now been rectified." From 1d2928ad521a0f23f4054154455c071f07717c5b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:37:21 -0600 Subject: [PATCH 22/29] Automatic changelog generation for PR #14008 [ci skip] --- html/changelogs/AutoChangeLog-pr-14008.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14008.yml diff --git a/html/changelogs/AutoChangeLog-pr-14008.yml b/html/changelogs/AutoChangeLog-pr-14008.yml new file mode 100644 index 0000000000..836eefd99a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14008.yml @@ -0,0 +1,4 @@ +author: "TheSpaghetti" +delete-after: True +changes: + - bugfix: "no more tumor bread double punctuation" From b4537999187515d8287bb6f5b481d4003dcb41cf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:37:38 -0600 Subject: [PATCH 23/29] Automatic changelog generation for PR #14007 [ci skip] --- html/changelogs/AutoChangeLog-pr-14007.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14007.yml diff --git a/html/changelogs/AutoChangeLog-pr-14007.yml b/html/changelogs/AutoChangeLog-pr-14007.yml new file mode 100644 index 0000000000..498aa6b807 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14007.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "Antagging / Deantagging Heretics now properly sets their special role." From 4d64026a88c57e219516358bc81297ff14a557a6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:37:48 -0600 Subject: [PATCH 24/29] Automatic changelog generation for PR #14006 [ci skip] --- html/changelogs/AutoChangeLog-pr-14006.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14006.yml diff --git a/html/changelogs/AutoChangeLog-pr-14006.yml b/html/changelogs/AutoChangeLog-pr-14006.yml new file mode 100644 index 0000000000..519ad32752 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14006.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "Cyborg B.o.r.i.s. installation now checks for if the chest has a cell, just like how it does with MMIs." From 185a57cd5d518204ad2a972d9d2cf70f81f75a1e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:38:10 -0600 Subject: [PATCH 25/29] Automatic changelog generation for PR #13995 [ci skip] --- html/changelogs/AutoChangeLog-pr-13995.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-13995.yml diff --git a/html/changelogs/AutoChangeLog-pr-13995.yml b/html/changelogs/AutoChangeLog-pr-13995.yml new file mode 100644 index 0000000000..e58ee3103c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13995.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "Attacking some certain objects no longer has no clickdelay." From b50c23a82a4949d69eb1e14fae09ca4018557ff6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 16:39:08 -0600 Subject: [PATCH 26/29] Automatic changelog generation for PR #13965 [ci skip] --- html/changelogs/AutoChangeLog-pr-13965.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-13965.yml diff --git a/html/changelogs/AutoChangeLog-pr-13965.yml b/html/changelogs/AutoChangeLog-pr-13965.yml new file mode 100644 index 0000000000..69f5a90122 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13965.yml @@ -0,0 +1,7 @@ +author: "Xantholne" +delete-after: True +changes: + - rscadd: "You can now tuck disky into bed" + - rscadd: "You can now make beds by applying a bed sheet to them" + - rscadd: "You can now tuck in pai cards into bed" + - rscadd: "Added bed tucking element, can be added to any held object to allow tucking into beds" From fd77be9b89e3b736c98b5a2cf81030c61fc823f8 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 9 Jan 2021 16:44:56 -0700 Subject: [PATCH 27/29] Update _status_effects.dm --- .../research/xenobiology/crossbreeding/_status_effects.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index cbfbbe2a36..9b19516f26 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -884,6 +884,7 @@ datum/status_effect/stabilized/blue/on_remove() /datum/status_effect/stabilized/oil/tick() if(owner.stat == DEAD) explosion(get_turf(owner),1,2,4,flame_range = 5) + owner.remove_status_effect(/datum/status_effect/stabilized/oil) return ..() /datum/status_effect/stabilized/black From 1265995f60f8996ca860c10798198cec38b28a20 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 9 Jan 2021 20:49:13 -0600 Subject: [PATCH 28/29] Automatic changelog generation for PR #14014 [ci skip] --- html/changelogs/AutoChangeLog-pr-14014.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14014.yml diff --git a/html/changelogs/AutoChangeLog-pr-14014.yml b/html/changelogs/AutoChangeLog-pr-14014.yml new file mode 100644 index 0000000000..ac29b1567b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14014.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Fixes various sprites for bokken, as well as being unable to craft certain parts and duplicate entries." From e998fd4e348a79d90b2e3e66faa3a65387758e5a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 10 Jan 2021 02:36:46 -0600 Subject: [PATCH 29/29] Automatic changelog generation for PR #13993 [ci skip] --- html/changelogs/AutoChangeLog-pr-13993.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-13993.yml diff --git a/html/changelogs/AutoChangeLog-pr-13993.yml b/html/changelogs/AutoChangeLog-pr-13993.yml new file mode 100644 index 0000000000..d99ed0e0d1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13993.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - tweak: "The cursed heart now only takes away half as much blood every loop, and can be used as long as you are alive, instead if only you are awake/able to use your hands"