Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion _maps/map_files/rosewood/map_adjustment_rosewood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@
/datum/job/orthodoxist,
// RACES_PLAYER_GRENZ
/datum/job/advclass/combat/swordmaster,
/datum/job/advclass/mercenary/grenzelhoft,
/datum/job/advclass/mercenary/grenzelhoftzwei,
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.

subtypes

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.

uuhhh, sorry for being dumb but what do you mean by just 'subtypes'

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.

subtype the subclasses outfits and attribute sheets

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.

subtype the subclasses outfits and attribute sheets

by that do you mean make it like, mercenary/grenzelhoft/zwei?

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.

yeah

/datum/job/advclass/mercenary/grenzelhofthalb,
/datum/job/advclass/mercenary/grenzelhoftgun,
/datum/job/advclass/pilgrim/rare/grenzelhoft,
/datum/job/advclass/pilgrim/rare/preacher,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
map_file_name = "WhitePalacePass.dmm"
blacklist = list(
/datum/job/adept,
/datum/job/advclass/mercenary/grenzelhoft,
/datum/job/advclass/mercenary/grenzelhoftzwei,
/datum/job/advclass/mercenary/grenzelhofthalb,
/datum/job/advclass/mercenary/grenzelhoftgun,
/datum/job/advclass/pilgrim/rare/grenzelhoft,
/datum/job/advclass/pilgrim/rare/preacher,
/datum/job/advclass/combat/swordmaster,
Expand Down
103 changes: 0 additions & 103 deletions code/modules/jobs/job_types/other/merc_classes/grenzelhoft.dm

This file was deleted.

59 changes: 59 additions & 0 deletions code/modules/jobs/job_types/other/merc_classes/grenzelhoftgun.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/datum/attribute_holder/sheet/job/grenzelhoftgun
raw_attribute_list = list(
STAT_PERCEPTION = 2, //use musket from a range!
STAT_SPEED = -2, // fuck you no running!
/datum/attribute/skill/misc/swimming = 20,
/datum/attribute/skill/misc/climbing = 30,
/datum/attribute/skill/misc/sneaking = 30,
/datum/attribute/skill/combat/wrestling = 20,
/datum/attribute/skill/misc/athletics = 30,
/datum/attribute/skill/combat/unarmed = 20,
/datum/attribute/skill/combat/firearms = 30,
/datum/attribute/skill/combat/swords = 20,
/datum/attribute/skill/craft/bombs = 10,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

gunpowder is not something a random soldier does . we have roles that are suposed to provide this (merchant , apothecary and Artificer). combat roles are not suposed to have the means to self-supply themselves . this is the equivalent of a Knight having smithing level 3

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.

i'd say the knight example is a bit extreme. nobody besides the monarch is realistically affording the merchant gunpowder so that only really leaves apothecary and artificer, and apothecary doesn't have bomb making skills to begin with. weak bomb crafting isn't even enough for making gunpowder unless you high roll intelligence either.

Copy link
Copy Markdown

@Diegoflores31 Diegoflores31 Jun 1, 2026

Choose a reason for hiding this comment

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

the merchant gunpowder flask costs around 100 mammons if i remember correctly.
the artificer can make it pretty much for free.
apothecary you are right they cannor make it for now but i could make a PR to add an alternative recipe for them

not even archers can make their own arrows why would this be the exception . besides if you give it to them other weapon roles will also get bombmaking under the same logic

/datum/attribute/skill/misc/reading = 10,
/datum/attribute/skill/craft/crafting = 10,
)
/datum/job/advclass/mercenary/grenzelhoftgun
title = "Grenzelhoft Arkebusier"
tutorial = "A Grenzelhoft Arkebusier, they specialize in blackpowder weaponry, usually seen armed with muskets. Although more frail then other mercenaries, they make up for it with the incredible strength of their equipment."
allowed_races = list(SPEC_ID_HUMEN, SPEC_ID_DWARF, SPEC_ID_AASIMAR)
outfit = /datum/outfit/mercenary/grenzelhoftgun

attribute_sheet = /datum/attribute_holder/sheet/job/grenzelhoftgun

traits = list(TRAIT_MEDIUMARMOR)
languages = list(/datum/language/newpsydonic)
category_tags = list(CTAG_MERCENARY)
total_positions = 2 //strong gun so limited

cmode_music = 'sound/music/cmode/combat_grenzelhoft.ogg'

/datum/outfit/mercenary/grenzelhoftgun
name = "Grenzelhoft Arkebusier (Mercenary)"
neck = /obj/item/clothing/neck/chaincoif
pants = /obj/item/clothing/pants/grenzelpants
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
belt = /obj/item/storage/belt/leather/mercenary
shirt = /obj/item/clothing/shirt/grenzelhoft
backl = /obj/item/storage/backpack/satchel/musketeer
backr = /obj/item/gun/ballistic/powder/musket
beltl = /obj/item/weapon/sword/sabre/dec
beltr = /obj/item/ammo_holder/bullet/bullets
head = /obj/item/clothing/head/helmet/skullcap/grenzelhoft
armor = /obj/item/clothing/armor/cuirass/grenzelhoft //bad stats so they cna keep the strong armor

/datum/outfit/mercenary/grenzelhoftgun/pre_equip(mob/living/carbon/human/H)
. = ..()
if(H.gender == FEMALE)
H.underwear = "Femleotard"
H.underwear_color = CLOTHING_SOOT_BLACK
H.update_body()

/datum/job/advclass/mercenary/grenzelhoftgun/after_spawn(mob/living/carbon/human/H)
. = ..()
H.merctype = 2
if(H.dna?.species.id == SPEC_ID_HUMEN)
H.dna.species.native_language = "Old Psydonic"
H.dna.species.accent_language = H.dna.species.get_accent(H.dna.species.native_language)
70 changes: 70 additions & 0 deletions code/modules/jobs/job_types/other/merc_classes/grenzelhofthalb.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/datum/attribute_holder/sheet/job/grenzelhofthalb
raw_attribute_list = list(
STAT_ENDURANCE = 1, //they want to stay in the fight for longer
STAT_STRENGTH = 2,
STAT_PERCEPTION = 1, //direct pokes
/datum/attribute/skill/misc/swimming = 20,
/datum/attribute/skill/misc/climbing = 30,
/datum/attribute/skill/misc/sneaking = 30,
/datum/attribute/skill/combat/wrestling = 20,
/datum/attribute/skill/misc/athletics = 30,
/datum/attribute/skill/combat/unarmed = 20,
/datum/attribute/skill/combat/polearms = 30,
/datum/attribute/skill/combat/swords = 25, // their secondary weapon, could afford more training then the gun user
/datum/attribute/skill/misc/reading = 10,
/datum/attribute/skill/craft/cooking = 10,
)
/datum/job/advclass/mercenary/grenzelhofthalb
title = "Grenzelhoft Hellebardiere"
tutorial = "A Grenzelhoft Halberdier, specializing in the usage of polearms. They make up the majority of the Grenzelhoft mercenary guild, and are known for their reliability."
allowed_races = list(SPEC_ID_HUMEN, SPEC_ID_DWARF, SPEC_ID_AASIMAR)
outfit = /datum/outfit/mercenary/grenzelhofthalb

attribute_sheet = /datum/attribute_holder/sheet/job/grenzelhofthalb

traits = list(TRAIT_MEDIUMARMOR)
languages = list(/datum/language/newpsydonic)
category_tags = list(CTAG_MERCENARY)

cmode_music = 'sound/music/cmode/combat_grenzelhoft.ogg'

/datum/outfit/mercenary/grenzelhofthalb
name = "Grenzelhoft Hellebardiere (Mercenary)"
neck = /obj/item/clothing/neck/chaincoif
pants = /obj/item/clothing/pants/grenzelpants
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
belt = /obj/item/storage/belt/leather/mercenary
shirt = /obj/item/clothing/shirt/grenzelhoft
beltr = /obj/item/weapon/sword/short
backl = /obj/item/storage/backpack/satchel
backr = /obj/item/weapon/polearm/halberd
backpack_contents = list(
/obj/item/storage/belt/pouch/coins/poor = 1,
/obj/item/weapon/knife/villager = 1, //utility knife!
)
/datum/outfit/mercenary/grenzelhoft/pre_equip(mob/living/carbon/human/H)
. = ..()
if(H.gender == FEMALE)
H.underwear = "Femleotard"
H.underwear_color = CLOTHING_SOOT_BLACK
H.update_body()

/datum/job/advclass/mercenary/grenzelhofthalb/after_spawn(mob/living/carbon/human/H)
. = ..()
H.merctype = 2
if(H.dna?.species.id == SPEC_ID_HUMEN)
H.dna.species.native_language = "Old Psydonic"
H.dna.species.accent_language = H.dna.species.get_accent(H.dna.species.native_language)

/datum/job/advclass/mercenary/grenzelhofthalb/on_roundstart(mob/living/carbon/human/spawned, client/player_client)
. = ..()
var/static/list/armor = list("Grenzelhoft Cuirass & Grenzelhoft Plume Hat", "Steel Cuirass + Sallet")
var/armor_choice = tgui_input_list(player_client,"CHOOSE YOUR MAILLE", "GO EARN SOME COIN.", armor)
switch(armor_choice)
if("Grenzelhoft Cuirass & Grenzelhoft Plume Hat")
spawned.equip_to_slot_or_del(new /obj/item/clothing/armor/cuirass/grenzelhoft, ITEM_SLOT_ARMOR, TRUE)
spawned.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/skullcap/grenzelhoft, ITEM_SLOT_HEAD, TRUE)
if("Steel Cuirass + Sallet")
spawned.equip_to_slot_or_del(new /obj/item/clothing/armor/cuirass, ITEM_SLOT_ARMOR, TRUE)
spawned.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/sallet, ITEM_SLOT_HEAD, TRUE)
61 changes: 61 additions & 0 deletions code/modules/jobs/job_types/other/merc_classes/grenzelhoftzwei.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/datum/attribute_holder/sheet/job/grenzelhoftzwei
raw_attribute_list = list(
STAT_CONSTITUTION = 2,
STAT_STRENGTH = 2,
/datum/attribute/skill/misc/swimming = 20,
/datum/attribute/skill/misc/climbing = 30,
/datum/attribute/skill/misc/sneaking = 30,
/datum/attribute/skill/combat/wrestling = 20,
/datum/attribute/skill/misc/athletics = 35, // slight bonus, they use big sword
/datum/attribute/skill/combat/unarmed = 20,
/datum/attribute/skill/combat/swords = 30,
/datum/attribute/skill/combat/whipsflails = 10,
/datum/attribute/skill/combat/shields = 10,
/datum/attribute/skill/misc/reading = 10,
/datum/attribute/skill/misc/medicine = 10,
)
/datum/job/advclass/mercenary/grenzelhoftzwei
title = "Grenzelhoft Doppelsöldner"
tutorial = "A Grenzelhoft Doppelsöldner, specializing in using Zweihanders to break through enemy pike formations. This expertise generally demands high pay, which has given them the name of 'double-pay men'."
allowed_races = list(SPEC_ID_HUMEN, SPEC_ID_DWARF, SPEC_ID_AASIMAR)
outfit = /datum/outfit/mercenary/grenzelhoftzwei

