mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 15:01:04 +01:00
applications of phoron: telecomms, SMESs (#22966)
- Represents phoron lore in telecomms stock part descriptions - Represents phoron lore in SMES unit sprites/descriptions - Adds a phoron-free cryogenic alternative to phoronic SMES units - Replaces all instances of quantum mechanics being used for FTL Comms with Bluespace (eg. the Quantum Relay -> Bluespace Relay) Does not map the cryo SMES in anywhere, but use-cases would be Einstein Engines, EE-supported factions, and less affluent indie groups some basic recolouring: <img width="333" height="107" alt="resprite1" src="https://github.com/user-attachments/assets/8961274a-39bc-4523-8e11-9daadc652be7" /> <img width="559" height="106" alt="resprite2" src="https://github.com/user-attachments/assets/3afefe66-5487-41f1-bbd7-59ea1bb37b40" />
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
P.stamped = new
|
||||
P.stamped += /obj/item/stamp
|
||||
P.AddOverlays(stampoverlay)
|
||||
P.stamps += "<HR><i>This paper has been stamped by the Central Command Quantum Relay.</i>"
|
||||
P.stamps += "<HR><i>This paper has been stamped by the Central Command Bluespace Relay.</i>"
|
||||
|
||||
if(fax.receivefax(P))
|
||||
if(announce == 1)
|
||||
|
||||
@@ -521,7 +521,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if((world.time - last_emergency_message_time) < AI_EMERGENCY_MESSAGE_COOLDOWN)
|
||||
to_chat(src, SPAN_WARNING("Arrays are recycling. You need to wait <b>[DisplayTimeText(AI_EMERGENCY_MESSAGE_COOLDOWN - (world.time - last_emergency_message_time))]</b> before you can send another message."))
|
||||
return FALSE
|
||||
var/input = sanitize(input(usr, "Please choose a message to transmit to [SSatlas.current_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
|
||||
var/input = sanitize(input(usr, "Please choose a message to transmit to [SSatlas.current_map.boss_short] via bluespace. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
|
||||
if(!input)
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/structure/machinery/ntnet_relay
|
||||
name = "NTNet Quantum Relay"
|
||||
desc = "A very complex core router and transmitter capable of connecting electronic devices together. Looks fragile."
|
||||
name = "NTNet Bluespace Relay"
|
||||
desc = "A very complex router and transmitter capable of connecting electronic devices together. Looks fragile."
|
||||
use_power = POWER_USE_ACTIVE
|
||||
active_power_usage = 20000 //20kW, appropriate for machine that keeps massive cross-Zlevel wireless network operational.
|
||||
idle_power_usage = 100
|
||||
@@ -156,12 +156,12 @@
|
||||
if((dos_overload > dos_capacity) && !dos_failure)
|
||||
dos_failure = TRUE
|
||||
update_icon()
|
||||
GLOB.ntnet_global.add_log("Quantum relay switched from normal operation mode to overload recovery mode.")
|
||||
GLOB.ntnet_global.add_log("Bluespace relay switched from normal operation mode to overload recovery mode.")
|
||||
// If the DoS buffer reaches 0 again, restart.
|
||||
if((dos_overload == 0) && dos_failure)
|
||||
dos_failure = FALSE
|
||||
update_icon()
|
||||
GLOB.ntnet_global.add_log("Quantum relay switched from overload recovery mode to normal operation mode.")
|
||||
GLOB.ntnet_global.add_log("Bluespace relay switched from overload recovery mode to normal operation mode.")
|
||||
..()
|
||||
|
||||
/obj/structure/machinery/ntnet_relay/ui_interact(mob/user, datum/tgui/ui)
|
||||
@@ -194,11 +194,11 @@
|
||||
dos_overload = FALSE
|
||||
dos_failure = FALSE
|
||||
update_icon()
|
||||
GLOB.ntnet_global.add_log("Quantum relay manually restarted from overload recovery mode to normal operation mode.")
|
||||
GLOB.ntnet_global.add_log("Bluespace relay manually restarted from overload recovery mode to normal operation mode.")
|
||||
. = TRUE
|
||||
if(action=="toggle")
|
||||
enabled = !enabled
|
||||
GLOB.ntnet_global.add_log("Quantum relay manually [enabled ? "enabled" : "disabled"].")
|
||||
GLOB.ntnet_global.add_log("Bluespace relay manually [enabled ? "enabled" : "disabled"].")
|
||||
update_icon()
|
||||
. = TRUE
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
GLOB.ntnet_global.relays.Add(src)
|
||||
NTNet = GLOB.ntnet_global
|
||||
sync_linked()
|
||||
GLOB.ntnet_global.add_log("New quantum relay activated. Current amount of linked relays: [NTNet.relays.len]")
|
||||
GLOB.ntnet_global.add_log("New bluespace relay activated. Current amount of linked relays: [NTNet.relays.len]")
|
||||
|
||||
/obj/structure/machinery/ntnet_relay/LateInitialize()
|
||||
. = ..()
|
||||
@@ -225,7 +225,7 @@
|
||||
/obj/structure/machinery/ntnet_relay/Destroy()
|
||||
if(GLOB.ntnet_global)
|
||||
GLOB.ntnet_global.relays.Remove(src)
|
||||
GLOB.ntnet_global.add_log("Quantum relay connection severed. Current amount of linked relays: [NTNet.relays.len]")
|
||||
GLOB.ntnet_global.add_log("Bluespace relay connection severed. Current amount of linked relays: [NTNet.relays.len]")
|
||||
return ..()
|
||||
|
||||
/obj/structure/machinery/ntnet_relay/attackby(obj/item/attacking_item, mob/user)
|
||||
|
||||
+2
-2
@@ -138,7 +138,7 @@
|
||||
if(centcomm_message_cooldown)
|
||||
to_chat(usr, SPAN_WARNING("Arrays recycling. Please stand by."))
|
||||
return TRUE
|
||||
var/input = sanitize(tgui_input_text(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via quantum entanglement.", "Emergency M&#e55sage", multiline = TRUE, encode = FALSE))
|
||||
var/input = sanitize(tgui_input_text(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING CORDINATES\] via bluespace.", "Emergency M&#e55sage", multiline = TRUE, encode = FALSE))
|
||||
if(!input || computer.use_check_and_message(usr))
|
||||
return FALSE
|
||||
Syndicate_announce(input, usr)
|
||||
@@ -154,7 +154,7 @@
|
||||
if(!is_relay_online())//Contact Centcom has a check, Syndie doesn't to allow for Traitor funs.
|
||||
to_chat(usr, SPAN_WARNING("No Emergency Bluespace Relay detected. Unable to transmit message."))
|
||||
return
|
||||
var/input = sanitize(tgui_input_text(usr, "Please choose a message to transmit to [SSatlas.current_map.boss_name] via quantum entanglement.", "Emergency Message", multiline = TRUE, encode = FALSE))
|
||||
var/input = sanitize(tgui_input_text(usr, "Please choose a message to transmit to [SSatlas.current_map.boss_name] via bluespace.", "Emergency Message", multiline = TRUE, encode = FALSE))
|
||||
if(!input || computer.use_check_and_message(usr))
|
||||
return
|
||||
Centcomm_announce(input, usr)
|
||||
|
||||
@@ -45,6 +45,14 @@
|
||||
var/charge = 1e6 /// actual charge
|
||||
var/max_coils = 0
|
||||
|
||||
/// Coils that this SMES accepts.
|
||||
var/list/compatible_coils = list(
|
||||
/obj/item/smes_coil,
|
||||
/obj/item/smes_coil/weak,
|
||||
/obj/item/smes_coil/super_capacity,
|
||||
/obj/item/smes_coil/super_io
|
||||
)
|
||||
|
||||
/// 1 = attempting to charge, 0 = not attempting to charge
|
||||
var/input_attempt = 0
|
||||
/// 1 = actually inputting, 0 = not inputting
|
||||
@@ -559,8 +567,8 @@
|
||||
|
||||
|
||||
/obj/structure/machinery/power/smes/magical
|
||||
name = "quantum power storage unit"
|
||||
desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Gains energy from quantum entanglement link."
|
||||
name = "bluespace power storage unit"
|
||||
desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Siphons energy out of bluespace... somehow."
|
||||
capacity = 5000000
|
||||
output_level = 250000
|
||||
should_be_mapped = 1
|
||||
@@ -571,11 +579,48 @@
|
||||
|
||||
/obj/structure/machinery/power/smes/buildable/superconducting
|
||||
name = "superconducting cryogenic capacitor"
|
||||
desc = "An experimental, extremely high-capacity type of SMES. It uses integrated cryogenic cooling and superconducting cables to break conventional limits on power transfer."
|
||||
desc = "An experimental, extremely high-capacity type of SMES. It uses both integrated cryogenic cooling and superconducting cables to break conventional limits on power transfer."
|
||||
icon_state = "cannon_smes"
|
||||
charge = 0
|
||||
max_coils = 12
|
||||
cur_coils = 12
|
||||
compatible_coils = list(
|
||||
/obj/item/smes_coil,
|
||||
/obj/item/smes_coil/weak,
|
||||
/obj/item/smes_coil/super_capacity,
|
||||
/obj/item/smes_coil/super_io,
|
||||
/obj/item/smes_coil/cryo
|
||||
)
|
||||
|
||||
// EE's phoron-free alternative
|
||||
/obj/structure/machinery/power/smes/buildable/cryogenic
|
||||
name = "cryogenic power storage unit"
|
||||
desc = "A superconducting magnetic energy storage (SMES) unit fitted with cryogenic coolant arrays to induce superconductivity in installed coils. \
|
||||
The Einstein Engines alternative to phoron-based power systems in the growing Phoron Scarcity crisis; inferior, more hassle, but a phoron-free marvel of engineering!"
|
||||
icon_state = "smes_cryo"
|
||||
charge = 0
|
||||
max_coils = 4
|
||||
cur_coils = 0
|
||||
compatible_coils = list(
|
||||
/obj/item/smes_coil/cryo
|
||||
)
|
||||
|
||||
/obj/structure/machinery/power/smes/buildable/cryogenic/Initialize()
|
||||
. = ..()
|
||||
component_parts += new /obj/item/smes_coil/cryo(src)
|
||||
component_parts += new /obj/item/smes_coil/cryo(src)
|
||||
component_parts += new /obj/item/smes_coil/cryo(src)
|
||||
cur_coils = 3 // this is set here to stop non-cryo coils being added on /smes/buildable/Initialise()
|
||||
|
||||
/// Intended for phoron-free third party outposts (eg. Einstien Engines, independents avoiding phoron).
|
||||
/obj/structure/machinery/power/smes/buildable/cryogenic/outpost/Initialize()
|
||||
. = ..()
|
||||
|
||||
input_attempt = TRUE
|
||||
output_attempt = TRUE
|
||||
input_level = 200000
|
||||
output_level = 200000
|
||||
charge = 5000000
|
||||
|
||||
#undef SMES_CLEVEL_1
|
||||
#undef SMES_CLEVEL_2
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
/// MAGNETIC COILS - These things actually store and transmit power within the SMES. Different types have different properties
|
||||
/obj/item/smes_coil
|
||||
name = "superconductive magnetic coil"
|
||||
desc = "Standard superconductive magnetic coil with balanced capacity and I/O rating."
|
||||
desc = "A standard superconductive magnetic coil with balanced capacity and I/O rating."
|
||||
desc_extended = "One of the primary uses of phoron, these coils rely on phoron as a room-temperature superconductor to store or transmit energy with near zero loss."
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "smes_coil"
|
||||
/// It's LARGE (backpack sized)
|
||||
@@ -30,6 +31,8 @@
|
||||
/obj/item/smes_coil/weak
|
||||
name = "basic superconductive magnetic coil"
|
||||
desc = "Cheaper model of the standard superconductive magnetic coil. Its capacity and I/O rating are considerably lower."
|
||||
desc_extended = "One of the primary uses of phoron, these coils rely on phoron as a room-temperature superconductor to store or transmit energy with near zero loss. \
|
||||
The phoron in this coil is low-grade and in small quantity."
|
||||
icon_state = "smes_coil_weak"
|
||||
ChargeCapacity = 500000
|
||||
IOCapacity = 300000
|
||||
@@ -50,6 +53,14 @@
|
||||
ChargeCapacity = 250000
|
||||
IOCapacity = 2000000
|
||||
|
||||
// 75% Charge Capacity, 50% I/O Capacity.
|
||||
/obj/item/smes_coil/cryo
|
||||
name = "cryogenic superconductive transmission coil"
|
||||
desc = "A non-phoronic superconductive coil instead reliant on a proprietary Einstein Engines superhydride compound. It can only be installed in cryogenic SMES units."
|
||||
icon_state = "smes_coil_cryo"
|
||||
ChargeCapacity = 1875000
|
||||
IOCapacity = 250000
|
||||
|
||||
// SMES SUBTYPES - THESE ARE MAPPED IN AND CONTAIN DIFFERENT TYPES OF COILS
|
||||
|
||||
// These are used on individual outposts as backup should power line be cut, or engineering outpost lost power.
|
||||
@@ -487,6 +498,10 @@
|
||||
else if(istype(attacking_item, /obj/item/smes_coil))
|
||||
if (cur_coils < max_coils)
|
||||
|
||||
if(!(attacking_item in compatible_coils))
|
||||
to_chat(usr, "This coil isn't compatible with this SMES unit.")
|
||||
return
|
||||
|
||||
if (failure_probability && prob(failure_probability))
|
||||
total_system_failure(failure_probability, user)
|
||||
return
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
build_path = /obj/item/circuitboard/telecomms/receiver
|
||||
|
||||
/datum/design/circuit/tcom/ntnet_relay
|
||||
name = "NTNet Quantum Relay"
|
||||
name = "NTNet Bluespace Relay"
|
||||
req_tech = list(TECH_DATA = 4)
|
||||
build_path = /obj/item/circuitboard/ntnet_relay
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
/datum/design/item/stock_part/subspace_ansible
|
||||
desc = "A component used in telecomms machinery construction."
|
||||
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
materials = list(MATERIAL_STEEL = 80, MATERIAL_SILVER = 20)
|
||||
materials = list(MATERIAL_STEEL = 80, MATERIAL_SILVER = 50, MATERIAL_PHORON = 500)
|
||||
build_path = /obj/item/stock_parts/subspace/ansible
|
||||
|
||||
/datum/design/item/stock_part/hyperwave_filter
|
||||
@@ -104,7 +104,7 @@
|
||||
/datum/design/item/stock_part/subspace_amplifier
|
||||
desc = "A component used in telecomms machinery construction."
|
||||
req_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
materials = list(MATERIAL_STEEL = 10, MATERIAL_GOLD = 30, MATERIAL_URANIUM = 15)
|
||||
materials = list(MATERIAL_STEEL = 10, MATERIAL_GOLD = 30, MATERIAL_URANIUM = 15, MATERIAL_PHORON = 100)
|
||||
build_path = /obj/item/stock_parts/subspace/amplifier
|
||||
|
||||
/datum/design/item/stock_part/subspace_treatment
|
||||
@@ -122,7 +122,7 @@
|
||||
/datum/design/item/stock_part/subspace_crystal
|
||||
desc = "A component used in telecomms machinery construction."
|
||||
req_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
materials = list(MATERIAL_GLASS = 1000, MATERIAL_SILVER = 20, MATERIAL_GOLD = 20)
|
||||
materials = list(MATERIAL_GLASS = 1000, MATERIAL_SILVER = 20, MATERIAL_GOLD = 20, MATERIAL_PHORON = 500)
|
||||
build_path = /obj/item/stock_parts/subspace/crystal
|
||||
|
||||
/datum/design/item/stock_part/subspace_transmitter
|
||||
|
||||
@@ -255,53 +255,57 @@
|
||||
//TCOMS stock parts
|
||||
|
||||
/obj/item/stock_parts/subspace/ansible
|
||||
name = "subspace ansible"
|
||||
icon_state = "subspace_ansible"
|
||||
desc = "A compact module capable of sensing extradimensional activity."
|
||||
name = "bluespace ansible"
|
||||
icon_state = "ansible_crystal"
|
||||
desc = "A specially energised bluespace crystal that can be used to receive and transcribe transmissions received from within bluespace."
|
||||
desc_extended = "Perhaps the most under-valued use of phoron and bluespace, and the backbone of interstellar FTL communications. \
|
||||
Without these, it will be back to warp couriers and dreaded sub-luminal radio communications..."
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 5 ,TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10, MATERIAL_PHORON = 50)
|
||||
|
||||
/obj/item/stock_parts/subspace/filter
|
||||
name = "hyperwave filter"
|
||||
icon_state = "hyperwave_filter"
|
||||
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
|
||||
desc = "A tiny device capable of filtering and converting bluespace transmissions."
|
||||
origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 2)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10)
|
||||
|
||||
/obj/item/stock_parts/subspace/amplifier
|
||||
name = "subspace amplifier"
|
||||
name = "bluespace amplifier"
|
||||
icon_state = "subspace_amplifier"
|
||||
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
|
||||
desc = "A compact ampule of phoron gas capable of amplifying weak bluespace transmissions."
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10, MATERIAL_PHORON = 50)
|
||||
|
||||
/obj/item/stock_parts/subspace/treatment
|
||||
name = "subspace treatment disk"
|
||||
name = "bluespace treatment disk"
|
||||
icon_state = "treatment_disk"
|
||||
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
|
||||
desc = "A compact micro-machine capable of stretching out hyper-compressed bluespace transmissions."
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2, TECH_MATERIAL = 5, TECH_BLUESPACE = 2)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10)
|
||||
|
||||
/obj/item/stock_parts/subspace/analyzer
|
||||
name = "subspace wavelength analyzer"
|
||||
name = "bluespace transmission analyzer"
|
||||
icon_state = "wavelength_analyzer"
|
||||
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
|
||||
desc = "A sophisticated analyzer capable of analyzing cryptic bluespace transmissions."
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
matter = list(MATERIAL_STEEL = 30, MATERIAL_GLASS = 10)
|
||||
|
||||
/obj/item/stock_parts/subspace/crystal
|
||||
name = "ansible crystal"
|
||||
name = "bluespace transmission crystal"
|
||||
icon_state = "ansible_crystal"
|
||||
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
|
||||
desc = "A specially energised bluespace crystal capable of punching tiny micro-portals into bluespace, through which laser databursts can be transmitted FTL."
|
||||
desc_extended = "Perhaps the most under-valued use of phoron and bluespace, and the backbone of interstellar FTL communications. \
|
||||
Without these, it will be back to warp couriers and dreaded sub-luminal radio communications..."
|
||||
origin_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 4, TECH_BLUESPACE = 2)
|
||||
matter = list(MATERIAL_GLASS = 50)
|
||||
matter = list(MATERIAL_PHORON = 50)
|
||||
|
||||
/obj/item/stock_parts/subspace/transmitter
|
||||
name = "subspace transmitter"
|
||||
name = "data laser transmitter"
|
||||
icon_state = "subspace_transmitter"
|
||||
desc = "A large piece of equipment used to open a window into the subspace dimension."
|
||||
desc = "A small laser that can be used to transmit data through an opened bluespace micro-portal."
|
||||
origin_tech = list(TECH_MAGNET = 5, TECH_MATERIAL = 5, TECH_BLUESPACE = 3)
|
||||
matter = list(MATERIAL_STEEL = 50)
|
||||
matter = list(MATERIAL_STEEL = 25, MATERIAL_GLASS = 25)
|
||||
|
||||
#undef STOCK_PART_BASIC
|
||||
#undef STOCK_PART_ADVANCED
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
if(stamptext)
|
||||
P.stamps += "<HR><i>This paper has been stamped [stamptext].</i>"
|
||||
else
|
||||
P.stamps += "<HR><i>This paper has been stamped by the Central Command Quantum Relay.</i>"
|
||||
P.stamps += "<HR><i>This paper has been stamped by the Central Command Bluespace Relay.</i>"
|
||||
|
||||
if(F.receivefax(P))
|
||||
log_and_message_admins("[senderkey] sent a fax message to the [F.department] fax machine via the api. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[F.x];Y=[F.y];Z=[F.z]'>JMP</a>)")
|
||||
|
||||
Reference in New Issue
Block a user