From e17800b4e9e88efe32495ed3ab4fbca568487008 Mon Sep 17 00:00:00 2001 From: cornercube <81207946+cornercube@users.noreply.github.com> Date: Sat, 14 Dec 2024 22:00:55 +0800 Subject: [PATCH] my friend plank and some tools (#931) * tools * nolog * Update weapons.dm * Update tools.dm * Update items.dm * Update items.dm * Update items.dm * stuff * Update carpenter.dm * Update Lmason.dm * Update tools.dm * Update carpenter.dm * Update tools.dm * sz * wood * buyable * Update tools.dm * finishing touch * additions * Update turfs.dm * woodflor * fixed * Update tools.dm * Update tools.dm * Update mason.dm * Update tools.dm * Update tools.dm * stonesaw * Update tools.dm * Update crafting.dmi * Update items.dm * Update items.dm * Update items.dm * capitalized * last touch * Update structure.dm * Update roguechair.dm * Update items.dm * Update items.dm * Update structure.dm --------- Co-authored-by: NPC1314 <110836368+NPC1314@users.noreply.github.com> --- .../items/rogueitems/natural/stones.dm | 2 +- .../objects/items/rogueitems/natural/wood.dm | 2 +- .../structures/beds_chairs/roguechair.dm | 8 +- code/modules/cargo/packsrogue/tools.dm | 11 + .../adventurer/types/pilgrim/carpenter.dm | 3 +- .../adventurer/types/pilgrim/rare/Lmason.dm | 1 + .../jobs/job_types/roguetown/serfs/mason.dm | 3 +- code/modules/roguetown/roguecrafting/items.dm | 61 ++++- .../roguetown/roguecrafting/structure.dm | 24 +- code/modules/roguetown/roguecrafting/turfs.dm | 103 +++++++- .../blacksmith/anvil_recipes/tools.dm | 18 ++ .../blacksmith/anvil_recipes/weapons.dm | 4 +- .../roguetown/roguejobs/craftsman/tools.dm | 232 ++++++++++++++++++ icons/roguetown/items/crafting.dmi | Bin 0 -> 3793 bytes stonekeep.dme | 1 + 15 files changed, 445 insertions(+), 28 deletions(-) create mode 100644 code/modules/roguetown/roguejobs/craftsman/tools.dm create mode 100644 icons/roguetown/items/crafting.dmi diff --git a/code/game/objects/items/rogueitems/natural/stones.dm b/code/game/objects/items/rogueitems/natural/stones.dm index 04e6fd92e0..3d8fdd3280 100644 --- a/code/game/objects/items/rogueitems/natural/stones.dm +++ b/code/game/objects/items/rogueitems/natural/stones.dm @@ -2,7 +2,7 @@ /obj/item/natural/stone name = "stone" - desc = "A piece of rough ground stone." + desc = "A piece of rough ground stone. It could be chiseled into a shape more conducive to construction. " icon_state = "stone1" gripped_intents = null dropshrink = 0.75 diff --git a/code/game/objects/items/rogueitems/natural/wood.dm b/code/game/objects/items/rogueitems/natural/wood.dm index 3561974c19..327d3f4c82 100644 --- a/code/game/objects/items/rogueitems/natural/wood.dm +++ b/code/game/objects/items/rogueitems/natural/wood.dm @@ -44,7 +44,7 @@ /obj/item/grown/log/tree/small name = "small log" - desc = "A smaller log that came from a larger log. Suitable for building." + desc = "A smaller log that came from a larger log. With a saw, you could turn it into wooden planks." icon_state = "logsmall" attacked_sound = 'sound/misc/woodhit.ogg' max_integrity = 30 diff --git a/code/game/objects/structures/beds_chairs/roguechair.dm b/code/game/objects/structures/beds_chairs/roguechair.dm index 40899d079f..3e3225e7ca 100644 --- a/code/game/objects/structures/beds_chairs/roguechair.dm +++ b/code/game/objects/structures/beds_chairs/roguechair.dm @@ -303,7 +303,7 @@ buckle_lying = 90 pixel_y = 5 sleepy = 2 - debris = list(/obj/item/grown/log/tree/small = 1) + debris = list(/obj/item/natural/plank = 1) // ------------ GOOD BEDS ---------------------- @@ -316,7 +316,7 @@ max_buckled_mobs = 2 pixel_y = 0 sleepy = 3 - debris = list(/obj/item/grown/log/tree/small = 2) + debris = list(/obj/item/natural/plank) /// The mob who buckled to this bed second, to avoid other mobs getting pixel-shifted before they unbuckle. var/mob/living/goldilocks @@ -342,7 +342,7 @@ icon_state = "double_wool" pixel_y = 0 sleepy = 2 - debris = list(/obj/item/grown/log/tree/small = 2) + debris = list(/obj/item/natural/plank = 2) // ------------ ACCEPTABLE BEDS ---------------------- @@ -354,6 +354,7 @@ /obj/structure/bed/rogue/mediocre icon_state = "shitbed2" sleepy = 1 + debris = list(/obj/item/grown/log/tree/small = 1) // Inhumen boss bed. Sleeping on a bear! Kinda comfy, sort of /obj/structure/bed/rogue/bear @@ -370,6 +371,7 @@ name = "uncomfortable bed" icon_state = "shitbed" sleepy = 0.5 + debris = list(/obj/item/grown/log/tree/small = 1) /obj/structure/bed/rogue/sleepingbag name = "sleepcloth" diff --git a/code/modules/cargo/packsrogue/tools.dm b/code/modules/cargo/packsrogue/tools.dm index f615ac3124..6fbdcf41d0 100644 --- a/code/modules/cargo/packsrogue/tools.dm +++ b/code/modules/cargo/packsrogue/tools.dm @@ -101,6 +101,17 @@ cost = 15 contains = /obj/item/rogueweapon/hoe +/datum/supply_pack/rogue/tools/handsaw + name = "handsaw" + cost = 12 + contains = /obj/item/rogueweapon/handsaw + +/datum/supply_pack/rogue/tools/chisel + name = "chisel" + cost = 12 + contains = list(/obj/item/rogueweapon/chisel, + /obj/item/rogueweapon/chisel) + /datum/supply_pack/rogue/tools/bottle name = "Glass Bottle" cost = 3 diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/carpenter.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/carpenter.dm index 68dfc407ed..971881d492 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/carpenter.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/carpenter.dm @@ -41,7 +41,8 @@ beltr = /obj/item/storage/belt/rogue/pouch/coins/poor beltl = /obj/item/rogueweapon/hammer/claw backl = /obj/item/storage/backpack/rogue/backpack - backpack_contents = list(/obj/item/flint = 1, /obj/item/rogueweapon/knife/villager = 1) + backpack_contents = list(/obj/item/flint = 1, /obj/item/rogueweapon/knife/villager = 1, /obj/item/rogueweapon/handsaw = 1. ) + H.change_stat("strength", 1) H.change_stat("intelligence", 1) H.change_stat("constitution", 1) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/rare/Lmason.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/rare/Lmason.dm index 09ae21b6de..73bb87bff2 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/rare/Lmason.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/pilgrim/rare/Lmason.dm @@ -44,6 +44,7 @@ beltl = /obj/item/rogueweapon/pick backr = /obj/item/rogueweapon/axe/steel backl = /obj/item/storage/backpack/rogue/backpack + backpack_contents = list(/obj/item/rogueweapon/chisel) H.change_stat("strength", 1) H.change_stat("intelligence", 2) H.change_stat("endurance", 2) diff --git a/code/modules/jobs/job_types/roguetown/serfs/mason.dm b/code/modules/jobs/job_types/roguetown/serfs/mason.dm index f92cb40d36..e8bed33513 100644 --- a/code/modules/jobs/job_types/roguetown/serfs/mason.dm +++ b/code/modules/jobs/job_types/roguetown/serfs/mason.dm @@ -52,8 +52,9 @@ beltr = /obj/item/storage/belt/rogue/pouch/coins/mid beltl = /obj/item/rogueweapon/hammer/claw backl = /obj/item/storage/backpack/rogue/backpack + r_hand = /obj/item/rogueweapon/chisel id = /obj/item/clothing/ring/silver/makers_guild - backpack_contents = list(/obj/item/flint = 1, /obj/item/flashlight/flare/torch/lantern = 1, /obj/item/rogueweapon/knife/villager = 1) + backpack_contents = list(/obj/item/roguekey/mason = 1, /obj/item/flint = 1, /obj/item/flashlight/flare/torch/lantern = 1, /obj/item/rogueweapon/knife/villager = 1, /obj/item/keyring = 1, /obj/item/rogueweapon/handsaw=1) H.change_stat("strength", 1) H.change_stat("intelligence", 1) diff --git a/code/modules/roguetown/roguecrafting/items.dm b/code/modules/roguetown/roguecrafting/items.dm index 3396db4162..527a4fc620 100644 --- a/code/modules/roguetown/roguecrafting/items.dm +++ b/code/modules/roguetown/roguecrafting/items.dm @@ -256,6 +256,66 @@ /obj/item/natural/fibers = 2) craftdiff = 1 +/datum/crafting_recipe/roguetown/plankaxe + name = "crude wooden plank" + result = list(/obj/item/natural/plank) + reqs = list(/obj/item/grown/log/tree/small = 1) + tools = list(/obj/item/rogueweapon/axe) + skillcraft = /datum/skill/craft/carpentry + craftdiff = 1 + verbage = "cut" + verbage_tp = "cuts" + +/datum/crafting_recipe/roguetown/plank + name = "wooden plank" + result = list(/obj/item/natural/plank,/obj/item/natural/plank) + reqs = list(/obj/item/grown/log/tree/small = 1) + tools = list(/obj/item/rogueweapon/handsaw) + skillcraft = /datum/skill/craft/carpentry + craftdiff = 1 + verbage = "saw" + verbage_tp = "saws" + +/datum/crafting_recipe/roguetown/plankshort + name = "short wooden plank" + result = list(/obj/item/natural/plankshort, /obj/item/natural/plankshort) + reqs = list(/obj/item/natural/plank = 1) + tools = list(/obj/item/rogueweapon/handsaw) + skillcraft = /datum/skill/craft/carpentry + craftdiff = 1 + verbage = "saw" + verbage_tp = "saws" + +/datum/crafting_recipe/roguetown/stoneblock + name = "stone block" + result = list(/obj/item/natural/stoneblock, /obj/item/natural/stoneblock) + reqs = list(/obj/item/natural/stone = 1) + tools = list(/obj/item/rogueweapon/chisel) + skillcraft = /datum/skill/craft/masonry + craftdiff = 1 + verbage = "chisel" + verbage_tp = "chisels" + +/datum/crafting_recipe/roguetown/stoneblocprimitive + name = "crude stone block" + result = list(/obj/item/natural/stoneblock) + reqs = list(/obj/item/natural/stone = 1) + tools = list(/obj/item/natural/stone) + skillcraft = /datum/skill/craft/masonry + craftdiff = 1 + verbage = "bash" + verbage_tp = "bashes" + +/datum/crafting_recipe/roguetown/stonesaw + name = "crude saw" + result = /obj/item/rogueweapon/handsaw/crude + reqs = list(/obj/item/natural/stone = 2, /obj/item/alch/bone = 1) + tools = /obj/item/rogueweapon/knife + craftdiff = 1 + verbage = "hew" + verbage_tp = "hews" + craftdiff = 1 + /*========= MISCELLANY ==========*/ /datum/crafting_recipe/roguetown/pestle @@ -265,7 +325,6 @@ tools = list(/obj/item/rogueweapon/knife/hunting) verbage = "crafts" skillcraft = /datum/skill/craft/masonry - craftdiff = 1 /datum/crafting_recipe/roguetown/mortar name = "stone mortar" diff --git a/code/modules/roguetown/roguecrafting/structure.dm b/code/modules/roguetown/roguecrafting/structure.dm index 1fc924f387..916d3541bb 100644 --- a/code/modules/roguetown/roguecrafting/structure.dm +++ b/code/modules/roguetown/roguecrafting/structure.dm @@ -37,7 +37,7 @@ /datum/crafting_recipe/roguetown/structure/dye_bin_luxury name = "luxury dye bin" result = /obj/machinery/dye_bin - reqs = list(/obj/item/grown/log/tree/small = 1, + reqs = list(/obj/item/natural/plank = 2,, /obj/item/reagent_containers/food/snacks/produce/fyritius = 3, /obj/item/reagent_containers/food/snacks/produce/pear = 3, /obj/item/reagent_containers/food/snacks/produce/sunflower = 3,) @@ -52,7 +52,7 @@ /datum/crafting_recipe/roguetown/structure/chair name = "wooden chair" result = /obj/item/chair/rogue/crafted - reqs = list(/obj/item/grown/log/tree/small = 1) + reqs = list(/obj/item/natural/plank = 2) verbage = "carpent" verbage_tp = "carpents" craftsound = 'sound/foley/Building-01.ogg' @@ -82,7 +82,7 @@ /datum/crafting_recipe/roguetown/structure/table name = "wooden table" result = /obj/structure/table/wood/crafted - reqs = list(/obj/item/grown/log/tree/small = 1) + reqs = list(/obj/item/natural/plank = 2) verbage = "carpent" verbage_tp = "carpents" craftsound = 'sound/foley/Building-01.ogg' @@ -130,7 +130,7 @@ /datum/crafting_recipe/roguetown/structure/closet name = "closet" result = /obj/structure/closet/crate/roguecloset/crafted - reqs = list(/obj/item/grown/log/tree/small = 2) + reqs = list(/obj/item/natural/plank = 2) verbage = "construct" verbage_tp = "constructs" craftsound = 'sound/foley/Building-01.ogg' @@ -143,7 +143,7 @@ /datum/crafting_recipe/roguetown/structure/coffin name = "wooden coffin" result = /obj/structure/closet/crate/coffin - reqs = list(/obj/item/grown/log/tree/small = 2) + reqs = list(/obj/item/natural/plank=3) verbage = "construct" verbage_tp = "constructs" skillcraft = /datum/skill/craft/carpentry @@ -231,7 +231,7 @@ /datum/crafting_recipe/roguetown/structure/barrel name = "wooden barrel" result = /obj/structure/fermenting_barrel/crafted - reqs = list(/obj/item/grown/log/tree/small = 1) + reqs = list(/obj/item/natural/plank=2) verbage = "construct" verbage_tp = "makes" craftsound = 'sound/foley/Building-01.ogg' @@ -274,7 +274,7 @@ /datum/crafting_recipe/roguetown/structure/nicebed name = "nice bed" result = /obj/structure/bed/rogue - reqs = list(/obj/item/grown/log/tree/small = 1, + reqs = list(/obj/item/natural/plank=2, /obj/item/natural/cloth = 1) tools = list(/obj/item/needle) verbage = "carpent" @@ -286,7 +286,7 @@ /datum/crafting_recipe/roguetown/structure/door name = "wooden door" result = /obj/structure/mineral_door/wood/deadbolt - reqs = list(/obj/item/grown/log/tree/small = 2) + reqs = list(/obj/item/natural/plank=2) verbage = "carpent" verbage_tp = "carpents" craftsound = 'sound/foley/Building-01.ogg' @@ -332,7 +332,7 @@ /datum/crafting_recipe/roguetown/structure/window name = "solid window" result = /obj/structure/roguewindow/solid - reqs = list(/obj/item/grown/log/tree/small = 1, + reqs = list(/obj/item/natural/plank = 1, /obj/item/natural/glass = 1) craftsound = 'sound/foley/Building-01.ogg' skillcraft = /datum/skill/craft/masonry @@ -341,7 +341,7 @@ /datum/crafting_recipe/roguetown/structure/windowopen name = "openable window" result = /obj/structure/roguewindow/openclose - reqs = list(/obj/item/grown/log/tree/small = 1, + reqs = list(/obj/item/natural/plank = 1, /obj/item/natural/glass = 1, /obj/item/ingot/iron = 1) craftsound = 'sound/foley/Building-01.ogg' @@ -351,7 +351,7 @@ /datum/crafting_recipe/roguetown/structure/windowstained name = "stained glass window (silver)" result = /obj/structure/roguewindow/stained - reqs = list(/obj/item/natural/stone = 3, + reqs = list(/obj/item/natural/stoneblock = 3, /obj/item/natural/glass = 2, /obj/item/ingot/silver = 1) skillcraft = /datum/skill/craft/masonry @@ -487,7 +487,7 @@ /datum/crafting_recipe/roguetown/structure/forge name = "forge" result = /obj/machinery/light/rogue/forge - reqs = list(/obj/item/natural/stone = 4, + reqs = list(/obj/item/natural/stoneblock = 4, /obj/item/rogueore/coal = 1) verbage = "build" diff --git a/code/modules/roguetown/roguecrafting/turfs.dm b/code/modules/roguetown/roguecrafting/turfs.dm index 9916298dde..f29a6db51f 100644 --- a/code/modules/roguetown/roguecrafting/turfs.dm +++ b/code/modules/roguetown/roguecrafting/turfs.dm @@ -4,7 +4,7 @@ /*========= CARPENTRY SKILL ==========*/ /datum/crafting_recipe/roguetown/turfs/woodfloor - name = "wooden floor" + name = "rough wooden floor" result = /turf/open/floor/rogue/ruinedwood reqs = list(/obj/item/grown/log/tree/small = 1) skillcraft = /datum/skill/craft/carpentry @@ -31,7 +31,7 @@ /datum/crafting_recipe/roguetown/turfs/woodwall name = "wooden wall" result = /turf/closed/wall/mineral/rogue/wood - reqs = list(/obj/item/grown/log/tree/small = 2) + reqs = list(/obj/item/natural/plank = 2) skillcraft = /datum/skill/craft/carpentry craftdiff = 1 @@ -45,7 +45,7 @@ /datum/crafting_recipe/roguetown/turfs/woodwindow name = "wooden murder hole" result = /turf/closed/wall/mineral/rogue/wood/window - reqs = list(/obj/item/grown/log/tree/small = 2) + reqs = list(/obj/item/natural/plank = 2) skillcraft = /datum/skill/craft/carpentry craftdiff = 1 @@ -56,11 +56,42 @@ return return TRUE +/datum/crafting_recipe/roguetown/turfs/woodfloorplank + name = "wooden floor" + result = /turf/open/floor/rogue/ruinedwood/spiral + reqs = list(/obj/item/natural/plank = 1) + skillcraft = /datum/skill/craft/carpentry + craftdiff = 2 + +/datum/crafting_recipe/roguetown/turfs/woodfloorplank/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/transparent/openspace)) + if(!istype(T, /turf/open/floor/rogue/grass)) + return + return TRUE + +/datum/crafting_recipe/roguetown/turfs/woodfloorchevron + name = "patterned wooden floor" + result = /turf/open/floor/rogue/ruinedwood/spiral + reqs = list(/obj/item/natural/plankshort = 2) + skillcraft = /datum/skill/craft/carpentry + craftdiff = 2 + +/datum/crafting_recipe/roguetown/turfs/woodfloorchevron/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/transparent/openspace)) + if(!istype(T, /turf/open/floor/rogue/grass)) + return + return TRUE /*========= MASONRY SKILL ==========*/ /datum/crafting_recipe/roguetown/turfs/stonefloor - name = "stone floor" - result = /turf/open/floor/rogue/blocks + name = "rough stone floor" + result = /turf/open/floor/rogue/cobble reqs = list(/obj/item/natural/stone = 1) skillcraft = /datum/skill/craft/masonry craftdiff = 0 @@ -74,6 +105,38 @@ return return TRUE +/datum/crafting_recipe/roguetown/turfs/stoneblockfloor + name = "block floor" + result = /turf/open/floor/rogue/blocks + reqs = list(/obj/item/natural/stoneblock = 1) + skillcraft = /datum/skill/craft/masonry + craftdiff = 1 + +/datum/crafting_recipe/roguetown/turfs/stoneblockfloor/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/transparent/openspace)) + if(!istype(T, /turf/open/floor/rogue/grass)) + return + return TRUE + +/datum/crafting_recipe/roguetown/turfs/stoneherring + name = "herringstone floor" + result = /turf/open/floor/rogue/herringbone + reqs = list(/obj/item/natural/stoneblock = 1) + skillcraft = /datum/skill/craft/masonry + craftdiff = 2 + +/datum/crafting_recipe/roguetown/turfs/stoneherring/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue/dirt)) + if(!istype(T, /turf/open/transparent/openspace)) + if(!istype(T, /turf/open/floor/rogue/grass)) + return + return TRUE + /datum/crafting_recipe/roguetown/turfs/stonewall name = "stone wall" result = /turf/closed/wall/mineral/rogue/stone @@ -91,7 +154,7 @@ /datum/crafting_recipe/roguetown/turfs/stonewindow name = "stone murder hole" result = /turf/closed/wall/mineral/rogue/stone/window - reqs = list(/obj/item/natural/stone = 2) + reqs = list(/obj/item/natural/stoneblock = 2) skillcraft = /datum/skill/craft/masonry craftdiff = 1 @@ -102,6 +165,34 @@ return return TRUE +//fancier walls +/datum/crafting_recipe/roguetown/turfs/stonewallcraft + name = "fancy stone block wall" + result = /turf/closed/wall/mineral/rogue/craftstone + reqs = list(/obj/item/natural/stoneblock = 3) + skillcraft = /datum/skill/craft/masonry + craftdiff = 2 + +/datum/crafting_recipe/roguetown/turfs/stonewallcraft/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue)) + return + return TRUE + +/datum/crafting_recipe/roguetown/turfs/stonewallbrick + name = "stone brick wall" + result = /turf/closed/wall/mineral/rogue/stonebrick + reqs = list(/obj/item/natural/stoneblock = 3) + skillcraft = /datum/skill/craft/masonry + craftdiff = 2 + +/datum/crafting_recipe/roguetown/turfs/stonewallbrick/TurfCheck(mob/user, turf/T) + if(isclosedturf(T)) + return + if(!istype(T, /turf/open/floor/rogue)) + return + return TRUE /*========= CRAFTING SKILL ==========*/ /datum/crafting_recipe/roguetown/turfs/twig diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/tools.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/tools.dm index ad157e5845..cdaf468b1c 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/tools.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/tools.dm @@ -199,6 +199,24 @@ created_item = /obj/item/rogueweapon/tongs i_type = "Tools" +/datum/anvil_recipe/tools/handsaw + name = "handsaw (+s)" + recipe_name = "a handsaw" + req_bar = /obj/item/ingot/iron + additional_items = list(/obj/item/grown/log/tree/stick) + created_item = /obj/item/rogueweapon/handsaw + i_type = "Tools" + +/datum/anvil_recipe/tools/chisel + name = "chisel (+s) x2" + recipe_name = " chisel" + req_bar = /obj/item/ingot/iron + additional_items = list(/obj/item/grown/log/tree/stick) + created_item = /obj/item/rogueweapon/chisel + createmultiple = TRUE + createditem_num = 2 + i_type = "Tools" + /datum/anvil_recipe/tools/torch name = "Torches x5 (+c)" recipe_name = "five Torches" diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm index 4bb44756cc..112d6aa696 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/weapons.dm @@ -273,7 +273,7 @@ recipe_name = "a Tower Shield" appro_skill = /datum/skill/craft/armorsmithing req_bar = /obj/item/ingot/iron - additional_items = list(/obj/item/grown/log/tree/small) + additional_items = list(/obj/item/natural/plankshort, /obj/item/natural/plankshort) created_item = /obj/item/rogueweapon/shield/tower craftdiff = 2 @@ -354,7 +354,7 @@ recipe_name = "a Crossbow" appro_skill = /datum/skill/craft/engineering req_bar = /obj/item/ingot/steel - additional_items = list(/obj/item/grown/log/tree/small, /obj/item/natural/fibers) + additional_items = list(/obj/item/natural/plank, /obj/item/natural/fibers) created_item = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow craftdiff = 1 // Minimal engineering needed diff --git a/code/modules/roguetown/roguejobs/craftsman/tools.dm b/code/modules/roguetown/roguejobs/craftsman/tools.dm new file mode 100644 index 0000000000..f41477b4a6 --- /dev/null +++ b/code/modules/roguetown/roguejobs/craftsman/tools.dm @@ -0,0 +1,232 @@ +/obj/item/rogueweapon/handsaw + force = 5 + possible_item_intents = list(/datum/intent/mace/strike/shovel) + gripped_intents = null + name = "handsaw" + desc = "An iron saw for sawing wood." + icon_state = "handsaw" + icon = 'icons/roguetown/items/crafting.dmi' + sharpness = IS_SHARP + dropshrink = 0.9 + wdefense = 1 +// pixel_y = -16 +// pixel_x = -16 +// inhand_x_dimension = 64 +// inhand_y_dimension = 64 +// bigboy = TRUE + wlength = WLENGTH_LONG + w_class = WEIGHT_CLASS_NORMAL + slot_flags = ITEM_SLOT_BACK || ITEM_SLOT_HIP + swingsound = list('sound/combat/wooshes/blunt/shovel_swing.ogg','sound/combat/wooshes/blunt/shovel_swing2.ogg') + drop_sound = 'sound/foley/dropsound/shovel_drop.ogg' + smeltresult = /obj/item/ingot/iron + associated_skill = /datum/skill/combat/polearms + max_blade_int = 50 + +/obj/item/rogueweapon/handsaw/crude + name = "crude sawing tool" + desc = "A serrated piece of flint with a bone handle." + icon_state = "stonesaw" + wlength = WLENGTH_LONG + w_class = WEIGHT_CLASS_BULKY + force = 5 + smeltresult = /obj/item/ash + firefuel = 5 MINUTES + toolspeed = 3 + +/obj/item/rogueweapon/chisel + name = "chisel" + desc = "" + icon_state = "chisel" + icon = 'icons/roguetown/items/crafting.dmi' + force = 2 + throwforce = 2 + possible_item_intents = list(/datum/intent/stab, /datum/intent/pick) + gripped_intents = null + twohands_required = FALSE + sharpness = IS_SHARP + dropshrink = 0.9 + w_class = WEIGHT_CLASS_SMALL + wdefense = 1 + blade_dulling = 0 + max_integrity = 150 + slot_flags = ITEM_SLOT_MOUTH|ITEM_SLOT_HIP +// pixel_y = -16 +// pixel_x = -16 +// inhand_x_dimension = 64 +// inhand_y_dimension = 64 +// bigboy = TRUE + swingsound = list('sound/combat/wooshes/blunt/shovel_swing.ogg','sound/combat/wooshes/blunt/shovel_swing2.ogg') + drop_sound = 'sound/foley/dropsound/shovel_drop.ogg' + associated_skill = /datum/skill/combat/knives + max_blade_int = 50 + +/obj/item/natural/plank + name = "wooden plank" + desc = "A smooth wooden plank." + icon = 'icons/roguetown/items/crafting.dmi' + icon_state = "woodplank" + possible_item_intents = list(/datum/intent/use) + force = 10 + throwforce = 10 + attacked_sound = 'sound/misc/woodhit.ogg' + obj_flags = null + firefuel = 20 MINUTES + resistance_flags = FLAMMABLE + slot_flags = null + body_parts_covered = null + experimental_onhip = TRUE + max_integrity = 20 + muteinmouth = TRUE + w_class = WEIGHT_CLASS_BULKY + bundletype = /obj/item/natural/bundle/plank + +/obj/item/natural/plank/attack_right(mob/user) + to_chat(user, "I start to collect [src]...") + if(move_after(user, 5 SECONDS, target = src)) + var/plankcount = 0 + for(var/obj/item/natural/plank/F in get_turf(src)) + plankcount++ + while(plankcount > 0) + if(plankcount == 1) + new /obj/item/natural/plank(get_turf(user)) + plankcount-- + else if(plankcount >= 2) + var/obj/item/natural/bundle/plank/B = new(get_turf(user)) + B.amount = clamp(plankcount, 2, 3) + B.update_bundle() + plankcount -= clamp(plankcount, 2, 3) + for(var/obj/item/natural/plank/F in get_turf(src)) + qdel(F) + +/obj/item/natural/plankshort + name = "short wooden plank" + desc = "A smooth wooden plank that has been cut short." + force = 8 + throwforce = 8 + icon_state = "shortplank" + icon = 'icons/roguetown/items/crafting.dmi' + firefuel = 10 MINUTES + resistance_flags = FLAMMABLE + slot_flags = null + body_parts_covered = null + experimental_onhip = TRUE + max_integrity = 15 + muteinmouth = TRUE + w_class = WEIGHT_CLASS_NORMAL + bundletype = /obj/item/natural/bundle/plankshort + +/obj/item/natural/plankshort/attack_right(mob/user) + to_chat(user, "I start to collect [src]...") + if(move_after(user, 5 SECONDS, target = src)) + var/splankcount = 0 + for(var/obj/item/natural/plank/F in get_turf(src)) + splankcount++ + while(splankcount > 0) + if(splankcount == 1) + new /obj/item/natural/plankshort(get_turf(user)) + splankcount-- + else if(splankcount >= 2) + var/obj/item/natural/bundle/plankshort/B = new(get_turf(user)) + B.amount = clamp(splankcount, 2, 3) + B.update_bundle() + splankcount -= clamp(splankcount, 2, 3) + for(var/obj/item/natural/plankshort/F in get_turf(src)) + qdel(F) + + +/obj/item/natural/stoneblock + name = "stone block" + desc = "A rectangular stone block for building." + icon = 'icons/roguetown/items/crafting.dmi' + icon_state = "stoneblock" + gripped_intents = null + dropshrink = 0.75 + possible_item_intents = list(INTENT_GENERIC) + force = 12 + throwforce = 20 //brick is valid weapon + slot_flags = null + obj_flags = null + w_class = WEIGHT_CLASS_SMALL + bundletype = /obj/item/natural/bundle/stoneblock + +/obj/item/natural/stoneblock/attack_right(mob/user) + to_chat(user, "I start to collect [src]...") + if(move_after(user, 5 SECONDS, target = src)) + var/blockcount = 0 + for(var/obj/item/natural/stoneblock/F in get_turf(src)) + blockcount++ + while(blockcount > 0) + if(blockcount == 1) + new /obj/item/natural/stoneblock(get_turf(user)) + blockcount-- + else if(blockcount >= 2) + var/obj/item/natural/bundle/stoneblock/B = new(get_turf(user)) + B.amount = clamp(blockcount, 2, 3) + B.update_bundle() + blockcount -= clamp(blockcount, 2, 3) + for(var/obj/item/natural/stoneblock/F in get_turf(src)) + qdel(F) + +/obj/item/natural/bundle/plank + name = "stack of wooden planks" + desc = "A stack of wooden planks." + icon_state = "woodplankbundle1" + icon = 'icons/roguetown/items/crafting.dmi' + possible_item_intents = list(/datum/intent/use) + force = 15 + throwforce = 18 + throw_range = 2 + firefuel = null + resistance_flags = null + firemod = null + w_class = WEIGHT_CLASS_HUGE + stackname = "plank" + stacktype = /obj/item/natural/plank + maxamount = 3 + icon1 = "woodplankbundle1" + icon1step = 2 + icon2 = "woodplankbundle2" + icon2step = 3 + +/obj/item/natural/bundle/plankshort + name = "stack of short wooden planks" + desc = "A stack of short wooden planks." + icon_state = "shortplankbundle1" + icon = 'icons/roguetown/items/crafting.dmi' + possible_item_intents = list(/datum/intent/use) + force = 15 + throwforce = 18 + throw_range = 2 + firefuel = null + resistance_flags = null + firemod = null + w_class = WEIGHT_CLASS_HUGE + stackname = "planks" + stacktype = /obj/item/natural/plankshort + maxamount = 3 + icon1 = "shortplankbundle1" + icon1step = 2 + icon2 = "shortplankbundle2" + icon2step = 3 + +/obj/item/natural/bundle/stoneblock + name = "stack of stone blocks" + desc = "A stack of stone blocks." + icon_state = "stoneblockbundle1" + icon = 'icons/roguetown/items/crafting.dmi' + possible_item_intents = list(/datum/intent/use) + force = 15 + throwforce = 18 + throw_range = 2 + firefuel = null + resistance_flags = null + firemod = null + w_class = WEIGHT_CLASS_HUGE + stackname = "stone blocks" + stacktype = /obj/item/natural/stoneblock + maxamount = 3 + icon1 = "stoneblockbundle1" + icon1step = 2 + icon2 = "stoneblockbundle2" + icon2step = 3 diff --git a/icons/roguetown/items/crafting.dmi b/icons/roguetown/items/crafting.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1fb342ebdb3dc5cdd0326e59e2e47188b72ca4f4 GIT binary patch literal 3793 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 o?8wA_-Ze`GBvX9;