attribute_sheet = /datum/attribute_holder/sheet/job/grenzelhoftzwei

traits = list(TRAIT_MEDIUMARMOR, TRAIT_STEELHEARTED) // these guys are in the frontline. they see bloody shit and are used to it.
languages = list(/datum/language/newpsydonic)
category_tags = list(CTAG_MERCENARY)

cmode_music = 'sound/music/cmode/combat_grenzelhoft.ogg'

/datum/outfit/mercenary/grenzelhoftzwei
name = "Grenzelhoft Doppelsoldner (Mercenary)"
neck = /obj/item/clothing/neck/gorget //no double padding for your helmet, its a weak spot!
pants = /obj/item/clothing/pants/grenzelpants
shoes = /obj/item/clothing/shoes/rare/grenzelhoft
gloves = /obj/item/clothing/gloves/angle/grenzel
belt = /obj/item/storage/belt/leather/mercenary
shirt = /obj/item/clothing/shirt/grenzelhoft
wrists = /obj/item/clothing/wrists/bracers/iron //bonus arm protection so you dont get your arms chopped off!
backl = /obj/item/storage/backpack/satchel
backr = /obj/item/weapon/sword/long/greatsword/zwei
head = /obj/item/clothing/head/helmet/skullcap/grenzelhoft
armor = /obj/item/clothing/armor/cuirass/grenzelhoft
backpack_contents = list(
/obj/item/storage/belt/pouch/coins/poor = 1,
/obj/item/weapon/knife/villager = 1, //utility knife!
/obj/item/weapon/mace/cudgel //all of this spawns in their bag because of stuff that spawns things on your hip
)
/datum/outfit/mercenary/grenzelhoftzwei/pre_equip(mob/living/carbon/human/H)
. = ..()
if(H.gender == FEMALE)
H.underwear = "Femleotard"
H.underwear_color = CLOTHING_SOOT_BLACK
H.update_body()

