From 8323f012ce4e59fc405a6ddfada2306af1fef695 Mon Sep 17 00:00:00 2001 From: Verkister Date: Mon, 10 Jul 2017 23:56:52 +0300 Subject: [PATCH] ANTINUKE LOOTGURGLE UPDATE -Managed to build a vore organ equivalent for the inventory gurgle tweaks I made for dogborg guts. -This means that gurgled prey now drops their loot into the gut. -After this, the loot in the gut will slowly gurgle away one item at a time, each giving a trace amount of nourishment, multiplied by the item size. -All the loot will show up in vore panel. However you need to be bashing refresh to see the progress in real time. -The forbidden/important items list should still work. -Not so sure about televore beacons tho. Better keep those in with hold mode and pop em out when you go for gurgles :v --- code/modules/vore/eating/belly_vr.dm | 21 +++++++++++++-------- code/modules/vore/eating/bellymodes_vr.dm | 10 ++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/code/modules/vore/eating/belly_vr.dm b/code/modules/vore/eating/belly_vr.dm index e02902f2597..746dad04374 100644 --- a/code/modules/vore/eating/belly_vr.dm +++ b/code/modules/vore/eating/belly_vr.dm @@ -36,6 +36,8 @@ var/tmp/list/internal_contents = list() // People/Things you've eaten into this belly! var/tmp/is_full // Flag for if digested remeans are present. (for disposal messages) var/tmp/emotePend = 0 // If there's already a spawned thing counting for the next emote + var/tmp/list/items_preserved = list() // Stuff that wont digest. + // Don't forget to watch your commas at the end of each line if you change these. var/list/struggle_messages_outside = list( @@ -293,31 +295,34 @@ M = owner // IDs are handled specially to 'digest' them - if(istype(W,/obj/item/weapon/card/id)) + if(istype(W,/obj/item/weapon/card/id)) // Moved to bellymodes part. var/obj/item/weapon/card/id/ID = W ID.desc = "A partially digested card that has seen better days. Much of it's data has been destroyed." ID.icon = 'icons/obj/card_vr.dmi' ID.icon_state = "digested" ID.access = list() // No access M.remove_from_mob(ID,owner) - internal_contents += ID + items_preserved += ID // Posibrains have to be pulled 'out' of their organ version. - else if(istype(W,/obj/item/organ/internal/mmi_holder/posibrain)) + + if(istype(W,/obj/item/organ/internal/mmi_holder/posibrain)) var/obj/item/organ/internal/mmi_holder/MMI = W var/atom/movable/brain = MMI.removed() if(brain) M.remove_from_mob(brain,owner) brain.forceMove(owner) - internal_contents += brain + items_preserved += brain + + if(!_is_digestable(W)) + items_preserved += W else - if(!_is_digestable(W)) + for (var/obj/item/SubItem in W) + _handle_digested_item(SubItem,M) + if(!istype(W,/obj/item/organ)) M.remove_from_mob(W,owner) internal_contents += W - else - for (var/obj/item/SubItem in W) - _handle_digested_item(SubItem,M) /datum/belly/proc/_is_digestable(var/obj/item/I) if(is_type_in_list(I,important_items)) diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 2a14eb0a895..209e35fa03a 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -77,6 +77,16 @@ else owner.nutrition += (10/difference) + // 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)) + owner.nutrition += (1 * T.w_class) + internal_contents -= T + qdel(T) + else + return + return //////////////////////////// DM_ABSORB ////////////////////////////