diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 421f2e62b53..279afa9713d 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -1611,15 +1611,6 @@ pixel_x = 1; pixel_y = -1 }, -/obj/item/radio/headset/syndicate/alt{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt{ - pixel_x = 3; - pixel_y = -3 - }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel/dark, /area/ruin/unpowered/syndicate_lava_base/cargo) @@ -3538,6 +3529,10 @@ /obj/machinery/alarm/syndicate{ pixel_y = 24 }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 3 + }, /turf/simulated/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) "hN" = ( @@ -3563,6 +3558,10 @@ /obj/machinery/alarm/syndicate{ pixel_y = 24 }, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 3 + }, /turf/simulated/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) "hR" = ( @@ -4480,6 +4479,10 @@ /obj/structure/table/wood, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/sniper_rounds, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 3 + }, /turf/simulated/floor/plasteel/grimy, /area/ruin/unpowered/syndicate_lava_base/dormitories) "jB" = ( @@ -6068,6 +6071,13 @@ /obj/structure/sign/fire, /turf/simulated/wall/mineral/plastitanium/coated, /area/ruin/unpowered/syndicate_lava_base/engineering) +"ng" = ( +/obj/structure/table, +/obj/machinery/photocopier/faxmachine/longrange/syndie{ + department = "Syndicate Bioweapon Research Outpost" + }, +/turf/simulated/floor/plasteel/dark, +/area/ruin/unpowered/syndicate_lava_base/telecomms) "nh" = ( /obj/machinery/telecomms/relay/preset/ruskie{ use_power = 0 @@ -7337,7 +7347,7 @@ ab ab ab mp -mP +ng nk nI oi diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index bc2af073fc6..3630beb1f6c 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -201,6 +201,9 @@ return FALSE if(!Adjacent(user)) return FALSE + if(!allowed(user)) + to_chat(user, "Access denied!") + return FALSE return TRUE /obj/machinery/syndicatebomb/proc/activate() @@ -273,6 +276,7 @@ /obj/machinery/syndicatebomb/self_destruct name = "self destruct device" desc = "Do not taunt. Warranty invalid if exposed to high temperature. Not suitable for agents under 3 years of age." + req_access = list(access_syndicate) payload = /obj/item/bombcore/large can_unanchor = FALSE var/explosive_wall_group = EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE // If set, this bomb will also cause explosive walls in the same group to explode diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index be136204739..544c7c9021a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2171,7 +2171,7 @@ var/obj/item/paper/P = new /obj/item/paper(null) //hopefully the null loc won't cause trouble for us if(!fax) - var/list/departmentoptions = alldepartments + "All Departments" + var/list/departmentoptions = alldepartments + hidden_departments + "All Departments" destination = input(usr, "To which department?", "Choose a department", "") as null|anything in departmentoptions if(!destination) qdel(P) diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 13d85941a79..f15fcfa9b80 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -2,6 +2,7 @@ var/list/obj/machinery/photocopier/faxmachine/allfaxes = list() var/list/admin_departments = list("Central Command") var/list/hidden_admin_departments = list("Syndicate") var/list/alldepartments = list() +var/list/hidden_departments = list() var/global/list/fax_blacklist = list() /obj/machinery/photocopier/faxmachine @@ -10,6 +11,7 @@ var/global/list/fax_blacklist = list() icon_state = "fax" insert_anim = "faxsend" var/fax_network = "Local Fax Network" + var/syndie_restricted = FALSE //is it a syndicate base fax restricted from contacting NT assets? var/long_range_enabled = 0 // Can we send messages off the station? req_one_access = list(access_lawyer, access_heads, access_armory) @@ -35,7 +37,7 @@ var/global/list/fax_blacklist = list() /obj/machinery/photocopier/faxmachine/proc/update_network() if(department != "Unknown") - if(!(("[department]" in alldepartments) || ("[department]" in admin_departments) || ("[department]" in hidden_admin_departments))) + if(!(("[department]" in alldepartments) || ("[department]" in hidden_departments) || ("[department]" in admin_departments) || ("[department]" in hidden_admin_departments))) alldepartments |= department /obj/machinery/photocopier/faxmachine/longrange @@ -43,6 +45,17 @@ var/global/list/fax_blacklist = list() fax_network = "Central Command Quantum Entanglement Network" long_range_enabled = 1 +/obj/machinery/photocopier/faxmachine/longrange/syndie + name = "syndicate long range fax machine" + emagged = TRUE + syndie_restricted = TRUE + req_one_access = list(access_syndicate) + //No point setting fax network, being emagged overrides that anyway. + +/obj/machinery/photocopier/faxmachine/longrange/syndie/update_network() + if(department != "Unknown") + hidden_departments |= department + /obj/machinery/photocopier/faxmachine/attack_hand(mob/user) ui_interact(user) @@ -119,7 +132,7 @@ var/global/list/fax_blacklist = list() if((destination in admin_departments) || (destination in hidden_admin_departments)) send_admin_fax(usr, destination) else - sendfax(destination,usr) + sendfax(destination, usr) if(sendcooldown) spawn(sendcooldown) // cooldown time @@ -155,6 +168,14 @@ var/global/list/fax_blacklist = list() if(emagged) combineddepartments += hidden_admin_departments.Copy() + combineddepartments += hidden_departments.Copy() + + if(syndie_restricted) + combineddepartments = hidden_admin_departments.Copy() + combineddepartments += hidden_departments.Copy() + for(var/obj/machinery/photocopier/faxmachine/F in allfaxes) + if(F.emagged)//we can contact emagged faxes on the station + combineddepartments |= F.department destination = input(usr, "To which department?", "Choose a department", "") as null|anything in combineddepartments if(!destination)