From f0772ad41ba78c1c9b1f236119f4b1022a36b711 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 26 May 2026 17:53:43 -0500 Subject: [PATCH 1/5] like this --- code/modules/client/preferences.dm | 1 + .../code/modules/client/preferences/_preference.dm | 3 +++ .../vampire_the_masquerade/code/vampire_clan/clan_pref.dm | 7 +++++++ 3 files changed, 11 insertions(+) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1a65a4e500a5..789244a5bd92 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -260,6 +260,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) for(var/datum/preference_middleware/preference_middleware as anything in middleware) preference_middleware.post_set_preference(ui.user, requested_preference_key, value) + requested_preference.post_set_preference(ui.user, value) // DARKPACK EDIT ADD return TRUE if ("set_color_preference") var/requested_preference_key = params["preference"] diff --git a/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm b/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm index c3a008fbc7e3..8a6ac5d903f0 100644 --- a/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm +++ b/modular_darkpack/master_files/code/modules/client/preferences/_preference.dm @@ -2,3 +2,6 @@ /// If set to TRUE, this preference will not be applied unless the character has the preference's relevant inherent trait var/must_have_relevant_trait = FALSE +/datum/preference/proc/post_set_preference(mob/user, value) + SHOULD_CALL_PARENT(FALSE) + return diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm index c2545c4ff6c3..6433f41315f7 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm @@ -13,3 +13,10 @@ /datum/preference/choiced/subsplat/vampire_clan/apply_to_human(mob/living/carbon/human/target, value) var/joining_round = !isdummy(target) target.set_clan(value, joining_round) + +/datum/preference/choiced/subsplat/vampire_clan/post_set_preference(mob/user, value) + var/datum/subsplat/vampire_clan/clan = get_vampire_clan(value) + if(!clan) + return + to_chat(user, span_notice("[uppertext(clan.name)]
[clan.desc]")) + // to_chat(user, span_notice("
Roleplay levels, or, the difficulty to play and portray a character from that clan, are as follows: Beginner Friendly, Intermediate, Advanced")) From 0255fcc8c38947c685a0d267a967a35417244179 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 26 May 2026 17:59:54 -0500 Subject: [PATCH 2/5] yeagh --- modular_darkpack/modules/splats/code/subsplat/_subsplat.dm | 2 ++ .../vampire_the_masquerade/code/vampire_clan/clan_pref.dm | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm index dd68b8e11346..5ca97b5c5d8d 100644 --- a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm +++ b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm @@ -16,6 +16,8 @@ var/name /// Description of what the splat is and what it does var/desc + /// If set, the roleplay level that is displayed in prefrences as a guide to players. + var/roleplay_level /// ID for trait sources and whatnot var/id diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm index 6433f41315f7..b8b01a644d59 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm @@ -18,5 +18,7 @@ var/datum/subsplat/vampire_clan/clan = get_vampire_clan(value) if(!clan) return - to_chat(user, span_notice("[uppertext(clan.name)]
[clan.desc]")) - // to_chat(user, span_notice("
Roleplay levels, or, the difficulty to play and portray a character from that clan, are as follows: Beginner Friendly, Intermediate, Advanced")) + if(clan.desc) + to_chat(user, span_notice("[uppertext(clan.name)]
[clan.desc]")) + if(clan.roleplay_level) + to_chat(user, span_notice("
ROLEPLAY LEVEL: [clan.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that clan, are as follows: Beginner Friendly, Intermediate, Advanced.")) From f454c53c7cf31a25699edd5f8711f967b421837b Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 26 May 2026 18:06:12 -0500 Subject: [PATCH 3/5] muh wolp --- .../werewolf_the_apocalypse/code/preferences/auspice.dm | 9 +++++++++ .../werewolf_the_apocalypse/code/preferences/breed.dm | 9 +++++++++ .../werewolf_the_apocalypse/code/preferences/tribe.dm | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm index e4ae0065bda4..a82bea2b2ef0 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm @@ -14,3 +14,12 @@ /datum/preference/choiced/subsplat/garou_auspice/apply_to_human(mob/living/carbon/human/target, value) var/joining_round = !isdummy(target) target.set_auspice(value, joining_round) + +/datum/preference/choiced/subsplat/garou_auspice/post_set_preference(mob/user, value) + var/datum/subsplat/werewolf/auspice/auspice = get_fera_auspice(value) + if(!auspice) + return + if(auspice.desc) + to_chat(user, span_notice("[uppertext(auspice.name)]
[auspice.desc]")) + if(auspice.roleplay_level) + to_chat(user, span_notice("
ROLEPLAY LEVEL: [auspice.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that auspice, are as follows: Beginner Friendly, Intermediate, Advanced.")) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm index f914e87c17e8..6b3811aeda2a 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm @@ -34,3 +34,12 @@ /datum/preference/choiced/subsplat/garou_breed/apply_to_human(mob/living/carbon/human/target, value) var/joining_round = !isdummy(target) target.set_breed_form(value, joining_round) + +/datum/preference/choiced/subsplat/garou_breed/post_set_preference(mob/user, value) + var/datum/subsplat/werewolf/breed_form/breed = get_fera_breed_form(value) + if(!breed) + return + if(breed.desc) + to_chat(user, span_notice("[uppertext(breed.name)]
[breed.desc]")) + if(breed.roleplay_level) + to_chat(user, span_notice("
ROLEPLAY LEVEL: [breed.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that breed, are as follows: Beginner Friendly, Intermediate, Advanced.")) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm index 289290610c0d..40afecd7464d 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm @@ -14,3 +14,12 @@ /datum/preference/choiced/subsplat/garou_tribe/apply_to_human(mob/living/carbon/human/target, value) var/joining_round = !isdummy(target) target.set_fera_tribe(value, joining_round) + +/datum/preference/choiced/subsplat/garou_tribe/post_set_preference(mob/user, value) + var/datum/subsplat/werewolf/tribe/tribe = get_fera_tribe(value) + if(!tribe) + return + if(tribe.desc) + to_chat(user, span_notice("[uppertext(tribe.name)]
[tribe.desc]")) + if(tribe.roleplay_level) + to_chat(user, span_notice("
ROLEPLAY LEVEL: [tribe.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that tribe, are as follows: Beginner Friendly, Intermediate, Advanced.")) From 274558d6eaa629eb7a70b5d2c6293299cddf29e1 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Wed, 27 May 2026 11:02:58 -0500 Subject: [PATCH 4/5] less copy pasta --- modular_darkpack/modules/splats/code/subsplat/_subsplat.dm | 7 +++++++ .../vampire_the_masquerade/code/vampire_clan/clan_pref.dm | 7 +------ .../werewolf_the_apocalypse/code/preferences/auspice.dm | 7 +------ .../werewolf_the_apocalypse/code/preferences/breed.dm | 7 +------ .../werewolf_the_apocalypse/code/preferences/tribe.dm | 7 +------ 5 files changed, 11 insertions(+), 24 deletions(-) diff --git a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm index 5ca97b5c5d8d..09c42a3cd9c1 100644 --- a/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm +++ b/modular_darkpack/modules/splats/code/subsplat/_subsplat.dm @@ -66,3 +66,10 @@ joining.put_in_r_hand(new subsplat_keys(joining)) UnregisterSignal(joining, COMSIG_MOB_LOGIN) + +/// Displays description and roleplay level of the subsplat. +/datum/subsplat/proc/show_lore(mob/user) + if(desc) + to_chat(user, span_notice("[uppertext(name)]
[desc]")) + if(roleplay_level) + to_chat(user, span_notice("
ROLEPLAY LEVEL: [roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that auspice, are as follows: Beginner Friendly, Intermediate, Advanced.")) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm index b8b01a644d59..cfb3c6c1821f 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clan_pref.dm @@ -16,9 +16,4 @@ /datum/preference/choiced/subsplat/vampire_clan/post_set_preference(mob/user, value) var/datum/subsplat/vampire_clan/clan = get_vampire_clan(value) - if(!clan) - return - if(clan.desc) - to_chat(user, span_notice("[uppertext(clan.name)]
[clan.desc]")) - if(clan.roleplay_level) - to_chat(user, span_notice("
ROLEPLAY LEVEL: [clan.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that clan, are as follows: Beginner Friendly, Intermediate, Advanced.")) + clan?.show_lore(user) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm index a82bea2b2ef0..c82e16ae7749 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/auspice.dm @@ -17,9 +17,4 @@ /datum/preference/choiced/subsplat/garou_auspice/post_set_preference(mob/user, value) var/datum/subsplat/werewolf/auspice/auspice = get_fera_auspice(value) - if(!auspice) - return - if(auspice.desc) - to_chat(user, span_notice("[uppertext(auspice.name)]
[auspice.desc]")) - if(auspice.roleplay_level) - to_chat(user, span_notice("
ROLEPLAY LEVEL: [auspice.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that auspice, are as follows: Beginner Friendly, Intermediate, Advanced.")) + auspice?.show_lore(user) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm index 6b3811aeda2a..dce63e0aaa61 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/breed.dm @@ -37,9 +37,4 @@ /datum/preference/choiced/subsplat/garou_breed/post_set_preference(mob/user, value) var/datum/subsplat/werewolf/breed_form/breed = get_fera_breed_form(value) - if(!breed) - return - if(breed.desc) - to_chat(user, span_notice("[uppertext(breed.name)]
[breed.desc]")) - if(breed.roleplay_level) - to_chat(user, span_notice("
ROLEPLAY LEVEL: [breed.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that breed, are as follows: Beginner Friendly, Intermediate, Advanced.")) + breed?.show_lore(user) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm index 40afecd7464d..54720534d5ac 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/preferences/tribe.dm @@ -17,9 +17,4 @@ /datum/preference/choiced/subsplat/garou_tribe/post_set_preference(mob/user, value) var/datum/subsplat/werewolf/tribe/tribe = get_fera_tribe(value) - if(!tribe) - return - if(tribe.desc) - to_chat(user, span_notice("[uppertext(tribe.name)]
[tribe.desc]")) - if(tribe.roleplay_level) - to_chat(user, span_notice("
ROLEPLAY LEVEL: [tribe.roleplay_level]
Roleplay levels, or, the difficulty to play and portray a character from that tribe, are as follows: Beginner Friendly, Intermediate, Advanced.")) + tribe?.show_lore(user) From c9ec4a095f2ae8e9d6e91d875af1ed624ba7dc81 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Thu, 28 May 2026 18:37:03 -0500 Subject: [PATCH 5/5] yeagh --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 789244a5bd92..e78aca23a36a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -260,7 +260,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) for(var/datum/preference_middleware/preference_middleware as anything in middleware) preference_middleware.post_set_preference(ui.user, requested_preference_key, value) - requested_preference.post_set_preference(ui.user, value) // DARKPACK EDIT ADD + requested_preference.post_set_preference(ui.user, value) // DARKPACK EDIT ADD - SPLATS - (lore primers) return TRUE if ("set_color_preference") var/requested_preference_key = params["preference"]