From 44893b6ee7c77fc48398a35a126b1702344b04ee Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Mon, 26 Aug 2019 06:32:54 -0400 Subject: [PATCH] It just works --- code/game/objects/items/granters.dm | 8 + code/modules/crafting/recipes.dm | 929 +----------------- .../crafting/recipes/recipes_clothing.dm | 160 +++ code/modules/crafting/recipes/recipes_misc.dm | 251 +++++ .../crafting/recipes/recipes_primal.dm | 113 +++ .../modules/crafting/recipes/recipes_robot.dm | 84 ++ .../recipes/recipes_weapon_and_ammo.dm | 328 +++++++ code/modules/vending/clothesmate.dm | 3 +- code/modules/vending/magivend.dm | 4 +- code/modules/vending/nutrimax.dm | 3 +- code/modules/vending/wardrobes.dm | 3 +- icons/obj/library.dmi | Bin 26466 -> 26699 bytes tgstation.dme | 5 + 13 files changed, 958 insertions(+), 933 deletions(-) create mode 100644 code/modules/crafting/recipes/recipes_clothing.dm create mode 100644 code/modules/crafting/recipes/recipes_misc.dm create mode 100644 code/modules/crafting/recipes/recipes_primal.dm create mode 100644 code/modules/crafting/recipes/recipes_robot.dm create mode 100644 code/modules/crafting/recipes/recipes_weapon_and_ammo.dm diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 71687f0d5a..6fae3bce18 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -432,6 +432,14 @@ user.mind.teach_crafting_recipe(crafting_recipe_type) to_chat(user,"You learned how to make [initial(R.name)].") +/obj/item/book/granter/crafting_recipe/threads //Durathread crafting book + name = "Credible Threads" + desc = "A simple book about sewing and usefull clothing crafting with cloth and durathreads." + crafting_recipe_types = list(/datum/crafting_recipe/durathread_duffelbag, /datum/crafting_recipe/durathread_toolbelt, /datum/crafting_recipe/durathread_bandolier, /datum/crafting_recipe/durathread_helmet, /datum/crafting_recipe/durathread_vest) + icon_state = "tailers_art1" + oneuse = FALSE + remarks = list("Durathread is cloth thats also fire-resistant?", "Strong threads that can be used with leather for some light weight storage!", "The cloth can withstand a beating it said but not that much...") + /obj/item/book/granter/crafting_recipe/cooking_sweets_101 //We start at 101 for 103 and 105 name = "Cooking Desserts 101" desc = "A cook book that teaches you some more of the newest desserts. AI approved, and a best seller on Honkplanet." diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 2790a8cec7..2987b52338 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -1,4 +1,3 @@ - /datum/crafting_recipe var/name = "" //in-game display name var/reqs[] = list() //type paths of items consumed associated with how many are needed @@ -9,930 +8,4 @@ var/chem_catalysts[] = list() //like tools but for reagents var/category = CAT_NONE //where it shows up in the crafting UI var/subcategory = CAT_NONE - var/always_availible = TRUE //Set to FALSE if it needs to be learned first. - -/datum/crafting_recipe/pin_removal - name = "Pin Removal" - result = /obj/item/gun - reqs = list(/obj/item/gun = 1) - parts = list(/obj/item/gun = 1) - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - time = 50 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/IED - 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/twohanded/spear - reqs = list(/obj/item/twohanded/spear = 1, - /obj/item/grenade = 1) - parts = list(/obj/item/twohanded/spear = 1, - /obj/item/grenade = 1) - time = 15 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/strobeshield - name = "Strobe Shield" - result = /obj/item/assembly/flash/shield - 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/makeshiftshield - name = "Makeshift Metal Shield" - result = /obj/item/shield/makeshift - reqs = list(/obj/item/stack/cable_coil = 30, - /obj/item/stack/sheet/metal = 10, - /obj/item/stack/sheet/cloth = 2, - /obj/item/stack/sheet/leather = 3) - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - time = 100 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/molotov - name = "Molotov" - result = /obj/item/reagent_containers/food/drinks/bottle/molotov - reqs = list(/obj/item/reagent_containers/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/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/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/metal = 6) - time = 20//15 faster than crafting them by hand! - 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/metal = 1) - 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) - 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/ed209 - name = "ED209" - result = /mob/living/simple_animal/bot/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/metal = 1, - /obj/item/stack/cable_coil = 1, - /obj/item/gun/energy/e_gun/advtaser = 1, - /obj/item/stock_parts/cell = 1, - /obj/item/assembly/prox_sensor = 1) - tools = 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 = 1, - /obj/item/assembly/prox_sensor = 1, - /obj/item/bodypart/r_arm/robot = 1) - tools = 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/mechanical = 1, - /obj/item/stack/tile/plasteel = 1, - /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/potatos - name = "Potat-OS" - reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 ) - result = /obj/item/aicard/potato - category = CAT_ROBOT - -/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but - name = "Pneumatic Cannon" - result = /obj/item/pneumatic_cannon/ghetto - tools = list(TOOL_WELDER, TOOL_WRENCH) - reqs = list(/obj/item/stack/sheet/metal = 4, - /obj/item/stack/packageWrap = 8, - /obj/item/pipe = 2) - time = 300 - 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) - tools = 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) - tools = 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) - tools = 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) - tools = 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) - tools = 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) - tools = 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/grenade/chem_grenade = 1, - /obj/item/stack/sheet/metal = 1, - /obj/item/stack/cable_coil = 1, - /datum/reagent/fuel = 10) - tools = list(TOOL_SCREWDRIVER) - time = 5 - 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) - tools = list(TOOL_SCREWDRIVER) - time = 5 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/ishotgun - name = "Improvised Shotgun" - result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised - reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 1, - /obj/item/weaponcrafting/stock = 1, - /obj/item/stack/packageWrap = 5) - tools = list(TOOL_SCREWDRIVER) - time = 100 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/irifle - name = "Improvised Rifle(7.62mm)" - result = /obj/item/gun/ballistic/shotgun/boltaction/improvised - reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 2, - /obj/item/weaponcrafting/stock = 1, - /obj/item/stack/packageWrap = 5) - tools = list(TOOL_SCREWDRIVER) - time = 100 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/chainsaw - name = "Chainsaw" - result = /obj/item/twohanded/required/chainsaw - reqs = list(/obj/item/circular_saw = 1, - /obj/item/stack/cable_coil = 3, - /obj/item/stack/sheet/plasteel = 5) - tools = list(TOOL_WELDER) - time = 50 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/spear - name = "Spear" - result = /obj/item/twohanded/spear - reqs = list(/obj/item/restraints/handcuffs/cable = 1, - /obj/item/shard = 1, - /obj/item/stack/rods = 1) - time = 40 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/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 - time = 60 - reqs = list(/obj/item/stack/sheet/metal = 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/metal = 5, - /obj/item/stack/rods = 12) - 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) - tools = 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/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 - name = "Extendo-Hand" - 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/bluespacehonker - name = "Bluespace Bike horn" - result = /obj/item/bikehorn/bluespacehonker - time = 10 - reqs = list(/obj/item/stack/ore/bluespace_crystal = 1, - /obj/item/toy/crayon/blue = 1, - /obj/item/bikehorn = 1) - category = CAT_MISC - -/datum/crafting_recipe/toyneb - name = "Non-Euplastic Blade" - reqs = list(/obj/item/light/tube = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) - result = /obj/item/toy/sword/cx - 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/plastic/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/twohanded/required/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/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/bonebag - name = "Bone Satchel" - result = /obj/item/storage/backpack/satchel/bone - time = 30 - reqs = list(/obj/item/stack/sheet/bone = 3, - /obj/item/stack/sheet/sinew = 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/kitchen/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/twohanded/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/twohanded/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) - result = /obj/structure/bonfire - category = CAT_PRIMAL - -/datum/crafting_recipe/headpike - name = "Spike Head (Glass Spear)" - time = 65 - reqs = list(/obj/item/twohanded/spear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/spear = 1) - result = /obj/structure/headpike - category = CAT_PRIMAL - -/datum/crafting_recipe/headpikebone - name = "Spike Head (Bone Spear)" - time = 65 - reqs = list(/obj/item/twohanded/bonespear = 1, - /obj/item/bodypart/head = 1) - parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/bonespear = 1) - result = /obj/structure/headpike/bone - category = CAT_PRIMAL - -/datum/crafting_recipe/smallcarton - name = "Small Carton" - result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton - time = 10 - reqs = list(/obj/item/stack/sheet/cardboard = 1) - category = CAT_MISC - -/datum/crafting_recipe/pressureplate - name = "Pressure Plate" - result = /obj/item/pressure_plate - time = 5 - reqs = list(/obj/item/stack/sheet/metal = 1, - /obj/item/stack/tile/plasteel = 1, - /obj/item/stack/cable_coil = 2, - /obj/item/assembly/igniter = 1) - category = CAT_MISC - - -/datum/crafting_recipe/wheelchair - name = "Wheelchair" - result = /obj/vehicle/ridden/wheelchair - reqs = list(/obj/item/stack/sheet/plasteel = 2, - /obj/item/stack/rods = 8) - time = 100 - category = CAT_MISC - -/datum/crafting_recipe/rcl - name = "Makeshift Rapid Cable Layer" - result = /obj/item/twohanded/rcl/ghetto - time = 40 - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) - reqs = list(/obj/item/stack/sheet/metal = 15) - category = CAT_MISC - -/datum/crafting_recipe/mummy - name = "Mummification Bandages (Mask)" - result = /obj/item/clothing/mask/mummy - time = 10 - tools = 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/mummy - reqs = list(/obj/item/stack/sheet/cloth = 5) - -/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) - tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) - category = CAT_MISC - -/datum/crafting_recipe/femur_breaker - name = "Femur Breaker" - result = /obj/structure/femur_breaker - time = 150 - reqs = list(/obj/item/stack/sheet/metal = 20, - /obj/item/stack/cable_coil = 30) - tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) - category = CAT_MISC - -/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/hudsunsec - name = "Security HUDsunglasses" - result = /obj/item/clothing/glasses/hud/security/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunsecremoval - name = "Security HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunmed - name = "Medical HUDsunglasses" - result = /obj/item/clothing/glasses/hud/health/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/hudsunmedremoval - name = "Medical HUD removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/beergoggles - name = "Beer Goggles" - result = /obj/item/clothing/glasses/sunglasses/reagent - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/science = 1, - /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/stack/cable_coil = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/beergogglesremoval - name = "Beer Goggles removal" - result = /obj/item/clothing/glasses/sunglasses - time = 20 - tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/ghostsheet - name = "Ghost Sheet" - result = /obj/item/clothing/suit/ghost_sheet - time = 5 - tools = list(TOOL_WIRECUTTER) - reqs = list(/obj/item/bedsheet = 1) - category = CAT_CLOTHING - -/datum/crafting_recipe/briefcase - name = "Hand made Briefcase" - result = /obj/item/storage/briefcase/crafted - time = 35 - tools = list(TOOL_WIRECUTTER) - reqs = list(/obj/item/stack/sheet/cardboard = 1, - /obj/item/stack/sheet/cloth = 2, - /obj/item/stack/sheet/leather = 5) - category = CAT_CLOTHING - -/datum/crafting_recipe/aitater - name = "intelliTater" - result = /obj/item/aicard/aitater - time = 30 - reqs = list(/obj/item/aicard = 1, - /obj/item/reagent_containers/food/snacks/grown/potato = 1) - category = CAT_MISC - -/datum/crafting_recipe/paperwork - name = "Filed Paper Work" - result = /obj/item/folder/paperwork_correct - time = 60 //Takes time for people to file and complete paper work! - reqs = list(/obj/item/pen = 1, - /obj/item/folder/paperwork = 2) - 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 = 30) - category = CAT_MISC - tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER) - -/datum/crafting_recipe/goldenbox - name = "Gold Plated Toolbox" - result = /obj/item/storage/toolbox/gold_fake - reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting - /obj/item/stack/cable_coil = 10, - /obj/item/stack/sheet/mineral/gold = 1, - /obj/item/stock_parts/cell = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/bronze_driver - name = "Bronze Plated Screwdriver" - result = /obj/item/screwdriver/bronze - reqs = list(/obj/item/screwdriver = 1, - /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/bronze_welder - name = "Bronze Plated Welding Tool" - result = /obj/item/weldingtool/bronze - reqs = list(/obj/item/weldingtool = 1, - /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/bronze_wirecutters - name = "Bronze Plated Wirecutters" - result = /obj/item/wirecutters/bronze - reqs = list(/obj/item/wirecutters = 1, - /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/bronze_crowbar - name = "Bronze Plated Crowbar" - result = /obj/item/crowbar/bronze - reqs = list(/obj/item/crowbar = 1, - /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/bronze_wrench - name = "Bronze Plated Wrench" - result = /obj/item/wrench/bronze - reqs = list(/obj/item/wrench = 1, - /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, - /datum/reagent/water = 15) - time = 40 - category = CAT_MISC - -/datum/crafting_recipe/smartdart - name = "Medical smartdart" - result = /obj/item/reagent_containers/syringe/dart - reqs = list(/obj/item/stack/sheet/metal = 1, - /obj/item/stack/sheet/glass = 1, - /obj/item/stack/sheet/plastic = 1) - time = 10 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/medolier - name = "Medolier" - result = /obj/item/storage/belt/medolier - reqs = list(/obj/item/stack/sheet/metal = 2, - /obj/item/stack/sheet/cloth = 3, - /obj/item/stack/sheet/plastic = 4) - time = 30 - category = CAT_WEAPONRY - subcategory = CAT_AMMO - -/datum/crafting_recipe/smartdartgun - name = "Smart dartgun" - result = /obj/item/gun/syringe/dart - reqs = list(/obj/item/stack/sheet/metal = 15, - /obj/item/stack/sheet/glass = 10, - /obj/item/tank/internals = 1, - /obj/item/reagent_containers/glass/beaker = 1, - /obj/item/stack/sheet/plastic = 10, - /obj/item/stack/cable_coil = 2) - time = 150 //It's a gun - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - -/datum/crafting_recipe/durathread_duffelbag - name = "Durathread Dufflebag" - result = /obj/item/storage/backpack/duffelbag/durathread - reqs = list(/obj/item/stack/sheet/durathread = 7, - /obj/item/stack/sheet/leather = 3) - time = 70 - category = CAT_CLOTHING - -/datum/crafting_recipe/durathread_toolbelt - name = "Durathread Toolbelt" - result = /obj/item/storage/belt/durathread - reqs = list(/obj/item/stack/sheet/durathread = 5, - /obj/item/stack/sheet/leather = 1) - time = 30 - category = CAT_CLOTHING - -/datum/crafting_recipe/durathread_bandolier - name = "Durathread Bandolier" - result = /obj/item/storage/belt/bandolier/durathread - reqs = list(/obj/item/stack/sheet/durathread = 6, - /obj/item/stack/sheet/leather = 2) - time = 50 - category = CAT_CLOTHING - - /datum/crafting_recipe/durathread_helmet - name = "Makeshift Durathread Helmet" - result = /obj/item/clothing/head/helmet/durathread - reqs = list(/obj/item/stack/sheet/durathread = 4, - /obj/item/stack/sheet/leather = 2) - time = 30 - category = CAT_CLOTHING - -/datum/crafting_recipe/durathread_vest - name = "Makeshift Durathread Armour" - result = /obj/item/clothing/suit/armor/vest/durathread - reqs = list(/obj/item/stack/sheet/durathread = 6, - /obj/item/stack/sheet/leather = 3) - time = 50 - category = CAT_CLOTHING - + var/always_availible = TRUE //Set to FALSE if it needs to be learned first. \ No newline at end of file diff --git a/code/modules/crafting/recipes/recipes_clothing.dm b/code/modules/crafting/recipes/recipes_clothing.dm new file mode 100644 index 0000000000..642827dcfb --- /dev/null +++ b/code/modules/crafting/recipes/recipes_clothing.dm @@ -0,0 +1,160 @@ +/datum/crafting_recipe/mummy + name = "Mummification Bandages (Mask)" + result = /obj/item/clothing/mask/mummy + time = 10 + tools = 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/mummy + reqs = list(/obj/item/stack/sheet/cloth = 5) + +/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/hudsunsec + name = "Security HUDsunglasses" + result = /obj/item/clothing/glasses/hud/security/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunsecremoval + name = "Security HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmed + name = "Medical HUDsunglasses" + result = /obj/item/clothing/glasses/hud/health/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/hudsunmedremoval + name = "Medical HUD removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergoggles + name = "Beer Goggles" + result = /obj/item/clothing/glasses/sunglasses/reagent + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/science = 1, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/stack/cable_coil = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/beergogglesremoval + name = "Beer Goggles removal" + result = /obj/item/clothing/glasses/sunglasses + time = 20 + tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/ghostsheet + name = "Ghost Sheet" + result = /obj/item/clothing/suit/ghost_sheet + time = 5 + tools = list(TOOL_WIRECUTTER) + reqs = list(/obj/item/bedsheet = 1) + category = CAT_CLOTHING + +/datum/crafting_recipe/briefcase + name = "Hand made Briefcase" + result = /obj/item/storage/briefcase/crafted + time = 35 + tools = list(TOOL_WIRECUTTER) + reqs = list(/obj/item/stack/sheet/cardboard = 1, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 5) + category = CAT_CLOTHING + +/datum/crafting_recipe/medolier + name = "Medolier" + result = /obj/item/storage/belt/medolier + reqs = list(/obj/item/stack/sheet/metal = 2, + /obj/item/stack/sheet/cloth = 3, + /obj/item/stack/sheet/plastic = 4) + time = 30 + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_duffelbag + name = "Durathread Dufflebag" + result = /obj/item/storage/backpack/duffelbag/durathread + reqs = list(/obj/item/stack/sheet/durathread = 7, + /obj/item/stack/sheet/leather = 3) + time = 70 + always_availible = FALSE + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_toolbelt + name = "Durathread Toolbelt" + result = /obj/item/storage/belt/durathread + reqs = list(/obj/item/stack/sheet/durathread = 5, + /obj/item/stack/sheet/leather = 2) + time = 30 + always_availible = FALSE + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_bandolier + name = "Durathread Bandolier" + result = /obj/item/storage/belt/bandolier/durathread + reqs = list(/obj/item/stack/sheet/durathread = 6, + /obj/item/stack/sheet/leather = 2) + time = 50 + always_availible = FALSE + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_helmet + name = "Makeshift Durathread Helmet" + result = /obj/item/clothing/head/helmet/durathread + reqs = list(/obj/item/stack/sheet/durathread = 4, + /obj/item/stack/sheet/leather = 2) + time = 30 + always_availible = FALSE + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_vest + name = "Makeshift Durathread Armour" + result = /obj/item/clothing/suit/armor/vest/durathread + reqs = list(/obj/item/stack/sheet/durathread = 6, + /obj/item/stack/sheet/leather = 3) + time = 50 + always_availible = FALSE + category = CAT_CLOTHING \ No newline at end of file diff --git a/code/modules/crafting/recipes/recipes_misc.dm b/code/modules/crafting/recipes/recipes_misc.dm new file mode 100644 index 0000000000..7c2522439c --- /dev/null +++ b/code/modules/crafting/recipes/recipes_misc.dm @@ -0,0 +1,251 @@ +/datum/crafting_recipe/aitater + name = "intelliTater" + result = /obj/item/aicard/aitater + time = 30 + reqs = list(/obj/item/aicard = 1, + /obj/item/reagent_containers/food/snacks/grown/potato = 1) + category = CAT_MISC + +/datum/crafting_recipe/paperwork + name = "Filed Paper Work" + result = /obj/item/folder/paperwork_correct + time = 60 //Takes time for people to file and complete paper work! + reqs = list(/obj/item/pen = 1, + /obj/item/folder/paperwork = 2) + 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 = 30) + category = CAT_MISC + tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER) + +/datum/crafting_recipe/goldenbox + name = "Gold Plated Toolbox" + result = /obj/item/storage/toolbox/gold_fake + reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting + /obj/item/stack/cable_coil = 10, + /obj/item/stack/sheet/mineral/gold = 1, + /obj/item/stock_parts/cell = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_driver + name = "Bronze Plated Screwdriver" + result = /obj/item/screwdriver/bronze + reqs = list(/obj/item/screwdriver = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_welder + name = "Bronze Plated Welding Tool" + result = /obj/item/weldingtool/bronze + reqs = list(/obj/item/weldingtool = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_wirecutters + name = "Bronze Plated Wirecutters" + result = /obj/item/wirecutters/bronze + reqs = list(/obj/item/wirecutters = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_crowbar + name = "Bronze Plated Crowbar" + result = /obj/item/crowbar/bronze + reqs = list(/obj/item/crowbar = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_wrench + name = "Bronze Plated Wrench" + result = /obj/item/wrench/bronze + reqs = list(/obj/item/wrench = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/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) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + category = CAT_MISC + +/datum/crafting_recipe/femur_breaker + name = "Femur Breaker" + result = /obj/structure/femur_breaker + time = 150 + reqs = list(/obj/item/stack/sheet/metal = 20, + /obj/item/stack/cable_coil = 30) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + category = CAT_MISC + +/datum/crafting_recipe/smallcarton + name = "Small Carton" + result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton + time = 10 + reqs = list(/obj/item/stack/sheet/cardboard = 1) + category = CAT_MISC + +/datum/crafting_recipe/pressureplate + name = "Pressure Plate" + result = /obj/item/pressure_plate + time = 5 + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/tile/plasteel = 1, + /obj/item/stack/cable_coil = 2, + /obj/item/assembly/igniter = 1) + category = CAT_MISC + +/datum/crafting_recipe/wheelchair + name = "Wheelchair" + result = /obj/vehicle/ridden/wheelchair + reqs = list(/obj/item/stack/sheet/plasteel = 2, + /obj/item/stack/rods = 8) + time = 100 + category = CAT_MISC + +/datum/crafting_recipe/rcl + name = "Makeshift Rapid Cable Layer" + result = /obj/item/twohanded/rcl/ghetto + time = 40 + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) + reqs = list(/obj/item/stack/sheet/metal = 15) + category = CAT_MISC + +/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/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 + time = 60 + reqs = list(/obj/item/stack/sheet/metal = 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/metal = 5, + /obj/item/stack/rods = 12) + 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) + tools = 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/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 + name = "Extendo-Hand" + 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/bluespacehonker + name = "Bluespace Bike horn" + result = /obj/item/bikehorn/bluespacehonker + time = 10 + reqs = list(/obj/item/stack/ore/bluespace_crystal = 1, + /obj/item/toy/crayon/blue = 1, + /obj/item/bikehorn = 1) + category = CAT_MISC + +/datum/crafting_recipe/toyneb + name = "Non-Euplastic Blade" + reqs = list(/obj/item/light/tube = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) + result = /obj/item/toy/sword/cx + category = CAT_MISC \ No newline at end of file diff --git a/code/modules/crafting/recipes/recipes_primal.dm b/code/modules/crafting/recipes/recipes_primal.dm new file mode 100644 index 0000000000..1be479e4e1 --- /dev/null +++ b/code/modules/crafting/recipes/recipes_primal.dm @@ -0,0 +1,113 @@ +/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/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/bonebag + name = "Bone Satchel" + result = /obj/item/storage/backpack/satchel/bone + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 3, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bonedagger + name = "Bone Dagger" + result = /obj/item/kitchen/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/twohanded/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/twohanded/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) + result = /obj/structure/bonfire + category = CAT_PRIMAL + +/datum/crafting_recipe/headpike + name = "Spike Head (Glass Spear)" + time = 65 + reqs = list(/obj/item/twohanded/spear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/twohanded/spear = 1) + result = /obj/structure/headpike + category = CAT_PRIMAL + +/datum/crafting_recipe/headpikebone + name = "Spike Head (Bone Spear)" + time = 65 + reqs = list(/obj/item/twohanded/bonespear = 1, + /obj/item/bodypart/head = 1) + parts = list(/obj/item/bodypart/head = 1, + /obj/item/twohanded/bonespear = 1) + result = /obj/structure/headpike/bone + category = CAT_PRIMAL \ No newline at end of file diff --git a/code/modules/crafting/recipes/recipes_robot.dm b/code/modules/crafting/recipes/recipes_robot.dm new file mode 100644 index 0000000000..ae5bca7779 --- /dev/null +++ b/code/modules/crafting/recipes/recipes_robot.dm @@ -0,0 +1,84 @@ + +/datum/crafting_recipe/ed209 + name = "ED209" + result = /mob/living/simple_animal/bot/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/metal = 1, + /obj/item/stack/cable_coil = 1, + /obj/item/gun/energy/e_gun/advtaser = 1, + /obj/item/stock_parts/cell = 1, + /obj/item/assembly/prox_sensor = 1) + tools = 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 = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/bodypart/r_arm/robot = 1) + tools = 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/mechanical = 1, + /obj/item/stack/tile/plasteel = 1, + /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/potatos + name = "Potat-OS" + reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 ) + result = /obj/item/aicard/potato + category = CAT_ROBOT \ No newline at end of file diff --git a/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm b/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm new file mode 100644 index 0000000000..ba564ec7bf --- /dev/null +++ b/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm @@ -0,0 +1,328 @@ +/datum/crafting_recipe/pin_removal + name = "Pin Removal" + result = /obj/item/gun + reqs = list(/obj/item/gun = 1) + parts = list(/obj/item/gun = 1) + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/strobeshield + name = "Strobe Shield" + result = /obj/item/assembly/flash/shield + 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/makeshiftshield + name = "Makeshift Metal Shield" + result = /obj/item/shield/makeshift + reqs = list(/obj/item/stack/cable_coil = 30, + /obj/item/stack/sheet/metal = 10, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 3) + tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/spear + name = "Spear" + result = /obj/item/twohanded/spear + reqs = list(/obj/item/restraints/handcuffs/cable = 1, + /obj/item/shard = 1, + /obj/item/stack/rods = 1) + time = 40 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/stunprod + name = "Stunprod" + result = /obj/item/melee/baton/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/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/metal = 6) + time = 20//15 faster than crafting them by hand! + 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/metal = 1) + 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) + 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/chainsaw + name = "Chainsaw" + result = /obj/item/twohanded/required/chainsaw + reqs = list(/obj/item/circular_saw = 1, + /obj/item/stack/cable_coil = 3, + /obj/item/stack/sheet/plasteel = 5) + tools = list(TOOL_WELDER) + time = 50 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +////////////////// +///BOMB CRAFTING// +////////////////// + +/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/plastic/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/twohanded/required/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/molotov + name = "Molotov" + result = /obj/item/reagent_containers/food/drinks/bottle/molotov + reqs = list(/obj/item/reagent_containers/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/IED + 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/twohanded/spear + reqs = list(/obj/item/twohanded/spear = 1, + /obj/item/grenade = 1) + parts = list(/obj/item/twohanded/spear = 1, + /obj/item/grenade = 1) + time = 15 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +////////////////// +///GUNS CRAFTING// +////////////////// + +/datum/crafting_recipe/smartdartgun + name = "Smart dartgun" + result = /obj/item/gun/syringe/dart + reqs = list(/obj/item/stack/sheet/metal = 15, + /obj/item/stack/sheet/glass = 10, + /obj/item/tank/internals = 1, + /obj/item/reagent_containers/glass/beaker = 1, + /obj/item/stack/sheet/plastic = 10, + /obj/item/stack/cable_coil = 2) + time = 150 //It's a gun + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/improvised_pneumatic_cannon + name = "Pneumatic Cannon" + result = /obj/item/pneumatic_cannon/ghetto + tools = list(TOOL_WELDER, TOOL_WRENCH) + reqs = list(/obj/item/stack/sheet/metal = 4, + /obj/item/stack/packageWrap = 8, + /obj/item/pipe = 2) + time = 300 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/flamethrower //Gun* + 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) + tools = list(TOOL_SCREWDRIVER) + time = 10 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/ishotgun + name = "Improvised Shotgun" + result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised + reqs = list(/obj/item/weaponcrafting/receiver = 1, + /obj/item/pipe = 1, + /obj/item/weaponcrafting/stock = 1, + /obj/item/stack/packageWrap = 5) + tools = list(TOOL_SCREWDRIVER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +/datum/crafting_recipe/irifle + name = "Improvised Rifle(7.62mm)" + result = /obj/item/gun/ballistic/shotgun/boltaction/improvised + reqs = list(/obj/item/weaponcrafting/receiver = 1, + /obj/item/pipe = 2, + /obj/item/weaponcrafting/stock = 1, + /obj/item/stack/packageWrap = 5) + tools = list(TOOL_SCREWDRIVER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + +////////////////// +///AMMO CRAFTING// +////////////////// + +/datum/crafting_recipe/smartdart + name = "Medical smartdart" + result = /obj/item/reagent_containers/syringe/dart + reqs = list(/obj/item/stack/sheet/metal = 1, + /obj/item/stack/sheet/glass = 1, + /obj/item/stack/sheet/plastic = 1) + time = 10 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/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) + tools = 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) + tools = 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) + tools = 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) + tools = 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) + tools = 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/grenade/chem_grenade = 1, + /obj/item/stack/sheet/metal = 1, + /obj/item/stack/cable_coil = 1, + /datum/reagent/fuel = 10) + tools = list(TOOL_SCREWDRIVER) + time = 5 + 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) + tools = list(TOOL_SCREWDRIVER) + time = 5 + category = CAT_WEAPONRY + subcategory = CAT_AMMO diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 1497992fe8..70c097766f 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -117,7 +117,8 @@ /obj/item/clothing/suit/jacket/leather/overcoat = 4, /obj/item/clothing/under/pants/mustangjeans = 3, /obj/item/clothing/neck/necklace/dope = 5, - /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5) + /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5, + /obj/item/book/granter/crafting_recipe/threads = 2) refill_canister = /obj/item/vending_refill/clothing /obj/item/vending_refill/clothing diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm index b414638be9..30c6ae6161 100644 --- a/code/modules/vending/magivend.dm +++ b/code/modules/vending/magivend.dm @@ -4,7 +4,7 @@ icon_state = "MagiVend" product_slogans = "Sling spells the proper way with MagiVend!;Be your own Houdini! Use MagiVend!" vend_reply = "Have an enchanted evening!" - product_ads = "FJKLFJSD;AJKFLBJAKL;1234 LOONIES LOL!;>MFW;Kill them fuckers!;GET DAT FUKKEN DISK;HONK!;EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!" + product_ads = "EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!;Now-magic proofing venders!" products = list(/obj/item/clothing/head/wizard = 1, /obj/item/clothing/suit/wizrobe = 1, /obj/item/clothing/head/wizard/red = 1, @@ -14,5 +14,5 @@ /obj/item/clothing/shoes/sandal/magic = 1, /obj/item/staff = 2) contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave - armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) + armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50, "magic" = 100) resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index b82c95b8a7..1c50af2185 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -2,7 +2,7 @@ name = "\improper NutriMax" desc = "A plant nutrients vendor." product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!" - product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..." + product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil...;Now selling books to read to the plants!" icon_state = "nutri" icon_deny = "nutri-deny" products = list(/obj/item/reagent_containers/glass/bottle/nutrient/ez = 30, @@ -16,5 +16,6 @@ /obj/item/plant_analyzer = 4) contraband = list(/obj/item/reagent_containers/glass/bottle/ammonia = 10, /obj/item/reagent_containers/glass/bottle/diethylamine = 5) + premium = list(/obj/item/book/granter/crafting_recipe/threads = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 08ed655297..b46447942c 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -169,7 +169,8 @@ /obj/item/clothing/suit/apron/overalls = 5, /obj/item/clothing/under/rank/hydroponics = 5, /obj/item/clothing/under/rank/hydroponics/skirt = 5, - /obj/item/clothing/mask/bandana = 4) + /obj/item/clothing/mask/bandana = 4, + /obj/item/book/granter/crafting_recipe/threads = 1) refill_canister = /obj/item/vending_refill/wardrobe/hydro_wardrobe /obj/item/vending_refill/wardrobe/hydro_wardrobe diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index f28b8be5c553bcd0897b56ddf590c305decd4e0a..32db4086ca014ed62f80c45ad0da687a2eb5bf71 100644 GIT binary patch delta 5565 zcmYLMcU%)&(@u~sN)rK*rW6rDdR2l{sfzR-=`B<#QnH~)5$OnmbQGkC5UBwp2m&G^ zNReg$=~X%jDPOqP`@Q?yKlbd|GtZnk&&)GB{|( h@ovR;v@dLBT_*EC9A-@H@jF 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 XAzM7ry4{}_M80%14K?1XL8JZ;3XMcL delta 5336 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