Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
1e84213
Handsubclassandotherthings
Spitegremlin May 16, 2026
747fd09
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 16, 2026
d68700f
craftingrecipeaddingandedits
Spitegremlin May 17, 2026
3144a2b
Merge branch 'Handsubclassanddog' of https://github.com/Spitegremlin/…
Spitegremlin May 17, 2026
b526d32
advisorglock
Spitegremlin May 18, 2026
87f85a5
gunbook
Spitegremlin May 21, 2026
48d5e27
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 21, 2026
4a46c9b
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 22, 2026
3b1cb7f
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 22, 2026
e3b3219
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 24, 2026
542f2c1
Merge branch 'main' into Handsubclassanddog
Spitegremlin May 25, 2026
933e972
book
Spitegremlin May 27, 2026
b48447c
Merge branch 'Handsubclassanddog' of https://github.com/Spitegremlin/…
Spitegremlin May 27, 2026
9d50aa3
hound fix
Spitegremlin May 30, 2026
fe0f9be
fixing advisor things
Spitegremlin May 31, 2026
4f36149
Update code/modules/crafting/quality_of_crafting/leatherworking.dm
Spitegremlin Jun 2, 2026
60d6456
Update code/modules/mob/living/simple_animal/hostile/retaliate/creach…
Spitegremlin Jun 2, 2026
c9a0522
Update code/modules/projectiles/guns/ballistic/powder/puffer.dm
Spitegremlin Jun 2, 2026
aa686b7
Update code/modules/mob/living/simple_animal/hostile/retaliate/creach…
Spitegremlin Jun 2, 2026
1c24940
Update code/modules/mob/living/simple_animal/hostile/retaliate/creach…
Spitegremlin Jun 2, 2026
35d1a74
Update code/modules/mob/living/simple_animal/hostile/retaliate/creach…
Spitegremlin Jun 2, 2026
0beaf38
Update code/modules/projectiles/guns/ballistic/powder/puffer.dm
Spitegremlin Jun 2, 2026
91b7d7e
Update code/modules/jobs/job_types/nobility/hand.dm
Spitegremlin Jun 7, 2026
ce5859f
moving things around, some fixes
Spitegremlin Jun 7, 2026
239a000
Merge branch 'Handsubclassanddog' of https://github.com/Spitegremlin/…
Spitegremlin Jun 7, 2026
683c02e
Merge branch 'main' into Handsubclassanddog
Spitegremlin Jun 7, 2026
587d18b
hound fix
Spitegremlin Jun 7, 2026
7c882c1
Merge branch 'Handsubclassanddog' of https://github.com/Spitegremlin/…
Spitegremlin Jun 7, 2026
57798c9
fixing
Spitegremlin Jun 7, 2026
d2bdf88
quick draw on book
Spitegremlin Jun 11, 2026
315ccfc
Merge branch 'main' into Handsubclassanddog
Spitegremlin Jun 12, 2026
d9652d5
zigbox for huntsmaster
Spitegremlin Jun 12, 2026
c48c077
Merge branch 'Handsubclassanddog' of https://github.com/Spitegremlin/…
Spitegremlin Jun 12, 2026
6f77991
Merge branch 'main' into Handsubclassanddog
Spitegremlin Jun 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/__DEFINES/traits/definitions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_CANNOT_BE_UNBUCKLED "cannot_be_unbuckled"
/// Prevents mob from riding mobs when buckled onto something
#define TRAIT_CANT_RIDE "cant_ride"

