Fixes worn item liquid digestion and adds setting for item digestion logs (#7095)

This commit is contained in:
Verkister
2023-10-26 02:30:06 +03:00
committed by GitHub
parent 2a95af52df
commit 4dc689676c
9 changed files with 38 additions and 7 deletions

View File

@@ -436,7 +436,7 @@
M.take_organ_damage(0, removed * power * 0.1) // Balance. The damage is instant, so it's weaker. 10 units -> 5 damage, double for pacid. 120 units beaker could deal 60, but a) it's burn, which is not as dangerous, b) it's a one-use weapon, c) missing with it will splash it over the ground and d) clothes give some protection, so not everything will hit
/datum/reagent/acid/touch_obj(var/obj/O, var/amount) //CHOMPEdit Start
if(isbelly(O.loc))
if(isbelly(O.loc) || isbelly(O.loc.loc))
var/obj/belly/B = O.loc
if(B.item_digest_mode == IM_HOLD)
return

View File

@@ -131,6 +131,7 @@
var/recycling = FALSE // Recycling mode.
var/entrance_logs = TRUE // Belly-specific entry message toggle.
var/noise_freq = 42500 // Tasty sound prefs.
var/item_digest_logs = FALSE // Chat messages for digested items.
/obj/belly/proc/GetFullnessFromBelly()
if(!affects_vore_sprites)

View File

@@ -331,7 +331,8 @@
"recycling",
"is_feedable",
"entrance_logs",
"noise_freq", //CHOMP end of variables from CHOMP
"noise_freq",
"item_digest_logs", //CHOMP end of variables from CHOMP
"egg_type",
"save_digest_mode",
"eating_privacy_local",
@@ -1932,7 +1933,8 @@
dupe.recycling = recycling
dupe.is_feedable = is_feedable
dupe.entrance_logs = entrance_logs
dupe.noise_freq = noise_freq //CHOMP end of variables from CHOMP
dupe.noise_freq = noise_freq
dupe.item_digest_logs = item_digest_logs //CHOMP end of variables from CHOMP
dupe.belly_fullscreen = belly_fullscreen
dupe.disable_hud = disable_hud

View File

@@ -122,6 +122,8 @@
reagents.trans_to_holder(H.ingested, (reagents.total_volume), B.nutrition_percent / 100, 0)
else if(isliving(B.owner))
B.owner.nutrition += 15 * w_class * B.nutrition_percent / 100
if(B.item_digest_logs)
to_chat(B.owner,"<span class='notice'>[src] was digested inside your [lowertext(B.name)].</span>")
qdel(src)//CHOMPEdit End
if(g_damage > w_class)
return w_class

View File

@@ -288,7 +288,8 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
"tail_colouration" = selected.tail_colouration,
"tail_extra_overlay" = selected.tail_extra_overlay,
"tail_extra_overlay2" = selected.tail_extra_overlay2,
"noise_freq" = selected.noise_freq
"noise_freq" = selected.noise_freq,
"item_digest_logs" = selected.item_digest_logs,
//"marking_to_add" = selected.marking_to_add
//CHOMPEdit end
)
@@ -310,6 +311,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
selected_list["egg_type"] = selected.egg_type
selected_list["egg_name"] = selected.egg_name //CHOMPAdd
selected_list["recycling"] = selected.recycling //CHOMPAdd
selected_list["item_digest_logs"] = selected.item_digest_logs //CHOMPAdd
selected_list["contaminates"] = selected.contaminates
selected_list["contaminate_flavor"] = null
selected_list["contaminate_color"] = null
@@ -917,7 +919,14 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
if(new_entrance_logs == 0)
new_belly.entrance_logs = FALSE
if(new_entrance_logs == 1)
new_belly.entrance_logs = TRUE //CHOMPAdd End
new_belly.entrance_logs = TRUE
if(isnum(belly_data["item_digest_logs"]))
var/new_item_digest_logs = belly_data["item_digest_logs"]
if(new_item_digest_logs == 0)
new_belly.item_digest_logs = FALSE
if(new_item_digest_logs == 1)
new_belly.item_digest_logs = TRUE //CHOMPAdd End
if(istext(belly_data["selective_preference"]))
var/new_selective_preference = belly_data["selective_preference"]
@@ -2633,6 +2642,9 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
. = TRUE
if("b_entrance_logs")
host.vore_selected.entrance_logs = !host.vore_selected.entrance_logs
. = TRUE
if("b_item_digest_logs")
host.vore_selected.item_digest_logs = !host.vore_selected.item_digest_logs
. = TRUE //CHOMPAdd End
if("b_bulge_size")
var/new_bulge = tgui_input_number(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.", max_value = 200, min_value = 0)

View File

@@ -178,6 +178,7 @@
belly_data["selective_preference"] = B.selective_preference
belly_data["recycling"] = B.recycling
belly_data["entrance_logs"] = B.entrance_logs
belly_data["item_digest_logs"] = B.item_digest_logs
// Sounds
belly_data["is_wet"] = B.is_wet

View File

@@ -49,7 +49,7 @@ const digestModeToPreyMode = {
* show_liq, liq_interacts, liq_reagent_gen, liq_reagent_type, liq_reagent_name,
* liq_reagent_transfer_verb, liq_reagent_nutri_rate, liq_reagent_capacity, liq_sloshing, liq_reagent_addons,
* show_liq_fullness, liq_messages, liq_msg_toggle1, liq_msg_toggle2, liq_msg_toggle3, liq_msg_toggle4,
* liq_msg_toggle5, liq_msg1, liq_msg2, liq_msg3, liq_msg4, liq_msg5, sound_volume, egg_name, recycling, entrance_logs, noise_freq,
* liq_msg_toggle5, liq_msg1, liq_msg2, liq_msg3, liq_msg4, liq_msg5, sound_volume, egg_name, recycling, entrance_logs, item_digest_logs, noise_freq,
* custom_reagentcolor, custom_reagentalpha, liquid_overlay, max_liquid_level, mush_overlay, mush_color, mush_alpha, max_mush, min_mush, item_mush_val,
* metabolism_overlay, metabolism_mush_ratio, max_ingested, custom_ingested_color, custom_ingested_alpha
*
@@ -690,6 +690,7 @@ const VoreSelectedBellyOptions = (props, context) => {
egg_name,
recycling,
entrance_logs,
item_digest_logs,
selective_preference,
save_digest_mode,
eating_privacy_local,
@@ -903,6 +904,16 @@ const VoreSelectedBellyOptions = (props, context) => {
content={entrance_logs ? 'Enabled' : 'Disabled'}
/>
</LabeledList.Item>
<LabeledList.Item label="Item Digestion Logs">
<Button
onClick={() =>
act('set_attribute', { attribute: 'b_item_digest_logs' })
}
icon={item_digest_logs ? 'toggle-on' : 'toggle-off'}
selected={item_digest_logs}
content={item_digest_logs ? 'Enabled' : 'Disabled'}
/>
</LabeledList.Item>
<LabeledList.Item label="Selective Mode Preference">
<Button
onClick={() =>

View File

@@ -168,6 +168,7 @@ type Belly = {
selective_preference: string;
recycling: BooleanLike;
entrance_logs: BooleanLike;
item_digest_logs: BooleanLike;
// Messages
struggle_messages_outside: string[];
@@ -337,6 +338,7 @@ const generateBellyString = (belly: Belly, index: number) => {
selective_preference,
recycling,
entrance_logs,
item_digest_logs,
// Messages
struggle_messages_outside,

File diff suppressed because one or more lines are too long