mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
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:
@@ -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',
|
||||
|
||||
@@ -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.
|
||||
..()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]​</a>"
|
||||
|
||||
//Zero-width space, for wrapping
|
||||
dat += "​"
|
||||
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 += "​"
|
||||
|
||||
//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>"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user