mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] Attempts implementation of char setup vore panel (#7040)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Raeschen <rycoop29@gmail.com> Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com> Co-authored-by: Darlantan <forlirnglacignis@gmail.com>
This commit is contained in:
@@ -132,17 +132,17 @@ var/global/list/global_vore_egg_types = list(
|
||||
"Xenomorph",
|
||||
"Chocolate",
|
||||
"Boney",
|
||||
"Slime glob",
|
||||
"Slime Glob",
|
||||
"Chicken",
|
||||
"Synthetic",
|
||||
"Bluespace Floppy",
|
||||
"Bluespace Compressed File",
|
||||
"Bluespace CD",
|
||||
"Escape pod",
|
||||
"Cooking error",
|
||||
"Web cocoon",
|
||||
"Escape Pod",
|
||||
"Cooking Error",
|
||||
"Web Cocoon",
|
||||
"Honeycomb",
|
||||
"Bug cocoon",
|
||||
"Bug Cocoon",
|
||||
"Rock",
|
||||
"Yellow",
|
||||
"Blue",
|
||||
@@ -151,7 +151,7 @@ var/global/list/global_vore_egg_types = list(
|
||||
"Purple",
|
||||
"Red",
|
||||
"Rainbow",
|
||||
"Spotted pink")
|
||||
"Spotted Pink")
|
||||
|
||||
var/global/list/tf_vore_egg_types = list(
|
||||
"Unathi" = /obj/item/weapon/storage/vore_egg/unathi,
|
||||
@@ -167,17 +167,17 @@ var/global/list/tf_vore_egg_types = list(
|
||||
"Xenomorph" = /obj/item/weapon/storage/vore_egg/xenomorph,
|
||||
"Chocolate" = /obj/item/weapon/storage/vore_egg/chocolate,
|
||||
"Boney" = /obj/item/weapon/storage/vore_egg/owlpellet,
|
||||
"Slime glob" = /obj/item/weapon/storage/vore_egg/slimeglob,
|
||||
"Slime Glob" = /obj/item/weapon/storage/vore_egg/slimeglob,
|
||||
"Chicken" = /obj/item/weapon/storage/vore_egg/chicken,
|
||||
"Synthetic" = /obj/item/weapon/storage/vore_egg/synthetic,
|
||||
"Bluespace Floppy" = /obj/item/weapon/storage/vore_egg/floppy,
|
||||
"Bluespace Compressed File" = /obj/item/weapon/storage/vore_egg/file,
|
||||
"Bluespace CD" = /obj/item/weapon/storage/vore_egg/cd,
|
||||
"Escape pod" = /obj/item/weapon/storage/vore_egg/escapepod,
|
||||
"Cooking error" = /obj/item/weapon/storage/vore_egg/badrecipe,
|
||||
"Web cocoon" = /obj/item/weapon/storage/vore_egg/cocoon,
|
||||
"Escape Pod" = /obj/item/weapon/storage/vore_egg/escapepod,
|
||||
"Cooking Error" = /obj/item/weapon/storage/vore_egg/badrecipe,
|
||||
"Web Cocoon" = /obj/item/weapon/storage/vore_egg/cocoon,
|
||||
"Honeycomb" = /obj/item/weapon/storage/vore_egg/honeycomb,
|
||||
"Bug cocoon" = /obj/item/weapon/storage/vore_egg/bugcocoon,
|
||||
"Bug Cocoon" = /obj/item/weapon/storage/vore_egg/bugcocoon,
|
||||
"Rock" = /obj/item/weapon/storage/vore_egg/rock,
|
||||
"Yellow" = /obj/item/weapon/storage/vore_egg/yellow,
|
||||
"Blue" = /obj/item/weapon/storage/vore_egg/blue,
|
||||
@@ -186,7 +186,7 @@ var/global/list/tf_vore_egg_types = list(
|
||||
"Purple" = /obj/item/weapon/storage/vore_egg/purple,
|
||||
"Red" = /obj/item/weapon/storage/vore_egg/red,
|
||||
"Rainbow" = /obj/item/weapon/storage/vore_egg/rainbow,
|
||||
"Spotted pink" = /obj/item/weapon/storage/vore_egg/pinkspots)
|
||||
"Spotted Pink" = /obj/item/weapon/storage/vore_egg/pinkspots)
|
||||
|
||||
var/global/list/edible_trash = list(/obj/item/broken_device,
|
||||
/obj/item/clothing/accessory/collar,
|
||||
|
||||
@@ -575,7 +575,7 @@
|
||||
/mob/living/bot/Login()
|
||||
no_vore = FALSE // ROBOT VORE
|
||||
init_vore() // ROBOT VORE
|
||||
verbs |= /mob/living/proc/insidePanel
|
||||
verbs |= /mob/proc/insidePanel
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -583,7 +583,7 @@
|
||||
no_vore = TRUE // ROBOT VORE
|
||||
release_vore_contents()
|
||||
init_vore() // ROBOT VORE
|
||||
verbs -= /mob/living/proc/insidePanel
|
||||
verbs -= /mob/proc/insidePanel
|
||||
no_vore = TRUE
|
||||
devourable = FALSE
|
||||
feeding = FALSE
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
/mob/new_player/New()
|
||||
mob_list += src
|
||||
verbs |= /mob/proc/insidePanel
|
||||
initialized = TRUE // Explicitly don't use Initialize(). New players join super early and use New()
|
||||
|
||||
/mob/new_player/verb/new_player_panel()
|
||||
|
||||
@@ -13,6 +13,6 @@ GLOBAL_DATUM_INIT(tgui_vorepanel_state, /datum/tgui_state/vorepanel_state, new)
|
||||
return STATUS_CLOSE
|
||||
if(!user.client)
|
||||
return STATUS_CLOSE
|
||||
if(user.stat == DEAD)
|
||||
if(!isnewplayer(user) && user.stat == DEAD)
|
||||
return STATUS_DISABLED
|
||||
return STATUS_INTERACTIVE
|
||||
@@ -175,7 +175,7 @@
|
||||
///////////////////// NUTRITION REAGENT PRODUCTION /////////////////
|
||||
|
||||
/obj/belly/proc/HandleBellyReagents()
|
||||
if(reagentbellymode && reagent_mode_flags & DM_FLAG_REAGENTSNUTRI && reagents.total_volume < custom_max_volume) //Removed if(reagentbellymode == TRUE) since that's less optimized
|
||||
if(reagentbellymode && reagent_mode_flags & DM_FLAG_REAGENTSNUTRI && reagents.total_volume < custom_max_volume && !isnewplayer(owner)) //Removed if(reagentbellymode == TRUE) since that's less optimized
|
||||
if(isrobot(owner))
|
||||
var/mob/living/silicon/robot/R = owner
|
||||
if(R.cell.charge >= gen_cost*10 && gen_interval >= gen_time)
|
||||
|
||||
@@ -351,9 +351,10 @@
|
||||
/obj/belly/Initialize()
|
||||
. = ..()
|
||||
//If not, we're probably just in a prefs list or something.
|
||||
if(isliving(loc))
|
||||
if(ismob(loc))
|
||||
owner = loc
|
||||
owner.vore_organs |= src
|
||||
if(isliving(loc))
|
||||
if(speedy_mob_processing) //CHOMPEdit Start
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
///////////////////// Mob Living /////////////////////
|
||||
/mob/living
|
||||
var/list/vore_organs_reagents = list() //Reagent datums in vore bellies in a mob
|
||||
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/vore_footstep_volume = 0 //Variable volume for a mob, updated every 5 steps where a footstep hasnt occurred.
|
||||
var/vore_footstep_chance = 0
|
||||
var/vore_footstep_volume_cooldown = 0 //goes up each time a step isnt heard, and will proc update of list of viable bellies to determine the most filled and loudest one to base audio on.
|
||||
@@ -12,23 +10,11 @@
|
||||
var/liquidbelly_visuals = TRUE //Toggle for liquidbelly level visuals.
|
||||
|
||||
// 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/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
|
||||
|
||||
|
||||
// Update fullness based on size & quantity of belly contents
|
||||
/mob/living/proc/update_fullness(var/returning = FALSE)
|
||||
/mob/proc/update_fullness(var/returning = FALSE)
|
||||
if(!returning)
|
||||
if(updating_fullness)
|
||||
return
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
///////////////////// Mob Living /////////////////////
|
||||
/mob/living
|
||||
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/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not.
|
||||
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/list/temp_language_sources = list() //VOREStation Addition - Absorbs add languages to the pred
|
||||
var/list/temp_languages = list() //VOREStation Addition - Absorbs add languages to the pred
|
||||
var/prey_controlled = FALSE //VOREStation Addition
|
||||
@@ -22,38 +12,20 @@
|
||||
var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far.
|
||||
var/revive_finished = 0 // Only used for xenochimera regen, allows us to find out when the regen will finish.
|
||||
var/metabolism = 0.0015
|
||||
var/vore_taste = null // What the character tastes like
|
||||
var/vore_smell = null // What the character smells like
|
||||
var/no_vore = FALSE // If the character/mob can vore.
|
||||
var/restrict_vore_ventcrawl = FALSE // Self explanatory
|
||||
var/noisy = FALSE // Toggle audible hunger.
|
||||
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
|
||||
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
|
||||
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon.
|
||||
// var/voice_freq = 0 // Preference for character voice frequency CHOMPEdit - Moved to modular_chomp/code/modules/mob/mob.dm
|
||||
// var/list/voice_sounds_list = list() // The sound list containing our voice sounds! CHOMPEdit - Moved to modular_chomp/code/modules/mob/mob.dm
|
||||
var/permit_healbelly = TRUE
|
||||
var/stumble_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/slip_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/drop_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/throw_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/food_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = FALSE
|
||||
var/allow_spontaneous_tf = FALSE // Obviously.
|
||||
var/next_preyloop // For Fancy sound internal loop
|
||||
var/stuffing_feeder = FALSE // Can feed foods to others whole, like trash eater can eat them on their own.
|
||||
var/adminbus_trash = FALSE // For abusing trash eater for event shenanigans.
|
||||
var/adminbus_eat_minerals = FALSE // This creature subsists on a diet of pure adminium.
|
||||
var/vis_height = 32 // Sprite height used for resize features.
|
||||
var/show_vore_fx = TRUE // Show belly fullscreens
|
||||
var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client
|
||||
var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim
|
||||
var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten
|
||||
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
|
||||
var/appendage_color = "#e03997" //Default pink. Used for the 'long_vore' trait.
|
||||
var/appendage_alt_setting = FALSE // Dictates if 'long_vore' user pulls prey to them or not. 1 = user thrown towards target.
|
||||
var/eating_privacy_global = FALSE //Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
|
||||
var/digestion_in_progress = FALSE // CHOMPEdit: Gradual corpse gurgles
|
||||
var/regen_sounds = list(
|
||||
'sound/effects/mob_effects/xenochimera/regen_1.ogg',
|
||||
@@ -63,31 +35,6 @@
|
||||
'sound/effects/mob_effects/xenochimera/regen_5.ogg'
|
||||
)
|
||||
|
||||
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.")
|
||||
|
||||
//
|
||||
// Hook for generic creation of stuff on new creatures
|
||||
//
|
||||
@@ -101,7 +48,7 @@
|
||||
//return TRUE to hook-caller
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/init_vore()
|
||||
/mob/proc/init_vore()
|
||||
//Something else made organs, meanwhile.
|
||||
if(LAZYLEN(vore_organs))
|
||||
return TRUE
|
||||
@@ -116,7 +63,7 @@
|
||||
return TRUE
|
||||
|
||||
//Or, we can create a basic one for them
|
||||
if(!LAZYLEN(vore_organs))
|
||||
if(!LAZYLEN(vore_organs) && isliving(src))
|
||||
LAZYINITLIST(vore_organs)
|
||||
var/obj/belly/B = new /obj/belly(src)
|
||||
vore_selected = B
|
||||
@@ -240,7 +187,7 @@
|
||||
//
|
||||
// Verb for saving vore preferences to save file
|
||||
//
|
||||
/mob/living/proc/save_vore_prefs()
|
||||
/mob/proc/save_vore_prefs()
|
||||
if(!client || !client.prefs_vr)
|
||||
return FALSE
|
||||
if(!copy_to_prefs_vr())
|
||||
@@ -250,7 +197,7 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/apply_vore_prefs()
|
||||
/mob/proc/apply_vore_prefs()
|
||||
if(!client || !client.prefs_vr)
|
||||
return FALSE
|
||||
if(!client.prefs_vr.load_vore())
|
||||
@@ -260,7 +207,7 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/copy_to_prefs_vr()
|
||||
/mob/proc/copy_to_prefs_vr()
|
||||
if(!client || !client.prefs_vr)
|
||||
to_chat(src,"<span class='warning'>You attempted to save your vore prefs but somehow you're in this character without a client.prefs_vr variable. Tell a dev.</span>")
|
||||
return FALSE
|
||||
@@ -317,7 +264,7 @@
|
||||
//
|
||||
// Proc for applying vore preferences, given bellies
|
||||
//
|
||||
/mob/living/proc/copy_from_prefs_vr(var/bellies = TRUE, var/full_vorgans = FALSE) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
|
||||
/mob/proc/copy_from_prefs_vr(var/bellies = TRUE, var/full_vorgans = FALSE) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
|
||||
if(!client || !client.prefs_vr)
|
||||
to_chat(src,"<span class='warning'>You attempted to apply your vore prefs but somehow you're in this character without a client.prefs_vr variable. Tell a dev.</span>")
|
||||
return FALSE
|
||||
@@ -365,8 +312,10 @@
|
||||
vore_sprite_multiply = P.vore_sprite_multiply
|
||||
|
||||
if(bellies)
|
||||
release_vore_contents(silent = TRUE)
|
||||
QDEL_LIST(vore_organs)
|
||||
if(isliving(src))
|
||||
var/mob/living/L = src
|
||||
L.release_vore_contents(silent = TRUE)
|
||||
QDEL_LIST(vore_organs) // CHOMPedit
|
||||
for(var/entry in P.belly_prefs)
|
||||
list_to_object(entry,src)
|
||||
|
||||
@@ -1294,7 +1243,7 @@
|
||||
var/mob/living/owner = parent
|
||||
if(owner.client)
|
||||
create_mob_button(parent)
|
||||
owner.verbs |= /mob/living/proc/insidePanel
|
||||
owner.verbs |= /mob/proc/insidePanel
|
||||
if(!owner.vorePanel) //CHOMPEdit
|
||||
owner.vorePanel = new(owner)
|
||||
|
||||
@@ -1306,7 +1255,7 @@
|
||||
owner?.client?.screen -= screen_icon
|
||||
UnregisterSignal(screen_icon, COMSIG_CLICK)
|
||||
qdel_null(screen_icon)
|
||||
owner.verbs -= /mob/living/proc/insidePanel
|
||||
owner.verbs -= /mob/proc/insidePanel
|
||||
qdel_null(owner.vorePanel)
|
||||
|
||||
/datum/component/vore_panel/proc/create_mob_button(mob/user)
|
||||
|
||||
16
code/modules/vore/eating/mob_ch.dm
Normal file
16
code/modules/vore/eating/mob_ch.dm
Normal file
@@ -0,0 +1,16 @@
|
||||
/mob
|
||||
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.
|
||||
|
||||
// CHOMP vore icons refactor (Now on mob)
|
||||
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
|
||||
54
code/modules/vore/eating/mob_vr.dm
Normal file
54
code/modules/vore/eating/mob_vr.dm
Normal file
@@ -0,0 +1,54 @@
|
||||
/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/allow_inbelly_spawning = FALSE // Will we even bother with attempts of someone to spawn in in one of our bellies? // CHOMPedit: use our code instead of upstream's recoding of our code
|
||||
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 //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/slip_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/drop_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/throw_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/food_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = FALSE
|
||||
var/allow_spontaneous_tf = FALSE // Obviously.
|
||||
var/show_vore_fx = TRUE // Show belly fullscreens
|
||||
var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client
|
||||
var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim
|
||||
var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten
|
||||
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/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.")
|
||||
@@ -25,20 +25,27 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
"could_it_be_a_tumby")
|
||||
*/ //Chomp REMOVE End
|
||||
|
||||
/mob/living
|
||||
/mob
|
||||
var/datum/vore_look/vorePanel
|
||||
|
||||
/mob/living/proc/insidePanel()
|
||||
/mob/proc/insidePanel()
|
||||
set name = "Vore Panel"
|
||||
set category = "IC"
|
||||
|
||||
if(SSticker.current_state == GAME_STATE_INIT)
|
||||
return
|
||||
|
||||
if(!isliving(src))
|
||||
init_vore()
|
||||
|
||||
if(!vorePanel)
|
||||
if(!isnewplayer(src))
|
||||
log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.")
|
||||
vorePanel = new(src)
|
||||
|
||||
vorePanel.tgui_interact(src)
|
||||
|
||||
/mob/living/proc/updateVRPanel() //Panel popup update call from belly events.
|
||||
/mob/proc/updateVRPanel() //Panel popup update call from belly events.
|
||||
if(vorePanel)
|
||||
SStgui.update_uis(vorePanel)
|
||||
|
||||
@@ -46,12 +53,12 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
// Callback Handler for the Inside form
|
||||
//
|
||||
/datum/vore_look
|
||||
var/mob/living/host // Note, we do this in case we ever want to allow people to view others vore panels
|
||||
var/mob/host // Note, we do this in case we ever want to allow people to view others vore panels
|
||||
var/unsaved_changes = FALSE
|
||||
var/show_pictures = TRUE
|
||||
var/max_icon_content = 21 //CHOMPedit: Contents above this disable icon mode. 21 for nice 3 rows to fill the default panel window.
|
||||
|
||||
/datum/vore_look/New(mob/living/new_host)
|
||||
/datum/vore_look/New(mob/new_host)
|
||||
if(istype(new_host))
|
||||
host = new_host
|
||||
. = ..()
|
||||
@@ -1482,7 +1489,11 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
|
||||
return set_attr(usr, params)
|
||||
|
||||
if("saveprefs")
|
||||
if(host.real_name != host.client.prefs.real_name || (!ishuman(host) && !issilicon(host)))
|
||||
if(isnewplayer(host))
|
||||
var/choice = tgui_alert(usr, "Warning: Saving your vore panel while in the lobby will save it to the CURRENTLY LOADED character slot, and potentially overwrite it. Are you SURE you want to overwrite your current slot with these vore bellies?", "WARNING!", list("No, abort!", "Yes, save."))
|
||||
if(choice != "Yes, save.")
|
||||
return TRUE
|
||||
else if(host.real_name != host.client.prefs.real_name || (!ishuman(host) && !issilicon(host)))
|
||||
var/choice = tgui_alert(usr, "Warning: Saving your vore panel while playing what is very-likely not your normal character will overwrite whatever character you have loaded in character setup. Maybe this is your 'playing a simple mob' slot, though. Are you SURE you want to overwrite your current slot with these vore bellies?", "WARNING!", list("No, abort!", "Yes, save."))
|
||||
if(choice != "Yes, save.")
|
||||
return TRUE
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
// Adding needed defines to /mob/living
|
||||
// Note: Polaris had this on /mob/living/carbon/human We need it higher up for animals and stuff.
|
||||
/mob/living
|
||||
var/holder_default
|
||||
/mob
|
||||
var/step_mechanics_pref = TRUE // Allow participation in macro-micro step mechanics
|
||||
var/pickup_pref = TRUE // Allow participation in macro-micro pickup mechanics
|
||||
|
||||
/mob/living
|
||||
var/holder_default
|
||||
var/pickup_active = TRUE // Toggle whether your help intent picks up micros or pets them
|
||||
var/center_offset = 0.5 // Center offset for uneven scaling symmetry. //CHOMPEdit
|
||||
var/offset_override = FALSE // Pref toggle for center offset. //CHOMPEdit
|
||||
|
||||
@@ -4396,6 +4396,8 @@
|
||||
#include "code\modules\vore\eating\leave_remains_vr.dm"
|
||||
#include "code\modules\vore\eating\living_ch.dm"
|
||||
#include "code\modules\vore\eating\living_vr.dm"
|
||||
#include "code\modules\vore\eating\mob_ch.dm"
|
||||
#include "code\modules\vore\eating\mob_vr.dm"
|
||||
#include "code\modules\vore\eating\silicon_vr.dm"
|
||||
#include "code\modules\vore\eating\simple_animal_vr.dm"
|
||||
#include "code\modules\vore\eating\slipvore_vr.dm"
|
||||
|
||||
Reference in New Issue
Block a user