mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-01 12:31:32 +00:00
* fix message spam for atmos construction (#62796) About The Pull Request partial fix to #62783 the check was never meant to have feedback messages added in it because it runs every UI tick. Added the message as additional requirement text. GBP no update please Why It's Good For The Game fix Changelog cl fix: fix message spam for manual pipe crafting /cl * fix message spam for manual pipe crafting Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
1665 lines
51 KiB
Plaintext
1665 lines
51 KiB
Plaintext
///If the machine is used/deleted in the crafting process
|
|
#define CRAFTING_MACHINERY_CONSUME 1
|
|
///If the machine is only "used" i.e. it checks to see if it's nearby and allows crafting, but doesn't delete it
|
|
#define CRAFTING_MACHINERY_USE 0
|
|
|
|
/datum/crafting_recipe
|
|
var/name = "" //in-game display name
|
|
var/list/reqs = list() //type paths of items consumed associated with how many are needed
|
|
var/list/blacklist = list() //type paths of items explicitly not allowed as an ingredient
|
|
var/result //type path of item resulting from this craft
|
|
/// String defines of items needed but not consumed. Lazy list.
|
|
var/list/tool_behaviors
|
|
/// Type paths of items needed but not consumed. Lazy list.
|
|
var/list/tool_paths
|
|
var/time = 30 //time in deciseconds
|
|
var/list/parts = list() //type paths of items that will be placed in the result
|
|
var/list/chem_catalysts = list() //like tool_behaviors but for reagents
|
|
var/category = CAT_NONE //where it shows up in the crafting UI
|
|
var/subcategory = CAT_NONE
|
|
var/always_available = TRUE //Set to FALSE if it needs to be learned first.
|
|
/// Additonal requirements text shown in UI
|
|
var/additional_req_text
|
|
///Required machines for the craft, set the assigned value of the typepath to CRAFTING_MACHINERY_CONSUME or CRAFTING_MACHINERY_USE. Lazy associative list: type_path key -> flag value.
|
|
var/list/machinery
|
|
///Should only one object exist on the same turf?
|
|
var/one_per_turf = FALSE
|
|
|
|
/datum/crafting_recipe/New()
|
|
if(!(result in reqs))
|
|
blacklist += result
|
|
if(tool_behaviors)
|
|
tool_behaviors = string_list(tool_behaviors)
|
|
if(tool_paths)
|
|
tool_paths = string_list(tool_paths)
|
|
|
|
/**
|
|
* Run custom pre-craft checks for this recipe, don't add feedback messages in this because it will spam the client
|
|
*
|
|
* user: The /mob that initiated the crafting
|
|
* collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path.
|
|
*/
|
|
/datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements)
|
|
return TRUE
|
|
|
|
/datum/crafting_recipe/proc/on_craft_completion(mob/user, atom/result)
|
|
return
|
|
|
|
///Check if the pipe used for atmospheric device crafting is the proper one
|
|
/datum/crafting_recipe/proc/atmos_pipe_check(mob/user, list/collected_requirements)
|
|
var/obj/item/pipe/required_pipe = collected_requirements[/obj/item/pipe][1]
|
|
if(ispath(required_pipe.pipe_type, /obj/machinery/atmospherics/pipe/smart))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/datum/crafting_recipe/improv_explosive
|
|
name = "IED"
|
|
result = /obj/item/grenade/iedcasing
|
|
reqs = list(/datum/reagent/fuel = 50,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/assembly/igniter = 1,
|
|
/obj/item/reagent_containers/food/drinks/soda_cans = 1)
|
|
parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1)
|
|
time = 15
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/lance
|
|
name = "Explosive Lance (Grenade)"
|
|
result = /obj/item/spear/explosive
|
|
reqs = list(/obj/item/spear = 1,
|
|
/obj/item/grenade = 1)
|
|
blacklist = list(/obj/item/spear/bonespear)
|
|
parts = list(/obj/item/spear = 1,
|
|
/obj/item/grenade = 1)
|
|
time = 15
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/strobeshield
|
|
name = "Strobe Shield"
|
|
result = /obj/item/shield/riot/flash
|
|
reqs = list(/obj/item/wallframe/flasher = 1,
|
|
/obj/item/assembly/flash/handheld = 1,
|
|
/obj/item/shield/riot = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/strobeshield/New()
|
|
..()
|
|
blacklist |= subtypesof(/obj/item/shield/riot/)
|
|
|
|
/datum/crafting_recipe/molotov
|
|
name = "Molotov"
|
|
result = /obj/item/reagent_containers/food/drinks/bottle/molotov
|
|
reqs = list(/obj/item/reagent_containers/glass/rag = 1,
|
|
/obj/item/reagent_containers/food/drinks/bottle = 1)
|
|
parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/stunprod
|
|
name = "Stunprod"
|
|
result = /obj/item/melee/baton/security/cattleprod
|
|
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/stack/rods = 1,
|
|
/obj/item/assembly/igniter = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/teleprod
|
|
name = "Teleprod"
|
|
result = /obj/item/melee/baton/security/cattleprod/teleprod
|
|
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/stack/rods = 1,
|
|
/obj/item/assembly/igniter = 1,
|
|
/obj/item/stack/ore/bluespace_crystal = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/bola
|
|
name = "Bola"
|
|
result = /obj/item/restraints/legcuffs/bola
|
|
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/stack/sheet/iron = 6)
|
|
time = 20//15 faster than crafting them by hand!
|
|
category= CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/gonbola
|
|
name = "Gonbola"
|
|
result = /obj/item/restraints/legcuffs/bola/gonbola
|
|
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/stack/sheet/iron = 6,
|
|
/obj/item/stack/sheet/animalhide/gondola = 1)
|
|
time = 40
|
|
category= CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/tailclub
|
|
name = "Tail Club"
|
|
result = /obj/item/tailclub
|
|
reqs = list(/obj/item/organ/tail/lizard = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
blacklist = list(/obj/item/organ/tail/lizard/fake)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/tailwhip
|
|
name = "Liz O' Nine Tails"
|
|
result = /obj/item/melee/chainofcommand/tailwhip
|
|
reqs = list(/obj/item/organ/tail/lizard = 1,
|
|
/obj/item/stack/cable_coil = 1)
|
|
blacklist = list(/obj/item/organ/tail/lizard/fake)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/catwhip
|
|
name = "Cat O' Nine Tails"
|
|
result = /obj/item/melee/chainofcommand/tailwhip/kitty
|
|
reqs = list(/obj/item/organ/tail/cat = 1,
|
|
/obj/item/stack/cable_coil = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/reciever
|
|
name = "Modular Rifle Reciever"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER, TOOL_SAW)
|
|
result = /obj/item/weaponcrafting/receiver
|
|
reqs = list(/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/sticky_tape = 1,
|
|
/obj/item/screwdriver = 1,
|
|
/obj/item/assembly/mousetrap = 1)
|
|
time = 100
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/riflestock
|
|
name = "Wooden Rifle Stock"
|
|
tool_paths = list(/obj/item/hatchet)
|
|
result = /obj/item/weaponcrafting/stock
|
|
reqs = list(/obj/item/stack/sheet/mineral/wood = 8,
|
|
/obj/item/stack/sticky_tape = 1)
|
|
time = 50
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/advancedegun
|
|
name = "Advanced Energy Gun"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/e_gun/nuclear
|
|
reqs = list(/obj/item/gun/energy/e_gun = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/nuclear = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/advancedegun/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/e_gun)
|
|
|
|
/datum/crafting_recipe/tempgun
|
|
name = "Temperature Gun"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/temperature
|
|
reqs = list(/obj/item/gun/energy/e_gun = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/temperature = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/tempgun/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/e_gun)
|
|
|
|
/datum/crafting_recipe/beam_rifle
|
|
name = "Particle Acceleration Rifle"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/beam_rifle
|
|
reqs = list(/obj/item/gun/energy/e_gun = 1,
|
|
/obj/item/assembly/signaler/anomaly/flux = 1,
|
|
/obj/item/assembly/signaler/anomaly/grav = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/beam_rifle = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/beam_rifle/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/e_gun)
|
|
|
|
/datum/crafting_recipe/ebow
|
|
name = "Energy Crossbow"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/kinetic_accelerator/crossbow/large
|
|
reqs = list(/obj/item/gun/energy/kinetic_accelerator = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/ebow = 1,
|
|
/datum/reagent/uranium/radium = 15)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/ebow/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/kinetic_accelerator)
|
|
|
|
/datum/crafting_recipe/xraylaser
|
|
name = "X-ray Laser Gun"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/xray
|
|
reqs = list(/obj/item/gun/energy/laser = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/xray = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/xraylaser/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/laser)
|
|
|
|
/datum/crafting_recipe/hellgun
|
|
name = "Hellfire Laser Gun"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/laser/hellgun
|
|
reqs = list(/obj/item/gun/energy/laser = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/hellgun = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/hellgun/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/laser)
|
|
|
|
/datum/crafting_recipe/ioncarbine
|
|
name = "Ion Carbine"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/ionrifle/carbine
|
|
reqs = list(/obj/item/gun/energy/laser = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/ion = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/ioncarbine/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/laser)
|
|
|
|
/datum/crafting_recipe/decloner
|
|
name = "Biological Demolecularisor"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/decloner
|
|
reqs = list(/obj/item/gun/energy/laser = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/decloner = 1,
|
|
/datum/reagent/baldium = 30,
|
|
/datum/reagent/toxin/mutagen = 40)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/decloner/New()
|
|
..()
|
|
blacklist += subtypesof(/obj/item/gun/energy/laser)
|
|
|
|
/datum/crafting_recipe/teslacannon
|
|
name = "Tesla Cannon"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/gun/energy/tesla_cannon
|
|
reqs = list(/obj/item/assembly/signaler/anomaly/flux = 1,
|
|
/obj/item/stack/cable_coil = 5,
|
|
/obj/item/weaponcrafting/gunkit/tesla = 1)
|
|
time = 200
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/ed209
|
|
name = "ED209"
|
|
result = /mob/living/simple_animal/bot/secbot/ed209
|
|
reqs = list(/obj/item/robot_suit = 1,
|
|
/obj/item/clothing/head/helmet = 1,
|
|
/obj/item/clothing/suit/armor/vest = 1,
|
|
/obj/item/bodypart/l_leg/robot = 1,
|
|
/obj/item/bodypart/r_leg/robot = 1,
|
|
/obj/item/stack/sheet/iron = 1,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/obj/item/gun/energy/disabler = 1,
|
|
/obj/item/assembly/prox_sensor = 1)
|
|
tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER)
|
|
time = 60
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/secbot
|
|
name = "Secbot"
|
|
result = /mob/living/simple_animal/bot/secbot
|
|
reqs = list(/obj/item/assembly/signaler = 1,
|
|
/obj/item/clothing/head/helmet/sec = 1,
|
|
/obj/item/melee/baton/security/ = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1)
|
|
tool_behaviors = list(TOOL_WELDER)
|
|
time = 60
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/cleanbot
|
|
name = "Cleanbot"
|
|
result = /mob/living/simple_animal/bot/cleanbot
|
|
reqs = list(/obj/item/reagent_containers/glass/bucket = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/floorbot
|
|
name = "Floorbot"
|
|
result = /mob/living/simple_animal/bot/floorbot
|
|
reqs = list(/obj/item/storage/toolbox = 1,
|
|
/obj/item/stack/tile/iron = 10,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/medbot
|
|
name = "Medbot"
|
|
result = /mob/living/simple_animal/bot/medbot
|
|
reqs = list(/obj/item/healthanalyzer = 1,
|
|
/obj/item/storage/firstaid = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/honkbot
|
|
name = "Honkbot"
|
|
result = /mob/living/simple_animal/bot/honkbot
|
|
reqs = list(/obj/item/storage/box/clown = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/bikehorn/ = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/firebot
|
|
name = "Firebot"
|
|
result = /mob/living/simple_animal/bot/firebot
|
|
reqs = list(/obj/item/extinguisher = 1,
|
|
/obj/item/bodypart/r_arm/robot = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/clothing/head/hardhat/red = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/vibebot
|
|
name = "Vibebot"
|
|
result = /mob/living/simple_animal/bot/vibebot
|
|
reqs = list(/obj/item/light/bulb = 2,
|
|
/obj/item/bodypart/head/robot = 1,
|
|
/obj/item/assembly/prox_sensor = 1,
|
|
/obj/item/toy/crayon = 1)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/hygienebot
|
|
name = "Hygienebot"
|
|
result = /mob/living/simple_animal/bot/hygienebot
|
|
reqs = list(/obj/item/bot_assembly/hygienebot = 1,
|
|
/obj/item/stack/ducts = 1,
|
|
/obj/item/assembly/prox_sensor = 1)
|
|
tool_behaviors = list(TOOL_WELDER)
|
|
time = 40
|
|
category = CAT_ROBOT
|
|
|
|
/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but
|
|
name = "Pneumatic Cannon"
|
|
result = /obj/item/pneumatic_cannon/ghetto
|
|
tool_behaviors = list(TOOL_WELDER, TOOL_WRENCH)
|
|
reqs = list(/obj/item/stack/sheet/iron = 4,
|
|
/obj/item/stack/package_wrap = 8,
|
|
/obj/item/pipe/quaternary = 2)
|
|
time = 50
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/flamethrower
|
|
name = "Flamethrower"
|
|
result = /obj/item/flamethrower
|
|
reqs = list(/obj/item/weldingtool = 1,
|
|
/obj/item/assembly/igniter = 1,
|
|
/obj/item/stack/rods = 1)
|
|
parts = list(/obj/item/assembly/igniter = 1,
|
|
/obj/item/weldingtool = 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 10
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/meteorslug
|
|
name = "Meteorslug Shell"
|
|
result = /obj/item/ammo_casing/shotgun/meteorslug
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
|
|
/obj/item/rcd_ammo = 1,
|
|
/obj/item/stock_parts/manipulator = 2)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/pulseslug
|
|
name = "Pulse Slug Shell"
|
|
result = /obj/item/ammo_casing/shotgun/pulseslug
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
|
|
/obj/item/stock_parts/capacitor/adv = 2,
|
|
/obj/item/stock_parts/micro_laser/ultra = 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/dragonsbreath
|
|
name = "Dragonsbreath Shell"
|
|
result = /obj/item/ammo_casing/shotgun/dragonsbreath
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/frag12
|
|
name = "FRAG-12 Shell"
|
|
result = /obj/item/ammo_casing/shotgun/frag12
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
|
|
/datum/reagent/glycerol = 5,
|
|
/datum/reagent/toxin/acid = 5,
|
|
/datum/reagent/toxin/acid/fluacid = 5)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/ionslug
|
|
name = "Ion Scatter Shell"
|
|
result = /obj/item/ammo_casing/shotgun/ion
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
|
|
/obj/item/stock_parts/micro_laser/ultra = 1,
|
|
/obj/item/stock_parts/subspace/crystal = 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/improvisedslug
|
|
name = "Improvised Shotgun Shell"
|
|
result = /obj/item/ammo_casing/shotgun/improvised
|
|
reqs = list(/obj/item/stack/sheet/iron = 2,
|
|
/obj/item/stack/cable_coil = 1,
|
|
/datum/reagent/fuel = 10)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 12
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/laserslug
|
|
name = "Scatter Laser Shell"
|
|
result = /obj/item/ammo_casing/shotgun/laserslug
|
|
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
|
|
/obj/item/stock_parts/capacitor/adv = 1,
|
|
/obj/item/stock_parts/micro_laser/high = 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 5
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/pipegun
|
|
name = "Pipegun"
|
|
result = /obj/item/gun/ballistic/rifle/boltaction/pipegun
|
|
reqs = list(/obj/item/weaponcrafting/receiver = 1,
|
|
/obj/item/pipe = 1,
|
|
/obj/item/weaponcrafting/stock = 1,
|
|
/obj/item/stack/sticky_tape = 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
time = 50
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/pipegun_prime
|
|
name = "Regal Pipegun"
|
|
always_available = FALSE
|
|
result = /obj/item/gun/ballistic/rifle/boltaction/pipegun/prime
|
|
reqs = list(/obj/item/gun/ballistic/rifle/boltaction/pipegun = 1,
|
|
/obj/item/food/deadmouse = 1,
|
|
/datum/reagent/consumable/grey_bull = 20,
|
|
/obj/item/spear = 1,
|
|
/obj/item/storage/toolbox= 1)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER)
|
|
tool_paths = list(/obj/item/clothing/gloves/color/yellow, /obj/item/clothing/mask/gas, /obj/item/melee/baton/security/cattleprod)
|
|
time = 300 //contemplate for a bit
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/trash_cannon
|
|
name = "Trash Cannon"
|
|
always_available = FALSE
|
|
tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER)
|
|
result = /obj/structure/cannon/trash
|
|
reqs = list(
|
|
/obj/item/melee/skateboard/improvised = 1,
|
|
/obj/item/tank/internals/oxygen = 1,
|
|
/datum/reagent/drug/maint/tar = 15,
|
|
/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/storage/toolbox = 1,
|
|
)
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/trashball
|
|
name = "Trashball"
|
|
always_available = FALSE
|
|
result = /obj/item/stack/cannonball/trashball
|
|
reqs = list(
|
|
/obj/item/stack/sheet = 5,
|
|
/datum/reagent/consumable/space_cola = 10,
|
|
)
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_AMMO
|
|
|
|
/datum/crafting_recipe/chainsaw
|
|
name = "Chainsaw"
|
|
result = /obj/item/chainsaw
|
|
reqs = list(/obj/item/circular_saw = 1,
|
|
/obj/item/stack/cable_coil = 3,
|
|
/obj/item/stack/sheet/plasteel = 5)
|
|
tool_behaviors = list(TOOL_WELDER)
|
|
time = 50
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/spear
|
|
name = "Spear"
|
|
result = /obj/item/spear
|
|
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
|
|
/obj/item/shard = 1,
|
|
/obj/item/stack/rods = 1)
|
|
parts = list(/obj/item/shard = 1)
|
|
time = 40
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/lizardhat
|
|
name = "Lizard Cloche Hat"
|
|
result = /obj/item/clothing/head/lizard
|
|
time = 10
|
|
reqs = list(/obj/item/organ/tail/lizard = 1)
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/lizardhat_alternate
|
|
name = "Lizard Cloche Hat"
|
|
result = /obj/item/clothing/head/lizard
|
|
time = 10
|
|
reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1)
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/kittyears
|
|
name = "Kitty Ears"
|
|
result = /obj/item/clothing/head/kitty/genuine
|
|
time = 10
|
|
reqs = list(/obj/item/organ/tail/cat = 1,
|
|
/obj/item/organ/ears/cat = 1)
|
|
category = CAT_CLOTHING
|
|
|
|
|
|
/datum/crafting_recipe/radiogloves
|
|
name = "Radio Gloves"
|
|
result = /obj/item/clothing/gloves/radio
|
|
time = 15
|
|
reqs = list(/obj/item/clothing/gloves/color/black = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/radio = 1)
|
|
tool_behaviors = list(TOOL_WIRECUTTER)
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/mixedbouquet
|
|
name = "Mixed bouquet"
|
|
result = /obj/item/bouquet
|
|
reqs = list(/obj/item/food/grown/poppy/lily =2,
|
|
/obj/item/grown/sunflower = 2,
|
|
/obj/item/food/grown/poppy/geranium = 2)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/sunbouquet
|
|
name = "Sunflower bouquet"
|
|
result = /obj/item/bouquet/sunflower
|
|
reqs = list(/obj/item/grown/sunflower = 6)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/poppybouquet
|
|
name = "Poppy bouquet"
|
|
result = /obj/item/bouquet/poppy
|
|
reqs = list (/obj/item/food/grown/poppy = 6)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/rosebouquet
|
|
name = "Rose bouquet"
|
|
result = /obj/item/bouquet/rose
|
|
reqs = list(/obj/item/food/grown/rose = 6)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/spooky_camera
|
|
name = "Camera Obscura"
|
|
result = /obj/item/camera/spooky
|
|
time = 15
|
|
reqs = list(/obj/item/camera = 1,
|
|
/datum/reagent/water/holywater = 10)
|
|
parts = list(/obj/item/camera = 1)
|
|
category = CAT_MISC
|
|
|
|
|
|
/datum/crafting_recipe/skateboard
|
|
name = "Skateboard"
|
|
result = /obj/vehicle/ridden/scooter/skateboard/improvised
|
|
time = 60
|
|
reqs = list(/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/rods = 10)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/scooter
|
|
name = "Scooter"
|
|
result = /obj/vehicle/ridden/scooter
|
|
time = 65
|
|
reqs = list(/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/rods = 12)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/wheelchair
|
|
name = "Wheelchair"
|
|
result = /obj/vehicle/ridden/wheelchair
|
|
reqs = list(/obj/item/stack/sheet/iron = 4,
|
|
/obj/item/stack/rods = 6)
|
|
time = 100
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/motorized_wheelchair
|
|
name = "Motorized Wheelchair"
|
|
result = /obj/vehicle/ridden/wheelchair/motorized
|
|
reqs = list(/obj/item/stack/sheet/iron = 10,
|
|
/obj/item/stack/rods = 8,
|
|
/obj/item/stock_parts/manipulator = 2,
|
|
/obj/item/stock_parts/capacitor = 1)
|
|
parts = list(/obj/item/stock_parts/manipulator = 2,
|
|
/obj/item/stock_parts/capacitor = 1)
|
|
tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH)
|
|
time = 200
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/mousetrap
|
|
name = "Mouse Trap"
|
|
result = /obj/item/assembly/mousetrap
|
|
time = 10
|
|
reqs = list(/obj/item/stack/sheet/cardboard = 1,
|
|
/obj/item/stack/rods = 1)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/papersack
|
|
name = "Paper Sack"
|
|
result = /obj/item/storage/box/papersack
|
|
time = 10
|
|
reqs = list(/obj/item/paper = 5)
|
|
category = CAT_MISC
|
|
|
|
|
|
/datum/crafting_recipe/flashlight_eyes
|
|
name = "Flashlight Eyes"
|
|
result = /obj/item/organ/eyes/robotic/flashlight
|
|
time = 10
|
|
reqs = list(
|
|
/obj/item/flashlight = 2,
|
|
/obj/item/restraints/handcuffs/cable = 1
|
|
)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/paperframes
|
|
name = "Paper Frames"
|
|
result = /obj/item/stack/sheet/paperframes/five
|
|
time = 10
|
|
reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/naturalpaper
|
|
name = "Hand-Pressed Paper"
|
|
time = 30
|
|
reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1)
|
|
tool_paths = list(/obj/item/hatchet)
|
|
result = /obj/item/paper_bin/bundlenatural
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/toysword
|
|
name = "Toy Sword"
|
|
reqs = list(/obj/item/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4)
|
|
result = /obj/item/toy/sword
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/blackcarpet
|
|
name = "Black Carpet"
|
|
reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1)
|
|
result = /obj/item/stack/tile/carpet/black/fifty
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/curtain
|
|
name = "Curtains"
|
|
reqs = list(/obj/item/stack/sheet/cloth = 4, /obj/item/stack/rods = 1)
|
|
result = /obj/structure/curtain/cloth
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/showercurtain
|
|
name = "Shower Curtains"
|
|
reqs = list(/obj/item/stack/sheet/cloth = 2, /obj/item/stack/sheet/plastic = 2, /obj/item/stack/rods = 1)
|
|
result = /obj/structure/curtain
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/extendohand_r
|
|
name = "Extendo-Hand (Right Arm)"
|
|
reqs = list(/obj/item/bodypart/r_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1)
|
|
result = /obj/item/extendohand
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/extendohand_l
|
|
name = "Extendo-Hand (Left Arm)"
|
|
reqs = list(/obj/item/bodypart/l_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1)
|
|
result = /obj/item/extendohand
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/chemical_payload
|
|
name = "Chemical Payload (C4)"
|
|
result = /obj/item/bombcore/chemical
|
|
reqs = list(
|
|
/obj/item/stock_parts/matter_bin = 1,
|
|
/obj/item/grenade/c4 = 1,
|
|
/obj/item/grenade/chem_grenade = 2
|
|
)
|
|
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
|
|
time = 30
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/chemical_payload2
|
|
name = "Chemical Payload (Gibtonite)"
|
|
result = /obj/item/bombcore/chemical
|
|
reqs = list(
|
|
/obj/item/stock_parts/matter_bin = 1,
|
|
/obj/item/gibtonite = 1,
|
|
/obj/item/grenade/chem_grenade = 2
|
|
)
|
|
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
|
|
time = 50
|
|
category = CAT_WEAPONRY
|
|
subcategory = CAT_WEAPON
|
|
|
|
/datum/crafting_recipe/bonearmor
|
|
name = "Bone Armor"
|
|
result = /obj/item/clothing/suit/armor/bone
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/bone = 6)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/bonetalisman
|
|
name = "Bone Talisman"
|
|
result = /obj/item/clothing/accessory/talisman
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/bone = 2,
|
|
/obj/item/stack/sheet/sinew = 1)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/bonecodpiece
|
|
name = "Skull Codpiece"
|
|
result = /obj/item/clothing/accessory/skullcodpiece
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/bone = 2,
|
|
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/skilt
|
|
name = "Sinew Kilt"
|
|
result = /obj/item/clothing/accessory/skilt
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/bone = 1,
|
|
/obj/item/stack/sheet/sinew = 2)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/bracers
|
|
name = "Bone Bracers"
|
|
result = /obj/item/clothing/gloves/bracer
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/bone = 2,
|
|
/obj/item/stack/sheet/sinew = 1)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/skullhelm
|
|
name = "Skull Helmet"
|
|
result = /obj/item/clothing/head/helmet/skull
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/bone = 4)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/goliathcloak
|
|
name = "Goliath Cloak"
|
|
result = /obj/item/clothing/suit/hooded/cloak/goliath
|
|
time = 50
|
|
reqs = list(/obj/item/stack/sheet/leather = 2,
|
|
/obj/item/stack/sheet/sinew = 2,
|
|
/obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/drakecloak
|
|
name = "Ash Drake Armour"
|
|
result = /obj/item/clothing/suit/hooded/cloak/drake
|
|
time = 60
|
|
reqs = list(/obj/item/stack/sheet/bone = 10,
|
|
/obj/item/stack/sheet/sinew = 2,
|
|
/obj/item/stack/sheet/animalhide/ashdrake = 5)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/godslayer
|
|
name = "Godslayer Armour"
|
|
result = /obj/item/clothing/suit/hooded/cloak/godslayer
|
|
time = 60
|
|
reqs = list(/obj/item/ice_energy_crystal = 1, /obj/item/wendigo_skull = 1, /obj/item/clockwork_alloy = 1)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/firebrand
|
|
name = "Firebrand"
|
|
result = /obj/item/match/firebrand
|
|
time = 100 //Long construction time. Making fire is hard work.
|
|
reqs = list(/obj/item/stack/sheet/mineral/wood = 2)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/gold_horn
|
|
name = "Golden Bike Horn"
|
|
result = /obj/item/bikehorn/golden
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/mineral/bananium = 5,
|
|
/obj/item/bikehorn = 1)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/bonedagger
|
|
name = "Bone Dagger"
|
|
result = /obj/item/knife/combat/bone
|
|
time = 20
|
|
reqs = list(/obj/item/stack/sheet/bone = 2)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/bonespear
|
|
name = "Bone Spear"
|
|
result = /obj/item/spear/bonespear
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/bone = 4,
|
|
/obj/item/stack/sheet/sinew = 1)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/boneaxe
|
|
name = "Bone Axe"
|
|
result = /obj/item/fireaxe/boneaxe
|
|
time = 50
|
|
reqs = list(/obj/item/stack/sheet/bone = 6,
|
|
/obj/item/stack/sheet/sinew = 3)
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/bonfire
|
|
name = "Bonfire"
|
|
time = 60
|
|
reqs = list(/obj/item/grown/log = 5)
|
|
parts = list(/obj/item/grown/log = 5)
|
|
blacklist = list(/obj/item/grown/log/steel)
|
|
result = /obj/structure/bonfire
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/skeleton_key
|
|
name = "Skeleton Key"
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/bone = 5)
|
|
result = /obj/item/skeleton_key
|
|
always_available = FALSE
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/rake //Category resorting incoming
|
|
name = "Rake"
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/mineral/wood = 5)
|
|
result = /obj/item/cultivator/rake
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/woodbucket
|
|
name = "Wooden Bucket"
|
|
time = 30
|
|
reqs = list(/obj/item/stack/sheet/mineral/wood = 3)
|
|
result = /obj/item/reagent_containers/glass/bucket/wooden
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/headpike
|
|
name = "Spike Head (Glass Spear)"
|
|
time = 65
|
|
reqs = list(/obj/item/spear = 1,
|
|
/obj/item/bodypart/head = 1)
|
|
parts = list(/obj/item/bodypart/head = 1,
|
|
/obj/item/spear = 1)
|
|
blacklist = list(/obj/item/spear/explosive, /obj/item/spear/bonespear)
|
|
result = /obj/structure/headpike
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/headpikebone
|
|
name = "Spike Head (Bone Spear)"
|
|
time = 65
|
|
reqs = list(/obj/item/spear/bonespear = 1,
|
|
/obj/item/bodypart/head = 1)
|
|
parts = list(/obj/item/bodypart/head = 1,
|
|
/obj/item/spear/bonespear = 1)
|
|
result = /obj/structure/headpike/bone
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/pressureplate
|
|
name = "Pressure Plate"
|
|
result = /obj/item/pressure_plate
|
|
time = 5
|
|
reqs = list(/obj/item/stack/sheet/iron = 1,
|
|
/obj/item/stack/tile/iron = 1,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/assembly/igniter = 1)
|
|
category = CAT_MISC
|
|
|
|
|
|
/datum/crafting_recipe/rcl
|
|
name = "Makeshift Rapid Pipe Cleaner Layer"
|
|
result = /obj/item/rcl/ghetto
|
|
time = 40
|
|
tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH)
|
|
reqs = list(/obj/item/stack/sheet/iron = 15)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/mummy
|
|
name = "Mummification Bandages (Mask)"
|
|
result = /obj/item/clothing/mask/mummy
|
|
time = 10
|
|
tool_paths = list(/obj/item/nullrod/egyptian)
|
|
reqs = list(/obj/item/stack/sheet/cloth = 2)
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/mummy/body
|
|
name = "Mummification Bandages (Body)"
|
|
result = /obj/item/clothing/under/costume/mummy
|
|
reqs = list(/obj/item/stack/sheet/cloth = 5)
|
|
|
|
/datum/crafting_recipe/chaplain_hood
|
|
name = "Follower Hoodie"
|
|
result = /obj/item/clothing/suit/hooded/chaplain_hoodie
|
|
time = 10
|
|
tool_paths = list(/obj/item/clothing/suit/hooded/chaplain_hoodie, /obj/item/storage/book/bible)
|
|
reqs = list(/obj/item/stack/sheet/cloth = 4)
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/guillotine
|
|
name = "Guillotine"
|
|
result = /obj/structure/guillotine
|
|
time = 150 // Building a functioning guillotine takes time
|
|
reqs = list(/obj/item/stack/sheet/plasteel = 3,
|
|
/obj/item/stack/sheet/mineral/wood = 20,
|
|
/obj/item/stack/cable_coil = 10)
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/aitater
|
|
name = "intelliTater"
|
|
result = /obj/item/aicard/aitater
|
|
time = 30
|
|
tool_behaviors = list(TOOL_WIRECUTTER)
|
|
reqs = list(/obj/item/aicard = 1,
|
|
/obj/item/food/grown/potato = 1,
|
|
/obj/item/stack/cable_coil = 5)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/aitater/check_requirements(mob/user, list/collected_requirements)
|
|
var/obj/item/aicard/aicard = collected_requirements[/obj/item/aicard][1]
|
|
if(!aicard.AI)
|
|
return TRUE
|
|
|
|
to_chat(user, span_boldwarning("You can't craft an intelliTater with an AI in the card!"))
|
|
return FALSE
|
|
|
|
/datum/crafting_recipe/aispook
|
|
name = "intelliLantern"
|
|
result = /obj/item/aicard/aispook
|
|
time = 30
|
|
tool_behaviors = list(TOOL_WIRECUTTER)
|
|
reqs = list(/obj/item/aicard = 1,
|
|
/obj/item/food/grown/pumpkin = 1,
|
|
/obj/item/stack/cable_coil = 5)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/ghettojetpack
|
|
name = "Improvised Jetpack"
|
|
result = /obj/item/tank/jetpack/improvised
|
|
time = 30
|
|
reqs = list(/obj/item/tank/internals/oxygen = 2, /obj/item/extinguisher = 1, /obj/item/pipe = 3, /obj/item/stack/cable_coil = MAXCOIL)
|
|
category = CAT_MISC
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER)
|
|
|
|
/datum/crafting_recipe/rib
|
|
name = "Collosal Rib"
|
|
always_available = FALSE
|
|
reqs = list(
|
|
/obj/item/stack/sheet/bone = 10,
|
|
/datum/reagent/fuel/oil = 5,
|
|
)
|
|
result = /obj/structure/statue/bone/rib
|
|
subcategory = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/skull
|
|
name = "Skull Carving"
|
|
always_available = FALSE
|
|
reqs = list(
|
|
/obj/item/stack/sheet/bone = 6,
|
|
/datum/reagent/fuel/oil = 5,
|
|
)
|
|
result = /obj/structure/statue/bone/skull
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/halfskull
|
|
name = "Cracked Skull Carving"
|
|
always_available = FALSE
|
|
reqs = list(
|
|
/obj/item/stack/sheet/bone = 3,
|
|
/datum/reagent/fuel/oil = 5,
|
|
)
|
|
result = /obj/structure/statue/bone/skull/half
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/boneshovel
|
|
name = "Serrated Bone Shovel"
|
|
always_available = FALSE
|
|
reqs = list(
|
|
/obj/item/stack/sheet/bone = 4,
|
|
/datum/reagent/fuel/oil = 5,
|
|
/obj/item/shovel/spade = 1,
|
|
)
|
|
result = /obj/item/shovel/serrated
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/lasso
|
|
name = "Bone Lasso"
|
|
reqs = list(
|
|
/obj/item/stack/sheet/bone = 1,
|
|
/obj/item/stack/sheet/sinew = 5,
|
|
)
|
|
result = /obj/item/key/lasso
|
|
category = CAT_PRIMAL
|
|
|
|
/datum/crafting_recipe/gripperoffbrand
|
|
name = "Improvised Gripper Gloves"
|
|
reqs = list(
|
|
/obj/item/clothing/gloves/fingerless = 1,
|
|
/obj/item/stack/sticky_tape = 1,
|
|
)
|
|
result = /obj/item/clothing/gloves/tackler/offbrand
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/boh
|
|
name = "Bag of Holding"
|
|
reqs = list(
|
|
/obj/item/bag_of_holding_inert = 1,
|
|
/obj/item/assembly/signaler/anomaly/bluespace = 1,
|
|
)
|
|
result = /obj/item/storage/backpack/holding
|
|
category = CAT_CLOTHING
|
|
|
|
/datum/crafting_recipe/ipickaxe
|
|
name = "Improvised Pickaxe"
|
|
reqs = list(
|
|
/obj/item/crowbar = 1,
|
|
/obj/item/knife = 1,
|
|
/obj/item/stack/sticky_tape = 1,
|
|
)
|
|
result = /obj/item/pickaxe/improvised
|
|
category = CAT_MISC
|
|
|
|
// Skryat addition start
|
|
/datum/crafting_recipe/doubletank
|
|
name = "Double emergency oxygen tank"
|
|
reqs = list(
|
|
/obj/item/tank/internals/emergency_oxygen/engi = 2,
|
|
/obj/item/stack/sticky_tape = 1,
|
|
)
|
|
result = /obj/item/tank/internals/emergency_oxygen/double/empty
|
|
category = CAT_MISC
|
|
// Skyrat addition end
|
|
|
|
/datum/crafting_recipe/underwater_basket
|
|
name = "Underwater Basket (Bamboo)"
|
|
reqs = list(
|
|
/obj/item/stack/sheet/mineral/bamboo = 20
|
|
)
|
|
result = /obj/item/storage/basket
|
|
category = CAT_MISC
|
|
additional_req_text = " being underwater, underwater basketweaving mastery"
|
|
|
|
/datum/crafting_recipe/underwater_basket/check_requirements(mob/user, list/collected_requirements)
|
|
. = ..()
|
|
if(!HAS_TRAIT(user,TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE))
|
|
return FALSE
|
|
var/turf/T = get_turf(user)
|
|
if(istype(T,/turf/open/water) || istype(T,/turf/open/floor/plating/beach/water))
|
|
return TRUE
|
|
var/obj/machinery/shower/S = locate() in T
|
|
if(S?.on)
|
|
return TRUE
|
|
|
|
//Same but with wheat
|
|
/datum/crafting_recipe/underwater_basket/wheat
|
|
name = "Underwater Basket (Wheat)"
|
|
reqs = list(
|
|
/obj/item/food/grown/wheat = 50
|
|
)
|
|
|
|
|
|
/datum/crafting_recipe/elder_atmosian_statue
|
|
name = "Elder Atmosian Statue"
|
|
result = /obj/structure/statue/elder_atmosian
|
|
time = 6 SECONDS
|
|
reqs = list(/obj/item/stack/sheet/mineral/metal_hydrogen = 20,
|
|
/obj/item/stack/sheet/mineral/zaukerite = 15,
|
|
/obj/item/stack/sheet/iron = 30,
|
|
)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/bluespace_vendor_mount
|
|
name = "Bluespace Vendor Wall Mount"
|
|
result = /obj/item/wallframe/bluespace_vendor_mount
|
|
time = 6 SECONDS
|
|
reqs = list(/obj/item/stack/sheet/iron = 15,
|
|
/obj/item/stack/sheet/glass = 10,
|
|
/obj/item/stack/cable_coil = 10,
|
|
)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/shutters
|
|
name = "Shutters"
|
|
reqs = list(/obj/item/stack/sheet/plasteel = 10,
|
|
/obj/item/stack/cable_coil = 10,
|
|
/obj/item/electronics/airlock = 1
|
|
)
|
|
result = /obj/machinery/door/poddoor/shutters/preopen
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL, TOOL_WIRECUTTER, TOOL_WELDER)
|
|
time = 15 SECONDS
|
|
category = CAT_MISC
|
|
one_per_turf = TRUE
|
|
|
|
/datum/crafting_recipe/blast_doors
|
|
name = "Blast Door"
|
|
reqs = list(/obj/item/stack/sheet/plasteel = 15,
|
|
/obj/item/stack/cable_coil = 15,
|
|
/obj/item/electronics/airlock = 1
|
|
)
|
|
result = /obj/machinery/door/poddoor/preopen
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL, TOOL_WIRECUTTER, TOOL_WELDER)
|
|
time = 30 SECONDS
|
|
category = CAT_MISC
|
|
one_per_turf = TRUE
|
|
|
|
/datum/crafting_recipe/aquarium
|
|
name = "Aquarium"
|
|
result = /obj/structure/aquarium
|
|
time = 10 SECONDS
|
|
reqs = list(/obj/item/stack/sheet/iron = 15,
|
|
/obj/item/stack/sheet/glass = 10,
|
|
/obj/item/aquarium_kit = 1
|
|
)
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/alcohol_burner
|
|
name = "Alcohol burner"
|
|
result = /obj/item/burner
|
|
time = 5 SECONDS
|
|
reqs = list(/obj/item/reagent_containers/glass/beaker = 1,
|
|
/datum/reagent/consumable/ethanol = 15,
|
|
/obj/item/paper = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/oil_burner
|
|
name = "Oil burner"
|
|
result = /obj/item/burner/oil
|
|
time = 5 SECONDS
|
|
reqs = list(/obj/item/reagent_containers/glass/beaker = 1,
|
|
/datum/reagent/fuel/oil = 15,
|
|
/obj/item/paper = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/fuel_burner
|
|
name = "Fuel burner"
|
|
result = /obj/item/burner/fuel
|
|
time = 5 SECONDS
|
|
reqs = list(/obj/item/reagent_containers/glass/beaker = 1,
|
|
/datum/reagent/fuel = 15,
|
|
/obj/item/paper = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/thermometer
|
|
name = "Thermometer"
|
|
tool_behaviors = list(TOOL_WELDER)
|
|
result = /obj/item/thermometer
|
|
time = 5 SECONDS
|
|
reqs = list(
|
|
/datum/reagent/mercury = 5,
|
|
/obj/item/stack/sheet/glass = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/thermometer_alt
|
|
name = "Thermometer"
|
|
result = /obj/item/thermometer/pen
|
|
time = 5 SECONDS
|
|
reqs = list(
|
|
/datum/reagent/mercury = 5,
|
|
/obj/item/pen = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/ph_booklet
|
|
name = "pH booklet"
|
|
result = /obj/item/ph_booklet
|
|
time = 5 SECONDS
|
|
reqs = list(
|
|
/datum/reagent/universal_indicator = 5,
|
|
/obj/item/paper = 1
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/dropper //Maybe make a glass pipette icon?
|
|
name = "Dropper"
|
|
result = /obj/item/reagent_containers/dropper
|
|
tool_behaviors = list(TOOL_WELDER)
|
|
time = 5 SECONDS
|
|
reqs = list(
|
|
/obj/item/stack/sheet/glass = 1,
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/improvised_chem_heater
|
|
name = "Improvised chem heater"
|
|
result = /obj/machinery/space_heater/improvised_chem_heater
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_MULTITOOL, TOOL_WIRECUTTER)
|
|
time = 15 SECONDS
|
|
reqs = list(
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/stack/sheet/glass = 2,
|
|
/obj/item/stack/sheet/iron = 2,
|
|
/datum/reagent/water = 50,
|
|
/obj/item/thermometer = 1
|
|
)
|
|
machinery = list(/obj/machinery/space_heater = CRAFTING_MACHINERY_CONSUME)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/datum/crafting_recipe/improvised_chem_heater/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/stock_parts/cell/cell = locate(/obj/item/stock_parts/cell) in range(1)
|
|
if(!cell)
|
|
return
|
|
var/obj/machinery/space_heater/improvised_chem_heater/heater = result
|
|
var/turf/turf = get_turf(cell)
|
|
heater.forceMove(turf)
|
|
heater.attackby(cell, user) //puts it into the heater
|
|
|
|
/datum/crafting_recipe/improvised_coolant
|
|
name = "Improvised cooling spray"
|
|
tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
|
|
result = /obj/item/extinguisher/crafted
|
|
time = 10 SECONDS
|
|
reqs = list(
|
|
/obj/item/toy/crayon/spraycan = 1,
|
|
/datum/reagent/water = 20,
|
|
/datum/reagent/consumable/ice = 10
|
|
)
|
|
category = CAT_CHEMISTRY
|
|
|
|
/**
|
|
* Recipe used for upgrading fake N-spect scanners to bananium HONK-spect scanners
|
|
*/
|
|
/datum/crafting_recipe/clown_scanner_upgrade
|
|
name = "Bananium HONK-spect scanner"
|
|
result = /obj/item/inspector/clown/bananium
|
|
reqs = list(/obj/item/inspector/clown = 1, /obj/item/stack/sticky_tape = 3, /obj/item/stack/sheet/mineral/bananium = 5) //the chainsaw of prank tools
|
|
tool_paths = list(/obj/item/bikehorn)
|
|
time = 40 SECONDS
|
|
category = CAT_MISC
|
|
|
|
/datum/crafting_recipe/pipe
|
|
name = "Smart pipe fitting"
|
|
tool_behaviors = list(TOOL_WRENCH)
|
|
result = /obj/item/pipe/quaternary
|
|
reqs = list(/obj/item/stack/sheet/iron = 1)
|
|
time = 0.5 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
|
|
/datum/crafting_recipe/pipe/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/pipe/smart
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.p_init_dir = ALL_CARDINALS
|
|
crafted_pipe.setDir(SOUTH)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/layer_adapter
|
|
name = "Layer manifold fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/binary
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 1 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/layer_adapter/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/layer_adapter/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/pipe/layer_manifold
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/color_adapter
|
|
name = "Color adapter fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/binary
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 1 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/color_adapter/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/color_adapter/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/pipe/color_adapter
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/he_pipe
|
|
name = "H/E pipe fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/quaternary
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 1 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/he_pipe/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/he_pipe/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/he_junction
|
|
name = "H/E junction fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 1 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/he_junction/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/he_junction/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/pipe/heat_exchanging/junction
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/pressure_pump
|
|
name = "Pressure pump fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/binary
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/pressure_pump/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/pressure_pump/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/binary/pump
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/manual_valve
|
|
name = "Manual valve fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/binary
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/manual_valve/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/manual_valve/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/binary/valve
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/vent
|
|
name = "Vent pump fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/vent/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/vent/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/vent_pump
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/scrubber
|
|
name = "Scrubber fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/scrubber/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/scrubber/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/vent_scrubber
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/filter
|
|
name = "Filter fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/trinary/flippable
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/filter/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/filter/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/trinary/filter
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/mixer
|
|
name = "Mixer fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/trinary/flippable
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 5,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/mixer/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/mixer/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/trinary/mixer
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/connector
|
|
name = "Portable connector fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/connector/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/connector/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/portables_connector
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/passive_vent
|
|
name = "Passive vent fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/passive_vent/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/passive_vent/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/passive_vent
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/injector
|
|
name = "Outlet injector fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/iron = 1,
|
|
/obj/item/stack/cable_coil = 5)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/injector/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/injector/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/outlet_injector
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
/datum/crafting_recipe/he_exchanger
|
|
name = "Heat exchanger fitting"
|
|
tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER)
|
|
result = /obj/item/pipe/directional
|
|
reqs = list(
|
|
/obj/item/pipe = 1,
|
|
/obj/item/stack/sheet/plasteel = 1)
|
|
time = 2 SECONDS
|
|
category = CAT_ATMOSPHERIC
|
|
additional_req_text = " smart pipe fitting"
|
|
|
|
/datum/crafting_recipe/he_exchanger/check_requirements(mob/user, list/collected_requirements)
|
|
return atmos_pipe_check(user, collected_requirements)
|
|
|
|
/datum/crafting_recipe/he_exchanger/on_craft_completion(mob/user, atom/result)
|
|
var/obj/item/pipe/crafted_pipe = result
|
|
crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/heat_exchanger
|
|
crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY
|
|
crafted_pipe.setDir(user.dir)
|
|
crafted_pipe.update()
|
|
|
|
#undef CRAFTING_MACHINERY_CONSUME
|
|
#undef CRAFTING_MACHINERY_USE
|