[MIRROR] Vore death privacy pref (#11392)

Co-authored-by: SatinIsle <98125273+SatinIsle@users.noreply.github.com>
Co-authored-by: ShadowLarkens <shadowlarkens@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-08-11 05:29:43 -07:00
committed by GitHub
parent 1cf9d333e9
commit 8f16d351a2
9 changed files with 42 additions and 7 deletions

View File

@@ -15,6 +15,7 @@
target.digest_pain = source.digest_pain; \
target.noisy_full = source.noisy_full; \
target.eating_privacy_global = source.eating_privacy_global; \
target.vore_death_privacy = source.vore_death_privacy; \
\
target.can_be_drop_prey = source.can_be_drop_prey; \
target.can_be_drop_pred = source.can_be_drop_pred; \

View File

@@ -88,9 +88,10 @@
var/area/A = get_area(src)
if(!(A?.flag_check(AREA_BLOCK_SUIT_SENSORS)) && isbelly(loc))
// SSgame_master.adjust_danger(gibbed ? 40 : 20) // We don't use SSgame_master yet.
for(var/mob/observer/dead/O in GLOB.mob_list)
if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay))
to_chat(O, span_deadsay(span_bold("[src]") + " has died in " + span_bold("[get_area(src)]") + ". [ghost_follow_link(src, O)] "))
if(!isbelly(loc) || !vore_death_privacy)
for(var/mob/observer/dead/O in GLOB.mob_list)
if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay))
to_chat(O, span_deadsay(span_bold("[src]") + " has died in " + span_bold("[get_area(src)]") + ". [ghost_follow_link(src, O)] "))
if(!gibbed && !isbelly(loc))
playsound(src, pick(get_species_sound(get_gendered_sound(src))["death"]), src.species.death_volume, 1, 20, volume_channel = VOLUME_CHANNEL_DEATH_SOUNDS)

View File

@@ -26,6 +26,7 @@
var/show_vore_fx = TRUE // Show belly fullscreens
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/eating_privacy_global = FALSE // Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
var/vore_death_privacy = FALSE // Chooses whether to announce prey death when digested to ghosts.
var/allow_mimicry = TRUE // Allows mimicking their character
var/allow_mind_transfer = FALSE //Allows ones mind to be taken over or swapped
var/nutrition_message_visible = TRUE

View File

@@ -42,6 +42,7 @@
"consume_liquid_belly" = owner.consume_liquid_belly,
"digest_pain" = owner.digest_pain,
"eating_privacy_global" = owner.eating_privacy_global,
"vore_death_privacy" = owner.vore_death_privacy,
"allow_mimicry" = owner.allow_mimicry,
//Soulcatcher
"soulcatcher_allow_capture" = owner.soulcatcher_pref_flags & SOULCATCHER_ALLOW_CAPTURE,

View File

@@ -47,6 +47,7 @@
var/permit_healbelly = TRUE
var/noisy = FALSE
var/eating_privacy_global = FALSE //Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
var/vore_death_privacy = FALSE //Makes it so that vore deaths don't get advertised to ghosts
var/allow_mimicry = TRUE
// These are 'modifier' prefs, do nothing on their own but pair with drop_prey/drop_pred settings.
@@ -216,6 +217,7 @@
weight_message_visible = json_from_file["weight_message_visible"]
weight_messages = json_from_file["weight_messages"]
eating_privacy_global = json_from_file["eating_privacy_global"]
vore_death_privacy = json_from_file["vore_death_privacy"]
allow_mimicry = json_from_file["allow_mimicry"]
vore_sprite_color = json_from_file["vore_sprite_color"]
allow_mind_transfer = json_from_file["allow_mind_transfer"]

View File

@@ -407,6 +407,12 @@
host.eating_privacy_global = host.eating_privacy_global
unsaved_changes = TRUE
return TRUE
if("toggle_death_privacy")
host.vore_death_privacy = !host.vore_death_privacy
if(host.client.prefs_vr)
host.vore_death_privacy = host.vore_death_privacy
unsaved_changes = TRUE
return TRUE
if("toggle_mimicry")
host.allow_mimicry = !host.allow_mimicry
if(host.client.prefs_vr)

View File

@@ -44,6 +44,7 @@ export const VoreUserPreferences = (props: {
allow_spontaneous_tf,
allow_mind_transfer,
eating_privacy_global,
vore_death_privacy,
allow_mimicry,
strip_mechanics_active,
autotransferable,
@@ -493,6 +494,19 @@ export const VoreUserPreferences = (props: {
disabled: 'Global Vore Privacy: Loud',
},
},
vore_death_privacy: {
action: 'toggle_death_privacy',
test: vore_death_privacy,
tooltip: {
main: 'Sets whether your vore deaths are announced to ghosts',
enable: ' Click here to prevent announcing vore deaths',
disable: ' Click here to allow announcing vore deaths',
},
content: {
enabled: 'Vore Death Privacy: Unannonced',
disabled: 'Vore Death Privacy: Announced',
},
},
allow_mimicry: {
action: 'toggle_mimicry',
test: allow_mimicry,

View File

@@ -93,23 +93,29 @@ export const VoreUserPreferencesMechanical = (props: {
</Stack.Item>
<Stack.Item basis="32%">
<VoreUserPreferenceItem
spec={preferences.spontaneous_tf}
spec={preferences.vore_death_privacy}
tooltipPosition="right"
/>
</Stack.Item>
<Stack.Item basis="32%" grow>
<VoreUserPreferenceItem
spec={preferences.mind_transfer}
spec={preferences.spontaneous_tf}
tooltipPosition="top"
/>
</Stack.Item>
<Stack.Item basis="32%">
<VoreUserPreferenceItem
spec={preferences.allow_mimicry}
spec={preferences.mind_transfer}
tooltipPosition="left"
/>
</Stack.Item>
<Stack.Item basis="34%">
<Stack.Item basis="32%">
<VoreUserPreferenceItem
spec={preferences.allow_mimicry}
tooltipPosition="right"
/>
</Stack.Item>
<Stack.Item basis="32%">
<VoreUserPreferenceItem
spec={preferences.toggle_consume_liquid_belly}
tooltipPosition="top"

View File

@@ -126,6 +126,7 @@ export type bellyOptionData = {
selective_preference: string;
save_digest_mode: BooleanLike;
eating_privacy_local: string;
vore_death_privacy: string;
vorespawn_blacklist: BooleanLike;
vorespawn_whitelist: string[];
vorespawn_absorbed: number;
@@ -328,6 +329,7 @@ export type prefData = {
food_vore: BooleanLike;
digest_pain: BooleanLike;
eating_privacy_global: BooleanLike;
vore_death_privacy: BooleanLike;
allow_mimicry: BooleanLike;
soulcatcher_allow_capture: BooleanLike;
soulcatcher_allow_transfer: BooleanLike;
@@ -432,6 +434,7 @@ export type localPrefs = {
mind_transfer: preferenceData;
strippref: preferenceData;
eating_privacy_global: preferenceData;
vore_death_privacy: preferenceData;
allow_mimicry: preferenceData;
autotransferable: preferenceData;
liquid_receive: preferenceData;