Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IOs get their own squads #4375

Merged
merged 5 commits into from
Sep 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/minimap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion code/game/jobs/job/command/auxiliary/intel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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 = "<a href='"+URL_WIKI_IO_GUIDE+"'>Your job is to assist the marines in collecting intelligence related</a> 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."

Expand Down
29 changes: 27 additions & 2 deletions code/game/jobs/job/marine/squads.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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)

Expand All @@ -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()
Expand Down
9 changes: 9 additions & 0 deletions code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/human/update_icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions tgui/packages/tgui/interfaces/OverwatchConsole.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const HomePanel = (props, context) => {
'delta': 'blue',
'echo': 'green',
'foxtrot': 'brown',
'intel': 'green',
};

return (
Expand Down
Loading