diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index 710b11ae16..9c91de0be2 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_INIT(player_sizes_list, list("Macro" = SIZESCALE_HUGE, "Big" = SIZES // Edited to make the new travis check go away */ -GLOBAL_LIST_INIT(vore_sounds, list( +GLOBAL_LIST_INIT(pred_vore_sounds, list( "Gulp" = 'sound/vore/pred/swallow_01.ogg', "Swallow" = 'sound/vore/pred/swallow_02.ogg', "Insertion1" = 'sound/vore/pred/insertion_01.ogg', @@ -40,7 +40,27 @@ GLOBAL_LIST_INIT(vore_sounds, list( "None" = null )) -GLOBAL_LIST_INIT(release_sounds, list( +GLOBAL_LIST_INIT(prey_vore_sounds, list( + "Gulp" = 'sound/vore/prey/swallow_01.ogg', + "Swallow" = 'sound/vore/prey/swallow_02.ogg', + "Insertion1" = 'sound/vore/prey/insertion_01.ogg', + "Insertion2" = 'sound/vore/prey/insertion_02.ogg', + "Tauric Swallow" = 'sound/vore/prey/taurswallow.ogg', + "Stomach Move" = 'sound/vore/prey/stomachmove.ogg', + "Schlorp" = 'sound/vore/prey/schlorp.ogg', + "Squish1" = 'sound/vore/prey/squish_01.ogg', + "Squish2" = 'sound/vore/prey/squish_02.ogg', + "Squish3" = 'sound/vore/prey/squish_03.ogg', + "Squish4" = 'sound/vore/prey/squish_04.ogg', + "Rustle (cloth)" = 'sound/effects/rustle5.ogg', + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "None" = null + )) + +GLOBAL_LIST_INIT(pred_release_sounds, list( "Rustle (cloth)" = 'sound/effects/rustle1.ogg', "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', @@ -51,3 +71,15 @@ GLOBAL_LIST_INIT(release_sounds, list( "Splatter" = 'sound/effects/splat.ogg', "None" = null )) + +GLOBAL_LIST_INIT(prey_release_sounds, list( + "Rustle (cloth)" = 'sound/effects/rustle1.ogg', + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "Stomach Move" = 'sound/vore/prey/stomachmove.ogg', + "Pred Escape" = 'sound/vore/prey/escape.ogg', + "Splatter" = 'sound/effects/splat.ogg', + "None" = null + )) diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index 3406d29b3a..6da188dd2d 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -4,6 +4,7 @@ status_flags = GODMODE|CANPUSH mouse_drag_pointer = MOUSE_INACTIVE_POINTER var/in_use = FALSE + no_vore = TRUE INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm index 26f146b952..8c06b01402 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm @@ -42,7 +42,7 @@ autotransferwait = 200 /obj/belly/megafauna/dragon/gut - name = "stomach" + name = "gut" vore_capacity = 5 //I doubt this many people will actually last in the gut, but... vore_sound = "Tauric Swallow" desc = "With a rush of burning ichor greeting you, you're introduced to the Drake's stomach. Wrinkled walls greedily grind against you, acidic slimes working into your body as you become fuel and nutriton for a superior predator. All that's left is your body's willingness to resist your destiny." diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm index 666de9cef0..700ee3b7ce 100644 --- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm +++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm @@ -29,21 +29,22 @@ /mob/living/simple_animal/Destroy() release_vore_contents(include_absorbed = TRUE, silent = TRUE) prey_excludes.Cut() + QDEL_NULL_LIST(vore_organs) . = ..() // Update fullness based on size & quantity of belly contents /mob/living/simple_animal/proc/update_fullness(var/atom/movable/M) var/new_fullness = 0 - for(var/I in vore_organs) - var/datum/belly/B = vore_organs[I] - if (!(M in B.internal_contents)) + for(var/belly in vore_organs) + var/obj/belly/B = vore_organs[belly] + if (!(M in B.contents)) return FALSE // Nothing's inside new_fullness += M vore_fullness = new_fullness /mob/living/simple_animal/death() - release_vore_contents(silent = TRUE) + release_vore_contents() . = ..() // Simple animals have only one belly. This creates it (if it isn't already set up) @@ -51,16 +52,18 @@ vore_init = TRUE if(CHECK_BITFIELD(flags_1, HOLOGRAM_1)) return - if(vore_organs.len) - return - if(no_vore) //If it can't vore, let's not give it a stomach. + if(!vore_active || no_vore) //If it can't vore, let's not give it a stomach. return if(vore_active && !IsAdvancedToolUser()) //vore active, but doesn't have thumbs to grab people with. verbs |= /mob/living/simple_animal/proc/animal_nom - var/obj/belly/B = new /obj/belly(src) + if(LAZYLEN(vore_organs)) + return + + LAZYINITLIST(vore_organs) + var/obj/belly/B = new (src) vore_selected = B - B.immutable = 1 + B.immutable = TRUE B.name = vore_stomach_name ? vore_stomach_name : "stomach" B.desc = vore_stomach_flavor ? vore_stomach_flavor : "Your surroundings are warm, soft, and slimy. Makes sense, considering you're inside \the [name]." B.digest_mode = vore_default_mode @@ -125,13 +128,12 @@ // Simple nom proc for if you get ckey'd into a simple_animal mob! Avoids grabs. // /mob/living/simple_animal/proc/animal_nom(var/mob/living/T in oview(1)) - set name = "Animal Nom" + set name = "Animal Nom (pull target)" set category = "Vore" set desc = "Since you can't grab, you get a verb!" if (stat != CONSCIOUS) return - if (T.devourable == FALSE) - to_chat(usr, "You can't eat this!") + if(!T.devourable) return - return vore_attack(usr,T,usr) + return vore_attack(src,T,src) diff --git a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm b/code/modules/mob/living/simple_animal/simplemob_vore_values.dm similarity index 98% rename from modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm rename to code/modules/mob/living/simple_animal/simplemob_vore_values.dm index 78e18fdb5e..22ed5e3ab4 100644 --- a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm +++ b/code/modules/mob/living/simple_animal/simplemob_vore_values.dm @@ -129,6 +129,8 @@ vore_default_mode = DM_DIGEST /mob/living/simple_animal/hostile/carp + devourable = TRUE + digestable = TRUE feeding = TRUE vore_active = TRUE isPredator = TRUE diff --git a/modular_citadel/code/modules/vore/eating/belly_dat_vr.dm b/code/modules/vore/eating/belly_dat_vr.dm similarity index 100% rename from modular_citadel/code/modules/vore/eating/belly_dat_vr.dm rename to code/modules/vore/eating/belly_dat_vr.dm diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj.dm similarity index 78% rename from modular_citadel/code/modules/vore/eating/belly_obj_vr.dm rename to code/modules/vore/eating/belly_obj.dm index 1ad29c1af3..741aff5f9a 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -38,6 +38,7 @@ var/swallow_time = 10 SECONDS // for mob transfering automation var/vore_capacity = 1 // simple animal nom capacity var/is_wet = TRUE // Is this belly inside slimy parts? + var/wet_loop = TRUE // Does this belly have a slimy internal loop? //I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere. var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_HEAL,DM_NOISY,DM_ABSORB,DM_UNABSORB) // Possible digest modes @@ -138,13 +139,17 @@ "digest_messages_prey", "examine_messages", "emote_lists", - "is_wet" + "is_wet", + "wet_loop" ) //ommitted list // "shrink_grow_size", -/obj/belly/New(var/newloc) - . = ..(newloc) +/obj/belly/Initialize() + . = ..() + take_ownership(src.loc) + +/obj/belly/proc/take_ownership(var/newloc) //If not, we're probably just in a prefs list or something. if(isliving(newloc)) owner = loc @@ -152,13 +157,11 @@ SSbellies.belly_list += src /obj/belly/Destroy() + SSbellies.belly_list -= src if(owner) - Remove(owner) - return ..() - -/obj/belly/proc/Remove(mob/living/owner) - owner.vore_organs -= src - owner = null + owner.vore_organs -= src + owner = null + . = ..() // Called whenever an atom enters this belly /obj/belly/Entered(var/atom/movable/thing,var/atom/OldLoc) @@ -169,13 +172,22 @@ to_chat(owner,"[thing] slides into your [lowertext(name)].") //Sound w/ antispam flag setting - if(is_wet && (world.time > recent_sound)) - var/turf/source = get_turf(owner) - var/sound/eating = GLOB.vore_sounds[vore_sound] - for(var/mob/living/M in get_hearers_in_view(3, source)) - if(M.client && M.client.prefs.cit_toggles & EATING_NOISES) - SEND_SOUND(M, eating) - recent_sound = (world.time + 20 SECONDS) + if(vore_sound && !recent_sound) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & EATING_NOISES)) + continue + LAZYADD(hearing_mobs, H) + last_hearcheck = world.time + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + var/sound/eating = GLOB.pred_vore_sounds[vore_sound] + SEND_SOUND(H,eating) + else if(H && H in contents && H.client) + var/sound/eating = GLOB.prey_vore_sounds[vore_sound] + SEND_SOUND(H,eating) + recent_sound = TRUE //Messages if it's a mob if(isliving(thing)) @@ -187,7 +199,7 @@ // If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in. // Returns the number of mobs so released. /obj/belly/proc/release_all_contents(var/include_absorbed = FALSE, var/silent = FALSE) - var/atom/destination = drop_location() +// var/atom/destination = drop_location() //Don't bother if we don't have contents if(!contents.len) return FALSE @@ -207,22 +219,30 @@ SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred) SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) - AM.forceMove(destination) // Move the belly contents into the same location as belly's owner. - count++ - for(var/mob/living/M in get_hearers_in_view(2, get_turf(owner))) - if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) - var/sound/releasement = GLOB.release_sounds[release_sound] - SEND_SOUND(M, releasement) + count += release_specific_contents(AM, silent = TRUE) //Clean up our own business items_preserved.Cut() - if(isanimal(owner)) - owner.update_icons() + owner.update_icons() if(!silent) + if(release_sound && !recent_sound) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & EATING_NOISES)) + continue + LAZYADD(hearing_mobs, H) + last_hearcheck = world.time + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + var/sound/releasement = GLOB.pred_release_sounds[release_sound] + SEND_SOUND(H,releasement) + else if(H && H in contents && H.client) + var/sound/releasement = GLOB.prey_release_sounds[release_sound] + SEND_SOUND(H,releasement) + recent_sound = TRUE owner.visible_message("[owner] expels everything from their [lowertext(name)]!") - items_preserved.Cut() - owner.update_icons() return count @@ -235,16 +255,13 @@ M.forceMove(drop_location()) // Move the belly contents into the same location as belly's owner. items_preserved -= M - if(!silent) - for(var/mob/living/H in get_hearers_in_view(2, get_turf(owner))) - if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) - var/sound/releasement = GLOB.release_sounds[release_sound] - SEND_SOUND(H, releasement) + if(istype(M,/mob/living)) var/mob/living/ML = M var/mob/living/OW = owner - ML.stop_sound_channel(CHANNEL_PREYLOOP) + if(ML.client) + ML.stop_sound_channel(CHANNEL_PREYLOOP) //Stop the internal loop, it'll restart if the isbelly check on next tick anyway ML.cure_blind("belly_[REF(src)]") SEND_SIGNAL(OW, COMSIG_CLEAR_MOOD_EVENT, "fedpred", /datum/mood_event/fedpred) SEND_SIGNAL(ML, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) @@ -263,12 +280,27 @@ Pred.reagents.trans_to(Prey, Pred.reagents.total_volume / absorbed_count) //Clean up our own business - if(isanimal(owner)) - owner.update_icons() + owner.update_icons() if(!silent) + if(release_sound && !recent_sound) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & EATING_NOISES)) + continue + LAZYADD(hearing_mobs, H) + last_hearcheck = world.time + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + var/sound/releasement = GLOB.pred_release_sounds[release_sound] + SEND_SOUND(H,releasement) + else if(H && H in contents && H.client) + var/sound/releasement = GLOB.prey_release_sounds[release_sound] + SEND_SOUND(H,releasement) + recent_sound = TRUE owner.visible_message("[owner] expels [M] from their [lowertext(name)]!") - owner.update_icons() + return TRUE // Actually perform the mechanics of devouring the tasty prey. @@ -312,15 +344,26 @@ /obj/belly/proc/transfer_contents(var/atom/movable/content, var/obj/belly/target, silent = FALSE) if(!(content in src) || !istype(target)) return + content.forceMove(target) for(var/mob/living/M in contents) M.cure_blind("belly_[REF(src)]") - target.nom_mob(content, target.owner) - if(!silent) - var/turf/source = get_turf(owner) - var/sound/eating = GLOB.vore_sounds[vore_sound] - for(var/mob/living/M in get_hearers_in_view(3, source)) - if(M.client && M.client.prefs.cit_toggles & EATING_NOISES) - SEND_SOUND(M, eating) +// target.nom_mob(content, target.owner) + if(vore_sound && !recent_sound && !silent) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & EATING_NOISES)) + continue + LAZYADD(hearing_mobs, H) + last_hearcheck = world.time + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + var/sound/eating = GLOB.pred_vore_sounds[vore_sound] + SEND_SOUND(H,eating) + else if(H && H in contents && H.client) + var/sound/eating = GLOB.prey_vore_sounds[vore_sound] + SEND_SOUND(H,eating) + recent_sound = TRUE owner.updateVRPanel() for(var/mob/living/M in contents) @@ -424,9 +467,12 @@ if(!M.dropItemToGround(W)) qdel(W) + //Incase they have the loop going, let's double check to stop it. + M.stop_sound_channel(CHANNEL_PREYLOOP) + // Delete the digested mob qdel(M) - M.stop_sound_channel(CHANNEL_PREYLOOP) + //Update owner owner.updateVRPanel() @@ -470,7 +516,7 @@ /obj/belly/drop_location() //Should be the case 99.99% of the time if(owner) - return owner.loc + return owner.drop_location() //Sketchy fallback for safety, put them somewhere safe. else if(ismob(src)) testing("[src] (\ref[src]) doesn't have an owner, and dropped someone at a latespawn point!") @@ -525,24 +571,31 @@ struggle_outer_message = "" + struggle_outer_message + "" struggle_user_message = "" + struggle_user_message + "" - var/turf/source = get_turf(owner) - var/sound/struggle_snuggle = sound(get_sfx("struggle_sound")) + var/sound/pred_struggle_snuggle = sound(get_sfx("struggle_sound")) + var/sound/prey_struggle_snuggle = sound(get_sfx("prey_struggle")) var/sound/struggle_rustle = sound(get_sfx("rustle")) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & EATING_NOISES)) + continue + LAZYADD(hearing_mobs, H) + if(is_wet) - for(var/mob/living/M in get_hearers_in_view(3, source)) - if(M.client && M.client.prefs.cit_toggles & EATING_NOISES) - SEND_SOUND(M, struggle_snuggle) + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_struggle_snuggle) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_struggle_snuggle) else - for(var/mob/living/M in get_hearers_in_view(3, source)) - if(M.client && M.client.prefs.cit_toggles & EATING_NOISES) - SEND_SOUND(M, struggle_rustle) + for(var/mob/living/H in hearing_mobs) + if(H && H.client) + SEND_SOUND(H, struggle_rustle) - var/list/watching = hearers(3, owner) - for(var/mob/living/M in watching) - if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) //Might as well censor the normies here too. - M.show_message(struggle_outer_message, 1) // visible + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc))) + H.show_message(struggle_outer_message, 1) // visible to_chat(R,struggle_user_message) @@ -551,8 +604,10 @@ to_chat(R,"You start to climb out of \the [lowertext(name)].") to_chat(owner,"Someone is attempting to climb out of your [lowertext(name)]!") if(do_after(R, escapetime)) - if((owner.stat || escapable) && (R.loc == src)) //Can still escape? + if((escapable) && (R.loc == src)) //Can still escape? release_specific_contents(R) + to_chat(R,"You climb out of \the [lowertext(name)].") + to_chat(owner,"[R] climbs out of your [lowertext(name)]!") return else if(R.loc != src) //Aren't even in the belly. Quietly fail. return @@ -560,41 +615,41 @@ to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") return - else if(prob(transferchance) && transferlocation) //Next, let's have it see if they end up getting into an even bigger mess then when they started. - var/obj/belly/dest_belly - for(var/belly in owner.vore_organs) - var/obj/belly/B = belly - if(B.name == transferlocation) - dest_belly = B - break + else if(prob(transferchance) && transferlocation) //Next, let's have it see if they end up getting into an even bigger mess then when they started. + var/obj/belly/dest_belly + for(var/belly in owner.vore_organs) + var/obj/belly/B = belly + if(B.name == transferlocation) + dest_belly = B + break - if(!dest_belly) - to_chat(owner, "Something went wrong with your belly transfer settings. Your [lowertext(name)] has had it's transfer chance and transfer location cleared as a precaution.") - transferchance = 0 - transferlocation = null + if(!dest_belly) + to_chat(owner, "Something went wrong with your belly transfer settings. Your [lowertext(name)] has had it's transfer chance and transfer location cleared as a precaution.") + transferchance = 0 + transferlocation = null + return + + to_chat(R,"Your attempt to escape [lowertext(name)] has failed and your struggles only results in you sliding into [owner]'s [transferlocation]!") + to_chat(owner,"Someone slid into your [transferlocation] due to their struggling inside your [lowertext(name)]!") + transfer_contents(R, dest_belly) return - to_chat(R,"Your attempt to escape [lowertext(name)] has failed and your struggles only results in you sliding into [owner]'s [transferlocation]!") - to_chat(owner,"Someone slid into your [transferlocation] due to their struggling inside your [lowertext(name)]!") - transfer_contents(R, dest_belly) - return + else if(prob(absorbchance) && digest_mode != DM_ABSORB) //After that, let's have it run the absorb chance. + to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to cling more tightly...") + to_chat(owner,"You feel your [lowertext(name)] start to cling onto its contents...") + digest_mode = DM_ABSORB + return - else if(prob(absorbchance) && digest_mode != DM_ABSORB) //After that, let's have it run the absorb chance. - to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to cling more tightly...") - to_chat(owner,"You feel your [lowertext(name)] start to cling onto its contents...") - digest_mode = DM_ABSORB - return + else if(prob(digestchance) && digest_mode != DM_DIGEST) //Finally, let's see if it should run the digest chance. + to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to get more active...") + to_chat(owner,"You feel your [lowertext(name)] beginning to become active!") + digest_mode = DM_DIGEST + return - else if(prob(digestchance) && digest_mode != DM_DIGEST) //Finally, let's see if it should run the digest chance. - to_chat(R,"In response to your struggling, \the [lowertext(name)] begins to get more active...") - to_chat(owner,"You feel your [lowertext(name)] beginning to become active!") - digest_mode = DM_DIGEST - return - - else //Nothing interesting happened. - to_chat(R,"You make no progress in escaping [owner]'s [lowertext(name)].") - to_chat(owner,"Your prey appears to be unable to make any progress in escaping your [lowertext(name)].") - return + else //Nothing interesting happened. + to_chat(R,"You make no progress in escaping [owner]'s [lowertext(name)].") + to_chat(owner,"Your prey appears to be unable to make any progress in escaping your [lowertext(name)].") + return /obj/belly/proc/get_mobs_and_objs_in_belly() var/list/see = list() @@ -641,6 +696,7 @@ dupe.swallow_time = swallow_time dupe.vore_capacity = vore_capacity dupe.is_wet = is_wet + dupe.wet_loop = wet_loop //// Object-holding variables //struggle_messages_outside - strings diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes.dm similarity index 76% rename from modular_citadel/code/modules/vore/eating/bellymodes_vr.dm rename to code/modules/vore/eating/bellymodes.dm index da323f02e2..0ecaf49abc 100644 --- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes.dm @@ -18,27 +18,29 @@ return SSBELLIES_PROCESSED next_process = times_fired + (6 SECONDS/wait) //Set up our next process time. + var/to_update = FALSE /////////////////////////// Auto-Emotes /////////////////////////// if(contents.len && next_emote <= times_fired) next_emote = times_fired + round(emote_time/wait,1) var/list/EL = emote_lists[digest_mode] - for(var/mob/living/M in contents) - if(M.digestable || !(digest_mode == DM_DIGEST)) // don't give digesty messages to indigestible people - to_chat(M,"[pick(EL)]") + if(LAZYLEN(EL)) + for(var/mob/living/M in contents) + if(M.digestable || !(digest_mode == DM_DIGEST)) // don't give digesty messages to indigestible people + to_chat(M,"[pick(EL)]") ///////////////////// Prey Loop Refresh/hack ////////////////////// for(var/mob/living/M in contents) - if(isbelly(M.loc)) + if(M && isbelly(M.loc)) if(world.time > M.next_preyloop) - if(is_wet) + if(is_wet && wet_loop) if(!M.client) continue M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case if(M.client.prefs.cit_toggles & DIGESTION_NOISES) - var/sound/preyloop = sound('sound/vore/prey/loop.ogg', repeat = TRUE) + var/sound/preyloop = sound('sound/vore/prey/loop.ogg') M.playsound_local(get_turf(src),preyloop, 80,0, channel = CHANNEL_PREYLOOP) - M.next_preyloop = (world.time + 52 SECONDS) + M.next_preyloop = (world.time + 51 SECONDS) /////////////////////////// Exit Early //////////////////////////// @@ -56,7 +58,6 @@ var/sound/prey_death = sound(get_sfx("death_prey")) var/sound/pred_digest = sound(get_sfx("digest_pred")) var/sound/pred_death = sound(get_sfx("death_pred")) - var/turf/source = get_turf(owner) ///////////////////////////// DM_HOLD ///////////////////////////// if(digest_mode == DM_HOLD) @@ -70,18 +71,18 @@ for (var/mob/living/M in contents) if(prob(25)) - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_digest) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_digest) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_digest) //Pref protection! if (!M.digestable || M.absorbed) @@ -107,21 +108,22 @@ M.visible_message("You watch as [owner]'s form loses its additions.") owner.nutrition += 400 // so eating dead mobs gives you *something*. - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_death) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_death) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_death) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_death) M.stop_sound_channel(CHANNEL_PREYLOOP) digestion_death(M) owner.update_icons() + to_update = TRUE continue @@ -136,48 +138,45 @@ if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) digest_item(T) - owner.updateVRPanel() - ///////////////////////////// DM_HEAL ///////////////////////////// if(digest_mode == DM_HEAL) for (var/mob/living/M in contents) if(prob(25)) - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_digest) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_digest) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_digest) if(M.stat != DEAD) if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth)) M.adjustBruteLoss(-3) M.adjustFireLoss(-3) owner.nutrition -= 5 - return ////////////////////////// DM_NOISY ///////////////////////////////// //for when you just want people to squelch around if(digest_mode == DM_NOISY) if(prob(35)) - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_digest) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_digest) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_digest) //////////////////////////// DM_ABSORB //////////////////////////// @@ -186,18 +185,18 @@ for (var/mob/living/M in contents) if(prob(10))//Less often than gurgles. People might leave this on forever. - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_digest) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_digest) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_digest) if(M.absorbed) continue @@ -208,16 +207,18 @@ owner.nutrition += oldnutrition else if(M.nutrition < 100) //When they're finally drained. absorb_living(M) + to_update = TRUE //////////////////////////// DM_UNABSORB //////////////////////////// else if(digest_mode == DM_UNABSORB) for (var/mob/living/M in contents) if(M.absorbed && owner.nutrition >= 100) - M.absorbed = 0 + M.absorbed = FALSE to_chat(M,"You suddenly feel solid again ") to_chat(owner,"You feel like a part of you is missing.") owner.nutrition -= 100 + to_update = TRUE //////////////////////////DM_DRAGON ///////////////////////////////////// //because dragons need snowflake guts @@ -228,18 +229,18 @@ for (var/mob/living/M in contents) if(prob(55)) //if you're hearing this, you're a vore ho anyway. - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_digest) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_digest) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_digest) //No digestion protection for megafauna. @@ -261,22 +262,23 @@ to_chat(owner, "[digest_alert_owner]") to_chat(M, "[digest_alert_prey]") M.visible_message("You watch as [owner]'s guts loudly rumble as it finishes off a meal.") - if((world.time - NORMIE_HEARCHECK) > last_hearcheck) + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, source)) + for(var/mob/living/H in get_hearers_in_view(3, owner)) if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) continue LAZYADD(hearing_mobs, H) last_hearcheck = world.time for(var/mob/living/H in hearing_mobs) - if(!isbelly(H.loc)) - H.playsound_local(source, null, 45, falloff = 0, S = pred_death) - else if(H in contents) - H.playsound_local(source, null, 65, falloff = 0, S = prey_death) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_death) + else if(H && H in contents && H.client) + SEND_SOUND(H,prey_death) M.spill_organs(FALSE,TRUE,TRUE) M.stop_sound_channel(CHANNEL_PREYLOOP) digestion_death(M) owner.update_icons() + to_update = TRUE continue @@ -291,4 +293,11 @@ if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) digest_item(T) - owner.updateVRPanel() \ No newline at end of file + if(to_update) + for(var/mob/living/M in contents) + if(M.client) + M.updateVRPanel() + if(owner.client) + owner.updateVRPanel() + + return SSBELLIES_PROCESSED \ No newline at end of file diff --git a/modular_citadel/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act.dm similarity index 100% rename from modular_citadel/code/modules/vore/eating/digest_act_vr.dm rename to code/modules/vore/eating/digest_act.dm diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living.dm similarity index 93% rename from modular_citadel/code/modules/vore/eating/living_vr.dm rename to code/modules/vore/eating/living.dm index d9adde04d1..9fdb7aa764 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living.dm @@ -8,7 +8,7 @@ var/feeding = FALSE // Are we going to feed someone else? var/vore_taste = null // What the character tastes like var/no_vore = FALSE // If the character/mob can vore. - var/openpanel = 0 // Is the vore panel open? + var/openpanel = FALSE // Is the vore panel open? var/absorbed = FALSE //are we absorbed? var/next_preyloop var/vore_init = FALSE //Has this mob's vore been initialized yet? @@ -23,16 +23,16 @@ M.verbs += /mob/living/proc/escapeOOC if(M.no_vore) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach. - return 1 + return TRUE M.verbs += /mob/living/proc/insidePanel //Tries to load prefs if a client is present otherwise gives freebie stomach - spawn(10 SECONDS) // long delay because the server delays in its startup. just on the safe side. + spawn(2 SECONDS) // long delay because the server delays in its startup. just on the safe side. if(M) M.init_vore() - //Return 1 to hook-caller - return 1 + //return TRUE to hook-caller + return TRUE /mob/living/proc/init_vore() vore_init = TRUE @@ -54,10 +54,10 @@ LAZYINITLIST(vore_organs) var/obj/belly/B = new /obj/belly(src) vore_selected = B - B.immutable = 1 + B.immutable = TRUE B.name = "Stomach" B.desc = "It appears to be rather warm and wet. Makes sense, considering it's inside [name]." - B.can_taste = 1 + B.can_taste = TRUE return TRUE // Handle being clicked, perhaps with something to devour @@ -84,7 +84,7 @@ return feed_self_to_grabbed(user, pred) - if(pred == user) //you click yourself + else if(pred == user) //you click yourself if(!is_vore_predator(src)) to_chat(user, "You aren't voracious enough.") return @@ -126,7 +126,7 @@ //Sanity if(!user || !prey || !pred || !istype(belly) || !(belly in pred.vore_organs)) testing("[user] attempted to feed [prey] to [pred], via [lowertext(belly.name)] but it went wrong.") - return FALSE + return if (!prey.devourable) to_chat(user, "This can't be eaten!") @@ -151,9 +151,14 @@ user.visible_message(attempt_msg) // Now give the prey time to escape... return if they did - var/swallow_time = delay || ishuman(prey) ? belly.human_prey_swallow_time : belly.nonhuman_prey_swallow_time + var/swallow_time + if(delay) + swallow_time = delay + else + swallow_time = istype(prey, /mob/living/carbon/human) ? belly.human_prey_swallow_time : belly.nonhuman_prey_swallow_time - if(!do_mob(src, user, swallow_time)) + //Timer and progress bar + if(!do_after(user, swallow_time, prey)) return FALSE // Prey escaped (or user disabled) before timer expired. if(!prey.Adjacent(user)) //double check'd just in case they moved during the timer and the do_mob didn't fail for whatever reason @@ -162,13 +167,6 @@ // If we got this far, nom successful! Announce it! user.visible_message(success_msg) - // incredibly contentious eating noises time - var/turf/source = get_turf(user) - var/sound/eating = GLOB.vore_sounds[belly.vore_sound] - for(var/mob/living/M in get_hearers_in_view(3, source)) - if(M.client && M.client.prefs.cit_toggles & EATING_NOISES) - SEND_SOUND(M, eating) - // Actually shove prey into the belly. belly.nom_mob(prey, user) stop_pulling() @@ -183,7 +181,7 @@ if(prey.ckey) prey_stat = prey.stat//only return this if they're not an unmonkey or whatever if(!prey.client)//if they disconnected, tell us - prey_braindead = 1 + prey_braindead = TRUE if (pred == user) message_admins("[ADMIN_LOOKUPFLW(pred)] ate [ADMIN_LOOKUPFLW(prey)][!prey_braindead ? "" : " (BRAINDEAD)"][prey_stat ? " (DEAD/UNCONSCIOUS)" : ""].") pred.log_message("[key_name(pred)] ate [key_name(prey)].", LOG_ATTACK) @@ -212,15 +210,15 @@ //Other overridden resists go here - return 0 + return FALSE // internal slimy button in case the loop stops playing but the player wants to hear it /mob/living/proc/preyloop_refresh() set name = "Internal loop refresh" set category = "Vore" + src.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case if(isbelly(loc)) - src.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case - var/sound/preyloop = sound('sound/vore/prey/loop.ogg', repeat = TRUE) + var/sound/preyloop = sound('sound/vore/prey/loop.ogg') SEND_SOUND(src, preyloop) else to_chat(src, "You aren't inside anything, you clod.") @@ -265,28 +263,28 @@ // /mob/living/proc/save_vore_prefs() if(!client || !client.prefs_vr) - return 0 + return FALSE if(!copy_to_prefs_vr()) - return 0 + return FALSE if(!client.prefs_vr.save_vore()) - return 0 + return FALSE - return 1 + return TRUE /mob/living/proc/apply_vore_prefs() if(!client || !client.prefs_vr) - return 0 + return FALSE if(!client.prefs_vr.load_vore()) - return 0 + return FALSE if(!copy_from_prefs_vr()) - return 0 + return FALSE - return 1 + return TRUE /mob/living/proc/copy_to_prefs_vr() if(!client || !client.prefs_vr) to_chat(src,"You attempted to save your vore prefs but somehow you're in this character without a client.prefs_vr variable. Tell a dev.") - return 0 + return FALSE var/datum/vore_preferences/P = client.prefs_vr @@ -302,7 +300,7 @@ P.belly_prefs = serialized - return 1 + return TRUE // // Proc for applying vore preferences, given bellies @@ -310,7 +308,7 @@ /mob/living/proc/copy_from_prefs_vr() if(!client || !client.prefs_vr) to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs_vr variable. Tell a dev.") - return 0 + return FALSE vorepref_init = TRUE var/datum/vore_preferences/P = client.prefs_vr @@ -325,7 +323,7 @@ for(var/entry in P.belly_prefs) list_to_object(entry,src) - return 1 + return TRUE // // Release everything in every vore organ diff --git a/modular_citadel/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore.dm similarity index 94% rename from modular_citadel/code/modules/vore/eating/vore_vr.dm rename to code/modules/vore/eating/vore.dm index dc813d70aa..a9b14dcdc8 100644 --- a/modular_citadel/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore.dm @@ -84,22 +84,22 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) /datum/vore_preferences/proc/load_vore() if(!client || !client_ckey) - return 0 //No client, how can we save? + return FALSE //No client, how can we save? if(!client.prefs || !client.prefs.default_slot) - return 0 //Need to know what character to load! + return FALSE //Need to know what character to load! slot = client.prefs.default_slot load_path(client_ckey,slot) - if(!path) return 0 //Path couldn't be set? + if(!path) return FALSE //Path couldn't be set? if(!fexists(path)) //Never saved before save_vore() //Make the file first - return 1 + return TRUE var/list/json_from_file = json_decode(file2text(path)) if(!json_from_file) - return 0 //My concern grows + return FALSE //My concern grows var/version = json_from_file["version"] json_from_file = patch_version(json_from_file,version) @@ -120,11 +120,11 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) if(isnull(belly_prefs)) belly_prefs = list() - return 1 + return TRUE /datum/vore_preferences/proc/save_vore() if(!path) - return 0 + return FALSE var/version = VORE_VERSION //For "good times" use in the future var/list/settings_list = list( @@ -140,7 +140,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) var/json_to_file = json_encode(settings_list) if(!json_to_file) testing("Saving: [path] failed jsonencode") - return 0 + return FALSE //Write it out //#ifdef RUST_G @@ -153,9 +153,9 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) //#endif if(!fexists(path)) testing("Saving: [path] failed file write") - return 0 + return FALSE - return 1 + return TRUE /* commented out list things "allowmobvore" = allowmobvore, diff --git a/modular_citadel/code/modules/vore/eating/voreitems.dm b/code/modules/vore/eating/voreitems.dm similarity index 100% rename from modular_citadel/code/modules/vore/eating/voreitems.dm rename to code/modules/vore/eating/voreitems.dm diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel.dm similarity index 92% rename from modular_citadel/code/modules/vore/eating/vorepanel_vr.dm rename to code/modules/vore/eating/vorepanel.dm index ae7da895a6..962fe54af7 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -21,10 +21,10 @@ picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) picker_holder.popup.set_content(dat) picker_holder.popup.open() - src.openpanel = 1 + src.openpanel = TRUE /mob/living/proc/updateVRPanel() //Panel popup update call from belly events. - if(src.openpanel == 1) + if(src.openpanel == TRUE) var/datum/vore_look/picker_holder = new() picker_holder.loop = picker_holder picker_holder.selected = vore_selected @@ -40,7 +40,7 @@ // /datum/vore_look var/obj/belly/selected - var/show_interacts = 0 + var/show_interacts = FALSE var/datum/browser/popup var/loop = null; // Magic self-reference to stop the handler from being GC'd before user takes action. @@ -163,6 +163,9 @@ //Belly Type button dat += "
Is Fleshy:" dat += "[selected.is_wet ? "Yes" : "No"]" + if(selected.is_wet) + dat += "
Internal loop for prey?:" + dat += "[selected.wet_loop ? "Yes" : "No"]" //Digest Mode Button dat += "
Belly Mode:" @@ -241,21 +244,19 @@ dat += "
" switch(user.digestable) if(TRUE) - dat += "Toggle Digestable (Currently: ON)" + dat += "
Toggle Digestable (Currently: ON)" if(FALSE) - dat += "Toggle Digestable (Currently: OFF)" - + dat += "
Toggle Digestable (Currently: OFF)" switch(user.devourable) if(TRUE) - dat += "
Toggle Devourable (Currently: ON)" + dat += "
Toggle Devourable (Currently: ON)" if(FALSE) - dat += "
Toggle Devourable (Currently: OFF)" - + dat += "
Toggle Devourable (Currently: OFF)" switch(user.feeding) if(TRUE) - dat += "
Toggle Feeding (Currently: ON)" + dat += "
Toggle Feeding (Currently: ON)" if(FALSE) - dat += "
Toggle Feeding (Currently: OFF)" + dat += "
Toggle Feeding (Currently: OFF)" //Returns the dat html to the vore_look return dat @@ -266,12 +267,12 @@ if(href_list["close"]) qdel(src) // Cleanup - user.openpanel = 0 + user.openpanel = FALSE return if(href_list["show_int"]) show_interacts = !show_interacts - return 1 //Force update + return TRUE //Force update if(href_list["int_help"]) alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ @@ -279,13 +280,13 @@ These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") - return 0 //Force update + return FALSE //Force update if(href_list["outsidepick"]) var/atom/movable/tgt = locate(href_list["outsidepick"]) var/obj/belly/OB = locate(href_list["outsidebelly"]) if(!(tgt in OB)) //Aren't here anymore, need to update menu. - return 1 + return TRUE var/intent = "Examine" if(istype(tgt,/mob/living)) @@ -298,7 +299,7 @@ if("Help Out") //Help the inside-mob out if(user.stat || user.absorbed || M.absorbed) to_chat(user,"You can't do that in your state!") - return 1 + return TRUE to_chat(user,"You begin to push [M] to freedom!") to_chat(M,"[usr] begins to push you to freedom!") @@ -317,11 +318,11 @@ if("Devour") //Eat the inside mob if(user.absorbed || user.stat) to_chat(user,"You can't do that in your state!") - return 1 + return TRUE if(!user.vore_selected) to_chat(user,"Pick a belly on yourself first!") - return 1 + return TRUE var/obj/belly/TB = user.vore_selected to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") @@ -339,7 +340,7 @@ var/obj/item/T = tgt if(!(tgt in OB)) //Doesn't exist anymore, update. - return 1 + return TRUE intent = alert("What do you want to do to that?","Query","Examine","Use Hand") switch(intent) if("Examine") @@ -348,7 +349,7 @@ if("Use Hand") if(user.stat) to_chat(user,"You can't do that in your state!") - return 1 + return TRUE user.ClickOn(T) sleep(5) //Seems to exit too fast for the panel to update @@ -361,23 +362,23 @@ intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all") switch(intent) if("Cancel") - return 0 + return FALSE if("Eject all") if(user.stat) to_chat(user,"You can't do that in your state!") - return 0 + return FALSE selected.release_all_contents() if("Move all") if(user.stat) to_chat(user,"You can't do that in your state!") - return 0 + return FALSE var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs if(!choice) - return 0 + return FALSE for(var/atom/movable/tgt in selected) to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!") @@ -385,7 +386,7 @@ var/atom/movable/tgt = locate(href_list["insidepick"]) if(!(tgt in selected)) //Old menu, needs updating because they aren't really there. - return 1 //Forces update + return TRUE //Forces update intent = "Examine" intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move") switch(intent) @@ -395,25 +396,25 @@ if("Eject") if(user.stat) to_chat(user,"You can't do that in your state!") - return 0 + return FALSE selected.release_specific_contents(tgt) if("Move") if(user.stat) to_chat(user,"You can't do that in your state!") - return 0 + return FALSE var/obj/belly/choice = input("Move [tgt] where?","Select Belly") as null|anything in user.vore_organs if(!choice || !(tgt in selected)) - return 0 + return FALSE to_chat(tgt,"You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(choice.name)]!") selected.transfer_contents(tgt, choice) if(href_list["newbelly"]) if(user.vore_organs.len >= BELLIES_MAX) - return 0 + return FALSE var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null) @@ -430,7 +431,7 @@ if(failure_msg) //Something went wrong. alert(user,failure_msg,"Error!") - return 0 + return FALSE var/obj/belly/NB = new(user) NB.name = new_name @@ -459,19 +460,22 @@ if(failure_msg) //Something went wrong. alert(user,failure_msg,"Error!") - return 0 + return FALSE selected.name = new_name if(href_list["b_wetness"]) selected.is_wet = !selected.is_wet + if(href_list["b_wetloop"]) + selected.wet_loop = !selected.wet_loop + if(href_list["b_mode"]) var/list/menu_list = selected.digest_modes var/new_mode = input("Choose Mode (currently [selected.digest_mode])") as null|anything in menu_list if(!new_mode) - return 0 + return FALSE selected.digest_mode = new_mode if(href_list["b_desc"]) @@ -539,12 +543,12 @@ if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN) alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error") - return 0 + return FALSE selected.vore_verb = new_verb if(href_list["b_release"]) - var/choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in GLOB.release_sounds + var/choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in GLOB.pred_release_sounds if(!choice) return @@ -552,12 +556,12 @@ selected.release_sound = choice if(href_list["b_releasesoundtest"]) - var/sound/releasetest = GLOB.release_sounds[selected.release_sound] + var/sound/releasetest = GLOB.prey_release_sounds[selected.release_sound] if(releasetest) SEND_SOUND(user, releasetest) if(href_list["b_sound"]) - var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in GLOB.vore_sounds + var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in GLOB.pred_vore_sounds if(!choice) return @@ -565,7 +569,7 @@ selected.vore_sound = choice if(href_list["b_soundtest"]) - var/sound/voretest = GLOB.vore_sounds[selected.vore_sound] + var/sound/voretest = GLOB.prey_vore_sounds[selected.vore_sound] if(voretest) SEND_SOUND(user, voretest) @@ -586,17 +590,17 @@ selected.bulge_size = (new_bulge/100) if(href_list["b_escapable"]) - if(selected.escapable == 0) //Possibly escapable and special interactions. - selected.escapable = 1 + if(selected.escapable == FALSE) //Possibly escapable and special interactions. + selected.escapable = TRUE to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings.") - else if(selected.escapable == 1) //Never escapable. - selected.escapable = 0 + else if(selected.escapable == TRUE) //Never escapable. + selected.escapable = FALSE to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)].") - show_interacts = 0 //Force the hiding of the panel + show_interacts = FALSE //Force the hiding of the panel else alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 - selected.escapable = 0 - show_interacts = 0 //Force the hiding of the panel + selected.escapable = FALSE + show_interacts = FALSE //Force the hiding of the panel if(href_list["b_escapechance"]) var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null @@ -617,7 +621,7 @@ var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected) if(!choice) //They cancelled, no changes - return 0 + return FALSE else if(choice == "None - Remove") selected.transferlocation = null else @@ -636,7 +640,7 @@ if(href_list["b_del"]) var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel") if(!alert == "Delete") - return 0 + return FALSE var/failure_msg = "" @@ -657,7 +661,7 @@ if(failure_msg) alert(user,failure_msg,"Error!") - return 0 + return FALSE qdel(selected) selected = user.vore_organs[1] @@ -674,7 +678,7 @@ if(href_list["applyprefs"]) var/alert = alert("Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation","Reload","Cancel") if(!alert == "Reload") - return 0 + return FALSE if(!user.apply_vore_prefs()) alert("ERROR: Vore preferences failed to apply!","Error") else @@ -683,19 +687,19 @@ if(href_list["setflavor"]) var/new_flavor = html_encode(input(usr,"What your character tastes like (40ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",user.vore_taste) as text|null) if(!new_flavor) - return 0 + return FALSE new_flavor = readd_quotes(new_flavor) if(length(new_flavor) > FLAVOR_MAX) alert("Entered flavor/taste text too long. [FLAVOR_MAX] character limit.","Error!") - return 0 + return FALSE user.vore_taste = new_flavor if(href_list["toggledg"]) var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable to all mobs. Digesting you is currently: [user.digestable ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion") switch(choice) if("Cancel") - return 0 + return FALSE if("Allow Digestion") user.digestable = TRUE if("Prevent Digestion") @@ -708,7 +712,7 @@ var/choice = alert(user, "This button is for those who don't like vore at all. Devouring you is currently: [user.devourable ? "Allowed" : "Prevented"]", "", "Allow Devourment", "Cancel", "Prevent Devourment") switch(choice) if("Cancel") - return 0 + return FALSE if("Allow Devourment") user.devourable = TRUE if("Prevent Devourment") @@ -721,7 +725,7 @@ var/choice = alert(user, "This button is to toggle your ability to be fed to others. Feeding predators is currently: [user.feeding ? "Allowed" : "Prevented"]", "", "Allow Feeding", "Cancel", "Prevent Feeding") switch(choice) if("Cancel") - return 0 + return FALSE if("Allow Feeding") user.feeding = TRUE if("Prevent Feeding") @@ -731,4 +735,4 @@ user.client.prefs_vr.feeding = user.feeding //Refresh when interacted with, returning 1 makes vore_look.Topic update - return 1 \ No newline at end of file + return TRUE \ No newline at end of file diff --git a/modular_citadel/code/modules/vore/hook-defs_vr.dm b/code/modules/vore/hook-defs.dm similarity index 100% rename from modular_citadel/code/modules/vore/hook-defs_vr.dm rename to code/modules/vore/hook-defs.dm diff --git a/modular_citadel/code/modules/vore/persistence.dm b/code/modules/vore/persistence.dm similarity index 100% rename from modular_citadel/code/modules/vore/persistence.dm rename to code/modules/vore/persistence.dm diff --git a/modular_citadel/code/modules/vore/resizing/grav_pull_vr.dm b/code/modules/vore/resizing/grav_pull_vr.dm similarity index 100% rename from modular_citadel/code/modules/vore/resizing/grav_pull_vr.dm rename to code/modules/vore/resizing/grav_pull_vr.dm diff --git a/modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm similarity index 100% rename from modular_citadel/code/modules/vore/resizing/holder_micro_vr.dm rename to code/modules/vore/resizing/holder_micro_vr.dm diff --git a/modular_citadel/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm similarity index 100% rename from modular_citadel/code/modules/vore/resizing/resize_vr.dm rename to code/modules/vore/resizing/resize_vr.dm diff --git a/modular_citadel/code/modules/vore/resizing/sizechemicals.dm b/code/modules/vore/resizing/sizechemicals.dm similarity index 100% rename from modular_citadel/code/modules/vore/resizing/sizechemicals.dm rename to code/modules/vore/resizing/sizechemicals.dm diff --git a/modular_citadel/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm similarity index 100% rename from modular_citadel/code/modules/vore/resizing/sizegun_vr.dm rename to code/modules/vore/resizing/sizegun_vr.dm diff --git a/modular_citadel/code/modules/vore/trycatch_vr.dm b/code/modules/vore/trycatch.dm similarity index 100% rename from modular_citadel/code/modules/vore/trycatch_vr.dm rename to code/modules/vore/trycatch.dm diff --git a/sound/vore/LICENSE.txt b/sound/vore/LICENSE.txt index ce95152f5d..a1e539b762 100644 --- a/sound/vore/LICENSE.txt +++ b/sound/vore/LICENSE.txt @@ -1 +1,3 @@ -Audio work within these folders are © Poojawa 2017, all rights reserved. \ No newline at end of file +Audio work within these folders are © Poojawa 2017, all rights reserved. + +Artist work by ChemicalCrux \ No newline at end of file diff --git a/sound/vore/pred/death_01.ogg b/sound/vore/pred/death_01.ogg index 63ace65beb..231884ef54 100644 Binary files a/sound/vore/pred/death_01.ogg and b/sound/vore/pred/death_01.ogg differ diff --git a/sound/vore/pred/death_02.ogg b/sound/vore/pred/death_02.ogg index 4185f6fb20..5de3e4148c 100644 Binary files a/sound/vore/pred/death_02.ogg and b/sound/vore/pred/death_02.ogg differ diff --git a/sound/vore/pred/death_03.ogg b/sound/vore/pred/death_03.ogg index a9e5d769df..4ffa271af7 100644 Binary files a/sound/vore/pred/death_03.ogg and b/sound/vore/pred/death_03.ogg differ diff --git a/sound/vore/pred/death_04.ogg b/sound/vore/pred/death_04.ogg index 4deb6d5ec8..a4c0e91be6 100644 Binary files a/sound/vore/pred/death_04.ogg and b/sound/vore/pred/death_04.ogg differ diff --git a/sound/vore/pred/death_05.ogg b/sound/vore/pred/death_05.ogg index 9c359627c3..aeec557758 100644 Binary files a/sound/vore/pred/death_05.ogg and b/sound/vore/pred/death_05.ogg differ diff --git a/sound/vore/pred/death_06.ogg b/sound/vore/pred/death_06.ogg index 3d0fd0f58c..f5b077ebd4 100644 Binary files a/sound/vore/pred/death_06.ogg and b/sound/vore/pred/death_06.ogg differ diff --git a/sound/vore/pred/death_07.ogg b/sound/vore/pred/death_07.ogg index 98454abac9..afaaab65bb 100644 Binary files a/sound/vore/pred/death_07.ogg and b/sound/vore/pred/death_07.ogg differ diff --git a/sound/vore/pred/death_08.ogg b/sound/vore/pred/death_08.ogg index 068d6b8355..b1b8479ea8 100644 Binary files a/sound/vore/pred/death_08.ogg and b/sound/vore/pred/death_08.ogg differ diff --git a/sound/vore/pred/death_09.ogg b/sound/vore/pred/death_09.ogg index a4ad821c16..1454deafad 100644 Binary files a/sound/vore/pred/death_09.ogg and b/sound/vore/pred/death_09.ogg differ diff --git a/sound/vore/pred/death_10.ogg b/sound/vore/pred/death_10.ogg index b67868442f..f0e23e1d54 100644 Binary files a/sound/vore/pred/death_10.ogg and b/sound/vore/pred/death_10.ogg differ diff --git a/sound/vore/pred/death_11.ogg b/sound/vore/pred/death_11.ogg index db125edf80..43e80467e0 100644 Binary files a/sound/vore/pred/death_11.ogg and b/sound/vore/pred/death_11.ogg differ diff --git a/sound/vore/pred/death_12.ogg b/sound/vore/pred/death_12.ogg index ab4c548744..5ec6029998 100644 Binary files a/sound/vore/pred/death_12.ogg and b/sound/vore/pred/death_12.ogg differ diff --git a/sound/vore/pred/death_13.ogg b/sound/vore/pred/death_13.ogg index 008941942f..9073bac4f2 100644 Binary files a/sound/vore/pred/death_13.ogg and b/sound/vore/pred/death_13.ogg differ diff --git a/sound/vore/pred/digest_01.ogg b/sound/vore/pred/digest_01.ogg index 09e6805e90..20b6d1d43a 100644 Binary files a/sound/vore/pred/digest_01.ogg and b/sound/vore/pred/digest_01.ogg differ diff --git a/sound/vore/pred/digest_02.ogg b/sound/vore/pred/digest_02.ogg index d6852aeb9a..7fc41e2305 100644 Binary files a/sound/vore/pred/digest_02.ogg and b/sound/vore/pred/digest_02.ogg differ diff --git a/sound/vore/pred/digest_03.ogg b/sound/vore/pred/digest_03.ogg index 9e85de831e..98b032c7cb 100644 Binary files a/sound/vore/pred/digest_03.ogg and b/sound/vore/pred/digest_03.ogg differ diff --git a/sound/vore/pred/digest_04.ogg b/sound/vore/pred/digest_04.ogg index b35da498d3..ed494e813c 100644 Binary files a/sound/vore/pred/digest_04.ogg and b/sound/vore/pred/digest_04.ogg differ diff --git a/sound/vore/pred/digest_05.ogg b/sound/vore/pred/digest_05.ogg index 60ea067a91..53bb4814f7 100644 Binary files a/sound/vore/pred/digest_05.ogg and b/sound/vore/pred/digest_05.ogg differ diff --git a/sound/vore/pred/digest_06.ogg b/sound/vore/pred/digest_06.ogg index 4dcf50b699..787c336282 100644 Binary files a/sound/vore/pred/digest_06.ogg and b/sound/vore/pred/digest_06.ogg differ diff --git a/sound/vore/pred/digest_07.ogg b/sound/vore/pred/digest_07.ogg index 4d8fefd100..f63d4c633a 100644 Binary files a/sound/vore/pred/digest_07.ogg and b/sound/vore/pred/digest_07.ogg differ diff --git a/sound/vore/pred/digest_08.ogg b/sound/vore/pred/digest_08.ogg index da8b3fa963..dbbda3b517 100644 Binary files a/sound/vore/pred/digest_08.ogg and b/sound/vore/pred/digest_08.ogg differ diff --git a/sound/vore/pred/digest_09.ogg b/sound/vore/pred/digest_09.ogg index 072efb17fb..1877f1ca05 100644 Binary files a/sound/vore/pred/digest_09.ogg and b/sound/vore/pred/digest_09.ogg differ diff --git a/sound/vore/pred/digest_10.ogg b/sound/vore/pred/digest_10.ogg index fb69e4fd1a..3e22b8b2fb 100644 Binary files a/sound/vore/pred/digest_10.ogg and b/sound/vore/pred/digest_10.ogg differ diff --git a/sound/vore/pred/digest_11.ogg b/sound/vore/pred/digest_11.ogg index 611882b6d3..089d4ee7e4 100644 Binary files a/sound/vore/pred/digest_11.ogg and b/sound/vore/pred/digest_11.ogg differ diff --git a/sound/vore/pred/digest_12.ogg b/sound/vore/pred/digest_12.ogg index c9e004afb7..76a9134646 100644 Binary files a/sound/vore/pred/digest_12.ogg and b/sound/vore/pred/digest_12.ogg differ diff --git a/sound/vore/pred/digest_13.ogg b/sound/vore/pred/digest_13.ogg index 45a9d59f52..12b1c6bb18 100644 Binary files a/sound/vore/pred/digest_13.ogg and b/sound/vore/pred/digest_13.ogg differ diff --git a/sound/vore/pred/digest_14.ogg b/sound/vore/pred/digest_14.ogg index 9815d172ca..c68231585c 100644 Binary files a/sound/vore/pred/digest_14.ogg and b/sound/vore/pred/digest_14.ogg differ diff --git a/sound/vore/pred/digest_15.ogg b/sound/vore/pred/digest_15.ogg index d2e44ecc86..32aecca35b 100644 Binary files a/sound/vore/pred/digest_15.ogg and b/sound/vore/pred/digest_15.ogg differ diff --git a/sound/vore/pred/digest_16.ogg b/sound/vore/pred/digest_16.ogg index 84faa4bd99..d112913570 100644 Binary files a/sound/vore/pred/digest_16.ogg and b/sound/vore/pred/digest_16.ogg differ diff --git a/sound/vore/pred/digest_17.ogg b/sound/vore/pred/digest_17.ogg index 0dd6fd4989..d23c4c6ddc 100644 Binary files a/sound/vore/pred/digest_17.ogg and b/sound/vore/pred/digest_17.ogg differ diff --git a/sound/vore/pred/digest_18.ogg b/sound/vore/pred/digest_18.ogg index a9fa5b51f9..ae8ac9f74f 100644 Binary files a/sound/vore/pred/digest_18.ogg and b/sound/vore/pred/digest_18.ogg differ diff --git a/sound/vore/pred/escape.ogg b/sound/vore/pred/escape.ogg index a823fc1284..fc093a5acf 100644 Binary files a/sound/vore/pred/escape.ogg and b/sound/vore/pred/escape.ogg differ diff --git a/sound/vore/pred/insertion_01.ogg b/sound/vore/pred/insertion_01.ogg index 6a8e7e3ff0..4ca8b6e425 100644 Binary files a/sound/vore/pred/insertion_01.ogg and b/sound/vore/pred/insertion_01.ogg differ diff --git a/sound/vore/pred/insertion_02.ogg b/sound/vore/pred/insertion_02.ogg index c6e4f96d94..a23cfaf201 100644 Binary files a/sound/vore/pred/insertion_02.ogg and b/sound/vore/pred/insertion_02.ogg differ diff --git a/sound/vore/pred/loop.ogg b/sound/vore/pred/loop.ogg index afd6e6003d..5f0994251a 100644 Binary files a/sound/vore/pred/loop.ogg and b/sound/vore/pred/loop.ogg differ diff --git a/sound/vore/pred/schlorp.ogg b/sound/vore/pred/schlorp.ogg index c9cd5a3413..eefb9dd71e 100644 Binary files a/sound/vore/pred/schlorp.ogg and b/sound/vore/pred/schlorp.ogg differ diff --git a/sound/vore/pred/squish _02.ogg b/sound/vore/pred/squish _02.ogg index 2e3effb4d7..846f0a2ece 100644 Binary files a/sound/vore/pred/squish _02.ogg and b/sound/vore/pred/squish _02.ogg differ diff --git a/sound/vore/pred/squish _03.ogg b/sound/vore/pred/squish _03.ogg index 24b5f9ce02..568aa81a3d 100644 Binary files a/sound/vore/pred/squish _03.ogg and b/sound/vore/pred/squish _03.ogg differ diff --git a/sound/vore/pred/squish_01.ogg b/sound/vore/pred/squish_01.ogg index 17dc83ed98..bc014b811d 100644 Binary files a/sound/vore/pred/squish_01.ogg and b/sound/vore/pred/squish_01.ogg differ diff --git a/sound/vore/pred/squish_02.ogg b/sound/vore/pred/squish_02.ogg index febc4c106e..8d92bfd19e 100644 Binary files a/sound/vore/pred/squish_02.ogg and b/sound/vore/pred/squish_02.ogg differ diff --git a/sound/vore/pred/squish_03.ogg b/sound/vore/pred/squish_03.ogg index c1b544806b..f62bf7ff60 100644 Binary files a/sound/vore/pred/squish_03.ogg and b/sound/vore/pred/squish_03.ogg differ diff --git a/sound/vore/pred/squish_04.ogg b/sound/vore/pred/squish_04.ogg index e764ba051b..47037d9a3a 100644 Binary files a/sound/vore/pred/squish_04.ogg and b/sound/vore/pred/squish_04.ogg differ diff --git a/sound/vore/pred/stomachmove.ogg b/sound/vore/pred/stomachmove.ogg index 3a9ed98dae..4e11cc03ed 100644 Binary files a/sound/vore/pred/stomachmove.ogg and b/sound/vore/pred/stomachmove.ogg differ diff --git a/sound/vore/pred/struggle_01.ogg b/sound/vore/pred/struggle_01.ogg index aea5581889..96c569b0f9 100644 Binary files a/sound/vore/pred/struggle_01.ogg and b/sound/vore/pred/struggle_01.ogg differ diff --git a/sound/vore/pred/struggle_02.ogg b/sound/vore/pred/struggle_02.ogg index 526abd0a9e..2f0d3324f1 100644 Binary files a/sound/vore/pred/struggle_02.ogg and b/sound/vore/pred/struggle_02.ogg differ diff --git a/sound/vore/pred/struggle_03.ogg b/sound/vore/pred/struggle_03.ogg index f3300a8bf3..9632817010 100644 Binary files a/sound/vore/pred/struggle_03.ogg and b/sound/vore/pred/struggle_03.ogg differ diff --git a/sound/vore/pred/struggle_04.ogg b/sound/vore/pred/struggle_04.ogg index 9efa23eaa9..7a30de3baf 100644 Binary files a/sound/vore/pred/struggle_04.ogg and b/sound/vore/pred/struggle_04.ogg differ diff --git a/sound/vore/pred/struggle_05.ogg b/sound/vore/pred/struggle_05.ogg index ec4d006880..0bae93d50f 100644 Binary files a/sound/vore/pred/struggle_05.ogg and b/sound/vore/pred/struggle_05.ogg differ diff --git a/sound/vore/pred/swallow_01.ogg b/sound/vore/pred/swallow_01.ogg index 1767daf0e8..45a0008586 100644 Binary files a/sound/vore/pred/swallow_01.ogg and b/sound/vore/pred/swallow_01.ogg differ diff --git a/sound/vore/pred/swallow_02.ogg b/sound/vore/pred/swallow_02.ogg index dd906bfad8..8f9bcb2e84 100644 Binary files a/sound/vore/pred/swallow_02.ogg and b/sound/vore/pred/swallow_02.ogg differ diff --git a/sound/vore/pred/taurswallow.ogg b/sound/vore/pred/taurswallow.ogg index 697947fb49..c700f71803 100644 Binary files a/sound/vore/pred/taurswallow.ogg and b/sound/vore/pred/taurswallow.ogg differ diff --git a/sound/vore/prey/death_01.ogg b/sound/vore/prey/death_01.ogg index fb73f520d8..539a873a7e 100644 Binary files a/sound/vore/prey/death_01.ogg and b/sound/vore/prey/death_01.ogg differ diff --git a/sound/vore/prey/death_02.ogg b/sound/vore/prey/death_02.ogg index 96a4004691..4dd1a285ea 100644 Binary files a/sound/vore/prey/death_02.ogg and b/sound/vore/prey/death_02.ogg differ diff --git a/sound/vore/prey/death_03.ogg b/sound/vore/prey/death_03.ogg index faae0c0cad..30a3622c86 100644 Binary files a/sound/vore/prey/death_03.ogg and b/sound/vore/prey/death_03.ogg differ diff --git a/sound/vore/prey/death_04.ogg b/sound/vore/prey/death_04.ogg index 7a7230e11c..ff983c2c31 100644 Binary files a/sound/vore/prey/death_04.ogg and b/sound/vore/prey/death_04.ogg differ diff --git a/sound/vore/prey/death_05.ogg b/sound/vore/prey/death_05.ogg index 91e351a62c..44b8603048 100644 Binary files a/sound/vore/prey/death_05.ogg and b/sound/vore/prey/death_05.ogg differ diff --git a/sound/vore/prey/death_06.ogg b/sound/vore/prey/death_06.ogg index 59f5f5cde9..836a4fd18c 100644 Binary files a/sound/vore/prey/death_06.ogg and b/sound/vore/prey/death_06.ogg differ diff --git a/sound/vore/prey/death_07.ogg b/sound/vore/prey/death_07.ogg index 6a8ef68561..2406fea727 100644 Binary files a/sound/vore/prey/death_07.ogg and b/sound/vore/prey/death_07.ogg differ diff --git a/sound/vore/prey/death_08.ogg b/sound/vore/prey/death_08.ogg index 1991706d94..0d7627dfae 100644 Binary files a/sound/vore/prey/death_08.ogg and b/sound/vore/prey/death_08.ogg differ diff --git a/sound/vore/prey/death_09.ogg b/sound/vore/prey/death_09.ogg index c209e5f112..fa00a29d31 100644 Binary files a/sound/vore/prey/death_09.ogg and b/sound/vore/prey/death_09.ogg differ diff --git a/sound/vore/prey/death_10.ogg b/sound/vore/prey/death_10.ogg index ccf51389f1..738e7cf909 100644 Binary files a/sound/vore/prey/death_10.ogg and b/sound/vore/prey/death_10.ogg differ diff --git a/sound/vore/prey/death_11.ogg b/sound/vore/prey/death_11.ogg index b8089d0d88..bfd47945ae 100644 Binary files a/sound/vore/prey/death_11.ogg and b/sound/vore/prey/death_11.ogg differ diff --git a/sound/vore/prey/death_12.ogg b/sound/vore/prey/death_12.ogg index b39a17b9aa..e6e800b2da 100644 Binary files a/sound/vore/prey/death_12.ogg and b/sound/vore/prey/death_12.ogg differ diff --git a/sound/vore/prey/death_13.ogg b/sound/vore/prey/death_13.ogg index 375e1ec72f..c9b79887d7 100644 Binary files a/sound/vore/prey/death_13.ogg and b/sound/vore/prey/death_13.ogg differ diff --git a/sound/vore/prey/digest_01.ogg b/sound/vore/prey/digest_01.ogg index 0340773865..a1d13f7fb7 100644 Binary files a/sound/vore/prey/digest_01.ogg and b/sound/vore/prey/digest_01.ogg differ diff --git a/sound/vore/prey/digest_02.ogg b/sound/vore/prey/digest_02.ogg index 837e894f80..443d23c194 100644 Binary files a/sound/vore/prey/digest_02.ogg and b/sound/vore/prey/digest_02.ogg differ diff --git a/sound/vore/prey/digest_03.ogg b/sound/vore/prey/digest_03.ogg index 6f5db33b78..eb798b66ff 100644 Binary files a/sound/vore/prey/digest_03.ogg and b/sound/vore/prey/digest_03.ogg differ diff --git a/sound/vore/prey/digest_04.ogg b/sound/vore/prey/digest_04.ogg index b4184cd2a9..a2c2c3e1ac 100644 Binary files a/sound/vore/prey/digest_04.ogg and b/sound/vore/prey/digest_04.ogg differ diff --git a/sound/vore/prey/digest_05.ogg b/sound/vore/prey/digest_05.ogg index 79209df1f5..752a6d48f3 100644 Binary files a/sound/vore/prey/digest_05.ogg and b/sound/vore/prey/digest_05.ogg differ diff --git a/sound/vore/prey/digest_06.ogg b/sound/vore/prey/digest_06.ogg index 193167c50d..f2e80b919f 100644 Binary files a/sound/vore/prey/digest_06.ogg and b/sound/vore/prey/digest_06.ogg differ diff --git a/sound/vore/prey/digest_07.ogg b/sound/vore/prey/digest_07.ogg index 1092c3d5e0..6a2ff70ff8 100644 Binary files a/sound/vore/prey/digest_07.ogg and b/sound/vore/prey/digest_07.ogg differ diff --git a/sound/vore/prey/digest_08.ogg b/sound/vore/prey/digest_08.ogg index ef6aa1dcab..4e55f4671d 100644 Binary files a/sound/vore/prey/digest_08.ogg and b/sound/vore/prey/digest_08.ogg differ diff --git a/sound/vore/prey/digest_09.ogg b/sound/vore/prey/digest_09.ogg index db0a07d2b8..452e6b4a2e 100644 Binary files a/sound/vore/prey/digest_09.ogg and b/sound/vore/prey/digest_09.ogg differ diff --git a/sound/vore/prey/digest_10.ogg b/sound/vore/prey/digest_10.ogg index 788350acc6..4c5dc2e333 100644 Binary files a/sound/vore/prey/digest_10.ogg and b/sound/vore/prey/digest_10.ogg differ diff --git a/sound/vore/prey/digest_11.ogg b/sound/vore/prey/digest_11.ogg index 9f00271cd3..e94c0af656 100644 Binary files a/sound/vore/prey/digest_11.ogg and b/sound/vore/prey/digest_11.ogg differ diff --git a/sound/vore/prey/digest_12.ogg b/sound/vore/prey/digest_12.ogg index 4a7e360688..cb212fed1c 100644 Binary files a/sound/vore/prey/digest_12.ogg and b/sound/vore/prey/digest_12.ogg differ diff --git a/sound/vore/prey/digest_13.ogg b/sound/vore/prey/digest_13.ogg index 890c65ab08..9fd292184e 100644 Binary files a/sound/vore/prey/digest_13.ogg and b/sound/vore/prey/digest_13.ogg differ diff --git a/sound/vore/prey/digest_14.ogg b/sound/vore/prey/digest_14.ogg index de54440ea5..24279d4712 100644 Binary files a/sound/vore/prey/digest_14.ogg and b/sound/vore/prey/digest_14.ogg differ diff --git a/sound/vore/prey/digest_15.ogg b/sound/vore/prey/digest_15.ogg index 52ad557e84..2bf555ba41 100644 Binary files a/sound/vore/prey/digest_15.ogg and b/sound/vore/prey/digest_15.ogg differ diff --git a/sound/vore/prey/digest_16.ogg b/sound/vore/prey/digest_16.ogg index f2ff139651..98edd6fb61 100644 Binary files a/sound/vore/prey/digest_16.ogg and b/sound/vore/prey/digest_16.ogg differ diff --git a/sound/vore/prey/digest_17.ogg b/sound/vore/prey/digest_17.ogg index fa8ac42ae4..2ff5c173e1 100644 Binary files a/sound/vore/prey/digest_17.ogg and b/sound/vore/prey/digest_17.ogg differ diff --git a/sound/vore/prey/digest_18.ogg b/sound/vore/prey/digest_18.ogg index f6fa631ad3..6a1ae78fb8 100644 Binary files a/sound/vore/prey/digest_18.ogg and b/sound/vore/prey/digest_18.ogg differ diff --git a/sound/vore/prey/escape.ogg b/sound/vore/prey/escape.ogg index 9947f53013..621997a56d 100644 Binary files a/sound/vore/prey/escape.ogg and b/sound/vore/prey/escape.ogg differ diff --git a/sound/vore/prey/insertion_01.ogg b/sound/vore/prey/insertion_01.ogg index e8ec89cd9e..5a3b942bb3 100644 Binary files a/sound/vore/prey/insertion_01.ogg and b/sound/vore/prey/insertion_01.ogg differ diff --git a/sound/vore/prey/insertion_02.ogg b/sound/vore/prey/insertion_02.ogg index e21b6b23e8..2d35094522 100644 Binary files a/sound/vore/prey/insertion_02.ogg and b/sound/vore/prey/insertion_02.ogg differ diff --git a/sound/vore/prey/loop.ogg b/sound/vore/prey/loop.ogg index a6a040e501..1584482d92 100644 Binary files a/sound/vore/prey/loop.ogg and b/sound/vore/prey/loop.ogg differ diff --git a/sound/vore/prey/schlorp.ogg b/sound/vore/prey/schlorp.ogg index c9cd5a3413..d1895ee26a 100644 Binary files a/sound/vore/prey/schlorp.ogg and b/sound/vore/prey/schlorp.ogg differ diff --git a/sound/vore/prey/squish_01.ogg b/sound/vore/prey/squish_01.ogg index d1b3285381..2785a4a080 100644 Binary files a/sound/vore/prey/squish_01.ogg and b/sound/vore/prey/squish_01.ogg differ diff --git a/sound/vore/prey/squish_02.ogg b/sound/vore/prey/squish_02.ogg index f754a258f4..f5671f7165 100644 Binary files a/sound/vore/prey/squish_02.ogg and b/sound/vore/prey/squish_02.ogg differ diff --git a/sound/vore/prey/squish_03.ogg b/sound/vore/prey/squish_03.ogg index 9a01dcd2e9..1e8f2bb896 100644 Binary files a/sound/vore/prey/squish_03.ogg and b/sound/vore/prey/squish_03.ogg differ diff --git a/sound/vore/prey/squish_04.ogg b/sound/vore/prey/squish_04.ogg index d7c96b5bee..2e618890a9 100644 Binary files a/sound/vore/prey/squish_04.ogg and b/sound/vore/prey/squish_04.ogg differ diff --git a/sound/vore/prey/stomachmove.ogg b/sound/vore/prey/stomachmove.ogg index 1a32c7a217..e4e004b072 100644 Binary files a/sound/vore/prey/stomachmove.ogg and b/sound/vore/prey/stomachmove.ogg differ diff --git a/sound/vore/prey/struggle_01.ogg b/sound/vore/prey/struggle_01.ogg index ca90ed4f19..de0f3ad8bd 100644 Binary files a/sound/vore/prey/struggle_01.ogg and b/sound/vore/prey/struggle_01.ogg differ diff --git a/sound/vore/prey/struggle_02.ogg b/sound/vore/prey/struggle_02.ogg index 711c488db2..2695ab0adf 100644 Binary files a/sound/vore/prey/struggle_02.ogg and b/sound/vore/prey/struggle_02.ogg differ diff --git a/sound/vore/prey/struggle_03.ogg b/sound/vore/prey/struggle_03.ogg index d7e4e5f0bb..17dd8bec8a 100644 Binary files a/sound/vore/prey/struggle_03.ogg and b/sound/vore/prey/struggle_03.ogg differ diff --git a/sound/vore/prey/struggle_04.ogg b/sound/vore/prey/struggle_04.ogg index 4e6532a0fc..8631853509 100644 Binary files a/sound/vore/prey/struggle_04.ogg and b/sound/vore/prey/struggle_04.ogg differ diff --git a/sound/vore/prey/struggle_05.ogg b/sound/vore/prey/struggle_05.ogg index 6399d69adc..233addec0b 100644 Binary files a/sound/vore/prey/struggle_05.ogg and b/sound/vore/prey/struggle_05.ogg differ diff --git a/sound/vore/prey/swallow_01.ogg b/sound/vore/prey/swallow_01.ogg index 86e14ef7af..3da3fef66a 100644 Binary files a/sound/vore/prey/swallow_01.ogg and b/sound/vore/prey/swallow_01.ogg differ diff --git a/sound/vore/prey/swallow_02.ogg b/sound/vore/prey/swallow_02.ogg index dbfad7750a..30d9a4e44d 100644 Binary files a/sound/vore/prey/swallow_02.ogg and b/sound/vore/prey/swallow_02.ogg differ diff --git a/sound/vore/prey/taurswallow.ogg b/sound/vore/prey/taurswallow.ogg index 925ac9229c..f5b5706b36 100644 Binary files a/sound/vore/prey/taurswallow.ogg and b/sound/vore/prey/taurswallow.ogg differ diff --git a/tgstation.dme b/tgstation.dme index b2a58fe27f..eeaaad2829 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2147,6 +2147,7 @@ #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" #include "code\modules\mob\living\simple_animal\simple_animal_vr.dm" +#include "code\modules\mob\living\simple_animal\simplemob_vore_values.dm" #include "code\modules\mob\living\simple_animal\spawner.dm" #include "code\modules\mob\living\simple_animal\status_procs.dm" #include "code\modules\mob\living\simple_animal\bot\bot.dm" @@ -2890,6 +2891,17 @@ #include "code\modules\vending\toys.dm" #include "code\modules\vending\wardrobes.dm" #include "code\modules\vending\youtool.dm" +#include "code\modules\vore\hook-defs.dm" +#include "code\modules\vore\persistence.dm" +#include "code\modules\vore\trycatch.dm" +#include "code\modules\vore\eating\belly_dat_vr.dm" +#include "code\modules\vore\eating\belly_obj.dm" +#include "code\modules\vore\eating\bellymodes.dm" +#include "code\modules\vore\eating\digest_act.dm" +#include "code\modules\vore\eating\living.dm" +#include "code\modules\vore\eating\vore.dm" +#include "code\modules\vore\eating\voreitems.dm" +#include "code\modules\vore\eating\vorepanel.dm" #include "code\modules\VR\vr_mob.dm" #include "code\modules\VR\vr_sleeper.dm" #include "code\modules\zombie\items.dm" @@ -3070,7 +3082,6 @@ #include "modular_citadel\code\modules\mob\living\silicon\robot\robot_movement.dm" #include "modular_citadel\code\modules\mob\living\simple_animal\banana_spider.dm" #include "modular_citadel\code\modules\mob\living\simple_animal\kiwi.dm" -#include "modular_citadel\code\modules\mob\living\simple_animal\simplemob_vore_values.dm" #include "modular_citadel\code\modules\power\lighting.dm" #include "modular_citadel\code\modules\projectiles\gun.dm" #include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" @@ -3112,16 +3123,5 @@ #include "modular_citadel\code\modules\research\techweb\_techweb.dm" #include "modular_citadel\code\modules\research\xenobiology\xenobio_camera.dm" #include "modular_citadel\code\modules\vehicles\secway.dm" -#include "modular_citadel\code\modules\vore\hook-defs_vr.dm" -#include "modular_citadel\code\modules\vore\persistence.dm" -#include "modular_citadel\code\modules\vore\trycatch_vr.dm" -#include "modular_citadel\code\modules\vore\eating\belly_dat_vr.dm" -#include "modular_citadel\code\modules\vore\eating\belly_obj_vr.dm" -#include "modular_citadel\code\modules\vore\eating\bellymodes_vr.dm" -#include "modular_citadel\code\modules\vore\eating\digest_act_vr.dm" -#include "modular_citadel\code\modules\vore\eating\living_vr.dm" -#include "modular_citadel\code\modules\vore\eating\vore_vr.dm" -#include "modular_citadel\code\modules\vore\eating\voreitems.dm" -#include "modular_citadel\code\modules\vore\eating\vorepanel_vr.dm" #include "modular_citadel\interface\skin.dmf" // END_INCLUDE