diff --git a/code/__defines/belly_modes_vr.dm b/code/__defines/belly_modes_vr.dm index 1fb1cbf02cb..4325666aa18 100644 --- a/code/__defines/belly_modes_vr.dm +++ b/code/__defines/belly_modes_vr.dm @@ -1,6 +1,7 @@ // Belly Mode Constants #define DM_HOLD "Hold" #define DM_DIGEST "Digest" +#define DM_ITEMWEAK "Digest (Item friendly)" #define DM_DIGEST_NUMB "Digest (Numbing)" #define DM_HEAL "Heal" #define DM_ABSORB "Absorb" diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index e29458ca6d6..141822e5402 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -510,7 +510,7 @@ if(do_after(user, 30, target) && length(contents) < max_item_count) target.forceMove(src) user.visible_message("[hound.name]'s garbage processor groans lightly as [target.name] slips inside.", "Your garbage compactor groans lightly as [target] slips inside.") - playsound(hound, 'sound/vore/gulp.ogg', 50, 1) + playsound(hound, 'sound/vore/gulp.ogg', 30, 1) if(length(contents) > 11) //grow that tum after a certain junk amount hound.sleeper_r = 1 hound.updateicon() @@ -523,7 +523,7 @@ trashmouse.forceMove(src) trashmouse.reset_view(src) user.visible_message("[hound.name]'s garbage processor groans lightly as [trashmouse] slips inside.", "Your garbage compactor groans lightly as [trashmouse] slips inside.") - playsound(hound, 'sound/vore/gulp.ogg', 50, 1) + playsound(hound, 'sound/vore/gulp.ogg', 30, 1) if(length(contents) > 11) //grow that tum after a certain junk amount hound.sleeper_r = 1 hound.updateicon() diff --git a/code/modules/vore/eating/belly_vr.dm b/code/modules/vore/eating/belly_vr.dm index 0a9b54e7107..dd78ff69b69 100644 --- a/code/modules/vore/eating/belly_vr.dm +++ b/code/modules/vore/eating/belly_vr.dm @@ -30,7 +30,7 @@ var/datum/belly/transferlocation = null // Location that the prey is released if they struggle and get dropped off. var/tmp/digest_mode = DM_HOLD // Whether or not to digest. Default to not digest. - var/tmp/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_HEAL,DM_ABSORB,DM_DRAIN,DM_UNABSORB) // Possible digest modes + var/tmp/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ITEMWEAK,DM_HEAL,DM_ABSORB,DM_DRAIN,DM_UNABSORB) // Possible digest modes var/tmp/list/transform_modes = list(DM_TRANSFORM_MALE,DM_TRANSFORM_FEMALE,DM_TRANSFORM_KEEP_GENDER,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR_EGG,DM_TRANSFORM_REPLICA,DM_TRANSFORM_REPLICA_EGG,DM_TRANSFORM_KEEP_GENDER_EGG,DM_TRANSFORM_MALE_EGG,DM_TRANSFORM_FEMALE_EGG, DM_EGG) var/tmp/mob/living/owner // The mob whose belly this is. var/tmp/list/internal_contents = list() // People/Things you've eaten into this belly! diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 659fd778579..cdca7918ca7 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -22,7 +22,7 @@ return //Pretty boring, huh //////////////////////////// DM_DIGEST //////////////////////////// - if(digest_mode == DM_DIGEST || digest_mode == DM_DIGEST_NUMB) + if(digest_mode == DM_DIGEST || digest_mode == DM_DIGEST_NUMB || digest_mode == DM_ITEMWEAK) if(prob(50)) //Was SO OFTEN. AAAA. var/churnsound = pick(digestion_sounds) @@ -77,7 +77,7 @@ else owner.nutrition += (10/difference) - /*if(owner.weakgurgles < 1) // An example for possible trait or gurglemode modifier. (Not existing currently) + if(digest_mode == DM_ITEMWEAK) var/obj/item/T = pick(internal_contents) if(istype(T, /obj/item)) if(istype(T, /obj/item) && _is_digestable(T) && !(T in items_preserved)) @@ -96,35 +96,34 @@ else return return - else -do the tab crap to the paragraph below- */ - + else // Handle leftovers. - var/obj/item/T = pick(internal_contents) - if(istype(T, /obj/item)) - if(istype(T, /obj/item) && _is_digestable(T) && !(T in items_preserved)) - if(T in items_preserved)// Doublecheck just in case. - return - for(var/obj/item/SubItem in T) - if(istype(SubItem,/obj/item/weapon/storage/internal)) - var/obj/item/weapon/storage/internal/SI = SubItem - for(var/obj/item/SubSubItem in SI) - SubSubItem.forceMove(internal_contents) - qdel(SI) + var/obj/item/T = pick(internal_contents) + if(istype(T, /obj/item)) + if(istype(T, /obj/item) && _is_digestable(T) && !(T in items_preserved)) + if(T in items_preserved)// Doublecheck just in case. + return + for(var/obj/item/SubItem in T) + if(istype(SubItem,/obj/item/weapon/storage/internal)) + var/obj/item/weapon/storage/internal/SI = SubItem + for(var/obj/item/SubSubItem in SI) + SubSubItem.forceMove(internal_contents) + qdel(SI) + else + SubItem.forceMove(internal_contents) + if(istype(T, /obj/item/weapon/reagent_containers/food/snacks)) // Food gets its own treatment now. Hopefully your prey didn't load their bag with donk boxes. + var/obj/item/weapon/reagent_containers/food/snacks/F = T + F.reagents.trans_to_mob(owner, (F.reagents.total_volume * 0.3), CHEM_INGEST) + if(F.nutriment_amt) + owner.reagents.add_reagent("nutriment", (F.nutriment_amt * 0.3)) + internal_contents -= F + qdel(F) else - SubItem.forceMove(internal_contents) - if(istype(T, /obj/item/weapon/reagent_containers/food/snacks)) // Food gets its own treatment now. Hopefully your prey didn't load their bag with donk boxes. - var/obj/item/weapon/reagent_containers/food/snacks/F = T - F.reagents.trans_to_mob(owner, (F.reagents.total_volume * 0.3), CHEM_INGEST) - if(F.nutriment_amt) - owner.reagents.add_reagent("nutriment", (F.nutriment_amt * 0.3)) - internal_contents -= F - qdel(F) + owner.nutrition += (1 * T.w_class) + internal_contents -= T + qdel(T) else - owner.nutrition += (1 * T.w_class) - internal_contents -= T - qdel(T) - else - return + return return diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 1c37045716f..73c0357b6b8 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -99,6 +99,8 @@ spanstyle = "" if(DM_DIGEST) spanstyle = "color:red;" + if(DM_ITEMWEAK) + spanstyle = "color:red;" if(DM_HEAL) spanstyle = "color:green;" if(DM_ABSORB)