This fixes a bunch of things so here's each file change and why:

global_lists_vr.dm - Removes generic 'suit' which included basically any outerwear, and the invisible magical storage/internal
storage/internal.dm - Don't name the storage inside suits the same as the suit. It causes weird name-alignment problems where if you delete the suit it might just delete the internal storage, or the other way around.
Dreaming.dm - Added some vorish stuff I made up.
belly_vr.dm - Fixes for digesting items and how that works, and how to prevent them from showing up on the HUD. Also fixes IDs falling onto the floor (among other things).
living_vr.dm - Just in case, adds null-entry cleanup to belly cleanup proc.
bellymodes_vr.dm - Removes previous null-item hotfix.
vorepanel_vr.dm - Adds zero-width space to make items in belly wrap and not look horrible.
skim.dmf - Adds Y hotkey for whisper, and 6 hotkey for subtle.

Closes #455
Closes #443
Closes #239
This commit is contained in:
Arokha Sieyes
2016-10-20 16:34:34 -04:00
parent 6b1a32a12f
commit 95a3c14925
8 changed files with 35 additions and 23 deletions
+14 -9
View File
@@ -250,17 +250,17 @@
for (var/bellytype in M.vore_organs)
var/datum/belly/belly = M.vore_organs[bellytype]
for (var/obj/thing in belly.internal_contents)
thing.forceMove(owner)
thing.loc = owner
internal_contents += thing
for (var/mob/subprey in belly.internal_contents)
subprey.forceMove(owner)
subprey.loc = owner
internal_contents += subprey
subprey << "As [M] melts away around you, you find yourself in [owner]'s [name]"
//Drop all items into the belly.
if (config.items_survive_digestion)
for (var/obj/item/W in M)
_handle_digested_item(W)
_handle_digested_item(W,M)
//Reagent transfer
if(M.reagents && istype(M.reagents,/datum/reagents))
@@ -271,7 +271,11 @@
qdel(M)
// Recursive method - To recursively scan thru someone's inventory for digestable/indigestable.
/datum/belly/proc/_handle_digested_item(var/obj/item/W)
/datum/belly/proc/_handle_digested_item(var/obj/item/W,var/mob/M)
// SOME mob has to use some procs. If somehow they're gone, then the pred can handle it.
if(!M)
M = owner
// IDs are handled specially to 'digest' them
if(istype(W,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/ID = W
@@ -279,27 +283,28 @@
ID.icon = 'icons/obj/card_vr.dmi'
ID.icon_state = "digested"
ID.access = list() // No access
ID.forceMove(owner)
internal_contents += W
M.remove_from_mob(ID,owner)
internal_contents += ID
// 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)
M.remove_from_mob(brain,owner)
brain.forceMove(owner)
internal_contents += brain
else
if(!_is_digestable(W))
W.forceMove(owner)
M.remove_from_mob(W,owner)
internal_contents += W
else
for (var/obj/item/SubItem in W)
_handle_digested_item(SubItem)
_handle_digested_item(SubItem,M)
/datum/belly/proc/_is_digestable(var/obj/item/I)
if(I.type in important_items)
if(is_type_in_list(I,important_items))
return 0
return 1
@@ -12,10 +12,6 @@
M << "<span class='notice'>[pick(EL)]</span>"
src.emotePend = 0
for (var/V in internal_contents)
if (isnull(V))
internal_contents -= V
//////////////////////// Absorbed Handling ////////////////////////
for(var/mob/living/M in internal_contents)
if(M.absorbed)
+1
View File
@@ -179,6 +179,7 @@
for (var/I in vore_organs)
var/datum/belly/B = vore_organs[I]
if(B.internal_contents.len)
listclearnulls(B.internal_contents)
for(var/atom/movable/M in B.internal_contents)
if(M.loc != src)
B.internal_contents -= M
+7 -1
View File
@@ -64,7 +64,10 @@
continue
//Anything else
dat += "<a href='?src=\ref[src];outsidepick=\ref[O];outsidebelly=\ref[inside_belly]'>[O]</a>"
dat += "<a href='?src=\ref[src];outsidepick=\ref[O];outsidebelly=\ref[inside_belly]'>[O]&#8203;</a>"
//Zero-width space, for wrapping
dat += "&#8203;"
else
dat += "You aren't inside anyone."
@@ -136,6 +139,9 @@
//Anything else
dat += "<a href='?src=\ref[src];insidepick=\ref[O]'>[O]</a>"
//Zero-width space, for wrapping
dat += "&#8203;"
//If there's more than one thing, add an [All] button
if(selected.internal_contents.len > 1)
dat += "<a href='?src=\ref[src];insidepick=1;pickall=1'>\[All\]</a>"