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)
This commit is contained in:
Verkister
2018-03-08 17:59:21 +02:00
parent 5c12e69fab
commit e75bee475e
3 changed files with 17 additions and 8 deletions
+2 -3
View File
@@ -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,"<span class='notice'>[thing] slides into your [lowertext(name)].</span>")
@@ -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
+14 -4
View File
@@ -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 ////////////////////////////
+1 -1
View File
@@ -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()