VR, Remote Mechs and Remote Robots (#7523)

Adds VR functionality, subsystem and a command VR system.
This commit is contained in:
Geeves
2020-01-12 14:09:48 +01:00
committed by Matt Atlas
parent 8e71fe07c2
commit 2fed43a871
20 changed files with 579 additions and 49 deletions
@@ -0,0 +1,26 @@
/obj/structure/bed/chair/remote
name = "virtual reality centre"
desc = "A comfortable chair with full audio-visual transposition centres."
icon_state = "shuttlechair_down"
can_dismantle = FALSE
var/list/remote_network // Which network does this remote control belong to?
/obj/structure/bed/chair/remote/update_icon()
return
/obj/structure/bed/chair/remote/user_buckle_mob(mob/user)
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.old_mob)
to_chat(H, span("warning", "The chair rejects you! You cannot recursively control bodies."))
return
add_overlay(image('icons/obj/furniture.dmi', src, "vr_helmet", MOB_LAYER + 1))
// Return to our body in the unfortunate event that we get unbuckled while plugged in
/obj/structure/bed/chair/remote/user_unbuckle_mob(mob/user)
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.body_return()
cut_overlays()
..()
@@ -0,0 +1,15 @@
/obj/structure/bed/chair/remote/mech
name = "mech control centre"
desc = "A comfortable chair with full audio-visual transposition centres. This one gives you access to exosuits attached to the remote network."
remote_network = "remotemechs"
/obj/structure/bed/chair/remote/mech/user_buckle_mob(mob/user)
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
SSvirtualreality.mech_selection(H, remote_network)
/obj/structure/bed/chair/remote/mech/prison
name = "brig mech control centre"
desc = "A comfortable chair with full audio-visual transposition centres. This one gives you access to exosuits attached to the brig network."
remote_network = "prisonmechs"
@@ -0,0 +1,15 @@
/obj/structure/bed/chair/remote/robot
name = "robot control centre"
desc = "A comfortable chair with full audio-visual transposition centres. This one gives you access to robots attached to the remote network."
remote_network = "remoterobots"
/obj/structure/bed/chair/remote/robot/user_buckle_mob(mob/user)
..()
if(ishuman(user))
var/mob/living/carbon/human/H = user
SSvirtualreality.robot_selection(H, remote_network)
/obj/structure/bed/chair/remote/robot/bunker
name = "bunker robot control centre"
desc = "A comfortable chair with full audio-visual transposition centres. This one gives you access to robots attached to the bunker network."
remote_network = "bunkerrobots"