Files
VOREStation/code/modules/vore/eating/mob_vr.dm
T
SatinIsle 391c96c4ef Allows stripping people by resizing (#19038)
* Allows stripping people by resizing

Added a new preference that allows you to drop all of your items and possibly underwear upon being suddenly resized by more than 30%.

This also adds a variable to resize() that determines whether a specific method can trigger the stripping.
It is currently enabled on size guns and bluespace crackers only, I want to add it on a case by case basis.

* More info in tooltip

* Fix mistake

* Fix the other one too

* modern style

* Update vore_prefs.dm

* Turns defines into numbers

* Makes the new preference a dropdown

The edit mode is forced to true as the preferences page does not use edit modes.
Tested and it works fine.

* dropdown

* sublist

* .

* string keys

* tooltip

* .

* Current progress (broken)

* Fixes things

Tested and they work as expected

* please never do this

* .

* Make belly temps save

* move by 1 second

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2026-01-22 22:54:14 +01:00

109 lines
7.0 KiB
Plaintext

/mob
var/digestable = TRUE // Can the mob be digested inside a belly?
var/devourable = TRUE // Can the mob be devoured at all?
var/feeding = TRUE // Can the mob be vorishly force fed or fed to others?
var/absorbable = TRUE // Are you allowed to absorb this person?
var/resizable = TRUE // Can other people resize you? (Usually ignored for self-resizes)
var/digest_leave_remains = FALSE // Will this mob leave bones/skull/etc after the melty demise?
var/allowmobvore = TRUE // Will simplemobs attempt to eat the mob?
var/allowtemp = TRUE // Can they be affected by belly temperature?
var/obj/belly/vore_selected // Default to no vore capability.
var/list/vore_organs = list() // List of vore containers inside a mob
var/absorbed = FALSE // If a mob is absorbed into another
var/vore_taste = null // What the character tastes like
var/vore_smell = null // What the character smells like
var/noisy = FALSE // Toggle audible hunger.
var/permit_healbelly = TRUE
var/stumble_vore = TRUE
var/slip_vore = TRUE
var/drop_vore = TRUE
var/throw_vore = TRUE
var/food_vore = TRUE
var/obj/belly/spont_belly_front = null
var/obj/belly/spont_belly_rear = null
var/obj/belly/spont_belly_left = null
var/obj/belly/spont_belly_right = null
var/consume_liquid_belly = FALSE //starting off because if someone is into that, they'll toggle it first time they get the error. Otherway around would be more pref breaky.
var/digest_pain = TRUE
var/can_be_drop_prey = FALSE
var/can_be_drop_pred = FALSE
var/can_be_afk_prey = TRUE
var/can_be_afk_pred = TRUE
var/allow_spontaneous_tf = FALSE // Obviously.
var/show_vore_fx = TRUE // Show belly fullscreens
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/size_strip_preference = SIZESTRIP_NONE // Preference for size change stripping
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
var/list/nutrition_messages = list(
"They are starving! You can hear their stomach snarling from across the room!",
"They are extremely hungry. A deep growl occasionally rumbles from their empty stomach.",
"",
"They have a stuffed belly, bloated fat and round from eating too much.",
"They have a rotund, thick gut. It bulges from their body obscenely, close to sagging under its own weight.",
"They are sporting a large, round, sagging stomach. It contains at least their body weight worth of glorping slush.",
"They are engorged with a huge stomach that sags and wobbles as they move. They must have consumed at least twice their body weight. It looks incredibly soft.",
"Their stomach is firmly packed with digesting slop. They must have eaten at least a few times worth their body weight! It looks hard for them to stand, and their gut jiggles when they move.",
"They are so absolutely stuffed that you aren't sure how it's possible for them to move. They can't seem to swell any bigger. The surface of their belly looks sorely strained!",
"They are utterly filled to the point where it's hard to even imagine them moving, much less comprehend it when they do. Their gut is swollen to monumental sizes and amount of food they consumed must be insane.")
var/weight_message_visible = TRUE
var/list/weight_messages = list(
"They are terribly lithe and frail!",
"They have a very slender frame.",
"They have a lightweight, athletic build.",
"They have a healthy, average body.",
"They have a thick, curvy physique.",
"They have a plush, chubby figure.",
"They have an especially plump body with a round potbelly and large hips.",
"They have a very fat frame with a bulging potbelly, squishy rolls of pudge, very wide hips, and plump set of jiggling thighs.",
"They are incredibly obese. Their massive potbelly sags over their waistline while their fat ass would probably require two chairs to sit down comfortably!",
"They are so morbidly obese, you wonder how they can even stand, let alone waddle around the station. They can't get any fatter without being immobilized.")
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/belly_size_multiplier = 1
var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE)
var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
var/list/vore_icon_bellies = list("stomach")
var/updating_fullness = FALSE
var/obj/belly/previewing_belly
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/obj/soulgem/soulgem // Soulcatcher. Needs to be up-ported sometime.
var/receive_reagents = FALSE //Pref for people to avoid others transfering reagents into them.
var/give_reagents = FALSE //Pref for people to avoid others taking reagents from them.
var/apply_reagents = TRUE //Pref for people to avoid having stomach reagents applied to them
var/latejoin_vore = FALSE //If enabled, latejoiners can spawn into this, assuming they have a client
var/latejoin_prey = FALSE //If enabled, latejoiners can spawn ontop of and instantly eat the victim
var/noisy_full = FALSE //Enables belching when a mob has overeaten
var/phase_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
var/strip_pref = TRUE //Enables the ability for worn items to be stripped
var/contaminate_pref = TRUE //Enables the ability for worn items to be digested/contaminated.
var/no_latejoin_vore_warning = FALSE //Auto accepts pred spwan notifications (roundbased / saveable)
var/no_latejoin_prey_warning = FALSE //Auto accepts prey spawn notifications (roundbased / saveable)
var/no_latejoin_vore_warning_time = 15 //Time until accepting prey
var/no_latejoin_prey_warning_time = 15 //Time until accepting pred
var/no_latejoin_vore_warning_persists = FALSE //Do we save it?
var/no_latejoin_prey_warning_persists = FALSE //Do we save it?
var/belly_rub_target = null
var/soulcatcher_pref_flags = NONE //Default disabled
var/persistend_edit_mode = FALSE
var/voice_freq = 42500 // Preference for character voice frequency
var/emote_sound_mode = EMOTE_SOUND_VOICE_FREQ
var/list/voice_sounds_list = list() // The sound list containing our voice sounds!
var/enabled = TRUE //Pauses a mob if disabled (Prevents life ticks from happening)
var/died_in_vr = FALSE //For virtual reality sleepers
var/last_move_time = 0 //For movement smoothing
var/max_voreoverlay_alpha = 255