From ef9ad527062e48028113f515c9dc0128c8a1d102 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Mon, 20 Mar 2017 17:34:40 -0700 Subject: [PATCH 1/8] Avatar code working --- _maps/map_files/templates/vr/lobby.dmm | 81 ++++++++++++++++++++++ code/_globalvars/mapping.dm | 1 + code/datums/vr.dm | 21 ++++++ code/datums/vr/level.dm | 12 ++++ code/game/machinery/computer/vr_control.dm | 35 ++++++++++ code/game/objects/effects/landmarks.dm | 6 +- code/modules/VR/vr_avatar.dm | 54 +++++++++++++++ code/modules/VR/vr_goggles.dm | 74 ++++++++++++++++++++ paradise.dme | 5 ++ 9 files changed, 288 insertions(+), 1 deletion(-) create mode 100644 _maps/map_files/templates/vr/lobby.dmm create mode 100644 code/datums/vr.dm create mode 100644 code/datums/vr/level.dm create mode 100644 code/game/machinery/computer/vr_control.dm create mode 100644 code/modules/VR/vr_avatar.dm create mode 100644 code/modules/VR/vr_goggles.dm diff --git a/_maps/map_files/templates/vr/lobby.dmm b/_maps/map_files/templates/vr/lobby.dmm new file mode 100644 index 00000000000..40276280865 --- /dev/null +++ b/_maps/map_files/templates/vr/lobby.dmm @@ -0,0 +1,81 @@ +"a" = (/turf/space,/area/space) +"b" = (/turf/unsimulated/wall/metal,/area/space) +"c" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) +"d" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/space) +"e" = (/turf/simulated/floor/greengrid,/area/space) +"f" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) +"g" = (/obj/machinery/telecomms/hub/preset_cent,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) +"h" = (/turf/simulated/floor/light,/area/space) +"i" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/space) +"j" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/space) +"k" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/simulated/floor/greengrid,/area/space) +"l" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/simulated/floor/greengrid,/area/space) +"m" = (/obj/machinery/computer/mecha,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) +"n" = (/obj/machinery/telecomms/processor/preset_cent,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) +"o" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/space) +"p" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/space) +"q" = (/obj/effect/landmark{name = "avatarspawn"},/turf/simulated/floor/light,/area/space) +"r" = (/turf/unsimulated/wall/fakeglass,/area/space) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaabbbbbbbbbbbbbbbbbbbbffgeegffbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaabcccfcfcfcfcfcccbffffhieeihffffbaaaaaaaaaaaaaaaaaaaaaaaa +aaaabcchfhfhfhfhfhccbfhchcjeejchchfbaaaaaaaaaaaaaaaaaaaaaaaa +aaaabbffkflfkflfkffbbfcfffgeegfffcfbbaaaaaaaaaaaaaaaaaaaaaaa +aaaaabchfhfhfhfhfhcbffhfchieeihcfhffbaaaaaaaaaaaaaaaaaaaaaaa +aaaaabbcfcfcfcfcfcbbfhcfhcjeejchfchfbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaabdmdmdmdmdmdbdnopnopbeebopnopndbbaaaaaaaaaaaaaaaaaaaaa +aaaaaabeeeeeeeeeeeceeeeeeeeqqeeeeeeeecbaaaaaaaaaaaaaaaaaaaaa +aaaaaabeeeeeeeeeeeceeeeeeeeqqeeeeeeeecbaaaaaaaaaaaaaaaaaaaaa +aaaaaabbbbbbbbbbbbbdnopnopbeebopnopndbbaaaaaaaaaaaaaaaaaaaaa +aaaaaabaaaaaaaaaaabbfhcfhcieeichfchfbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabffhfchreejhcfhffbaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabbfcfffgeegfffcfbbaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabfhchcieeichchfbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabffffhreejhffffbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabbbbffgeegffbbbbaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm index 841fbced3f7..199346ae30a 100644 --- a/code/_globalvars/mapping.dm +++ b/code/_globalvars/mapping.dm @@ -40,6 +40,7 @@ var/list/prisonwarped = list() //list of players already warped var/list/blobstart = list() var/list/ninjastart = list() var/list/carplist = list() //list of all carp-spawn landmarks +var/list/avatarspawn = list() //away missions var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to diff --git a/code/datums/vr.dm b/code/datums/vr.dm new file mode 100644 index 00000000000..3a11a19228d --- /dev/null +++ b/code/datums/vr.dm @@ -0,0 +1,21 @@ +/datum/map_template/vr + //name = "A Chest of Doubloons" + name = null + var/id = null // For blacklisting purposes, all vr levels need an id + var/description = "In the middle of a clearing in the rockface, there's a \ + chest filled with gold coins with Spanish engravings. How is there a \ + wooden container filled with 18th century coinage in the middle of a \ + lavawracked hellscape? It is clearly a mystery." + + var/cost = null + var/allow_duplicates = TRUE //A bit boring, don't you think? You can always explicitly allow it on a ruin definition + + var/prefix = null + var/suffix = null + +/datum/map_template/vr/New() + if(!name && id) + name = id + + mappath = prefix + suffix + ..(path = mappath) \ No newline at end of file diff --git a/code/datums/vr/level.dm b/code/datums/vr/level.dm new file mode 100644 index 00000000000..c65ea29c5c8 --- /dev/null +++ b/code/datums/vr/level.dm @@ -0,0 +1,12 @@ +//The bigger ones lag like hell if there is more than one on a z-level, so cost 2 for them +/datum/map_template/vr/level + prefix = "_maps/map_files/templates/vr/" + cost = 1 + +/datum/map_template/vr/level/lobby + id = "lobby" + suffix = "lobby.dmm" + name = "Biological Storage Facility" + description = "This is the lobby. The hub for all things VR." + cost = 2 + diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm new file mode 100644 index 00000000000..16631afe793 --- /dev/null +++ b/code/game/machinery/computer/vr_control.dm @@ -0,0 +1,35 @@ +/obj/machinery/computer/vr_control + name = "crew monitoring computer" + desc = "Used to monitor active health sensors built into most of the crew's uniforms." + icon_screen = "comm_logs" + + light_color = LIGHT_COLOR_DARKGREEN + + +/obj/machinery/computer/vr_control/New() + vr_control = new(src) + ..() + +/obj/machinery/computer/vr_control/Destroy() + qdel(vr_control) + return ..() + +/obj/machinery/computer/vr_control/attack_ai(mob/user) + attack_hand(user) + ui_interact(user) + + +/obj/machinery/computer/vr_control/attack_hand(mob/user) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + ui_interact(user) + +/obj/machinery/computer/vr_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + //crew_monitor.ui_interact(user, ui_key, ui, force_open) + +/obj/machinery/computer/vr_control/interact(mob/user) + //crew_monitor.ui_interact(user) + +/obj/machinery/computer/vr_control/proc/loadlevel(template) + var/datum/space_chunk/C = zlev_manager.allocate_space(template.width, template.height) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 7ff80f248da..5cdc64fa2fc 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -20,6 +20,10 @@ wizardstart += loc qdel(src) + if("avatarspawn") + avatarspawn += loc + qdel(src) + if("JoinLate") latejoin += loc qdel(src) @@ -251,7 +255,7 @@ new /obj/item/clothing/mask/gas/sexymime(src.loc) new /obj/item/clothing/under/sexymime(src.loc) qdel(src) - + /obj/effect/landmark/ruin var/datum/map_template/ruin/ruin_template diff --git a/code/modules/VR/vr_avatar.dm b/code/modules/VR/vr_avatar.dm new file mode 100644 index 00000000000..f3baf7e89e0 --- /dev/null +++ b/code/modules/VR/vr_avatar.dm @@ -0,0 +1,54 @@ + + +/mob/living/carbon/human/virtual_reality + var/mob/living/carbon/human/real_me //The human controlling us, can be any human (including virtual ones... inception...) + var/obj/item/clothing/glasses/vr_goggles + var/datum/action/quit_vr/quit_action + + +/mob/living/carbon/human/virtual_reality/New() + quit_action = new() + quit_action.Grant(src) + ..() + +/mob/living/carbon/human/virtual_reality/death() + revert_to_reality() + qdel(src) + ..() + +/mob/living/carbon/human/virtual_reality/Destroy() + revert_to_reality() + qdel(src) + return ..() + +/mob/living/carbon/human/virtual_reality/ghost() + set category = "OOC" + set name = "Ghost" + set desc = "Relinquish your life and enter the land of the dead." + var/mob/living/carbon/human/H = real_me + revert_to_reality(FALSE, FALSE) + if(H) + H.ghost() + qdel(src) + +/mob/living/carbon/human/virtual_reality/proc/revert_to_reality(refcleanup = TRUE, deathchecks = TRUE) + if(real_me && mind) + mind.transfer_to(real_me) + real_me.eye_blind = 4 + real_me.confused = 4 +// if(deathchecks && vr_sleeper && vr_sleeper.you_die_in_the_game_you_die_for_real) +// real_me.death(0) + if(refcleanup) + real_me = null + +/datum/action/quit_vr + name = "Quit Virtual Reality" + +/datum/action/quit_vr/Trigger() + if(..()) + if(istype(owner, /mob/living/carbon/human/virtual_reality)) + var/mob/living/carbon/human/virtual_reality/VR = owner + VR.revert_to_reality(FALSE, FALSE) + else + Remove(owner) + qdel(src) \ No newline at end of file diff --git a/code/modules/VR/vr_goggles.dm b/code/modules/VR/vr_goggles.dm new file mode 100644 index 00000000000..500104588c3 --- /dev/null +++ b/code/modules/VR/vr_goggles.dm @@ -0,0 +1,74 @@ + + +//Glorified teleporter that puts you in a new human body. +// it's """VR""" + +/obj/item/clothing/glasses/vr_goggles + desc = "A long time ago, people used these glasses to makes images from screens threedimensional." + name = "3D glasses" + icon_state = "3d" + item_state = "3d" + prescription_upgradable = 0 + species_fit = list("Vox") + sprite_sheets = list( + "Vox" = 'icons/mob/species/vox/eyes.dmi' + ) + + var/you_die_in_the_game_you_die_for_real = FALSE + var/mob/living/carbon/human/virtual_reality/vr_human + var/static/list/available_vr_spawnpoints + var/vr_category = "default" //Specific category of spawn points to pick from + var/outfit = /datum/outfit/vr_basic + +/obj/item/clothing/glasses/vr_goggles/Destroy() + ..() + cleanup_vr_avatar() + +/obj/item/clothing/glasses/vr_goggles/emag_act(mob/user) + //placeholder + +/obj/item/clothing/glasses/vr_goggles/dropped() + ..() + if(vr_human) + cleanup_vr_avatar() + vr_human.revert_to_reality(FALSE, FALSE) + +/obj/item/clothing/glasses/vr_goggles/equipped() + ..() + var/mob/living/carbon/human/H = loc + spawn(1) + if(H.glasses == src) + control_remote(H,build_virtual_avatar(H,pick(avatarspawn))) + +/obj/item/clothing/glasses/vr_goggles/proc/build_virtual_avatar(mob/living/carbon/human/virtual_reality/H, location) + if(!location) + return + var/mob/living/carbon/human/virtual_reality/vr_avatar + cleanup_vr_avatar() + vr_avatar = new /mob/living/carbon/human/virtual_reality(location) + vr_avatar.set_species(H.species.name) + vr_avatar.vr_goggles = src + vr_avatar.real_me = H + vr_avatar.dna = H.dna.Clone() + vr_avatar.name = H.name + vr_avatar.real_name = H.real_name + vr_avatar.undershirt = H.undershirt + vr_avatar.underwear = H.underwear +// vr_avatar.change_hair(H.head_organ.h_style) + if(outfit) + var/datum/outfit/vr_basic/O = new outfit() + O.equip(vr_avatar) + return vr_avatar + +/obj/item/clothing/glasses/vr_goggles/proc/control_remote(mob/living/carbon/human/H, mob/living/carbon/human/virtual_reality/vr_avatar) + if(H.mind) + H.mind.transfer_to(vr_avatar) + +/obj/item/clothing/glasses/vr_goggles/proc/cleanup_vr_avatar() + if(vr_human) + vr_human.death(0) + +/datum/outfit/vr_basic + name = "basic vr" + uniform = /obj/item/clothing/under/psysuit + shoes = /obj/item/clothing/shoes/black \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index f678cc2865e..b2e4b77377e 100644 --- a/paradise.dme +++ b/paradise.dme @@ -217,6 +217,7 @@ #include "code\datums\supplypacks.dm" #include "code\datums\uplink_item.dm" #include "code\datums\vision_override.dm" +#include "code\datums\vr.dm" #include "code\datums\cache\air_alarm.dm" #include "code\datums\cache\apc.dm" #include "code\datums\cache\cache.dm" @@ -315,6 +316,7 @@ #include "code\datums\spells\trigger.dm" #include "code\datums\spells\turf_teleport.dm" #include "code\datums\spells\wizard.dm" +#include "code\datums\vr\level.dm" #include "code\datums\weather\weather.dm" #include "code\datums\weather\weather_types.dm" #include "code\datums\wires\airlock.dm" @@ -599,6 +601,7 @@ #include "code\game\machinery\computer\store.dm" #include "code\game\machinery\computer\syndicate_specops_shuttle.dm" #include "code\game\machinery\computer\telecrystalconsoles.dm" +#include "code\game\machinery\computer\vr_control.dm" #include "code\game\machinery\doors\airlock.dm" #include "code\game\machinery\doors\airlock_control.dm" #include "code\game\machinery\doors\airlock_electronics.dm" @@ -2160,6 +2163,8 @@ #include "code\modules\vehicle\speedbike.dm" #include "code\modules\vehicle\sportscar.dm" #include "code\modules\vehicle\vehicle.dm" +#include "code\modules\VR\vr_avatar.dm" +#include "code\modules\VR\vr_goggles.dm" #include "goon\code\datums\browserOutput.dm" #include "interface\interface.dm" #include "interface\skin.dmf" From 84e7228a7813b4bf8648311c68ef000f6b8bddb8 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Mon, 20 Mar 2017 17:35:00 -0700 Subject: [PATCH 2/8] Missed a file --- code/game/machinery/computer/vr_control.dm | 4 ++-- paradise.dme | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm index 16631afe793..0f61d65f578 100644 --- a/code/game/machinery/computer/vr_control.dm +++ b/code/game/machinery/computer/vr_control.dm @@ -7,11 +7,11 @@ /obj/machinery/computer/vr_control/New() - vr_control = new(src) + //vr_control = new(src) ..() /obj/machinery/computer/vr_control/Destroy() - qdel(vr_control) + //qdel(vr_control) return ..() /obj/machinery/computer/vr_control/attack_ai(mob/user) diff --git a/paradise.dme b/paradise.dme index b2e4b77377e..fbd75bcd07f 100644 --- a/paradise.dme +++ b/paradise.dme @@ -601,7 +601,6 @@ #include "code\game\machinery\computer\store.dm" #include "code\game\machinery\computer\syndicate_specops_shuttle.dm" #include "code\game\machinery\computer\telecrystalconsoles.dm" -#include "code\game\machinery\computer\vr_control.dm" #include "code\game\machinery\doors\airlock.dm" #include "code\game\machinery\doors\airlock_control.dm" #include "code\game\machinery\doors\airlock_electronics.dm" From a44d4bb8d30e59a15c250e4ef436c3c7a45b2396 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Sat, 25 Mar 2017 17:09:17 -0700 Subject: [PATCH 3/8] making backup --- _maps/map_files/templates/{vr => }/lobby.dmm | 0 _maps/map_files/vr/lobby.dmm | 3 +++ code/datums/vr/level.dm | 6 ++---- code/game/machinery/computer/vr_control.dm | 13 +++++++++---- 4 files changed, 14 insertions(+), 8 deletions(-) rename _maps/map_files/templates/{vr => }/lobby.dmm (100%) create mode 100644 _maps/map_files/vr/lobby.dmm diff --git a/_maps/map_files/templates/vr/lobby.dmm b/_maps/map_files/templates/lobby.dmm similarity index 100% rename from _maps/map_files/templates/vr/lobby.dmm rename to _maps/map_files/templates/lobby.dmm diff --git a/_maps/map_files/vr/lobby.dmm b/_maps/map_files/vr/lobby.dmm new file mode 100644 index 00000000000..82c5a7d4de7 --- /dev/null +++ b/_maps/map_files/vr/lobby.dmm @@ -0,0 +1,3 @@ +"a" = () + +(1,1,1, 10,10,1) = {""} diff --git a/code/datums/vr/level.dm b/code/datums/vr/level.dm index c65ea29c5c8..0966f8ff33d 100644 --- a/code/datums/vr/level.dm +++ b/code/datums/vr/level.dm @@ -1,12 +1,10 @@ //The bigger ones lag like hell if there is more than one on a z-level, so cost 2 for them /datum/map_template/vr/level - prefix = "_maps/map_files/templates/vr/" - cost = 1 + prefix = "_maps/map_files/vr/" /datum/map_template/vr/level/lobby id = "lobby" suffix = "lobby.dmm" - name = "Biological Storage Facility" + name = "Virtual Hub Facility" description = "This is the lobby. The hub for all things VR." - cost = 2 diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm index 0f61d65f578..9cb47563ae5 100644 --- a/code/game/machinery/computer/vr_control.dm +++ b/code/game/machinery/computer/vr_control.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/vr_control - name = "crew monitoring computer" - desc = "Used to monitor active health sensors built into most of the crew's uniforms." + name = "VR console" + desc = "A list and control panel for all virtual servers." icon_screen = "comm_logs" light_color = LIGHT_COLOR_DARKGREEN @@ -31,5 +31,10 @@ /obj/machinery/computer/vr_control/interact(mob/user) //crew_monitor.ui_interact(user) -/obj/machinery/computer/vr_control/proc/loadlevel(template) - var/datum/space_chunk/C = zlev_manager.allocate_space(template.width, template.height) +/obj/machinery/computer/vr_control/proc/loadlevel(var/datum/map_template/template) + //var/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in map_templates + //if(!map) + // return + template = "_maps/map_files/templates/vr/lobby.dmm" + var/datum/space_chunk/C = space_manager.allocate_space(template.width, template.height) + template.load(C, centered = FALSE) \ No newline at end of file From dbf989be5108379b2c850d45423d7de53267be69 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Sun, 2 Apr 2017 01:50:51 -0700 Subject: [PATCH 4/8] Phase one done. --- _maps/map_files/templates/lobby.dmm | 81 -------------------- _maps/map_files/vr/blood_and_sand.dmm | 46 +++++++++++ _maps/map_files/vr/lobby.dmm | 47 +++++++++++- code/_globalvars/mapping.dm | 3 +- code/datums/helper_datums/map_template.dm | 14 +++- code/datums/vr.dm | 10 +-- code/datums/vr/level.dm | 8 +- code/game/area/Space Station 13 areas.dm | 16 ++++ code/game/machinery/computer/vr_control.dm | 14 ++-- code/game/objects/effects/landmarks.dm | 1 - code/modules/VR/vr_avatar.dm | 67 ++++++++++++---- code/modules/VR/vr_goggles.dm | 52 +++---------- code/modules/space_management/space_chunk.dm | 7 ++ code/modules/vr/vr_controller.dm | 66 ++++++++++++++++ code/modules/vr/vr_outfits.dm | 15 ++++ paradise.dme | 7 +- 16 files changed, 294 insertions(+), 160 deletions(-) delete mode 100644 _maps/map_files/templates/lobby.dmm create mode 100644 _maps/map_files/vr/blood_and_sand.dmm create mode 100644 code/modules/vr/vr_controller.dm create mode 100644 code/modules/vr/vr_outfits.dm diff --git a/_maps/map_files/templates/lobby.dmm b/_maps/map_files/templates/lobby.dmm deleted file mode 100644 index 40276280865..00000000000 --- a/_maps/map_files/templates/lobby.dmm +++ /dev/null @@ -1,81 +0,0 @@ -"a" = (/turf/space,/area/space) -"b" = (/turf/unsimulated/wall/metal,/area/space) -"c" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) -"d" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/space) -"e" = (/turf/simulated/floor/greengrid,/area/space) -"f" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) -"g" = (/obj/machinery/telecomms/hub/preset_cent,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) -"h" = (/turf/simulated/floor/light,/area/space) -"i" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/space) -"j" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/space) -"k" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/simulated/floor/greengrid,/area/space) -"l" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/simulated/floor/greengrid,/area/space) -"m" = (/obj/machinery/computer/mecha,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) -"n" = (/obj/machinery/telecomms/processor/preset_cent,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/space) -"o" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/space) -"p" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/space) -"q" = (/obj/effect/landmark{name = "avatarspawn"},/turf/simulated/floor/light,/area/space) -"r" = (/turf/unsimulated/wall/fakeglass,/area/space) - -(1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaabbbbbbbbbbbbbbbbbbbbffgeegffbbbbaaaaaaaaaaaaaaaaaaaaaaaa -aaaabcccfcfcfcfcfcccbffffhieeihffffbaaaaaaaaaaaaaaaaaaaaaaaa -aaaabcchfhfhfhfhfhccbfhchcjeejchchfbaaaaaaaaaaaaaaaaaaaaaaaa -aaaabbffkflfkflfkffbbfcfffgeegfffcfbbaaaaaaaaaaaaaaaaaaaaaaa -aaaaabchfhfhfhfhfhcbffhfchieeihcfhffbaaaaaaaaaaaaaaaaaaaaaaa -aaaaabbcfcfcfcfcfcbbfhcfhcjeejchfchfbbaaaaaaaaaaaaaaaaaaaaaa -aaaaaabdmdmdmdmdmdbdnopnopbeebopnopndbbaaaaaaaaaaaaaaaaaaaaa -aaaaaabeeeeeeeeeeeceeeeeeeeqqeeeeeeeecbaaaaaaaaaaaaaaaaaaaaa -aaaaaabeeeeeeeeeeeceeeeeeeeqqeeeeeeeecbaaaaaaaaaaaaaaaaaaaaa -aaaaaabbbbbbbbbbbbbdnopnopbeebopnopndbbaaaaaaaaaaaaaaaaaaaaa -aaaaaabaaaaaaaaaaabbfhcfhcieeichfchfbbaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaabffhfchreejhcfhffbaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaabbfcfffgeegfffcfbbaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabfhchcieeichchfbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabffffhreejhffffbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaabbbbffgeegffbbbbaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -"} diff --git a/_maps/map_files/vr/blood_and_sand.dmm b/_maps/map_files/vr/blood_and_sand.dmm new file mode 100644 index 00000000000..af13e70d2f1 --- /dev/null +++ b/_maps/map_files/vr/blood_and_sand.dmm @@ -0,0 +1,46 @@ +"a" = (/turf/space,/area/space) +"b" = (/turf/unsimulated/wall/other,/area/vr/roman) +"c" = (/turf/unsimulated/beach/sand,/area/vr/roman) +"d" = (/obj/effect/landmark{name = "avatarspawn"},/turf/unsimulated/beach/sand,/area/vr/roman) +"e" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/vr/roman) +"f" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/vr/roman) +"g" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/vr/roman) +"h" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 8},/area/vr/roman) +"i" = (/turf/unsimulated/floor/lava/dense,/area/vr/roman) +"j" = (/turf/unsimulated/floor{icon_state = "panelscorched"},/area/vr/roman) +"k" = (/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/vr/roman) +"l" = (/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/vr/roman) +"m" = (/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/vr/roman) + +(1,1,1) = {" +aaaaaaaaaaabbbbbbbbaaaaaaaaaaa +aaaaaaaabbbbccccccbbbbaaaaaaaa +aaaaaaabbccccccccccccbbaaaaaaa +aaaaabbbccccccddccccccbbbaaaaa +aaaabbdccccccefgcccccccdbbaaaa +aaabbddcccccchijcccccccddbbaaa +aaabcccccccccklmccccccccccbaaa +aabbccccccccccccccccccccccbbaa +abbccefgcccccccccccccccccccbba +abccchijccccccddccccccccccccba +abcccklmcccdccccccdcccccccccba +bbccccccccdbccccccbdccccccccbb +bccccccccccccccccccccccccccccb +bccccccccccccccccccccccccccccb +bccdccccdccccccccccccdccccdccb +bccdccccdccccccccccccdccccdccb +bccccccccccccccccccccccccccccb +bccccccccccccccccccccccccccccb +bbccccccccdbccccccbdccccefgcbb +abcccccccccdccccccdccccchijcba +abccccccccccccccccccccccklmcba +abbcccefgcccccddcccccccccccbba +aabbcchijcccccccccccccccccbbaa +aaabddklmcccccccccccccccccbaaa +aaabbdcccccccccccccccccddbbaaa +aaaabbcccccccccccccccccdbbaaaa +aaaaabbbccccccddccccccbbbaaaaa +aaaaaaabbccccccccccccbbaaaaaaa +aaaaaaaabbbbccccccbbbbaaaaaaaa +aaaaaaaaaaabbbbbbbbaaaaaaaaaaa +"} diff --git a/_maps/map_files/vr/lobby.dmm b/_maps/map_files/vr/lobby.dmm index 82c5a7d4de7..798228e212e 100644 --- a/_maps/map_files/vr/lobby.dmm +++ b/_maps/map_files/vr/lobby.dmm @@ -1,3 +1,46 @@ -"a" = () +"a" = (/turf/space,/area/space) +"b" = (/turf/unsimulated/wall/metal,/area/vr/lobby) +"c" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vr/lobby) +"d" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/vr/lobby) +"e" = (/turf/unsimulated/floor{icon_state = "gcircuit"},/area/vr/lobby) +"f" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vr/lobby) +"g" = (/turf/unsimulated/floor{icon_state = "light_on"},/area/vr/lobby) +"h" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/vr/lobby) +"i" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/vr/lobby) +"j" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "gcircuit"},/area/vr/lobby) +"k" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "gcircuit"},/area/vr/lobby) +"l" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vr/lobby) +"m" = (/obj/machinery/computer/vr_control,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vr/lobby) +"n" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/vr/lobby) +"o" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/vr/lobby) +"p" = (/obj/effect/landmark{name = "avatarspawn"},/turf/unsimulated/floor{icon_state = "gcircuit"},/area/vr/lobby) +"q" = (/obj/machinery/telecomms/processor/preset_cent,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/vr/lobby) +"r" = (/turf/unsimulated/wall/fakeglass,/area/vr/lobby) -(1,1,1, 10,10,1) = {""} +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaa +aabbbbbbbbbbbbbbbbbbbeefeefeebbbbbbbbbbbbbbbbbbbaa +aabbcecececececbbbeeeegheehgeeeebbbcecececececbbaa +aabcgegegegegegcbbegcgcieeicgcgebbcgegegegegegcbaa +aabeejekejekejeebbeceeeleeleeecebbeejekejekejeebaa +aabcgegegegegegcbeegecgheehgcegeebcgegegegegegcbaa +aabbcecececececbbegcegcieeicgecgebbcecececececbbaa +aaabdmdmdmdmdmdbdfnolnobccbnolnofdbdmdmdmdmdmdbaaa +aaabeeeeeeeeeeeceeeeeeecppceeeeeeeceeeeeeeeeeebaaa +aaabeeeeeeeeeeeceeeeeeecppceeeeeeeceeeeeeeeeeebaaa +aaabbbbbbbbbbbbbdfnolnobccbnolnoqdbbbbbbbbbbbbbaaa +aaaaaaaaaaaaaaabbegcegcheehcgecgebbaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaabeegecgreeigcegeebaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaabbeceeeleeleeecebbaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabegcgcheehcgcgebaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabeeeegreeigeeeebaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaabbbbeefeefeebbbbaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaabbbdeedbbbaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaabbccbbaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaabbbbaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm index 199346ae30a..4915b91f3d0 100644 --- a/code/_globalvars/mapping.dm +++ b/code/_globalvars/mapping.dm @@ -52,4 +52,5 @@ var/list/datum/map_template/ruins_templates = list() var/list/datum/map_template/space_ruins_templates = list() var/list/datum/map_template/lava_ruins_templates = list() var/list/datum/map_template/shelter_templates = list() -var/list/datum/map_template/shuttle_templates = list() \ No newline at end of file +var/list/datum/map_template/shuttle_templates = list() +var/list/datum/map_template/vr_templates = list() \ No newline at end of file diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index ead199814f3..1ecf89de0fe 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -114,6 +114,7 @@ preloadRuinTemplates() preloadShelterTemplates() preloadShuttleTemplates() + preloadVRTemplates() /proc/preloadRuinTemplates() // Still supporting bans by filename @@ -163,4 +164,15 @@ var/datum/map_template/shuttle/S = new shuttle_type() shuttle_templates[S.shuttle_id] = S - map_templates[S.shuttle_id] = S \ No newline at end of file + map_templates[S.shuttle_id] = S + +/proc/preloadVRTemplates() + for(var/item in subtypesof(/datum/map_template/vr)) + var/datum/map_template/vr/vr_type = item + if(!initial(vr_type.suffix)) + continue + + var/datum/map_template/vr/V = new vr_type() + + vr_templates[V.id] = V + map_templates[V.id] = V \ No newline at end of file diff --git a/code/datums/vr.dm b/code/datums/vr.dm index 3a11a19228d..0b2699b5ceb 100644 --- a/code/datums/vr.dm +++ b/code/datums/vr.dm @@ -1,14 +1,12 @@ /datum/map_template/vr - //name = "A Chest of Doubloons" + //name = "Lobby" name = null var/id = null // For blacklisting purposes, all vr levels need an id - var/description = "In the middle of a clearing in the rockface, there's a \ - chest filled with gold coins with Spanish engravings. How is there a \ - wooden container filled with 18th century coinage in the middle of a \ - lavawracked hellscape? It is clearly a mystery." + var/description = "This is a placeholder. Please contact your virtual adminsitrator if you see this." + var/outfit = null var/cost = null - var/allow_duplicates = TRUE //A bit boring, don't you think? You can always explicitly allow it on a ruin definition + var/allow_duplicates = TRUE var/prefix = null var/suffix = null diff --git a/code/datums/vr/level.dm b/code/datums/vr/level.dm index 0966f8ff33d..d3feca26ad9 100644 --- a/code/datums/vr/level.dm +++ b/code/datums/vr/level.dm @@ -1,4 +1,3 @@ -//The bigger ones lag like hell if there is more than one on a z-level, so cost 2 for them /datum/map_template/vr/level prefix = "_maps/map_files/vr/" @@ -7,4 +6,11 @@ suffix = "lobby.dmm" name = "Virtual Hub Facility" description = "This is the lobby. The hub for all things VR." + outfit = /datum/outfit/vr/vr_basic +/datum/map_template/vr/level/roman + id = "roman" + suffix = "blood_and_sand.dmm" + name = "Blood and Sand Arena" + description = "To the Death!" + outfit = /datum/outfit/vr/roman \ No newline at end of file diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index a9cdb361b7f..32f8b22f9f0 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -2587,6 +2587,22 @@ area/security/podbay /area/awaycontent/a30 icon_state = "awaycontent30" +////////////////////////VR AREAS/////////////////////////////////// + +/area/vr + name = "VR" + requires_power = 0 + dynamic_lighting = 0 + no_teleportlocs = 1 + + +/area/vr/lobby + name = "VR Lobby" + +/area/vr/roman + name = "Roman Arena" + + ///////////////////////////////////////////////////////////////////// /* Lists of areas to be used with is_type_in_list. diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm index 9cb47563ae5..3c5edfa619c 100644 --- a/code/game/machinery/computer/vr_control.dm +++ b/code/game/machinery/computer/vr_control.dm @@ -27,14 +27,14 @@ /obj/machinery/computer/vr_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) //crew_monitor.ui_interact(user, ui_key, ui, force_open) + switch(alert("What would you like to do?", "VR Control", "Join Room", "Make Room", "Cancel")) + if("Join Room") + spawn_vr_avatar(user, input(user, "Choose a room to join.","Select Level") as null|anything in vr_rooms) + if("Make Room") + make_vr_room(input(user, "Name your new Room","Name here.") as null|text, input(user, "Choose a Level to load into your new Room.","Select Level") as null|anything in vr_templates) + if("Cancel") + return /obj/machinery/computer/vr_control/interact(mob/user) //crew_monitor.ui_interact(user) -/obj/machinery/computer/vr_control/proc/loadlevel(var/datum/map_template/template) - //var/map = input(usr, "Choose a Map Template to place at your CURRENT LOCATION","Place Map Template") as null|anything in map_templates - //if(!map) - // return - template = "_maps/map_files/templates/vr/lobby.dmm" - var/datum/space_chunk/C = space_manager.allocate_space(template.width, template.height) - template.load(C, centered = FALSE) \ No newline at end of file diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 5cdc64fa2fc..e5b1098e2d0 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -22,7 +22,6 @@ if("avatarspawn") avatarspawn += loc - qdel(src) if("JoinLate") latejoin += loc diff --git a/code/modules/VR/vr_avatar.dm b/code/modules/VR/vr_avatar.dm index f3baf7e89e0..563d8e676aa 100644 --- a/code/modules/VR/vr_avatar.dm +++ b/code/modules/VR/vr_avatar.dm @@ -2,23 +2,25 @@ /mob/living/carbon/human/virtual_reality var/mob/living/carbon/human/real_me //The human controlling us, can be any human (including virtual ones... inception...) - var/obj/item/clothing/glasses/vr_goggles var/datum/action/quit_vr/quit_action - + var/datum/action/back_to_lobby/back_to_lobby + var/datum/action/detach_from_avatar/detach_from_avatar /mob/living/carbon/human/virtual_reality/New() quit_action = new() quit_action.Grant(src) + back_to_lobby = new() + back_to_lobby.Grant(src) + detach_from_avatar = new() + detach_from_avatar.Grant(src) ..() /mob/living/carbon/human/virtual_reality/death() - revert_to_reality() - qdel(src) + return_to_lobby() ..() /mob/living/carbon/human/virtual_reality/Destroy() - revert_to_reality() - qdel(src) + return_to_lobby() return ..() /mob/living/carbon/human/virtual_reality/ghost() @@ -26,20 +28,28 @@ set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." var/mob/living/carbon/human/H = real_me - revert_to_reality(FALSE, FALSE) + revert_to_reality(FALSE) if(H) H.ghost() qdel(src) -/mob/living/carbon/human/virtual_reality/proc/revert_to_reality(refcleanup = TRUE, deathchecks = TRUE) +/mob/living/carbon/human/virtual_reality/proc/revert_to_reality(remove = 0) if(real_me && mind) mind.transfer_to(real_me) - real_me.eye_blind = 4 - real_me.confused = 4 -// if(deathchecks && vr_sleeper && vr_sleeper.you_die_in_the_game_you_die_for_real) -// real_me.death(0) - if(refcleanup) - real_me = null + real_me.eye_blind = 2 + real_me.confused = 2 + if(remove) + qdel(src) + else + return src + +/mob/living/carbon/human/virtual_reality/proc/return_to_lobby() + if(real_me && mind) + var/mob/living/carbon/human/virtual_reality/new_vr + new_vr = spawn_vr_avatar(src, "Lobby") + var/obj/item/clothing/glasses/vr_goggles/g = new_vr.real_me.glasses + g.vr_human = new_vr + qdel(src) /datum/action/quit_vr name = "Quit Virtual Reality" @@ -47,8 +57,31 @@ /datum/action/quit_vr/Trigger() if(..()) if(istype(owner, /mob/living/carbon/human/virtual_reality)) - var/mob/living/carbon/human/virtual_reality/VR = owner - VR.revert_to_reality(FALSE, FALSE) + var/mob/living/carbon/human/virtual_reality/vr = owner + vr.revert_to_reality(1) + else + Remove(owner) + +/datum/action/back_to_lobby + name = "Return To Lobby" + +/datum/action/back_to_lobby/Trigger() + if(..()) + if(istype(owner, /mob/living/carbon/human/virtual_reality)) + var/mob/living/carbon/human/virtual_reality/vr = owner + vr.return_to_lobby() + else + Remove(owner) + +/datum/action/detach_from_avatar + name = "Detach From Avatar" + +/datum/action/detach_from_avatar/Trigger() + if(..()) + if(istype(owner, /mob/living/carbon/human/virtual_reality)) + var/mob/living/carbon/human/virtual_reality/vr = owner + var/obj/item/clothing/glasses/vr_goggles/g = vr.real_me.glasses + g.vr_human = vr + vr.revert_to_reality(0) else Remove(owner) - qdel(src) \ No newline at end of file diff --git a/code/modules/VR/vr_goggles.dm b/code/modules/VR/vr_goggles.dm index 500104588c3..5dce094124e 100644 --- a/code/modules/VR/vr_goggles.dm +++ b/code/modules/VR/vr_goggles.dm @@ -1,5 +1,3 @@ - - //Glorified teleporter that puts you in a new human body. // it's """VR""" @@ -16,12 +14,11 @@ var/you_die_in_the_game_you_die_for_real = FALSE var/mob/living/carbon/human/virtual_reality/vr_human - var/static/list/available_vr_spawnpoints - var/vr_category = "default" //Specific category of spawn points to pick from - var/outfit = /datum/outfit/vr_basic + /obj/item/clothing/glasses/vr_goggles/Destroy() ..() + vr_human.revert_to_reality(1) cleanup_vr_avatar() /obj/item/clothing/glasses/vr_goggles/emag_act(mob/user) @@ -30,45 +27,18 @@ /obj/item/clothing/glasses/vr_goggles/dropped() ..() if(vr_human) - cleanup_vr_avatar() - vr_human.revert_to_reality(FALSE, FALSE) + vr_human.revert_to_reality(0) + +/obj/item/clothing/glasses/vr_goggles/proc/cleanup_vr_avatar() + if(vr_human) + vr_human = null /obj/item/clothing/glasses/vr_goggles/equipped() ..() var/mob/living/carbon/human/H = loc spawn(1) if(H.glasses == src) - control_remote(H,build_virtual_avatar(H,pick(avatarspawn))) - -/obj/item/clothing/glasses/vr_goggles/proc/build_virtual_avatar(mob/living/carbon/human/virtual_reality/H, location) - if(!location) - return - var/mob/living/carbon/human/virtual_reality/vr_avatar - cleanup_vr_avatar() - vr_avatar = new /mob/living/carbon/human/virtual_reality(location) - vr_avatar.set_species(H.species.name) - vr_avatar.vr_goggles = src - vr_avatar.real_me = H - vr_avatar.dna = H.dna.Clone() - vr_avatar.name = H.name - vr_avatar.real_name = H.real_name - vr_avatar.undershirt = H.undershirt - vr_avatar.underwear = H.underwear -// vr_avatar.change_hair(H.head_organ.h_style) - if(outfit) - var/datum/outfit/vr_basic/O = new outfit() - O.equip(vr_avatar) - return vr_avatar - -/obj/item/clothing/glasses/vr_goggles/proc/control_remote(mob/living/carbon/human/H, mob/living/carbon/human/virtual_reality/vr_avatar) - if(H.mind) - H.mind.transfer_to(vr_avatar) - -/obj/item/clothing/glasses/vr_goggles/proc/cleanup_vr_avatar() - if(vr_human) - vr_human.death(0) - -/datum/outfit/vr_basic - name = "basic vr" - uniform = /obj/item/clothing/under/psysuit - shoes = /obj/item/clothing/shoes/black \ No newline at end of file + if(vr_human == null) + vr_human = spawn_vr_avatar(H, "Lobby") + else + control_remote(H, vr_human) \ No newline at end of file diff --git a/code/modules/space_management/space_chunk.dm b/code/modules/space_management/space_chunk.dm index 8b6e5b6974e..e139394e963 100644 --- a/code/modules/space_management/space_chunk.dm +++ b/code/modules/space_management/space_chunk.dm @@ -96,6 +96,13 @@ /datum/space_chunk/proc/return_turfs() return +/datum/space_chunk/proc/search_chunk(object_list) + var/list/located = list() + for(var/atom/object in object_list) + if(((object.x >= x) && (object.x <= (x + width))) && ((object.y >= y) && (object.y <= (y + height))) && (object.z == zpos)) + located.Add(object) + return located + #undef BOTTOM_LEFT_CHUNK #undef BOTTOM_RIGHT_CHUNK #undef TOP_LEFT_CHUNK diff --git a/code/modules/vr/vr_controller.dm b/code/modules/vr/vr_controller.dm new file mode 100644 index 00000000000..561a81e68fd --- /dev/null +++ b/code/modules/vr/vr_controller.dm @@ -0,0 +1,66 @@ +//Control file with the backbone for the vr rooms and avatars + +var/datum/vr_rooms = list() +var/roomcap = 20 + +/datum/vr_room + var/name = null + var/datum/map_template/vr/template = null + var/datum/space_chunk/chunk = null + var/list/spawn_points = list() + var/expires = 1 + +proc/make_vr_room(name, template, expires) + var/datum/vr_room/R = new + R.name = name + R.template = template + R.template = vr_templates[R.template] + R.chunk = space_manager.allocate_space(R.template.width, R.template.height) + R.expires = expires + vr_rooms[R.name] = R + R.template.load(locate(R.chunk.x,R.chunk.y,R.chunk.zpos), centered = FALSE) + + for(var/atom/landmark in R.chunk.search_chunk(landmarks_list)) + if(landmark.name == "avatarspawn") + R.spawn_points.Add(landmark) + +//datum/vr_room/process() + + +//Control code for the avatars +proc/build_virtual_avatar(mob/living/carbon/human/H, location, datum/map_template/vr/level/template) + if(!location) + return + var/mob/living/carbon/human/virtual_reality/vr_avatar + location = get_turf(location) + vr_avatar = new /mob/living/carbon/human/virtual_reality(location) + vr_avatar.set_species(H.species.name) + if(istype(H, /mob/living/carbon/human/virtual_reality)) + var/mob/living/carbon/human/virtual_reality/V = H + vr_avatar.real_me = V.real_me + else + vr_avatar.real_me = H + vr_avatar.dna = H.dna.Clone() + vr_avatar.name = H.name + vr_avatar.real_name = H.real_name + vr_avatar.undershirt = H.undershirt + vr_avatar.underwear = H.underwear + var/obj/item/organ/external/head/hd = H.get_organ("head") + vr_avatar.change_hair(hd.h_style) + vr_avatar.equipOutfit(template.outfit) + return vr_avatar + +proc/control_remote(mob/living/carbon/human/H, mob/living/carbon/human/virtual_reality/vr_avatar) + if(H.mind) + H.mind.transfer_to(vr_avatar) + +proc/spawn_vr_avatar(mob/living/carbon/human/H, datum/vr_room/room) + room = vr_rooms[room] + var/mob/living/carbon/human/virtual_reality/vr_human + vr_human = build_virtual_avatar(H, pick(room.spawn_points), room.template) + control_remote(H, vr_human) + return vr_human + +//Preloaded rooms +/hook/roundstart/proc/starting_levels() + make_vr_room("Lobby", "lobby", "0") \ No newline at end of file diff --git a/code/modules/vr/vr_outfits.dm b/code/modules/vr/vr_outfits.dm new file mode 100644 index 00000000000..4f673fd4e8c --- /dev/null +++ b/code/modules/vr/vr_outfits.dm @@ -0,0 +1,15 @@ +//place all the outfits for your levels in here. + +/datum/outfit/vr/vr_basic + name = "basic vr" + uniform = /obj/item/clothing/under/psysuit + shoes = /obj/item/clothing/shoes/black + +/datum/outfit/vr/roman + name = "roman" + uniform = /obj/item/clothing/under/roman + shoes = /obj/item/clothing/shoes/roman + l_hand = /obj/item/weapon/shield/riot/roman + r_hand = /obj/item/weapon/twohanded/spear + head = /obj/item/clothing/head/helmet/roman + back = /obj/item/weapon/twohanded/spear \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index fbd75bcd07f..b2855a5456c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -601,6 +601,7 @@ #include "code\game\machinery\computer\store.dm" #include "code\game\machinery\computer\syndicate_specops_shuttle.dm" #include "code\game\machinery\computer\telecrystalconsoles.dm" +#include "code\game\machinery\computer\vr_control.dm" #include "code\game\machinery\doors\airlock.dm" #include "code\game\machinery\doors\airlock_control.dm" #include "code\game\machinery\doors\airlock_electronics.dm" @@ -2162,8 +2163,10 @@ #include "code\modules\vehicle\speedbike.dm" #include "code\modules\vehicle\sportscar.dm" #include "code\modules\vehicle\vehicle.dm" -#include "code\modules\VR\vr_avatar.dm" -#include "code\modules\VR\vr_goggles.dm" +#include "code\modules\vr\vr_avatar.dm" +#include "code\modules\vr\vr_controller.dm" +#include "code\modules\vr\vr_goggles.dm" +#include "code\modules\vr\vr_outfits.dm" #include "goon\code\datums\browserOutput.dm" #include "interface\interface.dm" #include "interface\skin.dmf" From 866cec8a5c279ab9c3df5ebbd0f064b5edfb74c2 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Fri, 14 Apr 2017 01:16:13 -0700 Subject: [PATCH 5/8] Requested changes completed --- code/datums/vr.dm | 4 ---- code/game/machinery/computer/vr_control.dm | 4 ---- code/modules/VR/vr_avatar.dm | 2 +- code/modules/VR/vr_goggles.dm | 3 --- code/modules/vr/vr_controller.dm | 7 ++++--- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/code/datums/vr.dm b/code/datums/vr.dm index 0b2699b5ceb..4d31b6a2072 100644 --- a/code/datums/vr.dm +++ b/code/datums/vr.dm @@ -1,13 +1,9 @@ /datum/map_template/vr - //name = "Lobby" name = null var/id = null // For blacklisting purposes, all vr levels need an id var/description = "This is a placeholder. Please contact your virtual adminsitrator if you see this." var/outfit = null - var/cost = null - var/allow_duplicates = TRUE - var/prefix = null var/suffix = null diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm index 3c5edfa619c..9732234d48e 100644 --- a/code/game/machinery/computer/vr_control.dm +++ b/code/game/machinery/computer/vr_control.dm @@ -7,11 +7,9 @@ /obj/machinery/computer/vr_control/New() - //vr_control = new(src) ..() /obj/machinery/computer/vr_control/Destroy() - //qdel(vr_control) return ..() /obj/machinery/computer/vr_control/attack_ai(mob/user) @@ -26,7 +24,6 @@ ui_interact(user) /obj/machinery/computer/vr_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - //crew_monitor.ui_interact(user, ui_key, ui, force_open) switch(alert("What would you like to do?", "VR Control", "Join Room", "Make Room", "Cancel")) if("Join Room") spawn_vr_avatar(user, input(user, "Choose a room to join.","Select Level") as null|anything in vr_rooms) @@ -36,5 +33,4 @@ return /obj/machinery/computer/vr_control/interact(mob/user) - //crew_monitor.ui_interact(user) diff --git a/code/modules/VR/vr_avatar.dm b/code/modules/VR/vr_avatar.dm index 563d8e676aa..d129c261eb0 100644 --- a/code/modules/VR/vr_avatar.dm +++ b/code/modules/VR/vr_avatar.dm @@ -17,7 +17,7 @@ /mob/living/carbon/human/virtual_reality/death() return_to_lobby() - ..() + return ..() /mob/living/carbon/human/virtual_reality/Destroy() return_to_lobby() diff --git a/code/modules/VR/vr_goggles.dm b/code/modules/VR/vr_goggles.dm index 5dce094124e..c2a185b0ffa 100644 --- a/code/modules/VR/vr_goggles.dm +++ b/code/modules/VR/vr_goggles.dm @@ -21,9 +21,6 @@ vr_human.revert_to_reality(1) cleanup_vr_avatar() -/obj/item/clothing/glasses/vr_goggles/emag_act(mob/user) - //placeholder - /obj/item/clothing/glasses/vr_goggles/dropped() ..() if(vr_human) diff --git a/code/modules/vr/vr_controller.dm b/code/modules/vr/vr_controller.dm index 561a81e68fd..8630c0ed45b 100644 --- a/code/modules/vr/vr_controller.dm +++ b/code/modules/vr/vr_controller.dm @@ -45,8 +45,9 @@ proc/build_virtual_avatar(mob/living/carbon/human/H, location, datum/map_templat vr_avatar.real_name = H.real_name vr_avatar.undershirt = H.undershirt vr_avatar.underwear = H.underwear - var/obj/item/organ/external/head/hd = H.get_organ("head") - vr_avatar.change_hair(hd.h_style) + //var/obj/item/organ/external/head/hd = H.get_organ("head") + //vr_avatar.change_hair(hd.h_style) + vr_avatar.UpdateAppearance() vr_avatar.equipOutfit(template.outfit) return vr_avatar @@ -63,4 +64,4 @@ proc/spawn_vr_avatar(mob/living/carbon/human/H, datum/vr_room/room) //Preloaded rooms /hook/roundstart/proc/starting_levels() - make_vr_room("Lobby", "lobby", "0") \ No newline at end of file + make_vr_room("Lobby", "lobby", 0) \ No newline at end of file From 78af5f62b9772c1f422450b3caf6a0efd133ad1c Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Sat, 15 Apr 2017 22:38:28 -0700 Subject: [PATCH 6/8] Forgot to save --- code/modules/vr/vr_controller.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/vr/vr_controller.dm b/code/modules/vr/vr_controller.dm index 8630c0ed45b..9ab22ff5e0e 100644 --- a/code/modules/vr/vr_controller.dm +++ b/code/modules/vr/vr_controller.dm @@ -24,9 +24,6 @@ proc/make_vr_room(name, template, expires) if(landmark.name == "avatarspawn") R.spawn_points.Add(landmark) -//datum/vr_room/process() - - //Control code for the avatars proc/build_virtual_avatar(mob/living/carbon/human/H, location, datum/map_template/vr/level/template) if(!location) @@ -45,8 +42,6 @@ proc/build_virtual_avatar(mob/living/carbon/human/H, location, datum/map_templat vr_avatar.real_name = H.real_name vr_avatar.undershirt = H.undershirt vr_avatar.underwear = H.underwear - //var/obj/item/organ/external/head/hd = H.get_organ("head") - //vr_avatar.change_hair(hd.h_style) vr_avatar.UpdateAppearance() vr_avatar.equipOutfit(template.outfit) return vr_avatar From d695d4e82a82c1e4e6d335366b86cfa4237b7393 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Mon, 17 Apr 2017 17:52:39 -0700 Subject: [PATCH 7/8] Status Proc changes. --- code/modules/VR/vr_avatar.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/VR/vr_avatar.dm b/code/modules/VR/vr_avatar.dm index d129c261eb0..510871fb40a 100644 --- a/code/modules/VR/vr_avatar.dm +++ b/code/modules/VR/vr_avatar.dm @@ -36,8 +36,8 @@ /mob/living/carbon/human/virtual_reality/proc/revert_to_reality(remove = 0) if(real_me && mind) mind.transfer_to(real_me) - real_me.eye_blind = 2 - real_me.confused = 2 + real_me.EyeBlind(2) + real_me.Confused(2) if(remove) qdel(src) else From acb31233e056bb00d3962871b380a3bf59d4cbd1 Mon Sep 17 00:00:00 2001 From: Warior4356 Date: Tue, 18 Apr 2017 02:22:51 -0700 Subject: [PATCH 8/8] qdel added to console and return to roundstart --- code/game/machinery/computer/vr_control.dm | 1 + code/modules/vr/vr_controller.dm | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/vr_control.dm b/code/game/machinery/computer/vr_control.dm index 9732234d48e..b1fded03b99 100644 --- a/code/game/machinery/computer/vr_control.dm +++ b/code/game/machinery/computer/vr_control.dm @@ -27,6 +27,7 @@ switch(alert("What would you like to do?", "VR Control", "Join Room", "Make Room", "Cancel")) if("Join Room") spawn_vr_avatar(user, input(user, "Choose a room to join.","Select Level") as null|anything in vr_rooms) + qdel(user) if("Make Room") make_vr_room(input(user, "Name your new Room","Name here.") as null|text, input(user, "Choose a Level to load into your new Room.","Select Level") as null|anything in vr_templates) if("Cancel") diff --git a/code/modules/vr/vr_controller.dm b/code/modules/vr/vr_controller.dm index 9ab22ff5e0e..45bf2a6cc74 100644 --- a/code/modules/vr/vr_controller.dm +++ b/code/modules/vr/vr_controller.dm @@ -59,4 +59,5 @@ proc/spawn_vr_avatar(mob/living/carbon/human/H, datum/vr_room/room) //Preloaded rooms /hook/roundstart/proc/starting_levels() - make_vr_room("Lobby", "lobby", 0) \ No newline at end of file + make_vr_room("Lobby", "lobby", 0) + return 1 \ No newline at end of file