From e75bee475e2e9ad71020ace28740b577312d7fc5 Mon Sep 17 00:00:00 2001 From: Verkister Date: Thu, 8 Mar 2018 17:59:21 +0200 Subject: [PATCH] Some more vore fixes. -Fixes gurgled prey's own prey dropping onto the floor instead of pred's gut. -Fixes itemweak gurgles not getting past first layer of containment. -Fixes entered belly contents from gurgled things already in the same gut causing noises and alerts. (such as prey loot and contents from digested storage items) -Fixes strip digestion. No longer dumps everything at once and empties uniform pockets/id/belt as it used to. -Strip digestion now also works on multiple prey at once and respects equip order. (as in oversuit goes before uniform etc) --- code/modules/vore/eating/belly_obj_vr.dm | 5 ++--- code/modules/vore/eating/bellymodes_vr.dm | 18 ++++++++++++++---- code/modules/vore/eating/contaminate_vr.dm | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 77cf2adb6f3..c119b62ab34 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -149,7 +149,6 @@ /obj/belly/Entered(var/atom/movable/thing,var/atom/OldLoc) if(OldLoc in contents) return //Someone dropping something (or being stripdigested) - //Generic entered message to_chat(owner,"[thing] slides into your [lowertext(name)].") @@ -333,7 +332,7 @@ var/obj/belly/B = belly for(var/thing in B) var/atom/movable/AM = thing - AM.forceMove(owner.loc) + AM.forceMove(src) if(isliving(AM)) to_chat(AM,"As [M] melts away around you, you find yourself in [owner]'s [lowertext(name)]") @@ -350,7 +349,7 @@ for(var/slot in slots) var/obj/item/thingy = M.get_equipped_item(slot = slot) if(thingy) - M.unEquip(thingy,force = TRUE) + M.u_equip(thingy) thingy.forceMove(src) //Reagent transfer diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 0c8898a7ac1..2a65d9e1b92 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -121,12 +121,22 @@ for(var/slot in slots) var/obj/item/thingy = M.get_equipped_item(slot = slot) if(thingy) - M.unEquip(thingy,force = TRUE) - thingy.forceMove(owner) + if(!M.canUnEquip(thingy)) + continue + if(thingy == M.get_equipped_item(slot_w_uniform)) + var/list/stash = list(slot_r_store,slot_l_store,slot_wear_id,slot_belt) + for(var/stashslot in stash) + var/obj/item/SL = M.get_equipped_item(stashslot) + if(SL) + SL.forceMove(src) + contents |= SL + M.u_equip(thingy) + thingy.forceMove(src) contents |= thingy - digest_item(T) - M.updateVRPanel() + digest_item(thingy) + break + M.updateVRPanel() owner.updateVRPanel() //////////////////////////// DM_ABSORB //////////////////////////// diff --git a/code/modules/vore/eating/contaminate_vr.dm b/code/modules/vore/eating/contaminate_vr.dm index 1505472b1d8..bf51ca9d598 100644 --- a/code/modules/vore/eating/contaminate_vr.dm +++ b/code/modules/vore/eating/contaminate_vr.dm @@ -18,7 +18,7 @@ var/image/gurgled_overlay = image('icons/effects/sludgeoverlay_vr.dmi') name = "[gurgleflavor] [cleanname]" desc = "[cleandesc] It seems to be covered in ominously foul residue and needs a wash." for(var/obj/item/O in contents) - gurgle_contaminate(item_storage) + O.gurgle_contaminate(item_storage) return TRUE /obj/item/proc/can_gurgle()