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>
This commit is contained in:
JimKil3
2023-11-11 20:28:45 -05:00
committed by GitHub
co-authored by DGamerL
parent 3adf84254b
commit e1c77e9031
3 changed files with 29 additions and 12 deletions
+8 -12
View File
@@ -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]
+19
View File
@@ -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
@@ -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
))
/**