mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-30 15:38:02 +01:00
VR pod and mob TF fixes & adjustments (#17397)
* Makes VR not crash the server - Makes mouse rays no longer crash the server under certain circumstances - Makes VR pods no longer crash the server (Method #1) - Makes VR pods no longer crash the server (Method #2) - I think there was a third method to crash the server with VR pods. That got fixed too. If it existed. - Updates TF and makes it no longer cause runtimes & crashes. - Makes it so you can no longer repeatedly spawn in VR and clog up the server with hundreds of yourself (humanoids are expensive!) - Adds a greyscale effect for reconverting TF rays - Added a toggle for VR pods to spawn people with clothing or not - Ghosts now have a button to enter the VR space if it's spawned in! - Ghosts can now enter VR if it's spawned in! - Adds the ability to TF into different creatures while in VR * turfs * moving stuff around also small drippy fix while at it * shhhh * Update ar_console.dm
This commit is contained in:
@@ -18,10 +18,10 @@
|
||||
|
||||
assisted_langs = list()
|
||||
|
||||
male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
|
||||
female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
|
||||
male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
|
||||
female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
|
||||
// male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
|
||||
// female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
|
||||
// male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
|
||||
// female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
|
||||
|
||||
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_VOX, SPECIES_MONKEY, SPECIES_SKELETON)
|
||||
|
||||
@@ -80,7 +80,6 @@
|
||||
src.vr_link = avatar // Can't reuse vr_holder so that death can automatically eject users from VR
|
||||
|
||||
// Move the mind
|
||||
avatar.Sleeping(1)
|
||||
src.mind.transfer_to(avatar)
|
||||
to_chat(avatar, span_infoplain(span_bold("You have enterred Virtual Reality!\nAll normal gameplay rules still apply.\nWounds you suffer here won't persist when you leave VR, but some of the pain will.\nYou can leave VR at any time by using the \"Exit Virtual Reality\" verb in the Abilities tab, or by ghosting."))) //No more prommie VR thing, so removed tidbit about changing appearance
|
||||
to_chat(avatar, span_notice(" You black out for a moment, and wake to find yourself in a new body in virtual reality.")) // So this is what VR feels like?
|
||||
@@ -92,6 +91,11 @@
|
||||
|
||||
if(!vr_holder)
|
||||
return
|
||||
if(tfed_into_mob_check()) //Make sure we're not TFed and revert if we are before checking for a mind.
|
||||
var/mob/living/M = loc
|
||||
if(istype(M)) // Sanity check, though shouldn't be needed since this is already checked by the proc.
|
||||
M.revert_mob_tf()
|
||||
|
||||
if(!mind)
|
||||
return
|
||||
|
||||
@@ -118,4 +122,16 @@
|
||||
|
||||
if(istype(vr_holder.loc, /obj/machinery/vr_sleeper))
|
||||
var/obj/machinery/vr_sleeper/V = vr_holder.loc
|
||||
V.go_out()
|
||||
V.go_out(TRUE)
|
||||
|
||||
if(died_in_vr)
|
||||
addtimer(CALLBACK(src, PROC_REF(cleanup_vr)), 3000, TIMER_DELETE_ME) //Delete the body after 5 minutes
|
||||
|
||||
/mob/living/carbon/human/proc/cleanup_vr()
|
||||
var/list/slots = list(slot_back,slot_handcuffed,slot_l_store,slot_r_store,slot_wear_mask,slot_l_hand,slot_r_hand,slot_wear_id,slot_glasses,slot_gloves,slot_head,slot_shoes,slot_belt,slot_wear_suit,slot_w_uniform,slot_s_store,slot_l_ear,slot_r_ear)
|
||||
for(var/slot in slots)
|
||||
var/obj/item/I = get_equipped_item(slot = slot)
|
||||
if(I)
|
||||
unEquip(I,force = TRUE)
|
||||
release_vore_contents(include_absorbed = TRUE, silent = TRUE)
|
||||
qdel(src)
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
|
||||
handle_dripping()
|
||||
|
||||
handle_vr_derez()
|
||||
|
||||
/mob/living/proc/handle_breathing()
|
||||
return
|
||||
|
||||
|
||||
@@ -1421,12 +1421,12 @@
|
||||
drop.drips |= drips
|
||||
|
||||
// Update appearance.
|
||||
drop.basecolor = rgb(H.r_skin,H.g_skin,H.b_skin)
|
||||
drop.update_icon()
|
||||
drop.name = "drips of something"
|
||||
drop.desc = "It's thick and gooey. Perhaps it's the chef's cooking?"
|
||||
drop.dryname = "dried something"
|
||||
drop.drydesc = "It's dry and crusty. The janitor isn't doing their job."
|
||||
drop.basecolor = rgb(H.r_skin,H.g_skin,H.b_skin)
|
||||
drop.update_icon()
|
||||
drop.fluorescent = 0
|
||||
drop.invisibility = 0
|
||||
//else
|
||||
|
||||
@@ -107,3 +107,8 @@
|
||||
)
|
||||
|
||||
var/touch_reaction_flags
|
||||
|
||||
var/virtual_reality_mob = FALSE // gross boolean for keeping VR mobs in VR
|
||||
|
||||
var/mob/living/tf_form // Shapeshifter shenanigans
|
||||
var/tf_form_ckey
|
||||
|
||||
Reference in New Issue
Block a user