diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm index b4d6e0175b..dcd6e555b9 100644 --- a/code/game/machinery/virtual_reality/vr_console.dm +++ b/code/game/machinery/virtual_reality/vr_console.dm @@ -3,26 +3,20 @@ desc = "A fancy bed with built-in sensory I/O ports and connectors to interface users' minds with their bodies in virtual reality." icon = 'icons/obj/Cryogenic2.dmi' icon_state = "syndipod_0" -<<<<<<< HEAD:code/game/machinery/vr_console.dm -======= var/base_state = "syndipod_" ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm density = 1 anchored = 1 circuit = /obj/item/weapon/circuitboard/vr_sleeper var/mob/living/carbon/human/occupant = null var/mob/living/carbon/human/avatar = null var/datum/mind/vr_mind = null -<<<<<<< HEAD:code/game/machinery/vr_console.dm -======= var/datum/effect/effect/system/smoke_spread/bad/smoke var/eject_dead = TRUE var/mirror_first_occupant = TRUE // Do we force the newly produced body to look like the occupant? ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm use_power = 1 idle_power_usage = 15 @@ -37,18 +31,6 @@ RefreshParts() -<<<<<<< HEAD:code/game/machinery/vr_console.dm -/obj/machinery/vr_sleeper/initialize() - . = ..() - update_icon() - -/obj/machinery/vr_sleeper/process() - if(stat & (NOPOWER|BROKEN)) - return - -/obj/machinery/vr_sleeper/update_icon() - icon_state = "syndipod_[occupant ? "1" : "0"]" -======= /obj/machinery/vr_sleeper/Initialize() . = ..() smoke = new @@ -70,7 +52,6 @@ /obj/machinery/vr_sleeper/update_icon() icon_state = "[base_state][occupant ? "1" : "0"]" ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm /obj/machinery/vr_sleeper/Topic(href, href_list) if(..()) @@ -89,14 +70,11 @@ /obj/machinery/vr_sleeper/attackby(var/obj/item/I, var/mob/user) add_fingerprint(user) -<<<<<<< HEAD:code/game/machinery/vr_console.dm -======= if(occupant && (istype(I, /obj/item/device/healthanalyzer) || istype(I, /obj/item/device/robotanalyzer))) I.attack(occupant, user) return ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm if(default_deconstruction_screwdriver(user, I)) return else if(default_deconstruction_crowbar(user, I)) @@ -129,9 +107,6 @@ if(occupant) // This will eject the user from VR -<<<<<<< HEAD:code/game/machinery/vr_console.dm - // ### Fry the brain? -======= // ### Fry the brain? Yes. Maybe. if(prob(15 / ( severity / 4 )) && occupant.species.has_organ[O_BRAIN] && occupant.internal_organs_by_name[O_BRAIN]) var/obj/item/organ/O = occupant.internal_organs_by_name[O_BRAIN] @@ -139,39 +114,24 @@ visible_message("\The [src]'s internal lighting flashes rapidly, before the hatch swings open with a cloud of smoke.") smoke.set_up(n = severity, 0, src) smoke.start("#202020") ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm go_out() ..(severity) /obj/machinery/vr_sleeper/verb/eject() -<<<<<<< HEAD:code/game/machinery/vr_console.dm - set src in oview(1) -======= set src in view(1) ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm set category = "Object" set name = "Eject VR Capsule" if(usr.incapacitated()) return -<<<<<<< HEAD:code/game/machinery/vr_console.dm - if(usr != occupant && avatar && alert(avatar, "Someone wants to remove you from virtual reality. Do you want to leave?", "Leave VR?", "Yes", "No") == "No") - return - - // The player in VR is fine with leaving, kick them out and reset avatar - avatar.exit_vr() - avatar = null - go_out() -======= var/forced = FALSE if(stat & (BROKEN|NOPOWER) || occupant && occupant.stat == DEAD) forced = TRUE go_out(forced) ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm add_fingerprint(usr) /obj/machinery/vr_sleeper/verb/climb_in() @@ -195,15 +155,9 @@ if(stat & (BROKEN|NOPOWER)) return if(!ishuman(M)) -<<<<<<< HEAD:code/game/machinery/vr_console.dm - user << "\The [src] rejects [M] with a sharp beep." - if(occupant) - user << "\The [src] is already occupied." -======= to_chat(user, "\The [src] rejects [M] with a sharp beep.") if(occupant) to_chat(user, "\The [src] is already occupied.") ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm return if(M == user) @@ -228,12 +182,6 @@ enter_vr() return -<<<<<<< HEAD:code/game/machinery/vr_console.dm -/obj/machinery/vr_sleeper/proc/go_out() - if(!occupant) - return - -======= /obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE) if(!occupant) return @@ -244,7 +192,6 @@ avatar.exit_vr() avatar = null ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm if(occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE @@ -270,20 +217,12 @@ return // Mob doesn't have an active consciousness to send/receive from -<<<<<<< HEAD:code/game/machinery/vr_console.dm - if(occupant.stat != CONSCIOUS) -======= if(occupant.stat == DEAD) ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm return avatar = occupant.vr_link // If they've already enterred VR, and are reconnecting, prompt if they want a new body -<<<<<<< HEAD:code/game/machinery/vr_console.dm - if(avatar && alert(occupant, "You already have a Virtual Reality avatar. Would you like to use it?", "New avatar", "Yes", "No") == "No") -======= if(avatar && alert(occupant, "You already have a [avatar.stat == DEAD ? "" : "deceased "]Virtual Reality avatar. Would you like to use it?", "New avatar", "Yes", "No") == "No") ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm // Delink the mob occupant.vr_link = null avatar = null @@ -306,11 +245,7 @@ avatar = new(S, "Virtual Reality Avatar") // If the user has a non-default (Human) bodyshape, make it match theirs. -<<<<<<< HEAD:code/game/machinery/vr_console.dm - if(occupant.species.name != "Promethean" && occupant.species.name != "Human") -======= if(occupant.species.name != "Promethean" && occupant.species.name != "Human" && mirror_first_occupant) ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):code/game/machinery/virtual_reality/vr_console.dm avatar.shapeshifter_change_shape(occupant.species.name) avatar.forceMove(get_turf(S)) // Put the mob on the landmark, instead of inside it avatar.Sleeping(1) diff --git a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm index c1d5099b6e..17b31ffecc 100644 --- a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm +++ b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm @@ -1,118 +1,3 @@ -<<<<<<< HEAD -// ### Wooo, inheritance. Basically copying everything I don't need to edit from prometheans, because they mostly work already. -// ### Any and all of this is open to change for balance or whatever. -// ### -// ### -// Species definition follows. -/datum/species/shapeshifter/promethean/avatar - - name = SPECIES_VR - name_plural = "Virtual Reality Avatars" - blurb = "A 3-dimensional representation of some sort of animate object used to display the presence and actions of some-one or -thing using a virtual reality program." - show_ssd = "eerily still" - death_message = "flickers briefly, their gear falling in a heap on the floor around their motionless body." - knockout_message = "has been knocked unconscious!" - - spawn_flags = SPECIES_IS_RESTRICTED - - speech_bubble_appearance = "cyber" - - 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' - - unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite) - has_organ = list(O_BRAIN = /obj/item/organ/internal/brain/slime, O_EYES = /obj/item/organ/internal/eyes) // Slime core. - heal_rate = 0 // Avatars don't naturally heal like prometheans, at least not for now - inherent_verbs = list( - /mob/living/carbon/human/proc/shapeshifter_select_shape, - /mob/living/carbon/human/proc/shapeshifter_select_colour, - /mob/living/carbon/human/proc/shapeshifter_select_hair, - /mob/living/carbon/human/proc/shapeshifter_select_hair_colors, - /mob/living/carbon/human/proc/shapeshifter_select_gender, - /mob/living/carbon/human/proc/regenerate, - /mob/living/carbon/human/proc/shapeshifter_change_opacity, - /mob/living/carbon/human/proc/exit_vr - ) - - -/datum/species/shapeshifter/promethean/avatar/handle_death(var/mob/living/carbon/human/H) - return - -/datum/species/shapeshifter/promethean/avatar/handle_environment_special(var/mob/living/carbon/human/H) - return - -/mob/living/carbon/human/proc/shapeshifter_change_opacity() - - set name = "Toggle Opacity" - set category = "Abilities" - - if(stat || world.time < last_special) - return - - last_special = world.time + 10 - - if(src.icon_state == "promethean") - icon_state = lowertext(src.species.get_bodytype(src)) - shapeshifter_change_species("Virtual Reality [src.species.get_bodytype(src)]") - else - icon_state = "promethean" - shapeshifter_change_species(SPECIES_VR) - - -// enter_vr is called on the original mob, and puts the mind into the supplied vr mob -/mob/living/carbon/human/proc/enter_vr(var/mob/living/carbon/human/avatar) // Avatar is currently a human, because we have preexisting setup code for appearance manipulation, etc. - if(!istype(avatar)) - return - - // Link the two mobs for client transfer - avatar.vr_holder = src - src.teleop = avatar - 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, "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.\nYou can modify your appearance by using various \"Change \[X\]\" verbs in the Abilities tab.") - to_chat(avatar, " 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? - -// exit_vr is called on the vr mob, and puts the mind back into the original mob -/mob/living/carbon/human/proc/exit_vr() - set name = "Exit Virtual Reality" - set category = "Abilities" - - if(!vr_holder) - return - if(!mind) - return - - var/total_damage - // Tally human damage - if(ishuman(src)) - var/mob/living/carbon/human/H = src - total_damage = H.getBruteLoss() + H.getFireLoss() + H.getOxyLoss() + H.getToxLoss() - - // Move the mind back to the original mob -// vr_holder.Sleeping(1) - src.mind.transfer_to(vr_holder) - to_chat(vr_holder, "You black out for a moment, and wake to find yourself back in your own body.") - // Two-thirds damage is transferred as agony for /humans - // Getting hurt in VR doesn't damage the physical body, but you still got hurt. - if(ishuman(vr_holder) && total_damage) - var/mob/living/carbon/human/V = vr_holder - V.stun_effect_act(0, total_damage*2/3, null) // 200 damage leaves the user in paincrit for several seconds, agony reaches 0 after around 2m. - to_chat(vr_holder, "Pain from your time in VR lingers.") // 250 damage leaves the user unconscious for several seconds in addition to paincrit - - // Maintain a link with the mob, but don't use teleop - vr_holder.vr_link = src - vr_holder.teleop = null - - if(istype(vr_holder.loc, /obj/machinery/vr_sleeper)) - var/obj/machinery/vr_sleeper/V = vr_holder.loc -======= // ### Wooo, inheritance. Basically copying everything I don't need to edit from prometheans, because they mostly work already. // ### Any and all of this is open to change for balance or whatever. // ### @@ -228,5 +113,4 @@ if(istype(vr_holder.loc, /obj/machinery/vr_sleeper)) var/obj/machinery/vr_sleeper/V = vr_holder.loc ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798) V.go_out() \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 39bd0b631f..ae256ab07b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -740,11 +740,7 @@ #include "code\game\machinery\transportpod.dm" #include "code\game\machinery\turret_control.dm" #include "code\game\machinery\vending.dm" -<<<<<<< HEAD:vorestation.dme #include "code\game\machinery\vending_vr.dm" -#include "code\game\machinery\vr_console.dm" -======= ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):polaris.dme #include "code\game\machinery\wall_frames.dm" #include "code\game\machinery\washing_machine.dm" #include "code\game\machinery\wishgranter.dm" @@ -2491,11 +2487,8 @@ #include "code\modules\organs\subtypes\diona.dm" #include "code\modules\organs\subtypes\indestructible.dm" #include "code\modules\organs\subtypes\machine.dm" -<<<<<<< HEAD:vorestation.dme #include "code\modules\organs\subtypes\nano.dm" -======= #include "code\modules\organs\subtypes\replicant.dm" ->>>>>>> 83fc6b5... Adds Alien Reality pods, aka AR pods, for use in events or PoIs. (#5798):polaris.dme #include "code\modules\organs\subtypes\seromi.dm" #include "code\modules\organs\subtypes\slime.dm" #include "code\modules\organs\subtypes\slime_vr.dm"