From 287ee756e81d6d2ed889afdede7edde56c1202eb Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Tue, 20 Mar 2018 02:22:32 +0200 Subject: [PATCH] Adds two new intermediate beaker types to chemistry (#36484) * a commit * rebase * 180 --- code/__DEFINES/construction.dm | 3 ++- code/datums/components/material_container.dm | 5 ++++ .../items/stacks/sheets/sheet_types.dm | 1 + .../reagents/reagent_containers/glass.dm | 23 ++++++++++++++++++ .../research/designs/medical_designs.dm | 20 ++++++++++++++- .../modules/research/machinery/_production.dm | 2 +- code/modules/research/techweb/all_nodes.dm | 4 +-- icons/obj/chemical.dmi | Bin 44152 -> 44403 bytes icons/obj/reagentfillings.dmi | Bin 3555 -> 3885 bytes 9 files changed, 53 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index f7c0214cb26..0a7bc2cde4c 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -80,6 +80,7 @@ #define MAT_BANANIUM "$bananium" #define MAT_TITANIUM "$titanium" #define MAT_BIOMASS "$biomass" +#define MAT_PLASTIC "$plastic" //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc #define MINERAL_MATERIAL_AMOUNT 2000 //The maximum size of a stack object. @@ -114,4 +115,4 @@ #define RCD_FLOORWALL 1 #define RCD_AIRLOCK 2 #define RCD_DECONSTRUCT 3 -#define RCD_WINDOWGRILLE 4 \ No newline at end of file +#define RCD_WINDOWGRILLE 4 diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 5221e2b3877..7681b5491b9 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -352,3 +352,8 @@ /datum/material/biomass name = "Biomass" id = MAT_BIOMASS + +/datum/material/plastic + name = "Plastic" + id = MAT_PLASTIC + sheet_type = /obj/item/stack/sheet/plastic diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 37b57932722..775a67f6c1e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -508,6 +508,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( singular_name = "plastic sheet" icon_state = "sheet-plastic" item_state = "sheet-plastic" + materials = list(MAT_PLASTIC=MINERAL_MATERIAL_AMOUNT) throwforce = 7 merge_type = /obj/item/stack/sheet/plastic diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e337953f331..1be1afccdd6 100755 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -165,6 +165,29 @@ amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100) +/obj/item/reagent_containers/glass/beaker/plastic + name = "x-large beaker" + desc = "An extra-large beaker. Can hold up to 120 units." + icon_state = "beakerwhite" + materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000) + volume = 120 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(10,15,20,25,30,60,120) + +/obj/item/reagent_containers/glass/beaker/plastic/update_icon() + icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states + ..() + icon_state = "beakerwhite" + +/obj/item/reagent_containers/glass/beaker/meta + name = "metamaterial beaker" + desc = "A large beaker. Can hold up to 180 units." + icon_state = "beakergold" + materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000) + volume = 180 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(10,15,20,25,30,60,120,180) + /obj/item/reagent_containers/glass/beaker/noreact name = "cryostasis beaker" desc = "A cryostasis beaker that allows for chemical storage without \ diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 9f287c6ee2f..79edee08ce5 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -44,6 +44,24 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/xlarge_beaker + name = "X-large Beaker" + id = "xlarge_beaker" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000) + build_path = /obj/item/reagent_containers/glass/beaker/plastic + category = list("Medical Designs") + +/datum/design/meta_beaker + name = "Metamaterial Beaker" + id = "meta_beaker" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000, MAT_GOLD = 1000, MAT_TITANIUM = 1000) + build_path = /obj/item/reagent_containers/glass/beaker/meta + category = list("Medical Designs") + /datum/design/bluespacesyringe name = "Bluespace Syringe" desc = "An advanced syringe that can hold 60 units of chemicals" @@ -556,4 +574,4 @@ materials = list(MAT_METAL = 300, MAT_GLASS = 100) build_path = /obj/item/disk/surgery/necrotic_revival category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index ac5d1b225af..f00ee72ef7e 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -23,7 +23,7 @@ . = ..() create_reagents(0) materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, + list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0, FALSE, list(/obj/item/stack), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE RefreshParts() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index f2a33914879..4b671664103 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -9,7 +9,7 @@ description = "NT default research technologies." design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater") //Default research tech, prevents bricking + "space_heater","xlarge_beaker") //Default research tech, prevents bricking /////////////////////////Biotech///////////////////////// /datum/techweb_node/biotech @@ -26,7 +26,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator") + design_ids = list("piercesyringe", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker") research_cost = 2500 export_price = 5000 diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 808e7957fc8f13dc8106852f6adc8fc37d5817f4..a958f59de137ccc35200245b582c773272a6952a 100644 GIT binary patch delta 5855 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 E0GB6MYybcN delta 5602 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