From 0ab502f5b309a173fbe9ef0188a1d798591cd53b Mon Sep 17 00:00:00 2001 From: lm40 Date: Mon, 30 May 2022 19:23:15 -0400 Subject: [PATCH 1/2] (badly) implements saved belly modes --- code/modules/vore/eating/belly_obj_vr.dm | 118 +++++++++++---------- code/modules/vore/eating/vorepanel_vr.dm | 4 + tgui/packages/tgui/interfaces/VorePanel.js | 9 ++ tgui/public/tgui.bundle.js | 2 +- 4 files changed, 77 insertions(+), 56 deletions(-) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 554dac57f16..4054caa54e6 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -30,6 +30,7 @@ var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles. var/transferchance = 0 // % Chance of prey being trasnsfered, goes from 0-100% var/transferchance_secondary = 0 // % Chance of prey being transfered to transferchance_secondary, also goes 0-100% + var/save_digest_mode = TRUE // Whether this belly's digest mode persists across rounds var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone. var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine. var/display_absorbed_examine = FALSE // Do we display absorption examine messages for this belly at all? @@ -157,61 +158,67 @@ //For serialization, keep this updated, required for bellies to save correctly. /obj/belly/vars_to_save() - return ..() + list( - "name", - "desc", - "absorbed_desc", - "vore_sound", - "vore_verb", - "human_prey_swallow_time", - "nonhuman_prey_swallow_time", - "emote_time", - "nutrition_percent", - "digest_brute", - "digest_burn", - "digest_oxy", - "immutable", - "can_taste", - "escapable", - "escapetime", - "digestchance", - "absorbchance", - "escapechance", - "transferchance", - "transferchance_secondary", - "transferlocation", - "transferlocation_secondary", - "bulge_size", - "display_absorbed_examine", - "shrink_grow_size", - "struggle_messages_outside", - "struggle_messages_inside", - "absorbed_struggle_messages_outside", - "absorbed_struggle_messages_inside", - "digest_messages_owner", - "digest_messages_prey", - "absorb_messages_owner", - "absorb_messages_prey", - "unabsorb_messages_owner", - "unabsorb_messages_prey", - "examine_messages", - "examine_messages_absorbed", - "emote_lists", - "emote_time", - "emote_active", - "mode_flags", - "item_digest_mode", - "contaminates", - "contamination_flavor", - "contamination_color", - "release_sound", - "fancy_vore", - "is_wet", - "wet_loop", - "belly_fullscreen", - "disable_hud", - "egg_type" - ) + var/list/saving = list( + "name", + "desc", + "absorbed_desc", + "vore_sound", + "vore_verb", + "human_prey_swallow_time", + "nonhuman_prey_swallow_time", + "emote_time", + "nutrition_percent", + "digest_brute", + "digest_burn", + "digest_oxy", + "immutable", + "can_taste", + "escapable", + "escapetime", + "digestchance", + "absorbchance", + "escapechance", + "transferchance", + "transferchance_secondary", + "transferlocation", + "transferlocation_secondary", + "bulge_size", + "display_absorbed_examine", + "shrink_grow_size", + "struggle_messages_outside", + "struggle_messages_inside", + "absorbed_struggle_messages_outside", + "absorbed_struggle_messages_inside", + "digest_messages_owner", + "digest_messages_prey", + "absorb_messages_owner", + "absorb_messages_prey", + "unabsorb_messages_owner", + "unabsorb_messages_prey", + "examine_messages", + "examine_messages_absorbed", + "emote_lists", + "emote_time", + "emote_active", + "mode_flags", + "item_digest_mode", + "contaminates", + "contamination_flavor", + "contamination_color", + "release_sound", + "fancy_vore", + "is_wet", + "wet_loop", + "belly_fullscreen", + "disable_hud", + "egg_type", + "save_digest_mode" + ) + + if (save_digest_mode == 1) + return ..() + saving + list("digest_mode") + + return ..() + saving /obj/belly/Initialize() . = ..() @@ -1101,6 +1108,7 @@ dupe.egg_type = egg_type dupe.emote_time = emote_time dupe.emote_active = emote_active + dupe.save_digest_mode = save_digest_mode //// Object-holding variables //struggle_messages_outside - strings diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index a84bbd4526c..471d2fca036 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -176,6 +176,7 @@ "digest_burn" = selected.digest_burn, "digest_oxy" = selected.digest_oxy, "bulge_size" = selected.bulge_size, + "save_digest_mode" = selected.save_digest_mode, "display_absorbed_examine" = selected.display_absorbed_examine, "shrink_grow_size" = selected.shrink_grow_size, "emote_time" = selected.emote_time, @@ -1074,6 +1075,9 @@ if("b_disable_hud") host.vore_selected.disable_hud = !host.vore_selected.disable_hud . = TRUE + if("b_save_digest_mode") + host.vore_selected.save_digest_mode = !host.vore_selected.save_digest_mode + . = TRUE if("b_del") var/alert = tgui_alert(usr, "Are you sure you want to delete your [lowertext(host.vore_selected.name)]?","Confirmation",list("Cancel","Delete")) if(!(alert == "Delete")) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index ebb03d86b35..5a5efe0ab03 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -415,6 +415,7 @@ const VoreSelectedBellyOptions = (props, context) => { contaminate_flavor, contaminate_color, egg_type, + save_digest_mode, } = belly; return ( @@ -468,6 +469,14 @@ const VoreSelectedBellyOptions = (props, context) => { selected={display_absorbed_examine} content={display_absorbed_examine ? "True" : "False"} /> + + +