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.")