mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
57
code/datums/uplink/medical_vr.dm
Normal file
57
code/datums/uplink/medical_vr.dm
Normal file
@@ -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
|
||||||
42
code/datums/uplink/tools_vr.dm
Normal file
42
code/datums/uplink/tools_vr.dm
Normal file
@@ -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
|
||||||
@@ -95,7 +95,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
|
|
||||||
/obj/item/device/radio/interact(mob/user)
|
/obj/item/device/radio/interact(mob/user)
|
||||||
if(!user)
|
if(!user)
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
if(b_stat)
|
if(b_stat)
|
||||||
wires.Interact(user)
|
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)
|
/obj/item/device/radio/proc/has_channel_access(var/mob/user, var/freq)
|
||||||
if(!user)
|
if(!user)
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
if(!(freq in internal_channels))
|
if(!(freq in internal_channels))
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
return user.has_internal_radio_channel_access(internal_channels[freq])
|
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)
|
/obj/item/device/radio/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return 1
|
return TRUE
|
||||||
|
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
if (href_list["track"])
|
if (href_list["track"])
|
||||||
@@ -229,7 +229,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
set_frequency(text2num(freq))
|
set_frequency(text2num(freq))
|
||||||
. = 1
|
. = 1
|
||||||
if(href_list["nowindow"]) // here for pAIs, maybe others will want it, idk
|
if(href_list["nowindow"]) // here for pAIs, maybe others will want it, idk
|
||||||
return 1
|
return TRUE
|
||||||
|
|
||||||
if(.)
|
if(.)
|
||||||
SSnanoui.update_uis(src)
|
SSnanoui.update_uis(src)
|
||||||
@@ -246,15 +246,11 @@ var/global/list/default_medbay_channels = list(
|
|||||||
channel = null
|
channel = null
|
||||||
if (!istype(connection))
|
if (!istype(connection))
|
||||||
return
|
return
|
||||||
if (!connection)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/static/mob/living/silicon/ai/announcer/A = new /mob/living/silicon/ai/announcer(src, null, null, 1)
|
var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(src, null, null, 1)
|
||||||
A.SetName(from)
|
A.fully_replace_character_name(null,from)
|
||||||
Broadcast_Message(connection, A,
|
talk_into(A, message, channel,"states")
|
||||||
0, "*garbled automated announcement*", src,
|
qdel(A)
|
||||||
message, from, "Automated Announcement", from, "synthesized voice",
|
|
||||||
4, 0, list(0), connection.frequency, "states")
|
|
||||||
|
|
||||||
// Interprets the message mode when talking into a radio, possibly returning a connection datum
|
// 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)
|
/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.
|
// If we were to send to a channel we don't have, drop it.
|
||||||
return null
|
return null
|
||||||
|
|
||||||
/obj/item/device/radio/talk_into(mob/living/M as mob, message, channel, var/verb = "says", var/datum/language/speaking = null)
|
/obj/item/device/radio/talk_into(mob/living/M, message, channel, var/verb = "says", var/datum/language/speaking = null)
|
||||||
if(!on) return 0 // the device has to be on
|
if(!on) return FALSE // the device has to be on
|
||||||
// Fix for permacell radios, but kinda eh about actually fixing them.
|
// 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)
|
if(istype(M)) M.trigger_aiming(TARGET_CAN_RADIO)
|
||||||
|
|
||||||
// Uncommenting this. To the above comment:
|
// 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
|
// 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
|
if(wires.IsIndexCut(WIRE_TRANSMIT)) // The device has to have all its wires and shit intact
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
if(!radio_connection)
|
if(!radio_connection)
|
||||||
set_frequency(frequency)
|
set_frequency(frequency)
|
||||||
@@ -304,9 +300,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
//#### Grab the connection datum ####//
|
//#### Grab the connection datum ####//
|
||||||
var/datum/radio_frequency/connection = handle_message_mode(M, message, channel)
|
var/datum/radio_frequency/connection = handle_message_mode(M, message, channel)
|
||||||
if (!istype(connection))
|
if (!istype(connection))
|
||||||
return 0
|
return FALSE
|
||||||
if (!connection)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
var/turf/position = get_turf(src)
|
var/turf/position = get_turf(src)
|
||||||
|
|
||||||
@@ -360,13 +354,12 @@ var/global/list/default_medbay_channels = list(
|
|||||||
|
|
||||||
|
|
||||||
/* ###### Radio headsets can only broadcast through subspace ###### */
|
/* ###### Radio headsets can only broadcast through subspace ###### */
|
||||||
|
|
||||||
if(subspace_transmission)
|
if(subspace_transmission)
|
||||||
var/list/jamming = is_jammed(src)
|
var/list/jamming = is_jammed(src)
|
||||||
if(jamming)
|
if(jamming)
|
||||||
var/distance = jamming["distance"]
|
var/distance = jamming["distance"]
|
||||||
to_chat(M,"<span class='danger'>\icon[src] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static.</span>")
|
to_chat(M,"<span class='danger'>\icon[src] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static.</span>")
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
// First, we want to generate a new radio signal
|
// First, we want to generate a new radio signal
|
||||||
var/datum/signal/signal = new
|
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)
|
for(var/obj/machinery/telecomms/allinone/R in telecomms_list)
|
||||||
R.receive_signal(signal)
|
R.receive_signal(signal)
|
||||||
|
|
||||||
|
// Receiving code can be located in Telecommunications.dm
|
||||||
if(signal.data["done"] && position.z in signal.data["level"])
|
if(signal.data["done"] && position.z in signal.data["level"])
|
||||||
return TRUE //Huzzah, sent via subspace
|
return TRUE //Huzzah, sent via subspace
|
||||||
|
|
||||||
@@ -480,7 +474,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
// Send a mundane broadcast with limited targets:
|
// Send a mundane broadcast with limited targets:
|
||||||
|
|
||||||
//THIS IS TEMPORARY. YEAH RIGHT
|
//THIS IS TEMPORARY. YEAH RIGHT
|
||||||
if(!connection) return 0 //~Carn
|
if(!connection) return FALSE //~Carn
|
||||||
|
|
||||||
//VOREStation Add Start
|
//VOREStation Add Start
|
||||||
if(bluespace_radio)
|
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)
|
/obj/item/device/radio/proc/accept_rad(obj/item/device/radio/R as obj, message)
|
||||||
|
|
||||||
if ((R.frequency == frequency && message))
|
if ((R.frequency == frequency && message))
|
||||||
return 1
|
return TRUE
|
||||||
else if
|
else if
|
||||||
|
|
||||||
else
|
else
|
||||||
@@ -544,7 +538,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
if (!accept)
|
if (!accept)
|
||||||
for (var/ch_name in channels)
|
for (var/ch_name in channels)
|
||||||
var/datum/radio_frequency/RF = secure_radio_connections[ch_name]
|
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
|
accept = 1
|
||||||
break
|
break
|
||||||
if (!accept)
|
if (!accept)
|
||||||
@@ -695,7 +689,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
|
|
||||||
/obj/item/device/radio/borg/Topic(href, href_list)
|
/obj/item/device/radio/borg/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return 1
|
return TRUE
|
||||||
if (href_list["mode"])
|
if (href_list["mode"])
|
||||||
var/enable_subspace_transmission = text2num(href_list["mode"])
|
var/enable_subspace_transmission = text2num(href_list["mode"])
|
||||||
if(enable_subspace_transmission != subspace_transmission)
|
if(enable_subspace_transmission != subspace_transmission)
|
||||||
|
|||||||
@@ -118,4 +118,4 @@
|
|||||||
/datum/language/unathi/monkey
|
/datum/language/unathi/monkey
|
||||||
flags = RESTRICTED
|
flags = RESTRICTED
|
||||||
/datum/language/tajaran/monkey
|
/datum/language/tajaran/monkey
|
||||||
flags = RESTRICTED
|
flags = RESTRICTED
|
||||||
|
|||||||
@@ -64,7 +64,9 @@
|
|||||||
O_LIVER = /obj/item/organ/internal/liver,
|
O_LIVER = /obj/item/organ/internal/liver,
|
||||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||||
O_BRAIN = /obj/item/organ/internal/brain,
|
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"
|
flesh_color = "#AFA59E"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
/mob/living/silicon/robot/shared_nano_interaction()
|
/mob/living/silicon/robot/shared_nano_interaction()
|
||||||
. = STATUS_INTERACTIVE
|
. = STATUS_INTERACTIVE
|
||||||
if(cell.charge <= 0)
|
if(!has_power)
|
||||||
return STATUS_CLOSE
|
return STATUS_CLOSE
|
||||||
if(lockdown)
|
if(lockdown)
|
||||||
. = STATUS_DISABLED
|
. = STATUS_DISABLED
|
||||||
|
|||||||
@@ -23722,15 +23722,6 @@
|
|||||||
/obj/structure/cable/green,
|
/obj/structure/cable/green,
|
||||||
/turf/simulated/floor/tiled/white,
|
/turf/simulated/floor/tiled/white,
|
||||||
/area/tether/surfacebase/medical/lowerhall)
|
/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" = (
|
"aSy" = (
|
||||||
/obj/effect/floor_decal/borderfloorwhite{
|
/obj/effect/floor_decal/borderfloorwhite{
|
||||||
dir = 6
|
dir = 6
|
||||||
@@ -43075,7 +43066,7 @@ aRd
|
|||||||
aRw
|
aRw
|
||||||
aQa
|
aQa
|
||||||
aSh
|
aSh
|
||||||
aSx
|
aSb
|
||||||
aad
|
aad
|
||||||
abe
|
abe
|
||||||
aai
|
aai
|
||||||
|
|||||||
@@ -400,10 +400,12 @@
|
|||||||
#include "code\datums\uplink\hardsuit_modules.dm"
|
#include "code\datums\uplink\hardsuit_modules.dm"
|
||||||
#include "code\datums\uplink\implants.dm"
|
#include "code\datums\uplink\implants.dm"
|
||||||
#include "code\datums\uplink\medical.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\stealth_items.dm"
|
||||||
#include "code\datums\uplink\stealthy_weapons.dm"
|
#include "code\datums\uplink\stealthy_weapons.dm"
|
||||||
#include "code\datums\uplink\telecrystals.dm"
|
#include "code\datums\uplink\telecrystals.dm"
|
||||||
#include "code\datums\uplink\tools.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_categories.dm"
|
||||||
#include "code\datums\uplink\uplink_items.dm"
|
#include "code\datums\uplink\uplink_items.dm"
|
||||||
#include "code\datums\uplink\visible_weapons.dm"
|
#include "code\datums\uplink\visible_weapons.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user