mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-13 11:12:14 +00:00
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. --> <!-- You can view Contributing.MD for a detailed description of the pull request process. --> ## About The Pull Request This PR adds an additional check for the space edition of Dauntless to the hack used to stop the bitrunner server from blurting out the cool down across supply radio comms. It also tweaks a few things with Dauntless/Interdyne, such as giving them rad storm immunity and experi-scanners in the R&D labs. Interdyne is now successfully placed on the lower Z levels thanks to the `ZTRAIT_ICE_RUINS_UNDERGROUND` flag. ## Why It's Good For The Game This is fixing an existing bug. ## Proof Of Testing I have tested this on my server and confirm it works as described as the PR. ## Changelog 🆑 fix: Dauntless space ruin bitrunner server no longer announces cool down over NT supply comms fix: Dauntless and Interdyne are now immune to rad storms add: Added Syndie borg access cards to Interdyne qol: Replaced the polarized windows in the Interdyne sauna area with blast door shutters add: Added experi-scanners to Interdyne/Dauntless R&D fix: Interdyne never spawns on top Z level qol: Interdyne dorm rooms now have crowbars in closets qol: Interdyne deck officer does not leave empty sleeper on ghost role spawn /🆑
26 lines
1.4 KiB
Plaintext
26 lines
1.4 KiB
Plaintext
/**
|
|
* Only expose Syndicate R&D servers to machines placed inside of Syndicate areas (fixes oversight of NT station machines linking to Syndie R&D servers for moon based stations)
|
|
* Returns filtered servers as a list
|
|
*/
|
|
/datum/controller/subsystem/research/find_valid_servers(turf/location, datum/techweb/checking_web)
|
|
var/list/valid_servers = ..()
|
|
if(!valid_servers || length(valid_servers) < 1)
|
|
return valid_servers
|
|
|
|
var/area/location_area = get_turf(location)
|
|
var/static/list/syndie_typecache = typecacheof(list(
|
|
/area/ruin/space/has_grav/skyrat/interdynefob, // DS-2
|
|
/area/ruin/syndicate_lava_base, // Interdyne (ice moon)
|
|
/area/ruin/space/has_grav/bubbers/dauntless, // SSV Dauntless (lavalands)
|
|
/area/ruin/space/has_grav/bubbers/dauntless_space, // SSV Dauntless (space)
|
|
))
|
|
|
|
var/is_syndie_machine = is_type_in_typecache(location_area.loc, syndie_typecache) // If the machine is located within a Syndie tagged area
|
|
var/list/filtered_servers = list()
|
|
for (var/obj/machinery/rnd/server/server as anything in valid_servers) // Filter Syndie machines for Syndie R&D, and non-Syndie machines to non-Syndie R&D
|
|
var/area/server_area = get_area(server)
|
|
var/is_syndie_server = is_type_in_typecache(server_area, syndie_typecache) // If the server is located within a Syndie tagged area
|
|
if(is_syndie_machine == is_syndie_server) // If both machines are on Syndie turf, or both are not on Syndie turf
|
|
filtered_servers += server
|
|
return filtered_servers
|