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
This commit is contained in:
Verkister
2017-07-10 23:56:52 +03:00
parent 158a184b8e
commit 8323f012ce
2 changed files with 23 additions and 8 deletions
+13 -8
View File
@@ -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))
+10
View File
@@ -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 ////////////////////////////