var/const/max_assembly_amount = 300 /obj/machinery/rust_fuel_compressor icon = 'icons/obj/machines/rust.dmi' icon_state = "fuel_compressor1" name = "Fuel Compressor" var/list/new_assembly_quantities = list("Deuterium" = 150,"Tritium" = 150,"Rodinium-6" = 0,"Stravium-7" = 0, "Pergium" = 0, "Dilithium" = 0) var/compressed_matter = 0 anchored = 1 var/opened = 1 //0=closed, 1=opened var/locked = 0 var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires /obj/machinery/rust_fuel_compressor/attack_ai(mob/user) attack_hand(user) /obj/machinery/rust_fuel_compressor/attack_hand(mob/user) add_fingerprint(user) /*if(stat & (BROKEN|NOPOWER)) return*/ interact(user) /obj/machinery/rust_fuel_compressor/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/rcd_ammo)) compressed_matter += 10 qdel(W) return ..() /obj/machinery/rust_fuel_compressor/interact(mob/user) if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if (!istype(user, /mob/living/silicon)) user.unset_machine() user << browse(null, "window=fuelcomp") return var/t = {"Reactor Fuel Rod Compressor / Assembler
Close
"} if(locked) t += "Swipe your ID to unlock this console." else t += {"Compressed matter in storage: [compressed_matter] \[Eject all\]
Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).

- New fuel assembly constituents:-
"} for(var/reagent in new_assembly_quantities) t += " [reagent] rods: [new_assembly_quantities[reagent]] \[Modify\]
" t += {"
Close
"} user << browse(t, "window=fuelcomp;size=500x300") user.set_machine(src) //var/locked //var/coverlocked /obj/machinery/rust_fuel_compressor/Topic(href, href_list) if(..()) return 1 if( href_list["close"] ) usr << browse(null, "window=fuelcomp") usr.machine = null if( href_list["eject_matter"] ) var/ejected = 0 while(compressed_matter > 10) new /obj/item/weapon/rcd_ammo(get_step(get_turf(src), src.dir)) compressed_matter -= 10 ejected = 1 if(ejected) to_chat(usr, "[bicon(src)] [src] ejects some compressed matter units.") else to_chat(usr, "[bicon(src)] there are no more compressed matter units in [src].") if( href_list["activate"] ) // to_chat(world, "New fuel rod assembly") var/obj/item/weapon/fuel_assembly/F = new(src) var/fail = 0 var/old_matter = compressed_matter for(var/reagent in new_assembly_quantities) var/req_matter = round(new_assembly_quantities[reagent] / 30) // to_chat(world, "[reagent] matter: [req_matter]/[compressed_matter]") if(req_matter <= compressed_matter) F.rod_quantities[reagent] = new_assembly_quantities[reagent] compressed_matter -= req_matter if(compressed_matter < 1) compressed_matter = 0 else /* to_chat(world, "bad reagent: [reagent], [req_matter > compressed_matter ? "req_matter > compressed_matter"\) : (req_matter < compressed_matter ? "req_matter < compressed_matter" : "req_matter == compressed_matter")]" */ fail = 1 break // to_chat(world, "[reagent]: new_assembly_quantities[reagent]
") if(fail) qdel(F) compressed_matter = old_matter to_chat(usr, "[bicon(src)] [src] flashes red: \'Out of matter.\'") else F.forceMove(src.loc)//get_step(get_turf(src), src.dir) F.percent_depleted = 0 if(compressed_matter < 0.034) compressed_matter = 0 if( href_list["change_reagent"] ) var/cur_reagent = href_list["change_reagent"] var/avail_rods = 300 for(var/rod in new_assembly_quantities) avail_rods -= new_assembly_quantities[rod] avail_rods += new_assembly_quantities[cur_reagent] avail_rods = max(avail_rods, 0) var/new_amount = min(input("Enter new [cur_reagent] rod amount (max [avail_rods])", "Fuel Assembly Rod Composition ([cur_reagent])") as num, avail_rods) new_assembly_quantities[cur_reagent] = new_amount updateDialog()