Files
Paradise/code/modules/crafting/recipes.dm
2019-04-17 19:56:29 +02:00

448 lines
14 KiB
Plaintext

/datum/crafting_recipe
var/name = "" //in-game display name
var/reqs[] = list() //type paths of items consumed associated with how many are needed
var/result //type path of item resulting from this craft
var/tools[] = list() //type paths of items needed but not consumed
var/time = 30 //time in deciseconds
var/parts[] = list() //type paths of items that will be placed in the result
var/chem_catalysts[] = list() //like tools but for reagents
var/category = CAT_NONE // Recipe category
var/roundstart_enabled = TRUE //Set to FALSE if you don't want a particular crafting recipe to be available all the time
/datum/crafting_recipe/proc/AdjustChems(var/obj/resultobj as obj)
//This proc is to replace the make_food proc of recipes from microwaves and such that are being converted to table crafting recipes.
//Use it to handle the removal of reagents after the food has been created (like removing toxins from a salad made with ambrosia)
//If a recipe does not require it's chems adjusted, don't bother declaring this for the recipe, as it will call this placeholder
return
/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/cans = 1)
parts = list(/obj/item/reagent_containers/food/drinks/cans = 1)
time = 15
category = CAT_WEAPON
/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_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_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_WEAPON
/datum/crafting_recipe/ed209
name = "ED209"
result = /mob/living/simple_animal/bot/ed209
reqs = list(/obj/item/robot_parts/robot_suit = 1,
/obj/item/clothing/head/helmet = 1,
/obj/item/clothing/suit/armor/vest = 1,
/obj/item/robot_parts/l_leg = 1,
/obj/item/robot_parts/r_leg = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/gun/energy/gun/advtaser = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/assembly/prox_sensor = 1)
tools = list(/obj/item/weldingtool, /obj/item/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 = 1,
/obj/item/melee/baton = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 1)
tools = list(/obj/item/weldingtool)
time = 60
category = CAT_ROBOT
/datum/crafting_recipe/griefsky
name = "General Griefsky"
result = /mob/living/simple_animal/bot/secbot/griefsky
reqs = list(/obj/item/assembly/signaler = 1,
/obj/item/clothing/head/helmet = 1,
/obj/item/melee/energy/sword = 4,
/obj/item/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 2,
/obj/item/robot_parts/l_arm = 2)
tools = list(/obj/item/weldingtool)
time = 120
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/robot_parts/r_arm = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/honkbot
name = "Honkbot"
result = /mob/living/simple_animal/bot/honkbot
reqs = list(/obj/item/robot_parts/r_arm = 1,
/obj/item/bikehorn = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/storage/box/clown = 1,
/obj/item/instrument/trombone = 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/plasteel = 10,
/obj/item/assembly/prox_sensor = 1,
/obj/item/robot_parts/r_arm = 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/robot_parts/r_arm = 1)
time = 40
category = CAT_ROBOT
/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(/obj/item/screwdriver)
time = 10
category = CAT_WEAPON
/datum/crafting_recipe/meteorshot
name = "Meteorshot Shell"
result = /obj/item/ammo_casing/shotgun/meteorshot
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/rcd_ammo = 1,
/obj/item/stock_parts/manipulator = 2)
tools = list(/obj/item/screwdriver)
time = 5
category = 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(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
/datum/crafting_recipe/dragonsbreath
name = "Dragonsbreath Shell"
result = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/phosphorus = 5,)
tools = list(/obj/item/screwdriver)
time = 5
category = 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/sacid = 5,
/datum/reagent/facid = 5,)
tools = list(/obj/item/screwdriver)
time = 5
category = 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(/obj/item/screwdriver)
time = 5
category = 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(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
/datum/crafting_recipe/improvisedslugoverload
name = "Overload Improvised Shell"
result = /obj/item/ammo_casing/shotgun/improvised/overload
reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1,
/datum/reagent/blackpowder = 10,
/datum/reagent/plasma_dust = 20)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
/datum/crafting_recipe/laserslug
name = "Laser Slug 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(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/gun/projectile/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(/obj/item/screwdriver)
time = 100
category = 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 = 1,
/obj/item/stack/sheet/plasteel = 1)
tools = list(/obj/item/weldingtool)
time = 50
category = 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_WEAPON
/datum/crafting_recipe/spooky_camera
name = "Camera Obscura"
result = /obj/item/camera/spooky
time = 15
reqs = list(/obj/item/camera = 1,
/datum/reagent/holywater = 10)
parts = list(/obj/item/camera = 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/sushimat
name = "Sushi Mat"
result = /obj/item/kitchen/sushimat
time = 10
reqs = list(/obj/item/stack/sheet/wood = 1,
/obj/item/stack/cable_coil = 2)
category = CAT_MISC
/datum/crafting_recipe/notreallysoap
name = "Homemade Soap"
result = /obj/item/soap/ducttape
time = 50
reqs = list(/obj/item/stack/tape_roll = 1,
/datum/reagent/liquidgibs = 10)
category = CAT_MISC
/datum/crafting_recipe/garrote
name = "Makeshift Garrote"
result = /obj/item/twohanded/garrote/improvised
time = 15
reqs = list(/obj/item/stack/sheet/wood = 1,
/obj/item/stack/cable_coil = 5)
tools = list(/obj/item/kitchen/knife) // Gotta carve the wood into handles
category = CAT_WEAPON
/datum/crafting_recipe/makeshift_bolt
name = "Makeshift Bolt"
result = /obj/item/arrow/rod
time = 5
reqs = list(/obj/item/stack/rods = 1)
tools = list(/obj/item/weldingtool)
category = CAT_AMMO
/datum/crafting_recipe/crossbow
name = "Powered Crossbow"
result = /obj/item/gun/throw/crossbow
time = 150
reqs = list(/obj/item/stack/rods = 3,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/sheet/plastic = 3,
/obj/item/stack/sheet/wood = 5)
tools = list(/obj/item/weldingtool,
/obj/item/screwdriver)
category = CAT_WEAPON
/datum/crafting_recipe/glove_balloon
name = "Latex Glove Balloon"
result = /obj/item/latexballon
time = 15
reqs = list(/obj/item/clothing/gloves/color/latex = 1,
/obj/item/stack/cable_coil = 5)
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)
category = CAT_MISC
/datum/crafting_recipe/blackcarpet
name = "Black Carpet"
result = /obj/item/stack/tile/carpet/black
time = 20
reqs = list(/obj/item/stack/tile/carpet = 1)
tools = list(/obj/item/toy/crayon)
category = CAT_MISC
/datum/crafting_recipe/showercurtain
name = "Shower Curtains"
result = /obj/structure/curtain
time = 20
reqs = list(/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/plastic = 2,
/obj/item/stack/rods = 1)
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_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_WEAPON
/datum/crafting_recipe/toxins_payload
name = "Toxins Payload Casing"
result = /obj/item/bombcore/toxins
reqs = list(
/obj/item/stock_parts/matter_bin = 1,
/obj/item/assembly/signaler = 1,
/obj/item/stack/sheet/metal = 2
)
category = CAT_WEAPON
/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/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/wood = 20,
/obj/item/stack/cable_coil = 10)
tools = list(/obj/item/screwdriver, /obj/item/wrench, /obj/item/weldingtool)
category = CAT_MISC
/datum/crafting_recipe/drill
name = "Thermal Drill"
result = /obj/item/thermal_drill
time = 60
reqs = list(/obj/item/stack/cable_coil = 5,
/obj/item/mecha_parts/mecha_equipment/drill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/timer = 1)
tools = list(/obj/item/screwdriver, /obj/item/wrench)
category = CAT_MISC
/datum/crafting_recipe/d_drill
name = "Diamond Tipped Thermal Drill"
result = /obj/item/thermal_drill/diamond_drill
time = 60
reqs = list(/obj/item/stack/cable_coil = 5,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/stack/rods = 2,
/obj/item/assembly/prox_sensor = 1) // Not a timer because the system sees a diamond drill as a drill too, letting you make both otherwise.
tools = list(/obj/item/screwdriver, /obj/item/wrench)
category = CAT_MISC
/datum/crafting_recipe/faketoolbox
name = "Black and Red toolbox"
result = /obj/item/storage/toolbox/fakesyndi
time = 40
reqs = list(/datum/reagent/paint/red = 10,
/datum/reagent/paint/black = 30,
/obj/item/storage/toolbox = 1) //Paint in reagents so it doesnt take the container up, yet still take it from the beaker
tools = list(/obj/item/reagent_containers/glass/rag = 1) //need something to paint with it
category = CAT_MISC
/datum/crafting_recipe/snowman
name = "Snowman"
result = /obj/structure/snowman/built
reqs = list(/obj/item/snowball = 10,
/obj/item/reagent_containers/food/snacks/grown/carrot = 1,
/obj/item/grown/log = 2)
time = 50
category = CAT_MISC
roundstart_enabled = FALSE