diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index cc21aed1635eb..eec8874288fc7 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -21,7 +21,7 @@ /obj/machinery/r_n_d/server/Destroy() //[SIERRA-ADD] - MODPACK_RND - rnd_server_list += src + rnd_server_list -= src //[/SIERRA-ADD] - MODPACK_RND QDEL_NULL(files) diff --git a/mods/RnD/code/designs_autolathe/disks.dm b/mods/RnD/code/designs_autolathe/disks.dm index d8f6da771fe39..f64e5776af2a6 100644 --- a/mods/RnD/code/designs_autolathe/disks.dm +++ b/mods/RnD/code/designs_autolathe/disks.dm @@ -48,6 +48,7 @@ icon_state = "black" designs = list( /datum/design/autolathe/general, + /datum/design/autolathe/general/datacrystal, /datum/design/autolathe/general/flashlight, /datum/design/autolathe/general/floor_light, /datum/design/autolathe/general/extinguisher, diff --git a/mods/RnD/code/event.dm b/mods/RnD/code/event.dm index 40467b876617d..20d8f9eda568e 100644 --- a/mods/RnD/code/event.dm +++ b/mods/RnD/code/event.dm @@ -6,30 +6,34 @@ var/list/obj/machinery/vending/infectedVendingMachines = list() var/obj/machinery/vending/originMachine var/nid - var/tries_count = 20 + var/tries_count = 5 var/datum/extension/interactive/ntos/os + var/area/loc + var/turf/zos /datum/event/rnd_design_leak/start() var/ndesigns = rand(3,12) var/nidislegal = FALSE + while(tries_count > 0 && !nidislegal) tries_count-- nid = pick(ntnet_global.registered_nids) os = ntnet_global.registered_nids[nid] if(os.get_ntnet_status_incoming()) - if(os.get_hardware_flag() & !PROGRAM_PDA) + if(os.get_hardware_flag() != PROGRAM_PDA) + loc = get_area(os.get_physical_host()) + zos = get_turf(os.get_physical_host()) nidislegal = TRUE - - command_announcement.Announce("Unusual activity has been detected in Research and Development network. A design leak has been detected in [nid]. Please investigate.", "Research and Development Network") - var/area/A = get_area(os.get_physical_host()) - for(var/obj/machinery/r_n_d/server/S in rnd_server_list) - if(GLOB.using_map.use_overmap && !(A.z in GetConnectedZlevels(S.z))) + for(var/obj/machinery/r_n_d/server/server in rnd_server_list) + if(!(zos.z in GetConnectedZlevels(server.z))) + break + if(server.stat & MACHINE_STAT_NOPOWER) break - if(S.stat & MACHINE_STAT_NOPOWER) - continue - if(!istype(S, /obj/machinery/r_n_d/server/centcom)) + if(!istype(server, /obj/machinery/r_n_d/server/centcom)) while(ndesigns > 0) ndesigns-- - var/datum/design/D = pick(S.files.known_designs) - os.create_file(D) - S.produce_heat(400) + var/datum/design/D = pick(server.files.known_designs) + var/datum/computer_file/binary/design/design_file = D.file + os.save_file(design_file) + server.produce_heat(400) + command_announcement.Announce("Unusual activity has been detected in Research and Development network. A design leak has been detected in [nid]: Searching ... estimated location: [(loc ? sanitize(loc.name) : "Unknown")]. Please investigate.", "Research and Development Network") diff --git a/mods/RnD/code/tech_branch/tech_power.dm b/mods/RnD/code/tech_branch/tech_power.dm index e8af57b9999ba..1e6cf14bcd041 100644 --- a/mods/RnD/code/tech_branch/tech_power.dm +++ b/mods/RnD/code/tech_branch/tech_power.dm @@ -128,7 +128,7 @@ y = 0.4 icon = "generator" - required_technologies = list(/datum/technology/power/adv_power_storage, /datum/technology/power/sup_power) + required_technologies = list(/datum/technology/power/sup_power) required_tech_levels = list() cost = 2000 @@ -143,7 +143,7 @@ y = 0.4 icon = "fusion" - required_technologies = list(/datum/technology/power/sup_power_gen) + required_technologies = list(/datum/technology/power/sup_power_gen, /datum/technology/power/adv_power_storage) required_tech_levels = list() cost = 2500