/// trait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff.
#define TRAIT_AI_PAUSED "TRAIT_AI_PAUSED"
///trait that stops our ai controlled mob from moving at all due to ai planning
Expand Down Expand Up @@ -458,6 +457,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RECOGNIZE_ADDICTS "Addict Recognition"
#define TRAIT_NOENERGY "Boundless Energy" //Specifically, You don't lose fatigue, but you do continue losing stamina.
#define TRAIT_KEENEARS "Keen Ears"
#define TRAIT_KEENEYES "Keen Eyes"
#define TRAIT_POISON_RESILIENCE "Poison Resilience"
#define TRAIT_SEED_FINDER "Seed Finder"
/// Cannot count coins
Expand Down
2 changes: 2 additions & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"Endless Slumber" = TRAIT_TORPOR,
"Boundless Energy" = TRAIT_NOENERGY,
"Keen Ears" = TRAIT_KEENEARS,
"Keen Eyes" = TRAIT_KEENEYES,
"Poison Resilience" = TRAIT_POISON_RESILIENCE,
"Expert Forager" = TRAIT_FORAGER,
"Seed Finder" = TRAIT_SEED_FINDER,
Expand Down Expand Up @@ -333,6 +334,7 @@ GLOBAL_LIST_INIT(roguetraits, list(
TRAIT_DUALWIELDER = span_info("I am trained in the art of dual wielding."),
TRAIT_NOENERGY = span_info("I don't need rest; I won't ever feel fatigue."),
TRAIT_KEENEARS = span_info("I've a good pair of ears, and can tell who is speaking, even when they're out of sight. I can also hear whispers from further away."),
TRAIT_KEENEYES = span_info("Years of hunting and tracking have honed your sight. You're better at noticing details and spotting hidden things."),
TRAIT_POISON_RESILIENCE = span_info("I'm more resilient to poisons."),
TRAIT_FORAGER = span_info("I can tell which jacksberries are poisonous."),
TRAIT_SEED_FINDER = span_info("I find seeds more easily."),
Expand Down
5 changes: 5 additions & 0 deletions code/datums/components/storage/storage_grid_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@
screen_max_rows = 2
screen_max_columns = 1

/datum/component/storage/concrete/grid/coin_pouch/book/hollow

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/datum/component/storage/concrete/grid/coin_pouch/book/hollow
/datum/component/storage/concrete//hollow_book

Don't just accept this change change this path in the book item

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why doesnt the current one work

max_items = 1
max_w_class = WEIGHT_CLASS_BULKY
quickdraw = TRUE

/datum/component/storage/concrete/grid/keyring
screen_max_rows = 2
screen_max_columns = 5
Expand Down
1 change: 0 additions & 1 deletion code/datums/components/storage/storage_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
else
I.icon_state += "-sheathed"


/datum/component/storage/concrete/scabbard/knife/New(list/raw_args)
. = ..()
set_holdable(list(/obj/item/weapon/knife))
Expand Down
13 changes: 13 additions & 0 deletions code/modules/clothing/armor/gambesson.dm
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,19 @@
detail_color = CLOTHING_ROYAL_PURPLE
misc_flags = CRAFTING_TEST_EXCLUDE

/obj/item/clothing/armor/gambeson/hunts
name = "hunting gambeson"
desc = "A thick, protective, rogueish looking gambeson, fashioned not for those looking to just look fancy- No, this is for a true hunter who knows exactly what they want, and how to get it, a hunter who knows what they need to protect them from stray thorns, and savage beasts."
sleeved = 'icons/roguetown/clothing/special/onmob/hand.dmi'
icon_state = "handhunt"
item_state = "handhunt"
armor = ARMOR_PADDED_GOOD
icon = 'icons/roguetown/clothing/special/hand.dmi'
mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/hand.dmi'
icon = 'icons/roguetown/clothing/special/hand.dmi'
mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/hand.dmi'
Comment thread
Spitegremlin marked this conversation as resolved.
detail_tag = "_detail"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
detail_tag = "_detail"
detail_tag = "_detail"
detail_color = CLOTHING_WHITE

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats the point of this


//................ Padded Dress ............... //
/obj/item/clothing/armor/gambeson/heavy/dress
name = "padded dress"
Expand Down
9 changes: 9 additions & 0 deletions code/modules/clothing/belt/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,15 @@
/obj/item/reagent_containers/food/snacks/hardtack,
)

/obj/item/storage/belt/pouch/book/hollow

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this a pouch

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

takes from pouch

name = "Tome of Justice"
desc = "This seems to be a special edition.."
icon_state = "handtome"
component_type = /datum/component/storage/concrete/grid/coin_pouch/book/hollow
populate_contents = list(
/obj/item/gun/ballistic/powder/wheellock/puffer/preloaded,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

??? why they are not even from grenzelhoff

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you mean the gun, i was asked to add this by several admins so they would be used more. They only start with the single round, and nothing else. Its meant to be a single use, MAYBE more tool if your willing to spend a shit load of mams on blast powder

)

/obj/item/storage/belt/pouch/coins/mid/Initialize()
. = ..()
var/obj/item/coin/silver/pile/H = new(loc)
Expand Down
14 changes: 12 additions & 2 deletions code/modules/crafting/quality_of_crafting/leatherworking.dm
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@
craftdiff = 4

/datum/repeatable_crafting_recipe/leather/standalone/hunterboots
name = "hunter boots"
name = "hunting boots"
output = /obj/item/clothing/shoes/boots/hunter
requirements = list(/obj/item/natural/hide/cured = 2,
/obj/item/natural/fur = 1,
Expand Down Expand Up @@ -948,6 +948,16 @@
/obj/item/natural/fibers = 1)
craftdiff = 4

/datum/repeatable_crafting_recipe/leather/standalone/huntergamb
name = "hunting gambeson"
output = /obj/item/clothing/armor/gambeson/hunts
requirements = list(
/obj/item/natural/hide/cured = 2,
/obj/item/natural/fibers/sinew = 1,
/obj/item/clothing/armor/gambeson = 1,
)
craftdiff = 4

/datum/repeatable_crafting_recipe/leather/standalone/gloves
name = "hardened leather gloves"
output = /obj/item/clothing/gloves/leather/advanced
Expand Down Expand Up @@ -1069,7 +1079,7 @@
craftdiff = 5

/datum/repeatable_crafting_recipe/leather/standalone/hunterboots/masterwork
name = "masterwork hunter boots"
name = "masterwork hunting boots"
output = /obj/item/clothing/shoes/boots/hunter/masterwork
attacked_atom = /obj/item/clothing/shoes/boots/hunter
requirements = list(/obj/item/clothing/shoes/boots/hunter = 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@
attribute_sheet_old = /datum/attribute_holder/sheet/job/pilgrim/hunter/old
attribute_sheet = /datum/attribute_holder/sheet/job/pilgrim/hunter

traits = list(
TRAIT_KEENEYES,
TRAIT_FORAGER
)

Comment thread
realforest2001 marked this conversation as resolved.
/datum/outfit/pilgrim/hunter
name = "Hunter (Pilgrim)"
pants = /obj/item/clothing/pants/tights/colored/random
Expand Down
135 changes: 129 additions & 6 deletions code/modules/jobs/job_types/nobility/hand.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
/datum/outfit/hand
name = JOB_HAND
belt = /obj/item/storage/belt/leather/black
beltr = /obj/item/storage/keyring/hand
neck = /obj/item/storage/keyring/hand


/datum/job/hand/after_spawn(mob/living/carbon/human/spawned, client/player_client)
Expand Down Expand Up @@ -92,7 +92,8 @@

/datum/job/advclass/hand/hand
title = JOB_HAND
tutorial = "You have played blademaster and strategist to the Noble-Family for so long that you are a master tactician, something you exploit with potent conviction. Let no man ever forget whose ear you whisper into. You've killed more men with swords than any spymaster could ever claim to."
tutorial = "You have played blademaster and strategist to the Noble-Family for so long that you are a master tactician, something you exploit with potent conviction. \
Let no man ever forget whose ear you whisper into. You've killed more men with swords than any spymaster could ever claim to."
outfit = /datum/outfit/hand/handclassic
category_tags = list(CTAG_HAND)
cmode_music = 'sound/music/cmode/nobility/combat_noble.ogg'
Expand Down Expand Up @@ -157,7 +158,8 @@

traits = list(
TRAIT_MEDIUMARMOR,
TRAIT_DODGEEXPERT
TRAIT_DODGEEXPERT,
TRAIT_FLIP_JUMP
Comment thread
realforest2001 marked this conversation as resolved.
)

/datum/outfit/hand/spymaster
Expand Down Expand Up @@ -191,8 +193,9 @@
)
raw_attribute_list = list(
STAT_INTELLIGENCE = 4,
STAT_PERCEPTION = 3,
STAT_PERCEPTION = 4,
Comment thread
realforest2001 marked this conversation as resolved.
/datum/attribute/skill/combat/crossbows = 30,
/datum/attribute/skill/combat/firearms = 40,
/datum/attribute/skill/combat/swords = 20,
/datum/attribute/skill/misc/swimming = 30,
/datum/attribute/skill/misc/climbing = 30,
Expand All @@ -209,10 +212,11 @@
/datum/attribute_holder/sheet/job/advisor/old
raw_attribute_list = list(
STAT_INTELLIGENCE = 5,
STAT_PERCEPTION = 4,
STAT_PERCEPTION = 5,
Comment thread
realforest2001 marked this conversation as resolved.
STAT_SPEED = -1,
STAT_STRENGTH = -1,
/datum/attribute/skill/combat/crossbows = 30,
/datum/attribute/skill/combat/firearms = 40,
/datum/attribute/skill/combat/swords = 20,
/datum/attribute/skill/misc/swimming = 30,
/datum/attribute/skill/misc/climbing = 30,
Expand Down Expand Up @@ -247,10 +251,129 @@
backpack_contents = list(
/obj/item/weapon/knife/dagger/steel = 1,
/obj/item/reagent_containers/glass/bottle/poison = 1,
/obj/item/paper/scroll/frumentarii/roundstart = 1
/obj/item/paper/scroll/frumentarii/roundstart = 1,
/obj/item/storage/belt/pouch/book/hollow
)
armor = /obj/item/clothing/armor/gambeson/hand
pants = /obj/item/clothing/pants/tights/colored/black
shoes = /obj/item/clothing/shoes/boots
beltl = /obj/item/weapon/sword/rapier/caneblade/hand
scabbards = list(/obj/item/weapon/scabbard/cane/hand)

/datum/attribute_holder/sheet/job/huntsmaster
attribute_variance = list(
STAT_CONSTITUTION = list(0, 1)
)
raw_attribute_list = list(
STAT_ENDURANCE = 3,
STAT_PERCEPTION = 3,
STAT_SPEED = 2,
/datum/attribute/skill/combat/crossbows = 30,
/datum/attribute/skill/combat/bows = 40,
/datum/attribute/skill/combat/firearms = 20,
/datum/attribute/skill/combat/unarmed = 35,
/datum/attribute/skill/combat/swords = 20,
/datum/attribute/skill/combat/knives = 30,
/datum/attribute/skill/misc/swimming = 40,
/datum/attribute/skill/misc/climbing = 40,
/datum/attribute/skill/misc/athletics = 40,
/datum/attribute/skill/combat/wrestling = 30,
/datum/attribute/skill/misc/reading = 20,
/datum/attribute/skill/misc/riding = 40,
/datum/attribute/skill/labor/taming = 40,
/datum/attribute/skill/misc/medicine = 20,
/datum/attribute/skill/misc/sneaking = 45,
/datum/attribute/skill/labor/butchering = 30,
/datum/attribute/skill/craft/tanning = 35,
/datum/attribute/skill/misc/sewing = 15,
/datum/attribute/skill/craft/traps = 40,
/datum/attribute/skill/craft/crafting = 30,
/datum/attribute/skill/labor/mathematics = 30
)

/datum/attribute_holder/sheet/job/huntsmaster/old
raw_attribute_list = list(
STAT_ENDURANCE = 4,
STAT_PERCEPTION = 2,
STAT_INTELLIGENCE = 2,
STAT_CONSTITUTION = 2,
STAT_SPEED = -1,
STAT_STRENGTH = -1,
/datum/attribute/skill/combat/crossbows = 40,
/datum/attribute/skill/combat/bows = 50,
/datum/attribute/skill/combat/firearms = 20,
/datum/attribute/skill/combat/unarmed = 40,
/datum/attribute/skill/combat/swords = 30,
/datum/attribute/skill/combat/knives = 30,
/datum/attribute/skill/misc/swimming = 40,
/datum/attribute/skill/misc/climbing = 40,
/datum/attribute/skill/misc/athletics = 40,
/datum/attribute/skill/combat/wrestling = 30,
/datum/attribute/skill/misc/reading = 30,
/datum/attribute/skill/misc/riding = 50,
/datum/attribute/skill/labor/taming = 50,
/datum/attribute/skill/misc/medicine = 30,
/datum/attribute/skill/misc/sneaking = 50,
/datum/attribute/skill/labor/butchering = 40,
/datum/attribute/skill/craft/tanning = 50,
/datum/attribute/skill/misc/sewing = 25,
/datum/attribute/skill/craft/traps = 50,
/datum/attribute/skill/craft/crafting = 40,
/datum/attribute/skill/labor/mathematics = 30
)

/datum/job/advclass/hand/huntsmaster
title = "Huntsmaster"
tutorial = " A hunter of the crown, you have tracked more living beings through the Wild than you can remember; \
a loyal hound by your side, a powerful saiga underneath. You've learnt the rules of the hunt are no different from the court, just simpifed, primal. \
The strong survive, the weak die. So, loose your bow over these lands, and let no man, no beast, and no demons think themselves safe from your arrows. \
Your agents by your side, you will rid this town of ruffians, rooting out would-be's like one does with a lowly cabbit. \
Let the world remember you, the Huntsmaster, as a true slayer of beast, monster, and man."
outfit = /datum/outfit/hand/huntsmaster
category_tags = list(CTAG_HAND)
cmode_music = 'sound/music/cmode/nobility/combat_noble.ogg'
exp_types_granted = list(EXP_TYPE_NOBLE)

attribute_sheet = /datum/attribute_holder/sheet/job/huntsmaster
attribute_sheet_old = /datum/attribute_holder/sheet/job/huntsmaster/old
honorary = "Huntsmaster"

traits = list(
TRAIT_KEENEYES,
TRAIT_LIGHT_STEP,
TRAIT_FORAGER
)

/datum/outfit/hand/huntsmaster
name = "Huntsmaster (Hand)"
head = /obj/item/clothing/head/roguehood/leather
shirt = /obj/item/clothing/armor/gambeson/hunts
backl = /obj/item/gun/ballistic/bow/long
backr = /obj/item/storage/backpack/satchel
wrists = /obj/item/clothing/wrists/bracers/leather
backpack_contents = list(
/obj/item/weapon/knife/dagger/steel = 1,
/obj/item/reagent_containers/glass/bottle/poison = 1,
/obj/item/paper/scroll/frumentarii/roundstart = 1,
/obj/item/flint = 1,
/obj/item/bait = 1,
/obj/item/flashlight/flare/torch/lantern/bronzelamptern = 1,
/obj/item/storage/fancy/cigarettes/tinzig = 1
)
armor = /obj/item/clothing/armor/leather/jerkin/belted/long
pants = /obj/item/clothing/pants/trou/leathertights
shoes = /obj/item/clothing/shoes/boots/hunter
beltl = /obj/item/ammo_holder/quiver/arrows
beltr = /obj/item/weapon/sword/rapier/dec
scabbards = list(/obj/item/weapon/scabbard/sword/royal)

/datum/job/advclass/hand/huntsmaster/after_spawn(mob/living/carbon/human/H)
. = ..()

var/mob/living/simple_animal/hostile/retaliate/hound/pet = new(get_turf(H))

if(!pet)
return

pet.tamed(H)
ADD_TRAIT(pet, TRAIT_CRITICAL_RESISTANCE, INNATE_TRAIT)
1 change: 1 addition & 0 deletions code/modules/jobs/job_types/peasants/hunter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
attribute_sheet_old = /datum/attribute_holder/sheet/job/hunter/old

traits = list(
TRAIT_KEENEYES,
Comment thread
realforest2001 marked this conversation as resolved.
TRAIT_FORAGER
)

Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/living.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2537,6 +2537,8 @@
var/looktime = 5 SECONDS - (GET_MOB_ATTRIBUTE_VALUE(src, STAT_PERCEPTION) * 2)
if(has_quirk(/datum/quirk/boon/keen_eye))
looktime *= 0.25
if(HAS_TRAIT(src, TRAIT_KEENEYES))
looktime *= 0.25
Comment thread
realforest2001 marked this conversation as resolved.
if(do_after(src, looktime))
// var/huhsneak
SEND_GLOBAL_SIGNAL(COMSIG_MOB_ACTIVE_PERCEPTION, src)
Expand Down
Loading
Loading