Files
224b8362c7 [MIRROR] Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death (#28683)
* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* Conflict Removal

* Update bow_arrows.dm

* Update bow_arrows.dm

* tthis also update the actual bow & arrow code

* Update arrow.dm

* [MIRROR] Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death [MDB IGNORE] (#3595)

* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* modularize bone dice(???)

* gives the cargo crate arrows

* conflict

* icon updates

rotates our bows the same way, adds invisible pixels for easier loading
to our primitive bows, removes bow/arrow icons that are clones of
upstream's

also a hack for arrow overlays on bows- currently just defaults to
default arrows if an overlay doesn't exist for it, but our only arrows
aren't that distinct with default arrows at that size (we do not have
alternative arrow overlay sprites)

* recipe changes

im not gonna try explaining everything here but the general idea is that
the cargo fletching kit is sorta novelty bows, and the big boy stuff you
get from smithing

* update ammo hud for bows

* this shouldn't be here

* i forgot to save these

cleans up the recipes, ashwalker arrows are just made by combining by
hand (you could already do this, the recipes were a noobtrap)
and the cargo kit is cheaper

* un-nerf the chaplain bow

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>

* Update crafting.dm

* Update bow.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
2024-08-04 13:01:52 +05:30

267 lines
7.2 KiB
Plaintext

/datum/crafting_recipe/moffers
name = "Moffers"
result = /obj/item/clothing/shoes/clown_shoes/moffers
time = 6 SECONDS //opportunity to rethink your life
reqs = list(
/obj/item/stack/sheet/animalhide/mothroach = 2,
/obj/item/clothing/shoes/clown_shoes = 1,
)
parts = list(/obj/item/clothing/shoes/clown_shoes = 1)
blacklist = list(
/obj/item/clothing/shoes/clown_shoes/combat,
/obj/item/clothing/shoes/clown_shoes/banana_shoes,
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat,
/obj/item/clothing/shoes/clown_shoes/jester,
/obj/item/clothing/shoes/clown_shoes/meown_shoes,
/obj/item/clothing/shoes/clown_shoes/moffers,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/mothplush
name = "Moth Plushie"
result = /obj/item/toy/plush/moth
reqs = list(
/obj/item/stack/sheet/animalhide/mothroach = 1,
/obj/item/organ/internal/heart = 1,
/obj/item/stack/sheet/cloth = 3,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/sharkplush
name = "Shark Plushie"
result = /obj/item/toy/plush/shark
reqs = list(
/obj/item/clothing/suit/hooded/shark_costume = 1,
/obj/item/grown/cotton = 10,
/obj/item/stack/sheet/cloth = 5,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/mixedbouquet
name = "Mixed bouquet"
result = /obj/item/bouquet
reqs = list(
/obj/item/food/grown/poppy/lily = 2,
/obj/item/food/grown/sunflower = 2,
/obj/item/food/grown/poppy/geranium = 2,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/sunbouquet
name = "Sunflower bouquet"
result = /obj/item/bouquet/sunflower
reqs = list(/obj/item/food/grown/sunflower = 6)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/poppybouquet
name = "Poppy bouquet"
result = /obj/item/bouquet/poppy
reqs = list (/obj/item/food/grown/poppy = 6)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/rosebouquet
name = "Rose bouquet"
result = /obj/item/bouquet/rose
reqs = list(/obj/item/food/grown/rose = 6)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/spooky_camera
name = "Camera Obscura"
result = /obj/item/camera/spooky
time = 1.5 SECONDS
reqs = list(
/obj/item/camera = 1,
/datum/reagent/water/holywater = 10,
)
parts = list(/obj/item/camera = 1)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/skateboard
name = "Skateboard"
result = /obj/vehicle/ridden/scooter/skateboard/improvised
time = 6 SECONDS
reqs = list(
/obj/item/stack/sheet/iron = 5,
/obj/item/stack/rods = 10,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/scooter
name = "Scooter"
result = /obj/vehicle/ridden/scooter
time = 6.5 SECONDS
reqs = list(
/obj/item/stack/sheet/iron = 5,
/obj/item/stack/rods = 12,
)
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/headpike
name = "Spike Head (Glass Spear)"
time = 6.5 SECONDS
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,
/obj/item/spear/bamboospear,
/obj/item/spear/military,
)
result = /obj/structure/headpike
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/headpikebone
name = "Spike Head (Bone Spear)"
time = 6.5 SECONDS
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_ENTERTAINMENT
/datum/crafting_recipe/headpikebamboo
name = "Spike Head (Bamboo Spear)"
time = 6.5 SECONDS
reqs = list(
/obj/item/spear/bamboospear = 1,
/obj/item/bodypart/head = 1,
)
parts = list(
/obj/item/bodypart/head = 1,
/obj/item/spear/bamboospear = 1,
)
result = /obj/structure/headpike/bamboo
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/headpikemilitary
name = "Spike Head (Military)"
time = 6.5 SECONDS
reqs = list(
/obj/item/spear/military = 1,
/obj/item/bodypart/head = 1,
)
parts = list(
/obj/item/bodypart/head = 1,
/obj/item/spear/military = 1,
)
result = /obj/structure/headpike/military
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/guillotine
name = "Guillotine"
result = /obj/structure/guillotine
time = 15 SECONDS // 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_ENTERTAINMENT
/datum/crafting_recipe/toiletbong
name = "Toiletbong"
category = CAT_ENTERTAINMENT
tool_behaviors = list(TOOL_WRENCH)
reqs = list(/obj/item/flamethrower = 1)
structures = list(/obj/structure/toilet = CRAFTING_STRUCTURE_USE) // we will handle the consumption manually in on_craft_completion for this one
result = /obj/structure/toiletbong
time = 5 SECONDS
steps = list(
"make sure the flamethrower has a plasma tank attached",
)
/datum/crafting_recipe/toiletbong/check_requirements(mob/user, list/collected_requirements)
var/obj/item/flamethrower/flamethrower = collected_requirements[/obj/item/flamethrower][1]
if(!flamethrower.ptank)
return FALSE
return ..()
/datum/crafting_recipe/toiletbong/on_craft_completion(mob/user, atom/result)
var/obj/structure/toiletbong/toiletbong = result
// because we want to set the toilet's location and dir, we need to do the consumption manually
var/obj/structure/toilet/toilet = locate(/obj/structure/toilet) in range(1)
if(toilet)
for (var/obj/item/cistern_item in toilet.contents)
cistern_item.forceMove(user.drop_location())
to_chat(user, span_warning("[cistern_item] falls out of the toilet!"))
toiletbong.dir = toilet.dir
toiletbong.loc = toilet.loc
qdel(toilet)
to_chat(user, span_notice("[user] attaches the flamethrower to the repurposed toilet."))
/datum/crafting_recipe/punching_bag
name = "Punching Bag"
result = /obj/structure/punching_bag
tool_behaviors = list(TOOL_SCREWDRIVER)
reqs = list(
/obj/item/stack/sheet/iron = 2,
/obj/item/stack/rods = 1,
/obj/item/pillow = 1,
)
category = CAT_ENTERTAINMENT
time = 10 SECONDS
/datum/crafting_recipe/stacklifter
name = "Chest Press"
result = /obj/structure/weightmachine
tool_behaviors = list(TOOL_SCREWDRIVER)
reqs = list(
/obj/item/stack/sheet/iron = 5,
/obj/item/stack/rods = 2,
/obj/item/chair = 1,
)
category = CAT_ENTERTAINMENT
time = 10 SECONDS
/datum/crafting_recipe/weightlifter
name = "Bench Press"
result = /obj/structure/weightmachine/weightlifter
tool_behaviors = list(TOOL_SCREWDRIVER)
reqs = list(
/obj/item/stack/sheet/iron = 5,
/obj/item/stack/rods = 2,
/obj/item/chair = 1,
)
category = CAT_ENTERTAINMENT
time = 10 SECONDS
/datum/crafting_recipe/latexballoon
name = "Latex Balloon"
result = /obj/item/latexballoon
time = 5 SECONDS
reqs = list(
/obj/item/clothing/gloves/latex = 1,
/obj/item/stack/cable_coil = 2,
)
category = CAT_EQUIPMENT
/datum/crafting_recipe/violin
name = "Violin"
result = /obj/item/instrument/violin
reqs = list(
/obj/item/stack/sheet/mineral/wood = 4,
/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/iron = 1,
)
tool_paths = list(
/obj/item/hatchet,
)
time = 30 SECONDS
category = CAT_ENTERTAINMENT
crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED