From 23150f253d1ae2aa662b719c09d4dfe885dab031 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Mon, 15 Sep 2025 08:06:32 -0400 Subject: [PATCH] Phoron Scarcity Electronics (#21319) This PR was requested by the loremaster @Triogenics. According to the loremaster, all modern electronics in the setting should require a small amount of elemental phoron for its capacity as a room temperature superconductor. This is also needed to play into the "Phoron Scarcity" lore arc. So this PR does exactly that, making all electronics cost a very small amount of Phoron to create. Existing machine shop and science stockpiles of phoron crystals are sufficient to manufacture these for the time being, though that may not be the case in the future. :) To keep things logically consistent, I've also made it so that circuit boards both actually contain the matter used to print them, and can be recycled to at least partially recover that matter. Have fun breaking down thousands and thousands of old circuit boards to get a few flakes of phoron once things start getting bad. --- code/game/machinery/autolathe/autolathe.dm | 5 +++-- .../objects/items/weapons/circuitboards/circuitboard.dm | 3 +++ code/modules/power/cable.dm | 2 +- code/modules/research/designs/circuit/circuits.dm | 2 +- html/changelogs/hellfirejag-phoron-scarcity-circuits.yml | 6 ++++++ 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/hellfirejag-phoron-scarcity-circuits.yml diff --git a/code/game/machinery/autolathe/autolathe.dm b/code/game/machinery/autolathe/autolathe.dm index 34703a7c10e..692c9c93cce 100644 --- a/code/game/machinery/autolathe/autolathe.dm +++ b/code/game/machinery/autolathe/autolathe.dm @@ -16,8 +16,8 @@ var/atom/print_loc - var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, MATERIAL_GLASS = 0, MATERIAL_ALUMINIUM = 0, MATERIAL_PLASTIC = 0, MATERIAL_LEAD = 0) - var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, MATERIAL_GLASS = 0, MATERIAL_ALUMINIUM = 0, MATERIAL_PLASTIC = 0, MATERIAL_LEAD = 0) + var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, MATERIAL_GLASS = 0, MATERIAL_ALUMINIUM = 0, MATERIAL_PLASTIC = 0, MATERIAL_LEAD = 0, MATERIAL_PHORON = 0) + var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, MATERIAL_GLASS = 0, MATERIAL_ALUMINIUM = 0, MATERIAL_PLASTIC = 0, MATERIAL_LEAD = 0, MATERIAL_PHORON = 0) var/show_category = "All" var/hacked = FALSE @@ -325,6 +325,7 @@ storage_capacity[MATERIAL_ALUMINIUM] = mb_rating * 25000 storage_capacity[MATERIAL_PLASTIC] = mb_rating * 12500 storage_capacity[MATERIAL_LEAD] = mb_rating * 12500 + storage_capacity[MATERIAL_PHORON] = mb_rating * 12500 build_time = 50 / man_rating mat_efficiency = 1.1 - man_rating * 0.1 // Normally, price is 1.25 the amount of material, so this shouldn't go higher than 0.8. Maximum rating of parts is 3 diff --git a/code/game/objects/items/weapons/circuitboards/circuitboard.dm b/code/game/objects/items/weapons/circuitboards/circuitboard.dm index 3d8038ce1e5..21291c2d01c 100644 --- a/code/game/objects/items/weapons/circuitboards/circuitboard.dm +++ b/code/game/objects/items/weapons/circuitboards/circuitboard.dm @@ -28,6 +28,9 @@ var/list/req_components var/contain_parts = 1 + recyclable = TRUE + matter = list(MATERIAL_GLASS = 500, MATERIAL_PHORON = 10) + /obj/item/circuitboard/feedback_hints(mob/user, distance, is_adjacent) . += ..() if(build_path) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 2c0a61acc2f..3cec86a9658 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -503,7 +503,7 @@ By design, d1 is the smallest direction and d2 is the highest w_class = WEIGHT_CLASS_SMALL throw_speed = 2 throw_range = 5 - matter = list(DEFAULT_WALL_MATERIAL = 50, MATERIAL_GLASS = 20) + matter = list(DEFAULT_WALL_MATERIAL = 50, MATERIAL_GLASS = 20, MATERIAL_PHORON = 3) recyclable = TRUE obj_flags = OBJ_FLAG_CONDUCTABLE item_flags = ITEM_FLAG_HELD_MAP_TEXT diff --git a/code/modules/research/designs/circuit/circuits.dm b/code/modules/research/designs/circuit/circuits.dm index 938f1e3efb2..1881e6b806a 100644 --- a/code/modules/research/designs/circuit/circuits.dm +++ b/code/modules/research/designs/circuit/circuits.dm @@ -1,7 +1,7 @@ /datum/design/circuit build_type = IMPRINTER req_tech = list(TECH_DATA = 2) - materials = list(MATERIAL_GLASS = 2000) + materials = list(MATERIAL_GLASS = 2000, MATERIAL_PHORON = 25) chemicals = list(/singleton/reagent/acid = 20) /datum/design/circuit/AssembleDesignDesc() diff --git a/html/changelogs/hellfirejag-phoron-scarcity-circuits.yml b/html/changelogs/hellfirejag-phoron-scarcity-circuits.yml new file mode 100644 index 00000000000..0d8bc8673cb --- /dev/null +++ b/html/changelogs/hellfirejag-phoron-scarcity-circuits.yml @@ -0,0 +1,6 @@ +author: Hellfirejag +delete-after: True +changes: + - rscadd: "Circuit Imprinters now require a tiny amount of phoron for lining the superconducting elements in the trace of all modern electronics." + - rscadd: "Power cables also now require a tiny amount of phoron for enabling the handling of ultra-high current required by modern starships." + - rscadd: "Circuitboards can now be recycled."