From ec6e031ab36618184f644545e892146b9a11409b Mon Sep 17 00:00:00 2001 From: NPC1314 <110836368+NPC1314@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:34:42 +0100 Subject: [PATCH 1/4] ThirdTimeHammering! (#2180) ## About The Pull Request If these dont stay fixed this time theyre getting replaced with banana hammers. --- _maps/map_files/rockhill/rockhill.dmm | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/_maps/map_files/rockhill/rockhill.dmm b/_maps/map_files/rockhill/rockhill.dmm index 09135a81475..c4adf9e90bc 100644 --- a/_maps/map_files/rockhill/rockhill.dmm +++ b/_maps/map_files/rockhill/rockhill.dmm @@ -505,8 +505,8 @@ /obj/structure/lever/red{ dir = 6; name = "BURN"; - redstone_id = "lava_bastioncell"; - pixel_x = -10 + pixel_x = -10; + redstone_id = "lava_bastioncell" }, /turf/open/floor/rogue/tile, /area/rogue/indoors) @@ -1146,7 +1146,7 @@ lockid = "blacksmith" }, /obj/item/rogueweapon/tongs, -/obj/item/rogueweapon/hammer, +/obj/item/rogueweapon/hammer/iron, /obj/item/key/blacksmith, /turf/open/floor/rogue/ruinedwood{ icon_state = "weird1" @@ -7509,10 +7509,10 @@ "ezy" = ( /obj/structure/mineral_door/wood/donjon{ dir = 8; + lockdiff = 2; locked = 1; lockid = "bog_gatehouse"; - name = "Acid Cell"; - lockdiff = 2 + name = "Acid Cell" }, /turf/open/floor/rogue/blocks/green, /area/rogue/under/town/basement) @@ -7913,10 +7913,10 @@ "eKm" = ( /obj/structure/mineral_door/wood/donjon{ dir = 8; + lockdiff = 2; locked = 1; lockid = "bog_gatehouse"; - name = "Armory"; - lockdiff = 2 + name = "Armory" }, /turf/open/floor/rogue/blocks/green, /area/rogue/under/town/basement) @@ -16064,7 +16064,7 @@ /area/rogue/indoors/town/bath) "jEp" = ( /obj/machinery/anvil/crafted, -/obj/item/rogueweapon/hammer, +/obj/item/rogueweapon/hammer/iron, /turf/open/floor/rogue/hexstone, /area/rogue/indoors) "jEq" = ( @@ -16466,7 +16466,7 @@ }, /obj/item/rogueweapon/tongs, /obj/item/key/blacksmith, -/obj/item/rogueweapon/hammer, +/obj/item/rogueweapon/hammer/iron, /turf/open/floor/rogue/ruinedwood{ icon_state = "weird1" }, @@ -17784,7 +17784,7 @@ locked = 1; lockid = "blacksmith" }, -/obj/item/rogueweapon/hammer, +/obj/item/rogueweapon/hammer/iron, /obj/item/rogueweapon/tongs, /obj/item/key/blacksmith, /turf/open/floor/rogue/ruinedwood{ @@ -18213,11 +18213,11 @@ redstone_id = "lava_bastion" }, /obj/structure/kybraxor{ + desc = "Hungry for the poor."; + name = "Balar"; pixel_x = -32; pixel_y = -32; - redstone_id = "lava_bastion"; - desc = "Hungry for the poor."; - name = "Balar" + redstone_id = "lava_bastion" }, /turf/open/transparent/openspace, /area/rogue/indoors) @@ -22094,7 +22094,7 @@ }, /obj/item/key/blacksmith, /obj/item/rogueweapon/tongs, -/obj/item/rogueweapon/hammer, +/obj/item/rogueweapon/hammer/iron, /turf/open/floor/rogue/ruinedwood{ icon_state = "weird1" }, From 8e9c3c8f61f09023fa0b1fa0aefa628cd9da00fb Mon Sep 17 00:00:00 2001 From: NPC1314 <110836368+NPC1314@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:35:01 +0100 Subject: [PATCH 2/4] Swampweed (#2178) ## About The Pull Request I was told swampweed spawns as items on the ground in the bog and rot away. Thats just not very cool. Added simple harvestable structure wild swampweed, looks like the grown one. Also ups swampweed and smokeweed rot timers from 15 to 60 minutes, less annoying. Replaces the swamp weed on ground on the bog generator with the above. --- .../structures/roguetown/rogueflora.dm | 20 +++++++++++++++++++ code/modules/farming/produce.dm | 4 ++-- code/modules/roguetown/mapgen/bog.dm | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/roguetown/rogueflora.dm b/code/game/objects/structures/roguetown/rogueflora.dm index 4df48267642..a379b4cc43c 100644 --- a/code/game/objects/structures/roguetown/rogueflora.dm +++ b/code/game/objects/structures/roguetown/rogueflora.dm @@ -425,6 +425,26 @@ icon_state = "tallbush[pick(1,2)]" +/* .................. Wild Swampweed ................... */ +/obj/structure/wild_swampweed + name = "swampweed" + desc = "" + icon = 'icons/roguetown/misc/crops.dmi' + icon_state = "weed2" + color = "#d2d1ce" + layer = BELOW_MOB_LAYER + max_integrity = 60 + density = FALSE + debris = list(/obj/item/natural/fibers = 1, /obj/item/reagent_containers/food/snacks/grown/rogue/sweetleaf = 1) +/obj/structure/wild_swampweed/attack_hand(mob/living/carbon/human/user) + playsound(src.loc, "plantcross", 80, FALSE, -1) + user.visible_message(span_warning("[user] harvests [src].")) + if(do_after(user, 3 SECONDS, target = src)) + new /obj/item/reagent_containers/food/snacks/grown/rogue/sweetleaf (get_turf(src)) + qdel(src) +/obj/structure/wild_swampweed/Crossed(mob/living/carbon/human/H) + playsound(src.loc, "plantcross", 80, FALSE, -1) + /obj/structure/flora/rogueshroom name = "mushroom" desc = "Mushrooms are the only happy beings in this island." diff --git a/code/modules/farming/produce.dm b/code/modules/farming/produce.dm index ed20222af3d..eb6c55bd58f 100644 --- a/code/modules/farming/produce.dm +++ b/code/modules/farming/produce.dm @@ -210,7 +210,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/berrypoison = 5) tastes = list("sweet" = 1,"bitterness" = 1) eat_effect = /datum/status_effect/debuff/badmeal - rotprocess = 15 MINUTES + rotprocess = 60 MINUTES /obj/item/reagent_containers/food/snacks/grown/rogue/pipeweed seed = /obj/item/seeds/pipeweed @@ -224,7 +224,7 @@ list_reagents = list(/datum/reagent/drug/nicotine = 2, /datum/reagent/consumable/nutriment = 1, /datum/reagent/berrypoison = 5) grind_results = list(/datum/reagent/drug/nicotine = 5) eat_effect = /datum/status_effect/debuff/badmeal - rotprocess = 15 MINUTES + rotprocess = 60 MINUTES /obj/item/reagent_containers/food/snacks/grown/rogue/pipeweeddry seed = null diff --git a/code/modules/roguetown/mapgen/bog.dm b/code/modules/roguetown/mapgen/bog.dm index f2f38039705..bedfd0ca37a 100644 --- a/code/modules/roguetown/mapgen/bog.dm +++ b/code/modules/roguetown/mapgen/bog.dm @@ -26,7 +26,7 @@ /obj/structure/flora/roguetree/stump = 4, /obj/effect/mob_spawner =5, /obj/structure/closet/dirthole/closed/loot=3, - /obj/item/reagent_containers/food/snacks/grown/rogue/sweetleaf = 4, + /obj/structure/wild_swampweed = 5, /obj/structure/flora/roguegrass/maneater/real=3) spawnableTurfs = list(/turf/open/floor/rogue/dirt/road=2, /turf/open/water/swamp=1) From b07bb4186fe68b75c3d5c21d9d3d490dbd57e215 Mon Sep 17 00:00:00 2001 From: Xaytan <37344638+Xaytan@users.noreply.github.com> Date: Fri, 10 Jan 2025 03:34:52 -0500 Subject: [PATCH 3/4] Bugfixes, Bugfixes, A Couple Of Common Sense Tweaks, And More Bugfixes (#2186) ## About The Pull Request Removes the ability to infinitely duplicate wood by using a handsaw on twigs. Removes the ability to infinitely duplicate hide by curing it and adding it to the stockpile without bundling it, resolves issue: https://github.com/Rotwood-Vale/Ratwood-Keep/issues/2146 Fixes cured hide not being added to stockpile unless bundled Makes handsaw and chisel scale off knife skill Allows handsaw to be usable for surgeries that require saws Changes handsaw to use cut and chop intents like other saws Allows improvised and surgical saws to be used for cutting logs Changes wood plank refining to carpentry Changes wood platform crafting to carpentry Fixes nonfunctioning gold goblet smithing recipe Fixes mortars not extracting grind results from ground items Added ability to use strong intent to grind for reagents instead of milling results in the mortar ## Why It's Good For The Game Removes dupes, removes infinite money glitches, reduces snowflake interactions, allows tools to behave more logically, allows cured hide to be stockpiled more reliably, allows carpenters to refine their own materials, discourages woodcutters from stockpiling planks to gain personal profit at the expense of providing useful materials. Oh yeah, and fixes something Mori broke. ![image](https://github.com/user-attachments/assets/3c75f36b-60d2-41ca-84a7-46ba4b9e43fc) ![image](https://github.com/user-attachments/assets/35f85526-6196-4d55-b3a0-c3a252c0013e) ![image](https://github.com/user-attachments/assets/ddc56112-b9bc-4037-b6f0-9092477c033b) ![image](https://github.com/user-attachments/assets/c314bd15-bfac-44bb-a5db-27e727cc6c96) --- .../objects/items/rogueitems/natural/wood.dm | 8 ++++--- code/modules/roguetown/roguecrafting/turfs.dm | 2 +- .../roguejobs/artificer/handsaw_chisel.dm | 7 +++--- .../blacksmith/anvil_recipes/cutlery.dm | 4 ++-- .../roguejobs/blacksmith/grindwheel.dm | 6 ++--- .../modules/roguetown/roguestock/stockpile.dm | 22 +++++++++---------- .../spells/roguetown/acolyte/sawbones.dm | 20 ++++++++++------- 7 files changed, 38 insertions(+), 31 deletions(-) diff --git a/code/game/objects/items/rogueitems/natural/wood.dm b/code/game/objects/items/rogueitems/natural/wood.dm index 20287641ef2..15f55b638d6 100644 --- a/code/game/objects/items/rogueitems/natural/wood.dm +++ b/code/game/objects/items/rogueitems/natural/wood.dm @@ -25,7 +25,7 @@ user.changeNext_move(CLICK_CD_MELEE) var/skill_level = user.mind.get_skill_level(/datum/skill/labor/lumberjacking) var/planking_time = (40 - (skill_level * 5)) - if(istype(I, /obj/item/rogueweapon/handsaw)) + if(lumber_amount && I.tool_behaviour == TOOL_SAW || I.tool_behaviour == TOOL_IMPROVSAW) playsound(get_turf(src.loc), 'sound/foley/sawing.ogg', 100) user.visible_message("[user] starts sawing [src] to smaller pieces.") if(do_after(user, planking_time)) @@ -80,13 +80,15 @@ smeltresult = /obj/item/rogueore/coal lumber_amount = 0 metalizer_result = /obj/item/rogueore/copper + + /obj/item/grown/log/tree/small/attackby(obj/item/I, mob/living/user, params) if(item_flags & IN_STORAGE) return user.changeNext_move(CLICK_CD_MELEE) - var/skill_level = user.mind.get_skill_level(/datum/skill/labor/lumberjacking) + var/skill_level = user.mind.get_skill_level(/datum/skill/craft/carpentry) var/planking_time = (45 - (skill_level * 5)) - if(istype(I, /obj/item/rogueweapon/handsaw)) + if(I.tool_behaviour == TOOL_SAW || I.tool_behaviour == TOOL_IMPROVSAW) playsound(get_turf(src.loc), 'sound/foley/sawing.ogg', 100) user.visible_message("[user] starts sawing planks from [src].") if(do_after(user, planking_time)) diff --git a/code/modules/roguetown/roguecrafting/turfs.dm b/code/modules/roguetown/roguecrafting/turfs.dm index f5214d73567..6914ecb9880 100644 --- a/code/modules/roguetown/roguecrafting/turfs.dm +++ b/code/modules/roguetown/roguecrafting/turfs.dm @@ -24,7 +24,7 @@ reqs = list(/obj/item/natural/wood/plank = 1) skill_level = 2 -/datum/crafting_recipe/roguetown/turfs/woodplatform +/datum/crafting_recipe/roguetown/turfs/wood/woodplatform name = "platform (wood)" result = /turf/open/floor/rogue/ruinedwood/platform reqs = list(/obj/item/natural/wood/plank = 2) diff --git a/code/modules/roguetown/roguejobs/artificer/handsaw_chisel.dm b/code/modules/roguetown/roguejobs/artificer/handsaw_chisel.dm index 62d703c4aaa..820969eaddc 100644 --- a/code/modules/roguetown/roguejobs/artificer/handsaw_chisel.dm +++ b/code/modules/roguetown/roguejobs/artificer/handsaw_chisel.dm @@ -2,7 +2,7 @@ //................ Handsaw ............... // /obj/item/rogueweapon/handsaw force = 5 - possible_item_intents = list(/datum/intent/mace/strike/shovel) + possible_item_intents = list(/datum/intent/dagger/cut, /datum/intent/dagger/chop/cleaver) gripped_intents = null name = "handsaw" desc = "Iron tool for woodworking." @@ -21,10 +21,11 @@ wlength = WLENGTH_LONG w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_HIP + tool_behaviour = TOOL_IMPROVSAW 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/maces + associated_skill = /datum/skill/combat/knives max_blade_int = 50 //................ Chisel ............... // @@ -51,7 +52,7 @@ slot_flags = 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' - associated_skill = /datum/skill/combat/maces + associated_skill = /datum/skill/combat/knives max_blade_int = 50 dropshrink = 0.9 diff --git a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/cutlery.dm b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/cutlery.dm index 88de4d9b27c..144f7bcd94c 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/cutlery.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/anvil_recipes/cutlery.dm @@ -100,7 +100,7 @@ // Gold -/datum/anvil_recipe/general/cupsgold +/datum/anvil_recipe/cutlery/cupsgold name = "Gold Goblets 3x" req_bar = /obj/item/ingot/gold - created_item = list(/obj/item/reagent_containers/glass/cup/golden, /obj/item/reagent_containers/glass/cup/golden, /obj/item/reagent_containers/glass/cup/golden) \ No newline at end of file + created_item = list(/obj/item/reagent_containers/glass/cup/golden, /obj/item/reagent_containers/glass/cup/golden, /obj/item/reagent_containers/glass/cup/golden) diff --git a/code/modules/roguetown/roguejobs/blacksmith/grindwheel.dm b/code/modules/roguetown/roguejobs/blacksmith/grindwheel.dm index 62bd93dc92a..d90928869d3 100644 --- a/code/modules/roguetown/roguejobs/blacksmith/grindwheel.dm +++ b/code/modules/roguetown/roguejobs/blacksmith/grindwheel.dm @@ -15,16 +15,16 @@ I.add_bintegrity(999) return if(istype(I, /obj/item/grown/log/tree/small)) - var/skill_level = user.mind.get_skill_level(/datum/skill/labor/lumberjacking) + var/skill_level = user.mind.get_skill_level(/datum/skill/craft/carpentry) var/wood_time = (40 - (skill_level * 5)) playsound(src, pick('sound/misc/slide_wood (2).ogg', 'sound/misc/slide_wood (1).ogg'), 100, FALSE) if(do_after(user, wood_time, target = src)) - if(prob(max(40 - (skill_level * 10), 0)) || !skill_level) //Chance maxes at level 4 (standard woodcutter) + if(prob(max(40 - (skill_level * 10), 0)) || !skill_level) //Chance maxes at level 4 to_chat(user, span_info("Curses! I ruined this piece of wood...")) playsound(src,'sound/combat/hits/onwood/destroyfurniture.ogg', 100, FALSE) else new /obj/item/natural/wood/plank(get_turf(src)) - user.mind.add_sleep_experience(/datum/skill/labor/lumberjacking, (user.STAINT*0.5)) + user.mind.add_sleep_experience(/datum/skill/craft/carpentry, (user.STAINT*0.5)) qdel(I) return . = ..() diff --git a/code/modules/roguetown/roguestock/stockpile.dm b/code/modules/roguetown/roguestock/stockpile.dm index 10838d11e45..4a60994eaf7 100644 --- a/code/modules/roguetown/roguestock/stockpile.dm +++ b/code/modules/roguetown/roguestock/stockpile.dm @@ -127,6 +127,17 @@ importexport_amt = 10 passive_generation = 4 +/datum/roguestock/stockpile/cured + name = "Cured Leather" + desc = "Cured Leather ready to be worked." + item_type = /obj/item/natural/hide/cured + held_items = list(2, 0) + payout_price = 5 + withdraw_price = 7 + transport_fee = 1 + export_price = 7 + importexport_amt = 10 + /datum/roguestock/stockpile/hide name = "Hide" desc = "Stripped hide from animals." @@ -139,17 +150,6 @@ importexport_amt = 5 passive_generation = 2 -/datum/roguestock/stockpile/cured - name = "Cured Leather" - desc = "Cured Leather ready to be worked." - item_type = /obj/item/natural/hide/cured - held_items = list(2, 0) - payout_price = 5 - withdraw_price = 7 - transport_fee = 1 - export_price = 7 - importexport_amt = 10 - /datum/roguestock/stockpile/fur name = "Fur" desc = "Hide with a long winter coat from animals." diff --git a/code/modules/spells/roguetown/acolyte/sawbones.dm b/code/modules/spells/roguetown/acolyte/sawbones.dm index 6d45656a41a..27fab9f3c89 100644 --- a/code/modules/spells/roguetown/acolyte/sawbones.dm +++ b/code/modules/spells/roguetown/acolyte/sawbones.dm @@ -1358,7 +1358,7 @@ end recipe count: 8 ash, 8 minced meat, 4 swampweed, 2 poisonberry to make 1 bot grinding_started = TRUE // Mark grinding as started to_chat(user, "I start grinding...") if((do_after(user, 25, target = src)) && grinded) - if(grinded.mill_result) // This goes first. + if(grinded.mill_result && !istype(user.rmb_intent, /datum/rmb_intent/strong)) // This goes first. Strong intent to bypass. new grinded.mill_result(get_turf(src)) QDEL_NULL(grinded) icon_state = reagents.total_volume > 0 ? "mortar_full" : "mortar_empty" @@ -1368,17 +1368,21 @@ end recipe count: 8 ash, 8 minced meat, 4 swampweed, 2 poisonberry to make 1 bot grinded.on_juice() reagents.add_reagent_list(grinded.juice_results) to_chat(user, "I juice [grinded] into a fine liquid.") - if(grinded.reagents) // Food and pills. - grinded.reagents.trans_to(src, grinded.reagents.total_volume, transfered_by = user) + if(grinded.grind_results && !isemptylist(grinded.grind_results)) + grinded.on_grind() + reagents.add_reagent_list(grinded.grind_results) + to_chat(user, "I break [grinded] into powder.") QDEL_NULL(grinded) icon_state = reagents.total_volume > 0 ? "mortar_full" : "mortar_empty" grinding_started = FALSE // Reset grinding status return - grinded.on_grind() - reagents.add_reagent_list(grinded.grind_results) - to_chat(user, "I break [grinded] into powder.") - QDEL_NULL(grinded) - icon_state = reagents.total_volume > 0 ? "mortar_full" : "mortar_empty" + if(grinded.reagents) // Other stuff that might have reagents in them, let's not cause a runtime shall we? + grinded.reagents.trans_to(src, grinded.reagents.total_volume, transfered_by = user) + icon_state = reagents.total_volume > 0 ? "mortar_full" : "mortar_empty" + to_chat(user, "I pound [grinded] into mush.") + QDEL_NULL(grinded) + grinding_started = FALSE // Reset grinding status + return grinding_started = FALSE // Reset grinding status return else From 982fb39cffe5075834e14c7137f8b451e35b6430 Mon Sep 17 00:00:00 2001 From: Xaytan <37344638+Xaytan@users.noreply.github.com> Date: Fri, 10 Jan 2025 04:08:01 -0500 Subject: [PATCH 4/4] DARK ELF FACE MARKINGS (#2183) ## About The Pull Request Gives dark elves eyeliner and flushed cheek marking options like humens, elves, half elves and tieflings. ## Why It's Good For The Game Drow women with way too much eye makeup. ![goth-smoking](https://github.com/user-attachments/assets/eb51ec81-1c60-4e38-a395-270c4fbe246a) ![image](https://github.com/user-attachments/assets/b9aada51-ee2f-4a3d-8ef3-8017401fc926) --- .../living/carbon/human/species_types/roguetown/elf/elfd.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species_types/roguetown/elf/elfd.dm b/code/modules/mob/living/carbon/human/species_types/roguetown/elf/elfd.dm index 0a60a4aed24..368b2a754a8 100644 --- a/code/modules/mob/living/carbon/human/species_types/roguetown/elf/elfd.dm +++ b/code/modules/mob/living/carbon/human/species_types/roguetown/elf/elfd.dm @@ -102,9 +102,11 @@ /datum/customizer/organ/vagina/human, ) body_markings = list( + /datum/body_marking/flushed_cheeks, + /datum/body_marking/eyeliner, + /datum/body_marking/tonage, ) - gender_swapping = TRUE stress_examine = TRUE stress_desc = span_red("A loathesome dark elf.")