From e4b256e741e626500815df36ad4ee61df0724895 Mon Sep 17 00:00:00 2001 From: Geeves Date: Thu, 30 Jul 2020 12:15:11 +0200 Subject: [PATCH] Biogenerator Stuff (#9480) Added plastic and perconol pills to the biogenerator. Moved gauze and ointment out of the emag category and into the medical one. Tweaked how stacks are made in the biogenerator, should be a bit nicer now. Fixed an oversight that caused the biogenerator to be twice as good as it actually should have been. Added the ability to make whips out of leather. Fixed the leather briefcase recipe. --- code/game/machinery/biogenerator.dm | 85 +++++++++++++++---- code/modules/materials/material_recipes.dm | 3 +- .../geeves-biogenerator_goodies.yml | 12 +++ 3 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 html/changelogs/geeves-biogenerator_goodies.yml diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 0372ea5e6ac..ad289ecf9e6 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -230,6 +230,14 @@ amount = list(1,5,10,25,50), emag = 0 ), + "plastic" = list( + name = "Plastic", + class = "Construction", + object = /obj/item/stack/material/plastic, + cost = 100, + amount = list(1,5,10,25,50), + emag = 0 + ), "mushroom" = list( name = "Pet Mushroom", class = "Special", @@ -278,23 +286,47 @@ amount = list(1,2,3,4,5), emag = 0 ), - // Antag Items (Emag) "bruise_pack" = list( name = "Bruise Pack", - class = "!@#$%^&*()", + class = "Medical", object = /obj/item/stack/medical/bruise_pack, cost = 400, amount = list(1,2,3,4,5), - emag = 1 + emag = FALSE ), "ointment" = list( name = "Burn Ointment", - class = "!@#$%^&*()", + class = "Medical", object = /obj/item/stack/medical/ointment, cost = 400, amount = list(1,2,3,4,5), - emag = 1 + emag = FALSE ), + "perconol_pill" = list( + name = "Perconol Pill", + class = "Medical", + object = /obj/item/reagent_containers/pill/perconol, + cost = 250, + amount = list(1,2,3,5,7), + emag = FALSE + ), + "adv_trauma_kit" = list( + name = "Advanced Trauma Kit", + class = "!@#$%^&*()", + object = /obj/item/stack/medical/advanced/bruise_pack, + cost = 600, + amount = list(1,2,3,4,5), + emag = TRUE + ), + "adv_burn_kit" = list( + name = "Advanced Burn Kit", + class = "!@#$%^&*()", + object = /obj/item/stack/medical/advanced/ointment, + cost = 600, + amount = list(1,2,3,4,5), + emag = TRUE + ), + // Antag Items (Emag) "humanhide" = list( name = "Human Hide", class = "!@#$%^&*()", @@ -521,27 +553,48 @@ var/delay = totake/2 //Meat = 5 seconds + if(!processing) + processing = TRUE + update_icon() + updateUsrDialog() + + sleep(delay) + var/obj/made_container for(var/i = 1,i <= count; i++) - if (totake > points) + updateUsrDialog() + if(totake > points) + processing = FALSE menustat = "nopoints" - return 0 + update_icon() + return FALSE else - if(!processing) - processing = 1 - update_icon() - updateUsrDialog() points -= totake use_power(totake * 0.25) - sleep( delay ) playsound(src.loc, "switchsounds", 50, 1) var/new_object = recipie_data["object"] - new new_object(loc) + if(ispath(new_object, /obj/item/reagent_containers/pill)) + if(!made_container) + made_container = new /obj/item/storage/pill_bottle(loc) + new new_object(made_container) + else if(ispath(new_object, /obj/item/stack/medical)) // we want full amounts of medical supplies + new new_object(loc) + sleep(delay) + else if(ispath(new_object, /obj/item/stack)) + var/subtract_amount = totake * (count - 1) + points -= subtract_amount + use_power(subtract_amount * 0.25) + new new_object(loc, count) + break + else + new new_object(loc) + sleep(delay) sleep(10) processing = 0 menustat = "complete" update_icon() + updateUsrDialog() return 1 /obj/machinery/biogenerator/Topic(href, href_list) @@ -568,8 +621,8 @@ /obj/machinery/biogenerator/RefreshParts() ..() - var/man_rating = 1 - var/bin_rating = 1 + var/man_rating = 0 + var/bin_rating = 0 for(var/obj/item/stock_parts/P in component_parts) if(ismatterbin(P)) @@ -578,4 +631,4 @@ man_rating += P.rating build_eff = man_rating - eat_eff = bin_rating + eat_eff = bin_rating \ No newline at end of file diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 64c30126ea3..1b91fe08a91 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -281,5 +281,6 @@ ..() recipes += new /datum/stack_recipe_list("[display_name] construction", list( - new /datum/stack_recipe("leather briefcase", /obj/item/storage/briefcase/real, 1, 4, 20) + new /datum/stack_recipe("leather briefcase", /obj/item/storage/briefcase/real, 4, 1, time = 20), + new /datum/stack_recipe("leather whip", /obj/item/melee/whip, 15, 1, time = 20) )) \ No newline at end of file diff --git a/html/changelogs/geeves-biogenerator_goodies.yml b/html/changelogs/geeves-biogenerator_goodies.yml new file mode 100644 index 00000000000..25fa21160e8 --- /dev/null +++ b/html/changelogs/geeves-biogenerator_goodies.yml @@ -0,0 +1,12 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added plastic and perconol pills to the biogenerator." + - rscadd: "Added advanced trauma kits and advanced burn kits to the emag section of the biogenerator." + - tweak: "Moved gauze and ointment out of the emag category and into the medical one." + - tweak: "Tweaked how stacks are made in the biogenerator, should be a bit nicer now." + - bugfix: "Fixed an oversight that caused the biogenerator to be twice as good as it actually should have been." + - rscadd: "Added the ability to make whips out of leather." + - bugfix: "Fixed the leather briefcase recipe." \ No newline at end of file