Initial work on adding vore sprites

This commit is contained in:
TheGreatKitsune
2022-05-07 13:10:11 -05:00
parent 347bf9e349
commit 64cdcdc4fb
15 changed files with 234 additions and 10 deletions
+5
View File
@@ -7,3 +7,8 @@
#define DM_FLAG_REAGENTSDIGEST 0x2
#define DM_FLAG_REAGENTSABSORB 0x4
#define DM_FLAG_REAGENTSDRAIN 0x8
//Vore Sprite Flags
#define DM_FLAG_VORESPRITE_BELLY 0x1
#define DM_FLAG_VORESPRITE_TAIL 0x2
#define DM_FLAG_VORESPRITE_MARKING 0x4
@@ -53,7 +53,11 @@
R.pixel_x = -16
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -85,6 +85,8 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -248,6 +248,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -360,6 +364,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -412,6 +420,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -499,6 +511,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -580,6 +596,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -737,6 +757,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -815,6 +839,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -876,6 +904,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -962,6 +994,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
..()
@@ -1037,6 +1073,10 @@
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
//CHOMPEdit - Add vore capacity
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
//CHOMPEdit End
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
@@ -97,9 +97,10 @@
vr_sprite_check()
..()
if(dogborg == TRUE && stat == CONSCIOUS)
update_fullness()
if(sleeper_g == TRUE)
add_overlay("[module_sprites[icontype]]-sleeper_g")
if(sleeper_r == TRUE)
if(sleeper_r == TRUE || (!sleeper_g && vore_fullness_ex["stomach"])) //CHOMPEdit - Also allow normal vore bellies to affect this sprite
add_overlay("[module_sprites[icontype]]-sleeper_r")
if(istype(module_active,/obj/item/weapon/gun/energy/laser/mounted))
add_overlay("laser")
@@ -107,6 +107,8 @@ What Borgs are available is sadly handled in the above file in the proc
R.old_x = -16
R.default_pixel_x = -16
R.dogborg = TRUE
R.vore_capacity = 1
R.vore_capacity_ex = list("stomach" = 1)
R.wideborg = TRUE
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
..()
@@ -12,7 +12,8 @@
var/vore_active = 0 // If vore behavior is enabled for this mob
var/vore_capacity = 1 // The capacity (in people) this person can hold
//CHOMPEdit - Vore_capacity is now defined on living
vore_capacity = 1 // The capacity (in people) this person can hold
var/vore_max_size = RESIZE_HUGE // The max size this mob will consider eating
var/vore_min_size = RESIZE_TINY // The min size this mob will consider eating
var/vore_bump_chance = 0 // Chance of trying to eat anyone that bumps into them, regardless of hostility
@@ -40,9 +41,11 @@
var/vore_default_contamination_flavor = "Generic" //Contamination descriptors
var/vore_default_contamination_color = "green" //Contamination color
var/vore_fullness = 0 // How "full" the belly is (controls icons)
var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
var/vore_eyes = FALSE // For mobs with fullness specific eye overlays.
//CHOMPEDIT start - Moved to living
//var/vore_fullness = 0 // How "full" the belly is (controls icons)
//var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
//var/vore_eyes = FALSE // For mobs with fullness specific eye overlays.
//CHOMPEDIT end.
var/life_disabled = 0 // For performance reasons
var/mount_offset_x = 5 // Horizontal riding offset.
@@ -67,6 +70,7 @@
return myid
// Update fullness based on size & quantity of belly contents
/* CHOMPEdit - moved to living
/mob/living/simple_mob/proc/update_fullness()
var/new_fullness = 0
for(var/obj/belly/B as anything in vore_organs)
@@ -75,6 +79,7 @@
new_fullness = new_fullness / size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey.
new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry.
vore_fullness = min(vore_capacity, new_fullness)
*/
/mob/living/simple_mob/update_icon()
. = ..()
@@ -318,6 +318,7 @@ I think I covered everything.
update_fullness()
build_icons()
/* CHOMPEDIT - removed
/mob/living/simple_mob/vore/bigdragon/update_fullness()
var/new_fullness = 0
// Only count stomachs to fullness
@@ -328,6 +329,7 @@ I think I covered everything.
new_fullness /= size_multiplier
new_fullness = round(new_fullness, 1)
vore_fullness = min(vore_capacity, new_fullness)
*/
/mob/living/simple_mob/vore/bigdragon/proc/build_icons(var/random)
cut_overlays()
@@ -505,6 +507,7 @@ I think I covered everything.
/mob/living/simple_mob/vore/bigdragon/init_vore()
var/obj/belly/B = new /obj/belly/dragon/maw(src)
B.affects_vore_sprites = FALSE //CHOMPEdit - Added so that the new system handles these not affecting the sprite.
B.emote_lists[DM_HOLD] = list(
"The dragon's breath continues to pant over you rhythmically, each exhale carrying a bone-shivering growl",
"The thick, heavy tongue lifts, curling around you, cramming you tightly against it's teeth, to squeeze some flavor out of you.",
@@ -514,6 +517,7 @@ I think I covered everything.
gut1 = B
vore_selected = B
B = new /obj/belly/dragon/throat(src)
B.affects_vore_sprites = FALSE //CHOMPEdit - Added so that the new system handles these not affecting the sprite.
B.emote_lists[DM_HOLD] = list(
"Gggllrrrk! Another loud, squelching swallow rings out in your ears, dragging you a little deeper into the furnace-like humid heat of the dragon's body.",
"Nestling in a still throat for a moment, you feel the walls quiver and undulate excitedly in tune with the beast's heartbeat.",
@@ -529,6 +533,7 @@ I think I covered everything.
"The constant, rhythmic kneading and massaging starts to take its toll along with the muggy heat, making you feel weaker and weaker!",
"The drake happily wanders around while digesting its meal, almost like it is trying to show off the hanging gut you've given it.")
B = new /obj/belly/dragon/maw/heal(src)
B.affects_vore_sprites = FALSE //CHOMPEdit - Added so that the new system handles these not affecting the sprite.
B.emote_lists[DM_HEAL] = list(
"Gently, the dragon's hot, bumpy tongue cradles you, feeling like a slime-soaked memory-foam bed, twitching with life. The delicacy that the dragon holds you with is quite soothing.",
"The wide, slick throat infront of you constantly quivers and undulates. Every hot muggy exhale of the beast makes that throat spread, ropes of slime within it's hold shivering in the flow, inhales causing it to clench up somewhat.",
@@ -537,6 +542,7 @@ I think I covered everything.
"Saliva soaks the area all around you thickly, lubricating absolutely everything with the hot liquid. From time to time, the beast carefully shifts the rear of it's tongue to piston a cache of the goop down the hatch. The throat seen clenching tightly shut, the tongue's rear bobbing upwards, before down again - showing off a freshly slime-soaked entrance.")
gut2 = B
B = new /obj/belly/dragon/throat/heal(src)
B.affects_vore_sprites = FALSE //CHOMPEdit - Added so that the new system handles these not affecting the sprite.
B.emote_lists[DM_HEAL] = list(
"The tunnel of the gullet closely wraps around you, mummifying you in a hot writhing embrace of silky flesh. The walls are slick, soaked in a lubricating slime, and so very warm.",
"The walls around you pulse in time with the dragon's heartbeat, which itself pounds in your ears. Rushing wind of calm breaths fill the gaps, and distant squelches of slimy payloads shifted around by soft flesh echo down below.",
@@ -344,7 +344,7 @@ I think I covered everything.
update_fullness()
build_icons()
/mob/living/simple_mob/vore/bigdragon/update_fullness()
/* /mob/living/simple_mob/vore/bigdragon/update_fullness()
var/new_fullness = 0
// Only count stomachs to fullness
for(var/obj/belly/B in vore_organs)
@@ -354,6 +354,7 @@ I think I covered everything.
new_fullness /= size_multiplier
new_fullness = round(new_fullness, 1)
vore_fullness = min(vore_capacity, new_fullness)
*/
/mob/living/simple_mob/vore/bigdragon/proc/build_icons(var/random)
cut_overlays()
@@ -534,6 +535,7 @@ I think I covered everything.
if(!voremob_loaded)
return
var/obj/belly/B = new /obj/belly/dragon/maw(src)
B.affects_vore_sprites = FALSE
B.emote_lists[DM_HOLD] = list(
"The dragon's breath continues to pant over you rhythmically, each exhale carrying a bone-shivering growl",
"The thick, heavy tongue lifts, curling around you, cramming you tightly against it's teeth, to squeeze some flavor out of you.",
@@ -543,6 +545,7 @@ I think I covered everything.
gut1 = B
vore_selected = B
B = new /obj/belly/dragon/throat(src)
B.affects_vore_sprites = FALSE
B.emote_lists[DM_HOLD] = list(
"Gggllrrrk! Another loud, squelching swallow rings out in your ears, dragging you a little deeper into the furnace-like humid heat of the dragon's body.",
"Nestling in a still throat for a moment, you feel the walls quiver and undulate excitedly in tune with the beast's heartbeat.",
@@ -558,6 +561,7 @@ I think I covered everything.
"The constant, rhythmic kneading and massaging starts to take its toll along with the muggy heat, making you feel weaker and weaker!",
"The drake happily wanders around while digesting its meal, almost like it is trying to show off the hanging gut you've given it.")
B = new /obj/belly/dragon/maw/heal(src)
B.affects_vore_sprites = FALSE
B.emote_lists[DM_HEAL] = list(
"Gently, the dragon's hot, bumpy tongue cradles you, feeling like a slime-soaked memory-foam bed, twitching with life. The delicacy that the dragon holds you with is quite soothing.",
"The wide, slick throat infront of you constantly quivers and undulates. Every hot muggy exhale of the beast makes that throat spread, ropes of slime within it's hold shivering in the flow, inhales causing it to clench up somewhat.",
@@ -566,6 +570,7 @@ I think I covered everything.
"Saliva soaks the area all around you thickly, lubricating absolutely everything with the hot liquid. From time to time, the beast carefully shifts the rear of it's tongue to piston a cache of the goop down the hatch. The throat seen clenching tightly shut, the tongue's rear bobbing upwards, before down again - showing off a freshly slime-soaked entrance.")
gut2 = B
B = new /obj/belly/dragon/throat/heal(src)
B.affects_vore_sprites = FALSE
B.emote_lists[DM_HEAL] = list(
"The tunnel of the gullet closely wraps around you, mummifying you in a hot writhing embrace of silky flesh. The walls are slick, soaked in a lubricating slime, and so very warm.",
"The walls around you pulse in time with the dragon's heartbeat, which itself pounds in your ears. Rushing wind of calm breaths fill the gaps, and distant squelches of slimy payloads shifted around by soft flesh echo down below.",
@@ -28,8 +28,11 @@
// Vore tags
vore_active = 1
vore_capacity = 1
vore_capacity_ex = list("stomach" = 1, "tail" = 1)
vore_fullness_ex = list("stomach" = 0, "tail" = 0)
vore_bump_emote = "coils their tail around"
vore_icons = 0
vore_icon_bellies = list("stomach", "tail")
// Default stomach
vore_stomach_name = "upper stomach"
vore_stomach_flavor = "You've ended up inside of the lamia's human stomach. It's pretty much identical to any human stomach, but the valve leading deeper is much bigger."
@@ -51,6 +54,7 @@
say_list_type = /datum/say_list/lamia
ai_holder_type = /datum/ai_holder/simple_mob/passive
/* CHOMPEdit - now handled by new belly features.
/mob/living/simple_mob/vore/lamia/update_fullness()
var/new_fullness = 0
// We only want to count our upper_stomach towards capacity
@@ -61,6 +65,7 @@
new_fullness /= size_multiplier
new_fullness = round(new_fullness, 1)
vore_fullness = min(vore_capacity, new_fullness)
*/
/mob/living/simple_mob/vore/lamia/update_icon()
. = ..()
@@ -72,6 +77,7 @@
// And copper_vore_1_0 is full upper stomach, but empty tail stomach
// For unconscious: [icon_rest]_vore_[upper]_[tail]
// For dead, it doesn't show.
/* CHOMPEdit - Handled differently now.
var/upper_shows = FALSE
var/tail_shows = FALSE
@@ -89,6 +95,9 @@
upper_shows = TRUE
else if(B.name == "tail stomach")
tail_shows = TRUE
*/
var/upper_shows = vore_fullness_ex["stomach"]
var/tail_shows = vore_fullness_ex["tail"]
if(upper_shows || tail_shows)
if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED)))
@@ -98,6 +107,7 @@
else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest)
icon_state = "[icon_rest]_vore_[upper_shows]_[tail_shows]"
/mob/living/simple_mob/vore/lamia/init_vore()
if(!voremob_loaded)
return
@@ -126,6 +136,7 @@
tail.human_prey_swallow_time = swallowTime
tail.nonhuman_prey_swallow_time = swallowTime
tail.vore_verb = "stuff"
tail.belly_sprite_to_affect = "tail"
tail.emote_lists[DM_HOLD] = B.emote_lists[DM_HOLD].Copy()
tail.emote_lists[DM_DIGEST] = B.emote_lists[DM_DIGEST].Copy()
+30
View File
@@ -74,6 +74,36 @@
"Cherry Jelly"
)
//CHOMP - vore sprites
var/vore_sprite_flags = DM_FLAG_VORESPRITE_BELLY
var/tmp/static/list/vore_sprite_flag_list= list(
"Normal belly sprite" = DM_FLAG_VORESPRITE_BELLY,
//"Tail adjustment" = DM_FLAG_VORESPRITE_TAIL,
//"Marking addition" = DM_FLAG_VORESPRITE_MARKING
)
var/affects_vore_sprites = TRUE
var/count_absorbed_prey_for_sprite = TRUE
var/resist_triggers_animation = TRUE
var/size_factor_for_sprite = 1
var/belly_sprite_to_affect = "stomach"
var/datum/sprite_accessory/tail/tail_to_change_to = FALSE
var/tail_colouration = FALSE
var/tail_extra_overlay = FALSE
var/tail_extra_overlay2 = FALSE
//var/marking_to_add = NULL
//var/marking_color = NULL
/obj/belly/proc/GetFullnessFromBelly()
if(!affects_vore_sprites)
return 0
var/belly_fullness = 0
for(var/mob/living/M in src)
if(count_absorbed_prey_for_sprite || !M.absorbed)
belly_fullness += M.size_multiplier
belly_fullness *= size_factor_for_sprite
return belly_fullness
///////////////////// NUTRITION REAGENT PRODUCTION /////////////////
+12
View File
@@ -240,6 +240,12 @@
"fullness4_messages",
"fullness5_messages",
"vorespawn_blacklist",
"vore_sprite_flags",
"affects_vore_sprites",
"count_absorbed_prey_for_sprite",
"resist_triggers_animation",
"size_factor_for_sprite",
"belly_sprite_to_affect",
"autotransferchance",
"autotransferwait",
"autotransferlocation",
@@ -1182,6 +1188,12 @@
dupe.reagent_transfer_verb = reagent_transfer_verb
dupe.custom_max_volume = custom_max_volume
dupe.vorespawn_blacklist = vorespawn_blacklist
dupe.vore_sprite_flags = vore_sprite_flags
dupe.affects_vore_sprites = affects_vore_sprites
dupe.count_absorbed_prey_for_sprite = count_absorbed_prey_for_sprite
dupe.resist_triggers_animation = resist_triggers_animation
dupe.size_factor_for_sprite = size_factor_for_sprite
dupe.belly_sprite_to_affect = belly_sprite_to_affect
dupe.autotransferchance = autotransferchance
dupe.autotransferwait = autotransferwait
dupe.autotransferlocation = autotransferlocation
+26
View File
@@ -9,6 +9,32 @@
var/parasitic = FALSE //Digestion immunity and nutrition leeching variable
// CHOMP vore icons refactor (Now on living)
var/vore_capacity = 0 // Maximum capacity, -1 for unlimited
var/vore_capacity_ex = list("stomach" = 0) //expanded list of capacities
var/vore_fullness = 0 // How "full" the belly is (controls icons)
var/list/vore_fullness_ex = list("stomach" = 0) // Expanded list of fullness
var/vore_icons = 0 // Bitfield for which fields we have vore icons for.
var/vore_eyes = FALSE // For mobs with fullness specific eye overlays.
var/list/vore_icon_bellies = list("stomach")
// Update fullness based on size & quantity of belly contents
/mob/living/proc/update_fullness()
var/list/new_fullness = list()
vore_fullness = 0
for(var/belly_class in vore_icon_bellies)
new_fullness[belly_class] = 0
for(var/obj/belly/B as anything in vore_organs)
new_fullness[B.belly_sprite_to_affect] += B.GetFullnessFromBelly()
for(var/belly_class in vore_icon_bellies)
new_fullness[belly_class] /= size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey.
new_fullness[belly_class] = round(new_fullness[belly_class], 1) // Because intervals of 0.25 are going to make sprite artists cry.
vore_fullness_ex[belly_class] = min(vore_capacity_ex[belly_class], new_fullness[belly_class])
vore_fullness += new_fullness[belly_class]
vore_fullness = min(vore_capacity, vore_fullness)
/mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
if(vore_footstep_volume_cooldown++ >= 5) //updating the 'dominating' belly, the one that has most liquid and is loudest.
+77 -2
View File
@@ -44,11 +44,11 @@ const digestModeToPreyMode = {
* - The Belly Selection Panel, where you can select what belly people will go into and customize the active one.
* - User Preferences, where you can adjust all of your vore preferences on the fly.
*/
/**
* CHOMPedits specified here. Read ALL of this if conflicts happen, I can't find a way to add comments line by line.
*
* Under VoreSelectedBelly the following strings have been added to const{}:
* Under VoreSelectedBelly the following strings have been added to const{}:
* 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,
@@ -732,10 +732,85 @@ const VoreSelectedBellyVisuals = (props, context) => {
mapRef,
possible_fullscreens,
disable_hud,
vore_sprite_flags,
affects_voresprite,
absorbed_voresprite,
resist_animation,
voresprite_size_factor,
belly_sprite_option_shown,
belly_sprite_to_affect,
tail_option_shown,
tail_to_change_to,
tail_colouration,
tail_extra_overlay,
tail_extra_overlay2,
} = belly;
return (
<Fragment>
<Section title="Vore Sprites">
<Flex direction="row">
<Flex.Item basis="49%" grow={1}>
<LabeledList>
<LabeledList.Item label="Affect Vore Sprites">
<Button
onClick={() => act("set_attribute", { attribute: "b_affects_vore_sprites" })}
icon={affects_voresprite ? "toggle-on" : "toggle-off"}
selected={affects_voresprite}
content={affects_voresprite ? "Yes" : "No"}
/>
</LabeledList.Item>
{affects_voresprite ? (
<span>
<LabeledList.Item label="Vore Sprite Mode">
{vore_sprite_flags.length && vore_sprite_flags.join(", ") || "None"}
<Button
onClick={() => act("set_attribute", { attribute: "b_vore_sprite_flags" })}
ml={1}
icon="plus" />
</LabeledList.Item>
<LabeledList.Item label="Count Absorbed prey for vore sprites">
<Button
onClick={() => act("set_attribute", { attribute: "b_count_absorbed_prey_for_sprites" })}
icon={absorbed_voresprite ? "toggle-on" : "toggle-off"}
selected={absorbed_voresprite}
content={absorbed_voresprite ? "Yes" : "No"}
/>
</LabeledList.Item>
<LabeledList.Item label="Animation when prey resist">
<Button
onClick={() => act("set_attribute", { attribute: "b_resist_animation" })}
icon={resist_animation ? "toggle-on" : "toggle-off"}
selected={resist_animation}
content={resist_animation ? "Yes" : "No"}
/>
</LabeledList.Item>
<LabeledList.Item label="Vore Sprite Size Factor">
<Button
onClick={() => act("set_attribute", { attribute: "b_size_factor_sprites" })}
content={voresprite_size_factor} />
</LabeledList.Item>
{belly_sprite_option_shown ? (
<LabeledList.Item label="Belly Sprite to affect">
<Button
onClick={() => act("set_attribute", { attribute: "b_belly_sprite_to_affect" })}
content={belly_sprite_to_affect} />
</LabeledList.Item>
) : ""}
{tail_option_shown && vore_sprite_flags.includes("Tail adjustment") ? (
<LabeledList.Item label="Tail to change to">
<Button
onClick={() => act("set_attribute", { attribute: "b_tail_to_change_to" })}
content={tail_to_change_to}
/>
</LabeledList.Item>
) : ""}
</span>
) : ""}
</LabeledList>
</Flex.Item>
</Flex>
</Section>
<Section title="Belly Fullscreens Preview and Coloring">
<Flex direction="row">
<Box backgroundColor={belly_fullscreen_color} width="20px" height="20px" />
File diff suppressed because one or more lines are too long