mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request Extends the part of the crafting unit test that ensures consistency between the total mats of the components of a recipe (or rather, the result of said recipe) and a generic instance of the same type as its result, previously only implemented on food recipes. ## Why It's Good For The Game This ensures a degree of consistency with the material composition of various objects in the game. I couldn't do it in the original PR as that one was too big already and it took months to get it merged, and have the relative bugs fixed. Currently a WIP as I slowly deal with the unit test reports. ## Changelog 🆑 refactor: Follow-up to the crafting/material refactor from months ago. All objects crafted with stacks now inherit their mat composition (not necessarily the effects and color) by default, while previously only a few things like chair, sinks and toilets did. Report any object looking or behaving weirdly as a result. fix: The material composition of ammo boxes is no longer a 1/10 of what it's supposed to be. It was a shitty hack to make it harder to recycle empty ammo boxes. Instead, they lose materials as they're emptied now. /🆑
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
icon = 'icons/obj/antags/abductor.dmi'
|
||||
build_stack_type = /obj/item/stack/sheet/mineral/abductor
|
||||
icon_state = "bed"
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT * 2)
|
||||
|
||||
/obj/structure/table_frame/abductor
|
||||
name = "alien table frame"
|
||||
@@ -14,6 +15,7 @@
|
||||
icon_state = "alien_frame"
|
||||
framestack = /obj/item/stack/sheet/mineral/abductor
|
||||
framestackamount = 1
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT)
|
||||
|
||||
/obj/structure/table_frame/abductor/get_table_type(obj/item/stack/our_stack)
|
||||
if(istype(our_stack, /obj/item/stack/sheet/mineral/abductor))
|
||||
@@ -36,6 +38,7 @@
|
||||
frame = /obj/structure/table_frame/abductor
|
||||
custom_materials = list(/datum/material/silver =SHEET_MATERIAL_AMOUNT)
|
||||
can_flip = FALSE
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT * 2)
|
||||
|
||||
/obj/structure/table/optable/abductor
|
||||
name = "alien operating table"
|
||||
@@ -49,6 +52,7 @@
|
||||
icon_state = "bed"
|
||||
can_buckle = TRUE
|
||||
buckle_lying = 90
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT, /datum/material/silver = SHEET_MATERIAL_AMOUNT)
|
||||
/// Amount to inject per second
|
||||
var/inject_amount = 0.5
|
||||
|
||||
@@ -88,6 +92,7 @@
|
||||
can_weld_shut = FALSE
|
||||
door_anim_time = 0
|
||||
material_drop = /obj/item/stack/sheet/mineral/abductor
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT * 2)
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_abductor
|
||||
name = "alien airlock assembly"
|
||||
@@ -97,3 +102,4 @@
|
||||
airlock_type = /obj/machinery/door/airlock/abductor
|
||||
material_type = /obj/item/stack/sheet/mineral/abductor
|
||||
noglass = TRUE
|
||||
custom_materials = list(/datum/material/alloy/alien = SHEET_MATERIAL_AMOUNT * 4)
|
||||
|
||||
@@ -246,6 +246,7 @@
|
||||
actions_types = null
|
||||
color_cutoffs = list(40, 0, 0) //red
|
||||
glass_colour_type = null
|
||||
custom_materials = null
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot)
|
||||
. = ..()
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
icon_state = "talismanaltar"
|
||||
break_message = span_warning("The altar shatters, leaving only the wailing of the damned!")
|
||||
mansus_conversion_path = /obj/effect/heretic_rune
|
||||
custom_materials = list(/datum/material/runedmetal = SHEET_MATERIAL_AMOUNT * 3)
|
||||
|
||||
/obj/structure/destructible/cult/item_dispenser/altar/setup_options()
|
||||
var/static/list/altar_items = list(
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
light_color = LIGHT_COLOR_FIRE
|
||||
break_message = span_warning("The books and tomes of the archives burn into ash as the desk shatters!")
|
||||
mansus_conversion_path = /obj/item/codex_cicatrix
|
||||
custom_materials = list(/datum/material/runedmetal = SHEET_MATERIAL_AMOUNT * 3)
|
||||
|
||||
/obj/structure/destructible/cult/item_dispenser/archives/setup_options()
|
||||
var/static/list/archive_items = list(
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
light_color = LIGHT_COLOR_LAVA
|
||||
break_message = span_warning("The forge breaks apart into shards with a howling scream!")
|
||||
mansus_conversion_path = /obj/structure/destructible/eldritch_crucible
|
||||
custom_materials = list(/datum/material/runedmetal = SHEET_MATERIAL_AMOUNT * 3)
|
||||
|
||||
/obj/structure/destructible/cult/item_dispenser/forge/setup_options()
|
||||
var/static/list/forge_items = list(
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
break_sound = 'sound/effects/glass/glassbr2.ogg'
|
||||
break_message = span_warning("The blood-red crystal falls to the floor and shatters!")
|
||||
/// Length of the cooldown in between tile corruptions. Doubled if no turfs are found.
|
||||
custom_materials = list(/datum/material/runedmetal = SHEET_MATERIAL_AMOUNT * 4)
|
||||
var/corruption_cooldown_duration = 5 SECONDS
|
||||
/// The cooldown for corruptions.
|
||||
COOLDOWN_DECLARE(corruption_cooldown)
|
||||
|
||||
Reference in New Issue
Block a user