diff --git a/code/game/objects/items/weapons/circuitboards/machinery/fluidpump.dm b/code/game/objects/items/weapons/circuitboards/machinery/fluidpump.dm index 3e702a7e6f..497c55eb14 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/fluidpump.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/fluidpump.dm @@ -10,5 +10,6 @@ origin_tech = list(TECH_DATA = 1) req_components = list( /obj/item/stock_parts/matter_bin = 2, + /obj/item/cell = 1, /obj/item/stock_parts/motor = 2, /obj/item/stock_parts/manipulator = 1) diff --git a/code/modules/reagents/machinery/pump.dm b/code/modules/reagents/machinery/pump.dm index 53bf48365e..ed371c9673 100644 --- a/code/modules/reagents/machinery/pump.dm +++ b/code/modules/reagents/machinery/pump.dm @@ -18,7 +18,7 @@ var/obj/item/cell/cell = null var/obj/item/hose_connector/output/Output = null - var/reagents_per_cycle = 40 + var/reagents_per_cycle = 5 // severe nerf to unupgraded speed var/on = 0 var/unlocked = 0 var/open = 0 @@ -58,6 +58,8 @@ qdel(src.reagents) src.reagents = R + cell = locate(/obj/item/cell) in src + /obj/machinery/pump/update_icon() ..() cut_overlays() @@ -158,7 +160,13 @@ return FALSE default_unfasten_wrench(user, W, 2 SECONDS) - else if(istype(W, /obj/item/cell) && open) + else if(istype(W, /obj/item/cell)) + if(!open) + if(unlocked) + to_chat(user, span_notice("The battery panel is screwed shut.")) + else + to_chat(user, span_notice("The battery panel is watertight and cannot be opened without a crowbar.")) + return FALSE if(istype(cell)) to_chat(user, span_notice("There is a power cell already installed.")) return FALSE @@ -168,7 +176,7 @@ else . = ..() - RefreshParts() + RefreshParts() // Handles cell assignment update_icon() @@ -184,13 +192,13 @@ . = ..() R.add_reagent("water", round(volume, 0.1)) - if(temperature <= T0C) + var/datum/gas_mixture/air = return_air() // v + if(air.temperature <= T0C) // Uses the current air temp, instead of the turf starting temp R.add_reagent("ice", round(volume / 2, 0.1)) - for(var/turf/simulated/mineral/M in orange(5)) - if(istype(M.mineral, /obj/effect/mineral)) - var/obj/effect/mineral/ore = M.mineral - reagents.add_reagent(ore.ore_reagent, round(volume / 2, 0.1)) + for(var/turf/simulated/mineral/M in orange(5,src)) // Uses the turf as center instead of an unset usr + if(M.mineral && prob(40)) // v + R.add_reagent(M.mineral.reagent, round(volume / 5, 0.1)) // Was the turf's reagents variable not the R argument, and changed ore_reagent to M.mineral.reagent because of above change. Also nerfed amount to 1/5 instead of 1/2 /turf/simulated/floor/water/pool/pump_reagents(var/datum/reagents/R, var/volume) . = ..()