From 95a3c14925780285f538d1bb67c34ca287c0fce7 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Thu, 20 Oct 2016 16:34:34 -0400 Subject: [PATCH] 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 --- code/_helpers/global_lists_vr.dm | 8 ++----- .../objects/items/weapons/storage/internal.dm | 2 +- code/modules/flufftext/Dreaming.dm | 4 ++++ code/modules/vore/eating/belly_vr.dm | 23 +++++++++++-------- code/modules/vore/eating/bellymodes_vr.dm | 4 ---- code/modules/vore/eating/living_vr.dm | 1 + code/modules/vore/eating/vorepanel_vr.dm | 8 ++++++- interface/skin.dmf | 8 +++++-- 8 files changed, 35 insertions(+), 23 deletions(-) diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index edbc267079..8e31a6f3eb 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -23,17 +23,13 @@ var/global/list/important_items = list( /obj/item/device/paicard, /obj/item/weapon/gun, /obj/item/weapon/pinpointer, - /obj/item/clothing/suit, + ///obj/item/clothing/suit, /obj/item/clothing/shoes/magboots, /obj/item/blueprints, /obj/item/clothing/head/helmet/space, - /obj/item/weapon/storage/internal, + ///obj/item/weapon/storage/internal, //You can't just preserve magical objects like this... /obj/item/weapon/disk/nuclear) - /* TODOPOLARIS - Depends on porting object - ///obj/item/weapon/card/id/digested) - */ - var/global/list/digestion_sounds = list( 'sound/vore/digest1.ogg', 'sound/vore/digest2.ogg', diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm index b135c439b6..5845bd7c31 100644 --- a/code/game/objects/items/weapons/storage/internal.dm +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -6,7 +6,7 @@ /obj/item/weapon/storage/internal/New(obj/item/MI) master_item = MI loc = master_item - name = master_item.name + //name = master_item.name //VOREStation Removal verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up. ..() diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 1d0e219b18..b4c4b36920 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -12,6 +12,10 @@ var/list/dreams = list( "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", "an unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", + //VOREStation Additions after this + "slimey surroundings","a sexy squirrel","licking their lips","a gaping maw","an unlikely predator","sinking inside", + "vulpine assets","more dakka","churning guts","pools of fluid","an exceptional grip","mawing in faces","gaping throat", + "swallowed whole","a fox","a wolf","a cat","a tiger","a dog","a taur","a xenochimera" ) mob/living/carbon/proc/dream() diff --git a/code/modules/vore/eating/belly_vr.dm b/code/modules/vore/eating/belly_vr.dm index 880e45fa74..ac2032bdb2 100644 --- a/code/modules/vore/eating/belly_vr.dm +++ b/code/modules/vore/eating/belly_vr.dm @@ -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 diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 7e2feccedb..43522ccfe0 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -12,10 +12,6 @@ M << "[pick(EL)]" 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) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 52aa584d9a..dd790311fe 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -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 diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 28827d7d9e..06d4233b95 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -64,7 +64,10 @@ continue //Anything else - dat += "[O]" + dat += "[O]​" + + //Zero-width space, for wrapping + dat += "​" else dat += "You aren't inside anyone." @@ -136,6 +139,9 @@ //Anything else dat += "[O]" + //Zero-width space, for wrapping + dat += "​" + //If there's more than one thing, add an [All] button if(selected.internal_contents.len > 1) dat += "\[All\]" diff --git a/interface/skin.dmf b/interface/skin.dmf index be23750148..a8295b3c1b 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -575,6 +575,10 @@ macro "hotkeymode" name = "5" command = ".me" is-disabled = false + elem + name = "6" + command = "subtle" + is-disabled = false elem name = "A+REP" command = ".west" @@ -677,11 +681,11 @@ macro "hotkeymode" is-disabled = false elem name = "Y" - command = "Activate-Held-Object" + command = "whisper" is-disabled = false elem name = "CTRL+Y" - command = "Activate-Held-Object" + command = "whisper" is-disabled = false elem name = "Z"