From 7f69025262889a0179158cd1499edff30713fbb1 Mon Sep 17 00:00:00 2001 From: Verkister Date: Fri, 12 May 2023 20:08:18 +0300 Subject: [PATCH] Earlyports phoron generator runtime spam fix Sheet stacks don't work with decimals. --- code/game/mecha/equipment/tools/generator.dm | 27 ++++++++++---------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/code/game/mecha/equipment/tools/generator.dm b/code/game/mecha/equipment/tools/generator.dm index cdb8eb4680..6a8b8ce3e3 100644 --- a/code/game/mecha/equipment/tools/generator.dm +++ b/code/game/mecha/equipment/tools/generator.dm @@ -9,6 +9,7 @@ var/coeff = 100 var/obj/item/stack/material/fuel var/fuel_type = /obj/item/stack/material/phoron + var/fuel_amount = 0 var/max_fuel = 150000 var/fuel_per_cycle_idle = 100 var/fuel_per_cycle_active = 500 @@ -18,7 +19,7 @@ /obj/item/mecha_parts/mecha_equipment/generator/Initialize() . = ..() - fuel = new fuel_type(src, 0) + fuel = new fuel_type(src) /obj/item/mecha_parts/mecha_equipment/generator/Destroy() qdel(fuel) @@ -28,7 +29,7 @@ if(!chassis) set_ready_state(TRUE) return PROCESS_KILL - if(fuel.get_amount() <= 0) + if(fuel_amount <= 0) log_message("Deactivated - no fuel.") set_ready_state(TRUE) return PROCESS_KILL @@ -42,7 +43,7 @@ if(cur_charge3\] - [(datum_flags & DF_ISPROCESSING)?"Dea":"A"]ctivate" + return "[output] \[[fuel]: [fuel_amount] cm3\] - [(datum_flags & DF_ISPROCESSING)?"Dea":"A"]ctivate" return /obj/item/mecha_parts/mecha_equipment/generator/action(target) @@ -85,14 +86,14 @@ return /obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/material/P) - if(P.type == fuel.type && P.get_amount()) - var/to_load = max(max_fuel - fuel.get_amount()*fuel.perunit,0) - if(to_load) - var/units = min(max(round(to_load / P.perunit),1),P.get_amount()) - if(units) - fuel.add(units) - P.use(units) - return units + if(P.type == fuel_type && P.get_amount()) + var/to_load = max(max_fuel - fuel_amount,0) + if(to_load >= 2000) + var/sheets = round(to_load / 2000, 1) + if(P.get_amount() >= sheets) + fuel_amount += sheets * 2000 + P.use(sheets) + return sheets * 2000 else return 0 return @@ -142,4 +143,4 @@ return /obj/item/mecha_parts/mecha_equipment/generator/nuclear/critfail() - return \ No newline at end of file + return