diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index 4399c7399684..b7a2333f36db 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -217,6 +217,8 @@ data["security_vents"] = link.get_ares_vents() data["sentry_setting"] = link.faction_label + data["sentry_setting"] = link.faction_label + data["faction_options"] = link.faction_options return data @@ -549,5 +551,19 @@ aicore_lockdown(user) return TRUE + if("update_sentries") + playsound = FALSE + var/new_iff = params["chosen_iff"] + if(!new_iff) + to_chat(user, SPAN_WARNING("ERROR: Unknown setting.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(new_iff == link.faction_label) + return FALSE + link.change_iff(new_iff) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + to_chat(user, SPAN_WARNING("Sentry IFF settings updated!")) + return TRUE + if(playsound) playsound(src, "keyboard_alt", 15, 1) diff --git a/code/game/machinery/ARES/ARES_interface_admin.dm b/code/game/machinery/ARES/ARES_interface_admin.dm index 0c0b240617bf..0756c8b01db9 100644 --- a/code/game/machinery/ARES/ARES_interface_admin.dm +++ b/code/game/machinery/ARES/ARES_interface_admin.dm @@ -234,8 +234,8 @@ data["access_tickets"] = logged_access data["security_vents"] = get_ares_vents() - data["sentry_setting"] = faction_label + data["faction_options"] = faction_options return data @@ -525,3 +525,14 @@ return FALSE aicore_lockdown(user) return TRUE + + if("update_sentries") + var/new_iff = params["chosen_iff"] + if(!new_iff) + to_chat(user, SPAN_WARNING("ERROR: Unknown setting.")) + return FALSE + if(new_iff == faction_label) + return FALSE + change_iff(new_iff) + to_chat(user, SPAN_WARNING("Sentry IFF settings updated!")) + return TRUE diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm index f3bfd3c63851..fe0f26880a16 100644 --- a/code/game/machinery/ARES/ARES_interface_apollo.dm +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -142,9 +142,8 @@ data["access_tickets"] = logged_access data["security_vents"] = link.get_ares_vents() - data["sentry_setting"] = link.faction_label - data["faction_options"] = list(FACTION_MARINE, FACTION_WY, "USCM-WY", FACTION_ARES) + data["faction_options"] = link.faction_options return data @@ -458,6 +457,7 @@ return FALSE link.change_iff(new_iff) playsound(src, 'sound/machines/chime.ogg', 15, 1) + to_chat(user, SPAN_WARNING("Sentry IFF settings updated!")) return TRUE if(playsound) diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index 495a9488b84a..019fd4978bed 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(maintenance_categories, list( ///Sentry faction stuff var/faction_label = FACTION_MARINE var/list/faction_group = FACTION_LIST_ARES_MARINE + var/list/faction_options = list(FACTION_MARINE, FACTION_WY, "USCM-WY", FACTION_ARES) var/list/core_sentries = list() /datum/ares_link/New() diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index 925962cba4d5..cd5de02a1ddb 100644 --- a/code/game/machinery/ARES/apollo_pda.dm +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -167,8 +167,8 @@ data["access_tickets"] = logged_access data["security_vents"] = link.get_ares_vents() - data["sentry_setting"] = link.faction_label + data["faction_options"] = link.faction_options return data @@ -472,6 +472,20 @@ aicore_lockdown(user) return TRUE + if("update_sentries") + playsound = FALSE + var/new_iff = params["chosen_iff"] + if(!new_iff) + to_chat(user, SPAN_WARNING("ERROR: Unknown setting.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(new_iff == link.faction_label) + return FALSE + link.change_iff(new_iff) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + to_chat(user, SPAN_WARNING("Sentry IFF settings updated!")) + return TRUE + if(playsound) var/sound = pick('sound/machines/pda_button1.ogg', 'sound/machines/pda_button2.ogg') playsound(src, sound, 15, TRUE) diff --git a/code/game/machinery/ARES/debug_pda.dm b/code/game/machinery/ARES/debug_pda.dm index 90816d8423ba..72f52c412909 100644 --- a/code/game/machinery/ARES/debug_pda.dm +++ b/code/game/machinery/ARES/debug_pda.dm @@ -278,6 +278,8 @@ data["access_tickets"] = logged_access data["security_vents"] = link.get_ares_vents() + data["sentry_setting"] = link.faction_label + data["faction_options"] = link.faction_options return data @@ -735,6 +737,19 @@ sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + if("update_sentries") + playsound = FALSE + var/new_iff = params["chosen_iff"] + if(!new_iff) + to_chat(user, SPAN_WARNING("ERROR: Unknown setting.")) + playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) + return FALSE + if(new_iff == link.faction_label) + return FALSE + link.change_iff(new_iff) + playsound(src, 'sound/machines/chime.ogg', 15, 1) + to_chat(user, SPAN_WARNING("Sentry IFF settings updated!")) + return TRUE if(playsound) var/sound = pick('sound/machines/pda_button1.ogg', 'sound/machines/pda_button2.ogg') diff --git a/tgui/packages/tgui/interfaces/AresAdmin.jsx b/tgui/packages/tgui/interfaces/AresAdmin.jsx index 4e0bc465e1ee..b1848de79c29 100644 --- a/tgui/packages/tgui/interfaces/AresAdmin.jsx +++ b/tgui/packages/tgui/interfaces/AresAdmin.jsx @@ -1,5 +1,5 @@ import { useBackend } from '../backend'; -import { Box, Button, Flex, Section, Stack } from '../components'; +import { Box, Button, Dropdown, Flex, Section, Stack } from '../components'; import { Window } from '../layouts'; const PAGES = { @@ -96,8 +96,16 @@ const Login = (props) => { const MainMenu = (props) => { const { data, act } = useBackend(); - const { logged_in, access_text, last_page, current_menu, sudo, admin_login } = - data; + const { + logged_in, + access_text, + last_page, + current_menu, + sudo, + admin_login, + faction_options, + sentry_setting, + } = data; return ( <> @@ -412,28 +420,41 @@ const MainMenu = (props) => { color="red" ml="auto" px="2rem" - width="50%" + width="100%" bold onClick={() => act('page_core_sec')} > Nerve Gas Control - act('security_lockdown')} - disabled={remotelock} - > - AI Core Lockdown - + + + act('security_lockdown')} + > + AI Core Lockdown + + + + + act('update_sentries', { chosen_iff: value }) + } + width="90px" + tooltip="Change core sentries IFF settings." + /> + +
diff --git a/tgui/packages/tgui/interfaces/AresInterface.jsx b/tgui/packages/tgui/interfaces/AresInterface.jsx index e90330bd7c46..eee27adfb9e0 100644 --- a/tgui/packages/tgui/interfaces/AresInterface.jsx +++ b/tgui/packages/tgui/interfaces/AresInterface.jsx @@ -3,7 +3,7 @@ // -------------------------------------------------------------------- // import { useBackend } from '../backend'; -import { Box, Button, Flex, Section, Stack } from '../components'; +import { Box, Button, Dropdown, Flex, Section, Stack } from '../components'; import { Window } from '../layouts'; const PAGES = { @@ -93,6 +93,8 @@ const MainMenu = (props) => { last_page, current_menu, access_level, + faction_options, + sentry_setting, sudo, } = data; @@ -385,7 +387,6 @@ const MainMenu = (props) => { )} )} @@ -415,19 +418,35 @@ const MainMenu = (props) => { > Nerve Gas Control - act('security_lockdown')} - > - AI Core Lockdown - + + + act('security_lockdown')} + > + AI Core Lockdown + + + + + act('update_sentries', { chosen_iff: value }) + } + width="90px" + disabled={access_level < 9} + tooltip="Change core sentries IFF settings." + /> + +
)}