[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:
CHOMPStation2
2023-10-24 14:04:39 -07:00
committed by GitHub
parent 7bd8ecbe5b
commit e89ee8d9b0
13 changed files with 131 additions and 109 deletions

View File

@@ -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,

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View 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

View 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.")

View File

@@ -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

View File

@@ -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

View File

@@ -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"