From 30a350e8eed25dea27a154f46bb74890e82e4bfd Mon Sep 17 00:00:00 2001
From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Date: Fri, 8 Sep 2023 15:55:53 +0200
Subject: [PATCH 1/5] done
---
code/__DEFINES/job.dm | 1 +
code/game/jobs/job/command/auxiliary/intel.dm | 2 +-
code/game/jobs/job/marine/squads.dm | 11 ++++++++++-
code/game/jobs/role_authority.dm | 9 +++++++++
4 files changed, 21 insertions(+), 2 deletions(-)
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/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..1a595017962a 100644
--- a/code/game/jobs/job/marine/squads.dm
+++ b/code/game/jobs/job/marine/squads.dm
@@ -175,6 +175,15 @@
roundstart = FALSE
locked = TRUE
+/datum/squad/marine/intel
+ name = SQUAD_MARINE_INTEL
+ equipment_color = "#67d692"
+ chat_color = "#67d692"
+ minimap_color = MINIMAP_SQUAD_ECHO
+ radio_freq = null
+
+ roundstart = FALSE
+
/datum/squad/marine/sof
name = SQUAD_SOF
equipment_color = "#400000"
@@ -504,7 +513,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.
From fba043f0cc310f21fbe7a183bcf412862c5a967e Mon Sep 17 00:00:00 2001
From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Date: Fri, 8 Sep 2023 16:01:43 +0200
Subject: [PATCH 2/5] Update squads.dm
---
code/game/jobs/job/marine/squads.dm | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm
index 1a595017962a..a4b32e2adfa0 100644
--- a/code/game/jobs/job/marine/squads.dm
+++ b/code/game/jobs/job/marine/squads.dm
@@ -108,6 +108,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"
@@ -183,6 +186,7 @@
radio_freq = null
roundstart = FALSE
+ prepend_squad_name_to_assignment = FALSE
/datum/squad/marine/sof
name = SQUAD_SOF
@@ -504,7 +508,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)
From 5899300cf6db20cb93cf2b77caef63f0297ff18d Mon Sep 17 00:00:00 2001
From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Date: Fri, 8 Sep 2023 16:05:27 +0200
Subject: [PATCH 3/5] Update OverwatchConsole.js
---
tgui/packages/tgui/interfaces/OverwatchConsole.js | 1 +
1 file changed, 1 insertion(+)
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 (
From e35e17b48525620fa6eeb8e0209bbd8a2fdeff74 Mon Sep 17 00:00:00 2001
From: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Date: Fri, 8 Sep 2023 16:09:24 +0200
Subject: [PATCH 4/5] Update squads.dm
---
code/game/jobs/job/marine/squads.dm | 2 --
1 file changed, 2 deletions(-)
diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm
index a4b32e2adfa0..fe5e3be38a90 100644
--- a/code/game/jobs/job/marine/squads.dm
+++ b/code/game/jobs/job/marine/squads.dm
@@ -180,8 +180,6 @@
/datum/squad/marine/intel
name = SQUAD_MARINE_INTEL
- equipment_color = "#67d692"
- chat_color = "#67d692"
minimap_color = MINIMAP_SQUAD_ECHO
radio_freq = null
From 22c2cbe15ba14f816356c14c966e55abddf92e83 Mon Sep 17 00:00:00 2001
From: ihatethisengine
Date: Sat, 9 Sep 2023 16:42:35 +0300
Subject: [PATCH 5/5] test
---
code/__DEFINES/minimap.dm | 1 +
code/game/jobs/job/marine/squads.dm | 13 ++++++++++++-
.../modules/mob/living/carbon/human/update_icons.dm | 4 ++--
3 files changed, 15 insertions(+), 3 deletions(-)
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/marine/squads.dm b/code/game/jobs/job/marine/squads.dm
index fe5e3be38a90..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
@@ -180,12 +182,21 @@
/datum/squad/marine/intel
name = SQUAD_MARINE_INTEL
- minimap_color = MINIMAP_SQUAD_ECHO
+ 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"
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)