From e1c77e903117d46c1ed6a006229871075ec8f3da Mon Sep 17 00:00:00 2001 From: JimKil3 <47290811+JimKil3@users.noreply.github.com> Date: Sat, 11 Nov 2023 20:28:45 -0500 Subject: [PATCH] Makes gauze/ointment craftable; refactors a bit of crafting code (#23127) * the features * smartfridge * whoops * Update code/modules/crafting/recipes.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> --------- Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> --- code/modules/crafting/craft.dm | 20 ++++++++----------- code/modules/crafting/recipes.dm | 19 ++++++++++++++++++ .../kitchen_machinery/smartfridge.dm | 2 ++ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 9f43fc77249..ea17bb73bdd 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -195,8 +195,8 @@ /datum/personal_crafting/proc/requirements_deletion(datum/crafting_recipe/recipe, mob/user) var/list/surroundings = get_environment(user) var/list/parts_used = list() - var/list/reagent_containers_for_deletion = list() var/list/item_stacks_for_deletion = list() + var/list/reagent_list_for_deletion = list() for(var/thing in recipe.reqs) var/needed_amount = recipe.reqs[thing] @@ -206,13 +206,13 @@ part_reagent = new thing() parts_used += part_reagent - for(var/obj/item/reagent_containers/container in (surroundings - reagent_containers_for_deletion)) + for(var/obj/item/reagent_containers/container in surroundings) var/datum/reagent/contained_reagent = container.reagents.get_reagent(thing) if(!contained_reagent) continue var/extracted_amount = min(contained_reagent.volume, needed_amount) - reagent_containers_for_deletion[container] = list(contained_reagent, extracted_amount) + reagent_list_for_deletion[thing] += list(list(container, extracted_amount)) part_reagent.volume += extracted_amount part_reagent.data += contained_reagent.data needed_amount -= extracted_amount @@ -258,16 +258,12 @@ continue parts_used += part_atom - for(var/obj/item/reagent_containers/container_to_clear as anything in reagent_containers_for_deletion) - var/datum/reagent/reagent_to_delete = reagent_containers_for_deletion[container_to_clear][1] - var/amount_to_delete = reagent_containers_for_deletion[container_to_clear][2] + for(var/datum/reagent/reagent_to_delete as anything in reagent_list_for_deletion) + for(var/list/reagent_info in reagent_list_for_deletion[reagent_to_delete]) + var/obj/item/reagent_containers/container = reagent_info[1] + var/amount_to_delete = reagent_info[2] - if(amount_to_delete < reagent_to_delete.volume) - reagent_to_delete.volume -= amount_to_delete - else - container_to_clear.reagents.reagent_list -= reagent_to_delete - container_to_clear.reagents.conditional_update(container_to_clear) - container_to_clear.update_icon() + container.reagents.remove_reagent(reagent_to_delete.id, amount_to_delete) for(var/obj/item/stack/stack_to_delete as anything in item_stacks_for_deletion) var/amount_to_delete = item_stacks_for_deletion[stack_to_delete] diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index b61d7eabd93..140653f59b7 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -1352,3 +1352,22 @@ /obj/item/toy/crayon/red) category = CAT_DECORATIONS subcategory = CAT_LARGE_DECORATIONS + +/datum/crafting_recipe/gauze + name = "Treated gauze" + time = 3 SECONDS + result = list(/obj/item/stack/medical/bruise_pack) + reqs = list(/obj/item/stack/medical/bruise_pack/improvised = 6, + /datum/reagent/medicine/styptic_powder = 30, + /datum/reagent/medicine/sterilizine = 10) + category = CAT_MISC + +/datum/crafting_recipe/ointment + name = "Ointment" + time = 3 SECONDS + result = list(/obj/item/stack/medical/ointment) + reqs = list(/obj/item/stack/sheet/plastic = 2, + /datum/reagent/water = 10, + /datum/reagent/medicine/silver_sulfadiazine = 30, + /datum/reagent/medicine/sterilizine = 10) + category = CAT_MISC diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 458830e2dd2..a4aa0fc0c61 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -581,6 +581,7 @@ /obj/item/reagent_containers/applicator, /obj/item/storage/pill_bottle, /obj/item/reagent_containers/food/pill, + /obj/item/stack/medical )) /** @@ -620,6 +621,7 @@ /obj/item/reagent_containers/applicator, /obj/item/storage/pill_bottle, /obj/item/reagent_containers/food/pill, + /obj/item/stack/medical )) /**