Buildable and upgradable All-In-One Grinder (#35451)

Circuit is in "Biological Processing" techweb node
This commit is contained in:
Mokiros
2018-02-11 03:00:06 +03:00
committed by CitadelStationBot
parent 7f7bea7468
commit cdcb5fc72f
4 changed files with 41 additions and 8 deletions

View File

@@ -584,6 +584,12 @@
else
return ..()
/obj/item/circuitboard/machine/reagentgrinder
name = "Machine Design (All-In-One Grinder)"
build_path = /obj/machinery/reagentgrinder/constructed
req_components = list(
/obj/item/stock_parts/manipulator = 1)
/obj/item/circuitboard/machine/chem_master/condi
name = "CondiMaster 3000 (Machine Board)"
build_path = /obj/machinery/chem_master/condimaster

View File

@@ -11,11 +11,13 @@
use_power = IDLE_POWER_USE
idle_power_usage = 5
active_power_usage = 100
circuit = /obj/item/circuitboard/machine/reagentgrinder
pass_flags = PASSTABLE
resistance_flags = ACID_PROOF
var/operating = FALSE
var/obj/item/reagent_containers/beaker = null
var/limit = 10
var/speed = 1
var/list/holdingitems
/obj/machinery/reagentgrinder/Initialize()
@@ -24,8 +26,15 @@
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
beaker.desc += " May contain blended dust. Don't breathe this in!"
/obj/machinery/reagentgrinder/Destroy()
/obj/machinery/reagentgrinder/constructed/Initialize()
. = ..()
holdingitems = list()
QDEL_NULL(beaker)
update_icon()
/obj/machinery/reagentgrinder/Destroy()
if(beaker)
beaker.forceMove(drop_location())
drop_all_items()
return ..()
@@ -33,6 +42,11 @@
if(beaker)
beaker.ex_act(severity, target)
/obj/machinery/reagentgrinder/RefreshParts()
speed = 1
for(var/obj/item/stock_parts/manipulator/M in component_parts)
speed = M.rating
/obj/machinery/reagentgrinder/handle_atom_del(atom/A)
. = ..()
if(A == beaker)
@@ -48,10 +62,6 @@
AM.forceMove(drop_location())
holdingitems = list()
/obj/machinery/reagentgrinder/deconstruct(disassembled = TRUE)
new /obj/item/stack/sheet/metal (drop_location(), 3)
qdel(src)
/obj/machinery/reagentgrinder/update_icon()
if(beaker)
icon_state = "juicer1"
@@ -59,9 +69,19 @@
icon_state = "juicer0"
/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params)
//You can only screw open empty grinder
if(!beaker && !length(holdingitems) && default_deconstruction_screwdriver(user, icon_state, icon_state, I))
return
if(default_deconstruction_crowbar(I))
return
if(default_unfasten_wrench(user, I))
return
if(panel_open) //Can't insert objects when its screwed open
return TRUE
if (istype(I, /obj/item/reagent_containers) && !(I.flags_1 & ABSTRACT_1) && I.is_open_container())
if (!beaker)
if(!user.transferItemToLoc(I, src))
@@ -231,7 +251,7 @@
pixel_x = old_px
/obj/machinery/reagentgrinder/proc/operate_for(time, silent = FALSE, juicing = FALSE)
shake_for(time)
shake_for(time / speed)
updateUsrDialog()
operating = TRUE
if(!silent)
@@ -239,7 +259,7 @@
playsound(src, 'sound/machines/blender.ogg', 50, 1)
else
playsound(src, 'sound/machines/juicer.ogg', 20, 1)
addtimer(CALLBACK(src, .proc/stop_operating), time)
addtimer(CALLBACK(src, .proc/stop_operating), time / speed)
/obj/machinery/reagentgrinder/proc/stop_operating()
operating = FALSE

View File

@@ -153,6 +153,13 @@
build_path = /obj/item/circuitboard/machine/smoke_machine
category = list ("Medical Machinery")
/datum/design/board/reagentgrinder
name = "Machine Design (All-In-One Grinder)"
desc = "The circuit board for an All-In-One Grinder."
id = "reagentgrinder"
build_path = /obj/item/circuitboard/machine/reagentgrinder
category = list ("Medical Machinery")
/datum/design/board/clonecontrol
name = "Computer Design (Cloning Machine Console)"
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."

View File

@@ -35,7 +35,7 @@
display_name = "Biological Processing"
description = "From slimes to kitchens."
prereq_ids = list("biotech")
design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave")
design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder")
research_cost = 2500
export_price = 5000