From cb9b4c74315f7fd816c2fc93c2e71cbf42f761d5 Mon Sep 17 00:00:00 2001 From: FabianK3 <21039694+FabianK3@users.noreply.github.com> Date: Mon, 3 Aug 2026 03:23:18 +0200 Subject: [PATCH] Persistent liquid tank refactor (#22973) # Summary This PR adjust the import cost of the newly added persistent tanks, makes empty tanks retain persistent and removes the duplicate water tank entry. Import cost is adjusted based of export cost with liquid in them, preventing money printing. --- code/modules/cargo/items/engineering.dm | 18 ++---------- code/modules/cargo/items/miscellaneous.dm | 28 +++++++++---------- code/modules/reagents/reagent_dispenser.dm | 6 ++-- .../fabiank3-liquid-tank-pricing-fix.yml | 8 ++++++ 4 files changed, 26 insertions(+), 34 deletions(-) create mode 100644 html/changelogs/fabiank3-liquid-tank-pricing-fix.yml diff --git a/code/modules/cargo/items/engineering.dm b/code/modules/cargo/items/engineering.dm index a4a1a5daa72..85828d071ff 100644 --- a/code/modules/cargo/items/engineering.dm +++ b/code/modules/cargo/items/engineering.dm @@ -421,7 +421,7 @@ name = "fuel tank" supplier = "hephaestus" description = "A tank filled with welding fuel." - price = 10 + price = 600 items = list( /obj/structure/reagent_dispensers/fueltank ) @@ -435,7 +435,7 @@ name = "extinguisher tank" supplier = "hephaestus" description = "A tank filled with extinguisher fluid." - price = 10 + price = 600 items = list( /obj/structure/reagent_dispensers/extinguisher ) @@ -812,20 +812,6 @@ groupable = TRUE spawn_amount = 1 -/singleton/cargo_item/watertank - category = "engineering" - name = "watertank" - supplier = "hephaestus" - description = "A tank filled with water." - price = 10 - items = list( - /obj/structure/reagent_dispensers/watertank - ) - access = ACCESS_ENGINE - container_type = "box" - groupable = TRUE - spawn_amount = 1 - /singleton/cargo_item/weldinghelmet category = "engineering" name = "welding helmet" diff --git a/code/modules/cargo/items/miscellaneous.dm b/code/modules/cargo/items/miscellaneous.dm index 897766b277b..019200393fb 100644 --- a/code/modules/cargo/items/miscellaneous.dm +++ b/code/modules/cargo/items/miscellaneous.dm @@ -12,6 +12,20 @@ groupable = TRUE spawn_amount = 1 +/singleton/cargo_item/watertank + category = "miscellaneous" + name = "water tank" + supplier = "orion" + description = "A tank filled with water." + price = 350 + items = list( + /obj/structure/reagent_dispensers/watertank + ) + access = 0 + container_type = "box" + groupable = TRUE + spawn_amount = 1 + /singleton/cargo_item/sculptingblock category = "miscellaneous" name = "sculpting block" @@ -72,17 +86,3 @@ container_type = "crate" groupable = TRUE spawn_amount = 1 - -/singleton/cargo_item/watertank - category = "miscellaneous" - name = "water tank" - supplier = "orion" - description = "A tank filled with water." - price = 10 - items = list( - /obj/structure/reagent_dispensers/watertank - ) - access = 0 - container_type = "box" - groupable = TRUE - spawn_amount = 1 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index a30c48c1d99..f6828b668ff 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -45,7 +45,8 @@ src.y = y src.z = z if(!content["remaining_volume"] || content["remaining_volume"] <= 0) - qdel(src) + reagents_to_add = null + return if(!LAZYLEN(reagents_to_add)) return @@ -79,9 +80,6 @@ return if (usr.a_intent == I_HELP) RG.standard_dispenser_refill(user,src) - if(!reagents || !reagents.total_volume) - SSpersistence.objectsDeregisterTrack(src) - return playsound(src.loc, 'sound/machines/reagent_dispense.ogg', 25, 1) else if(!accept_any_reagent) diff --git a/html/changelogs/fabiank3-liquid-tank-pricing-fix.yml b/html/changelogs/fabiank3-liquid-tank-pricing-fix.yml new file mode 100644 index 00000000000..6a96cea2fd5 --- /dev/null +++ b/html/changelogs/fabiank3-liquid-tank-pricing-fix.yml @@ -0,0 +1,8 @@ +author: FabianK3 + +delete-after: True + +changes: + - balance: "Adjusted cargo import pricing for liquid tanks so fuel, extinguisher foam, and water tanks now cost more to import than they can be sold for, matching the existing export-value logic." + - bugfix: "Removed the duplicate miscellaneous water tank cargo definition." + - bugfix: "Stopped empty persistent reagent tanks from being deleted."