diff --git a/code/datums/uplink/medical_vr.dm b/code/datums/uplink/medical_vr.dm new file mode 100644 index 0000000000..324398843f --- /dev/null +++ b/code/datums/uplink/medical_vr.dm @@ -0,0 +1,57 @@ +/********** +* Medical * +**********/ +/datum/uplink_item/item/medical/mre + name = "Meal, Ready to eat (Random)" + item_cost = 5 + path = /obj/item/weapon/storage/mre/random + +/datum/uplink_item/item/medical/protein + name = "Meal, Ready to eat (Protein)" + item_cost = 5 + path = /obj/item/weapon/storage/mre/menu10 + +/datum/uplink_item/item/medical/emergency + name = "Meal, Ready to eat (Emergency)" + item_cost = 5 + path = /obj/item/weapon/storage/mre/menu11 + +/datum/uplink_item/item/medical/glucose + name = "Glucose injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose + +/datum/uplink_item/item/medical/purity + name = "Purity injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity + +/datum/uplink_item/item/medical/brute + name = "Brute injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute + +/datum/uplink_item/item/medical/burn + name = "Burn injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn + +/datum/uplink_item/item/medical/toxin + name = "Toxin injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin + +/datum/uplink_item/item/medical/oxy + name = "Oxy injector" + item_cost = 5 + path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/oxy + +/datum/uplink_item/item/medical/nanites + name = "Healing Nanite pill bottle" + item_cost = 30 + path = /obj/item/weapon/storage/pill_bottle/healing_nanites + +/datum/uplink_item/item/medical/insiderepair + name = "Combat organ kit" + item_cost = 120 + path = /obj/item/weapon/storage/firstaid/insiderepair diff --git a/code/datums/uplink/tools_vr.dm b/code/datums/uplink/tools_vr.dm new file mode 100644 index 0000000000..5a165f7aac --- /dev/null +++ b/code/datums/uplink/tools_vr.dm @@ -0,0 +1,42 @@ +/******************** +* Devices and Tools * +********************/ +/datum/uplink_item/item/tools/basiclaptop + name = "Laptop (Basic)" + item_cost = 5 + path = /obj/item/modular_computer/laptop/preset/custom_loadout/cheap + +/datum/uplink_item/item/tools/survivalcapsule + name = "Survival Capsule" + item_cost = 5 + path = /obj/item/device/survivalcapsule + +/datum/uplink_item/item/tools/nanopaste + name = "Nanopaste (Advanced)" + item_cost = 10 + path = /obj/item/stack/nanopaste/advanced + +/datum/uplink_item/item/tools/elitetablet + name = "Tablet (Advanced)" + item_cost = 15 + path = /obj/item/modular_computer/tablet/preset/custom_loadout/advanced + +/datum/uplink_item/item/tools/elitelaptop + name = "Laptop (Advanced)" + item_cost = 20 + path = /obj/item/modular_computer/laptop/preset/custom_loadout/elite + +/datum/uplink_item/item/tools/luxurycapsule + name = "Survival Capsule (Luxury)" + item_cost = 40 + path = /obj/item/device/survivalcapsule/luxury + +/datum/uplink_item/item/tools/translocator + name = "Translocator" + item_cost = 40 + path = /obj/item/device/perfect_tele + +/datum/uplink_item/item/tools/barcapsule + name = "Survival Capsule (Bar)" + item_cost = 80 + path = /obj/item/device/survivalcapsule/luxurybar diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 68c862db09..bfaa8a2e9b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -95,7 +95,7 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/interact(mob/user) if(!user) - return 0 + return FALSE if(b_stat) wires.Interact(user) @@ -151,10 +151,10 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/proc/has_channel_access(var/mob/user, var/freq) if(!user) - return 0 + return FALSE if(!(freq in internal_channels)) - return 0 + return FALSE return user.has_internal_radio_channel_access(internal_channels[freq]) @@ -191,7 +191,7 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/Topic(href, href_list) if(..()) - return 1 + return TRUE usr.set_machine(src) if (href_list["track"]) @@ -229,7 +229,7 @@ var/global/list/default_medbay_channels = list( set_frequency(text2num(freq)) . = 1 if(href_list["nowindow"]) // here for pAIs, maybe others will want it, idk - return 1 + return TRUE if(.) SSnanoui.update_uis(src) @@ -246,15 +246,11 @@ var/global/list/default_medbay_channels = list( channel = null if (!istype(connection)) return - if (!connection) - return - var/static/mob/living/silicon/ai/announcer/A = new /mob/living/silicon/ai/announcer(src, null, null, 1) - A.SetName(from) - Broadcast_Message(connection, A, - 0, "*garbled automated announcement*", src, - message, from, "Automated Announcement", from, "synthesized voice", - 4, 0, list(0), connection.frequency, "states") + var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(src, null, null, 1) + A.fully_replace_character_name(null,from) + talk_into(A, message, channel,"states") + qdel(A) // Interprets the message mode when talking into a radio, possibly returning a connection datum /obj/item/device/radio/proc/handle_message_mode(mob/living/M as mob, message, message_mode) @@ -273,19 +269,19 @@ var/global/list/default_medbay_channels = list( // If we were to send to a channel we don't have, drop it. return null -/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, var/verb = "says", var/datum/language/speaking = null) - if(!on) return 0 // the device has to be on +/obj/item/device/radio/talk_into(mob/living/M, message, channel, var/verb = "says", var/datum/language/speaking = null) + if(!on) return FALSE // the device has to be on // Fix for permacell radios, but kinda eh about actually fixing them. - if(!M || !message) return 0 + if(!M || !message) return FALSE - if(speaking && (speaking.flags & (SIGNLANG|NONVERBAL))) return 0 + if(speaking && (speaking.flags & (SIGNLANG|NONVERBAL))) return FALSE if(istype(M)) M.trigger_aiming(TARGET_CAN_RADIO) // Uncommenting this. To the above comment: // The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom if(wires.IsIndexCut(WIRE_TRANSMIT)) // The device has to have all its wires and shit intact - return 0 + return FALSE if(!radio_connection) set_frequency(frequency) @@ -304,9 +300,7 @@ var/global/list/default_medbay_channels = list( //#### Grab the connection datum ####// var/datum/radio_frequency/connection = handle_message_mode(M, message, channel) if (!istype(connection)) - return 0 - if (!connection) - return 0 + return FALSE var/turf/position = get_turf(src) @@ -360,13 +354,12 @@ var/global/list/default_medbay_channels = list( /* ###### Radio headsets can only broadcast through subspace ###### */ - if(subspace_transmission) var/list/jamming = is_jammed(src) if(jamming) var/distance = jamming["distance"] to_chat(M,"\icon[src] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static.") - return 0 + return FALSE // First, we want to generate a new radio signal var/datum/signal/signal = new @@ -414,6 +407,7 @@ var/global/list/default_medbay_channels = list( for(var/obj/machinery/telecomms/allinone/R in telecomms_list) R.receive_signal(signal) + // Receiving code can be located in Telecommunications.dm if(signal.data["done"] && position.z in signal.data["level"]) return TRUE //Huzzah, sent via subspace @@ -480,7 +474,7 @@ var/global/list/default_medbay_channels = list( // Send a mundane broadcast with limited targets: //THIS IS TEMPORARY. YEAH RIGHT - if(!connection) return 0 //~Carn + if(!connection) return FALSE //~Carn //VOREStation Add Start if(bluespace_radio) @@ -504,7 +498,7 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message) if ((R.frequency == frequency && message)) - return 1 + return TRUE else if else @@ -544,7 +538,7 @@ var/global/list/default_medbay_channels = list( if (!accept) for (var/ch_name in channels) var/datum/radio_frequency/RF = secure_radio_connections[ch_name] - if (RF.frequency==freq && (channels[ch_name]&FREQ_LISTENING)) + if (RF && RF.frequency==freq && (channels[ch_name]&FREQ_LISTENING)) accept = 1 break if (!accept) @@ -695,7 +689,7 @@ var/global/list/default_medbay_channels = list( /obj/item/device/radio/borg/Topic(href, href_list) if(..()) - return 1 + return TRUE if (href_list["mode"]) var/enable_subspace_transmission = text2num(href_list["mode"]) if(enable_subspace_transmission != subspace_transmission) diff --git a/code/modules/mob/language/station_vr.dm b/code/modules/mob/language/station_vr.dm index cefb2b90e6..4ff68871a1 100644 --- a/code/modules/mob/language/station_vr.dm +++ b/code/modules/mob/language/station_vr.dm @@ -118,4 +118,4 @@ /datum/language/unathi/monkey flags = RESTRICTED /datum/language/tajaran/monkey - flags = RESTRICTED \ No newline at end of file + flags = RESTRICTED diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index cb41200b70..380a9a6a8a 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -64,7 +64,9 @@ O_LIVER = /obj/item/organ/internal/liver, O_KIDNEYS = /obj/item/organ/internal/kidneys, O_BRAIN = /obj/item/organ/internal/brain, - O_EYES = /obj/item/organ/internal/eyes + O_EYES = /obj/item/organ/internal/eyes, + O_STOMACH = /obj/item/organ/internal/stomach, + O_INTESTINE = /obj/item/organ/internal/intestine ) flesh_color = "#AFA59E" diff --git a/code/modules/nano/interaction/base.dm b/code/modules/nano/interaction/base.dm index e48022e2cc..eb3e9ae5c1 100644 --- a/code/modules/nano/interaction/base.dm +++ b/code/modules/nano/interaction/base.dm @@ -30,7 +30,7 @@ /mob/living/silicon/robot/shared_nano_interaction() . = STATUS_INTERACTIVE - if(cell.charge <= 0) + if(!has_power) return STATUS_CLOSE if(lockdown) . = STATUS_DISABLED diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index 82c35e86a3..af93edc0f3 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -23722,15 +23722,6 @@ /obj/structure/cable/green, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/lowerhall) -"aSx" = ( -/obj/effect/floor_decal/borderfloorwhite, -/obj/effect/floor_decal/corner/paleblue/border, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -25 - }, -/turf/simulated/floor/tiled/white, -/area/tether/surfacebase/medical/lowerhall) "aSy" = ( /obj/effect/floor_decal/borderfloorwhite{ dir = 6 @@ -43075,7 +43066,7 @@ aRd aRw aQa aSh -aSx +aSb aad abe aai diff --git a/vorestation.dme b/vorestation.dme index 0a295fde89..951a183fde 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -400,10 +400,12 @@ #include "code\datums\uplink\hardsuit_modules.dm" #include "code\datums\uplink\implants.dm" #include "code\datums\uplink\medical.dm" +#include "code\datums\uplink\medical_vr.dm" #include "code\datums\uplink\stealth_items.dm" #include "code\datums\uplink\stealthy_weapons.dm" #include "code\datums\uplink\telecrystals.dm" #include "code\datums\uplink\tools.dm" +#include "code\datums\uplink\tools_vr.dm" #include "code\datums\uplink\uplink_categories.dm" #include "code\datums\uplink\uplink_items.dm" #include "code\datums\uplink\visible_weapons.dm"