Merge pull request #320 from VOREStation/synthgurgles

Tweaks digestion code
This commit is contained in:
Spades
2016-06-08 13:36:15 -04:00
4 changed files with 23 additions and 22 deletions
@@ -1450,8 +1450,10 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/Destroy()
PDAs -= src
/* VOREStation Removal
if (src.id && prob(90)) //IDs are kept in 90% of the cases
src.id.loc = get_turf(src.loc)
*/
..()
/obj/item/device/pda/clown/Crossed(AM as mob|obj) //Clown PDA is slippery.
@@ -85,7 +85,7 @@
else if (E.is_malfunctioning())
//malfunctioning only happens intermittently so treat it as a missing limb when it procs
stance_damage += 2
if(prob(10))
if(isturf(loc) && prob(10))
visible_message("\The [src]'s [E.name] [pick("twitches", "shudders")] and sparks!")
var/datum/effect/effect/system/spark_spread/spark_system = new ()
spark_system.set_up(5, 0, src)
@@ -110,7 +110,7 @@
// standing is poor
if(stance_damage >= 4 || (stance_damage >= 2 && prob(5)))
if(!(lying || resting))
if(!(lying || resting) && !isliving(loc))
if(limb_pain)
emote("scream")
custom_emote(1, "collapses!")
+1
View File
@@ -71,6 +71,7 @@
/obj/item/organ/internal/mmi_holder/removed(var/mob/living/user)
if(stored_mmi)
. = stored_mmi //VOREStation Code
stored_mmi.loc = get_turf(src)
if(owner.mind)
owner.mind.transfer_to(stored_mmi.brainmob)
+18 -20
View File
@@ -266,17 +266,8 @@
// Recursive method - To recursively scan thru someone's inventory for digestable/indigestable.
/datum/belly/proc/_handle_digested_item(var/obj/item/W)
// PDA's are handled specially in order to get the ID out of them.
if (istype(W, /obj/item/device/pda))
var/obj/item/device/pda/PDA = W
if (PDA.id)
W = PDA.id
PDA.id = null
W.forceMove(owner) //I think this might be necessary with qdel?
qdel(PDA)
if (istype(W, /obj/item/weapon/card/id))
// Keep IDs around, but destroy them!
// IDs are handled specially to 'digest' them
if(istype(W,/obj/item/weapon/card/id))
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'
@@ -285,18 +276,25 @@
ID.forceMove(owner)
internal_contents += W
else if (!_is_digestable(W))
W.forceMove(owner)
internal_contents += W
// Posibrains have to be pulled 'out' of their organ version.
else if(istype(W,/obj/item/organ/internal/mmi_holder))
var/obj/item/organ/internal/mmi_holder/MMI = W
var/atom/movable/brain = MMI.removed()
if(brain)
brain.forceMove(owner)
internal_contents += brain
else
for (var/obj/item/SubItem in W)
_handle_digested_item(SubItem)
qdel(W)
if(!_is_digestable(W))
W.forceMove(owner)
internal_contents += W
else
for (var/obj/item/SubItem in W)
_handle_digested_item(SubItem)
/datum/belly/proc/_is_digestable(var/obj/item/I)
for (var/T in important_items)
if(istype(I, T))
return 0
if(I.type in important_items)
return 0
return 1
// Handle a mob being absorbed