diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index eac5121f173e..8d0094cbe606 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -9,6 +9,7 @@ #define SQUAD_MARINE_4 "Delta" #define SQUAD_MARINE_5 "Echo" #define SQUAD_MARINE_CRYO "Foxtrot" +#define SQUAD_MARINE_INTEL "Intel" #define SQUAD_SOF "SOF" // Job name defines diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm index c9f21484f622..71d0ed8e7445 100644 --- a/code/__DEFINES/minimap.dm +++ b/code/__DEFINES/minimap.dm @@ -52,6 +52,7 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL)) #define MINIMAP_SQUAD_ECHO "#00b043" #define MINIMAP_SQUAD_FOXTROT "#fe7b2e" #define MINIMAP_SQUAD_SOF "#400000" +#define MINIMAP_SQUAD_INTEL "#053818" #define MINIMAP_ICON_BACKGROUND_CIVILIAN "#7D4820" #define MINIMAP_ICON_BACKGROUND_CIC "#3f3f3f" diff --git a/code/game/jobs/job/command/auxiliary/intel.dm b/code/game/jobs/job/command/auxiliary/intel.dm index 10b8381c417e..0c6e80069a68 100644 --- a/code/game/jobs/job/command/auxiliary/intel.dm +++ b/code/game/jobs/job/command/auxiliary/intel.dm @@ -6,7 +6,7 @@ allow_additional = 1 scaled = 1 supervisors = "the auxiliary support officer" - flags_startup_parameters = ROLE_ADD_TO_DEFAULT + flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD gear_preset = "USCM Intelligence Officer (IO) (Cryo)" entry_message_body = "Your job is to assist the marines in collecting intelligence related to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources." diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index fb85be012d30..56e2af668191 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -31,6 +31,8 @@ var/tracking_id = null //Used for the tracking subsystem /// Maximum number allowed in a squad. Defaults to infinite var/max_positions = -1 + /// If uses the overlay + var/use_stripe_overlay = TRUE /// Color for the squad marines gear overlays var/equipment_color = "#FFFFFF" /// The alpha for the armor overlay used by equipment color @@ -108,6 +110,9 @@ var/minimap_color = MINIMAP_SQUAD_UNKNOWN + ///Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman + var/prepend_squad_name_to_assignment = TRUE + /datum/squad/marine name = "Root" @@ -175,6 +180,23 @@ roundstart = FALSE locked = TRUE +/datum/squad/marine/intel + name = SQUAD_MARINE_INTEL + use_stripe_overlay = FALSE + equipment_color = "#053818" + minimap_color = MINIMAP_SQUAD_INTEL + radio_freq = null + + roundstart = FALSE + prepend_squad_name_to_assignment = FALSE + + max_engineers = 0 + max_medics = 0 + max_specialists = 0 + max_tl = 0 + max_smartgun = 0 + max_leaders = 0 + /datum/squad/marine/sof name = SQUAD_SOF equipment_color = "#400000" @@ -495,7 +517,10 @@ marines_list += M M.assigned_squad = src //Add them to the squad C.access += (src.access + extra_access) //Add their squad access to their ID - C.assignment = "[name] [assignment]" + if(prepend_squad_name_to_assignment) + C.assignment = "[name] [assignment]" + else + C.assignment = assignment SEND_SIGNAL(M, COMSIG_SET_SQUAD) @@ -504,7 +529,7 @@ C.name = "[C.registered_name]'s ID Card ([C.assignment])" var/obj/item/device/radio/headset/almayer/marine/headset = locate() in list(M.wear_l_ear, M.wear_r_ear) - if(headset) + if(headset && radio_freq) headset.set_frequency(radio_freq) M.update_inv_head() M.update_inv_wear_suit() diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index d1934c597da7..c147807f004e 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -652,6 +652,15 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou if (S.roundstart && S.usable && S.faction == H.faction && S.name != "Root") mixed_squads += S + //Deal with IOs first + if(H.job == JOB_INTEL) + var/datum/squad/intel_squad = get_squad_by_name(SQUAD_MARINE_INTEL) + if(!intel_squad || !istype(intel_squad)) //Something went horribly wrong! + to_chat(H, "Something went wrong with randomize_squad()! Tell a coder!") + return + intel_squad.put_marine_in_squad(H) //Found one, finish up + return + //Deal with non-standards first. //Non-standards are distributed regardless of squad population. //If the number of available positions for the job are more than max_whatever, it will break. diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 88887126b1c1..bbb9c7fd0352 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -457,7 +457,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, if(istype(head, /obj/item/clothing/head/helmet/marine)) var/obj/item/clothing/head/helmet/marine/marine_helmet = head if(assigned_squad && marine_helmet.flags_marine_helmet & HELMET_SQUAD_OVERLAY) - if(assigned_squad && assigned_squad.equipment_color) + if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay) var/leader = assigned_squad.squad_leader var/image/helmet_overlay = image(marine_helmet.helmet_overlay_icon, icon_state = "std-helmet") if(leader == src) @@ -519,7 +519,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, if(istype(wear_suit, /obj/item/clothing/suit/storage/marine)) var/obj/item/clothing/suit/storage/marine/marine_armor = wear_suit if(marine_armor.flags_marine_armor & ARMOR_SQUAD_OVERLAY) - if(assigned_squad && assigned_squad.equipment_color) + if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay) var/leader = assigned_squad.squad_leader var/image/squad_overlay = image(marine_armor.squad_overlay_icon, icon_state = "std-armor") if(leader == src) diff --git a/tgui/packages/tgui/interfaces/OverwatchConsole.js b/tgui/packages/tgui/interfaces/OverwatchConsole.js index 7beceef9e72d..1a6f67ac7ccd 100644 --- a/tgui/packages/tgui/interfaces/OverwatchConsole.js +++ b/tgui/packages/tgui/interfaces/OverwatchConsole.js @@ -28,6 +28,7 @@ const HomePanel = (props, context) => { 'delta': 'blue', 'echo': 'green', 'foxtrot': 'brown', + 'intel': 'green', }; return (