/obj/machinery/robotic_fabricator name = "robotic fabricator" icon = 'icons/obj/robotics.dmi' icon_state = "fab-idle" density = 1 anchored = 1 var/metal_amount = 0 var/operating = 0 var/obj/item/robot_parts/being_built = null use_power = 1 idle_power_usage = 20 active_power_usage = 5000 /obj/machinery/robotic_fabricator/attackby(var/obj/item/O as obj, var/mob/user as mob, params) if (istype(O, /obj/item/stack/sheet/metal)) if (src.metal_amount < 150000.0) var/count = 0 src.overlays += "fab-load-metal" spawn(15) if(O) if(!O:amount) return while(metal_amount < 150000 && O:amount) src.metal_amount += O:m_amt /*O:height * O:width * O:length * 100000.0*/ O:amount-- count++ if (O:amount < 1) qdel(O) user << "You insert [count] metal sheet\s into \the [src]." src.overlays -= "fab-load-metal" updateDialog() else user << "\The [src] is full." /obj/machinery/robotic_fabricator/power_change() if (powered()) stat &= ~NOPOWER else stat |= NOPOWER /obj/machinery/robotic_fabricator/attack_paw(user as mob) return src.attack_hand(user) /obj/machinery/robotic_fabricator/attack_hand(user as mob) var/dat if (..()) return if (src.operating) dat = {" Building [src.being_built.name].
Please wait until completion...


"} else dat = {" Metal Amount: [min(150000, src.metal_amount)] cm3 (MAX: 150,000)


Left Arm (25,000 cc metal.)
Right Arm (25,000 cc metal.)
Left Leg (25,000 cc metal.)
Right Leg (25,000 cc metal).
Chest (50,000 cc metal).
Head (50,000 cc metal).
Robot Frame (75,000 cc metal).
"} user << browse("Robotic Fabricator Control Panel[dat]", "window=robot_fabricator") onclose(user, "robot_fabricator") return /obj/machinery/robotic_fabricator/Topic(href, href_list) if (..()) return usr.set_machine(src) src.add_fingerprint(usr) if (href_list["make"]) if (!src.operating) var/part_type = text2num(href_list["make"]) var/build_type = "" var/build_time = 200 var/build_cost = 25000 switch (part_type) if (1) build_type = "/obj/item/robot_parts/l_arm" build_time = 200 build_cost = 10000 if (2) build_type = "/obj/item/robot_parts/r_arm" build_time = 200 build_cost = 10000 if (3) build_type = "/obj/item/robot_parts/l_leg" build_time = 200 build_cost = 10000 if (4) build_type = "/obj/item/robot_parts/r_leg" build_time = 200 build_cost = 10000 if (5) build_type = "/obj/item/robot_parts/chest" build_time = 350 build_cost = 40000 if (6) build_type = "/obj/item/robot_parts/head" build_time = 350 build_cost = 5000 if (7) build_type = "/obj/item/robot_parts/robot_suit" build_time = 600 build_cost = 15000 var/building = text2path(build_type) if (!isnull(building)) if (src.metal_amount >= build_cost) src.operating = 1 src.use_power = 2 src.metal_amount = max(0, src.metal_amount - build_cost) src.being_built = new building(src) src.overlays += "fab-active" src.updateUsrDialog() spawn (build_time) if (!isnull(src.being_built)) src.being_built.loc = get_turf(src) src.being_built = null src.use_power = 1 src.operating = 0 src.overlays -= "fab-active" return for (var/mob/M in viewers(1, src)) if (M.client && M.machine == src) src.attack_hand(M)