/datum/job/advclass/mercenary/grenzelhoftzwei/after_spawn(mob/living/carbon/human/H)
. = ..()
H.merctype = 2
if(H.dna?.species.id == SPEC_ID_HUMEN)
H.dna.species.native_language = "Old Psydonic"
H.dna.species.accent_language = H.dna.species.get_accent(H.dna.species.native_language)
4 changes: 3 additions & 1 deletion vanderlin.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3175,7 +3175,9 @@
#include "code\modules\jobs\job_types\other\merc_classes\expegasusknight.dm"
#include "code\modules\jobs\job_types\other\merc_classes\gallowglass.dm"
#include "code\modules\jobs\job_types\other\merc_classes\gloryhound.dm"
#include "code\modules\jobs\job_types\other\merc_classes\grenzelhoft.dm"
#include "code\modules\jobs\job_types\other\merc_classes\grenzelhoftgun.dm"
#include "code\modules\jobs\job_types\other\merc_classes\grenzelhofthalb.dm"
#include "code\modules\jobs\job_types\other\merc_classes\grenzelhoftzwei.dm"
#include "code\modules\jobs\job_types\other\merc_classes\hollowdragoon.dm"
#include "code\modules\jobs\job_types\other\merc_classes\ironmaiden.dm"
#include "code\modules\jobs\job_types\other\merc_classes\kern.dm"
Expand Down
Loading