diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 16383b05352..bf017248c17 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -642,122 +642,6 @@ I.assignment = "Solar Federation Representative" H.sec_hud_set_ID() - -/datum/outfit/admin/solgov - name = "Solar Federation Marine" - uniform = /obj/item/clothing/under/solgov - suit = /obj/item/clothing/suit/armor/bulletproof - back = /obj/item/storage/backpack/security - belt = /obj/item/storage/belt/military/assault/marines/full - head = /obj/item/clothing/head/soft/solgov/marines - glasses = /obj/item/clothing/glasses/night - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - l_ear = /obj/item/radio/headset/ert - id = /obj/item/card/id - l_hand = /obj/item/gun/projectile/automatic/shotgun/bulldog - suit_store = /obj/item/gun/projectile/automatic/pistol/m1911 - r_pocket = /obj/item/flashlight/seclite - pda = /obj/item/pda - backpack_contents = list( - /obj/item/storage/box/responseteam = 1, - /obj/item/clothing/shoes/magboots = 1, - /obj/item/whetstone = 1, - /obj/item/clothing/mask/gas/explorer/marines = 1, - /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 - ) - cybernetic_implants = list( - /obj/item/organ/internal/cyberimp/arm/flash, - /obj/item/organ/internal/cyberimp/chest/nutriment, - /obj/item/organ/internal/cyberimp/eyes/hud/security - ) - implants = list(/obj/item/implant/mindshield, - /obj/item/implant/death_alarm - ) - - var/is_solgov_lieutenant = FALSE - - -/datum/outfit/admin/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - . = ..() - if(visualsOnly) - return - - if(is_solgov_lieutenant) - H.real_name = "Lieutenant [pick(GLOB.last_names)]" - else - H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]" - H.name = H.real_name - var/obj/item/card/id/I = H.wear_id - I.assignment = name - if(istype(I) && is_solgov_lieutenant) - apply_to_card(I, H, get_centcom_access("Emergency Response Team Leader"), name, "lifetimeid") - else if(istype(I)) - apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), name, "lifetimeid") - H.sec_hud_set_ID() - -/datum/outfit/admin/solgov/lieutenant - name = "Solar Federation Lieutenant" - uniform = /obj/item/clothing/under/solgov/command - head = /obj/item/clothing/head/beret/solgov/command - glasses = /obj/item/clothing/glasses/night - back = /obj/item/storage/backpack/satchel - l_ear = /obj/item/radio/headset/ert/alt/commander - l_hand = null - belt = /obj/item/melee/baton/loaded - suit_store = /obj/item/gun/projectile/automatic/pistol/deagle - l_pocket = /obj/item/pinpointer/advpinpointer - backpack_contents = list( - /obj/item/storage/box/responseteam = 1, - /obj/item/storage/box/handcuffs = 1, - /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, - /obj/item/clothing/mask/gas/explorer/marines = 1, - /obj/item/ammo_box/magazine/m50 = 3 - ) - is_solgov_lieutenant = TRUE - -/datum/outfit/admin/solgov/elite - name = "Solar Federation Specops Marine" - uniform = /obj/item/clothing/under/solgov/elite - head = /obj/item/clothing/head/soft/solgov/marines/elite - belt = /obj/item/storage/belt/military/assault/marines/elite/full - l_hand = /obj/item/gun/projectile/automatic/ar - backpack_contents = list( - /obj/item/storage/box/responseteam = 1, - /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/whetstone = 1, - /obj/item/clothing/mask/gas/explorer/marines = 1, - /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 - ) - cybernetic_implants = list( - /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/chest/nutriment, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, - /obj/item/organ/internal/cyberimp/arm/flash, - /obj/item/organ/internal/eyes/cybernetic/shield - ) -/datum/outfit/admin/solgov/elite/lieutenant - name = "Solar Federation Specops Lieutenant" - uniform = /obj/item/clothing/under/solgov/command/elite - head = /obj/item/clothing/head/beret/solgov/command/elite - glasses = /obj/item/clothing/glasses/night - back = /obj/item/storage/backpack/satchel - belt = /obj/item/melee/baton/loaded - l_hand = null - suit_store = /obj/item/gun/projectile/automatic/pistol/deagle - l_pocket = /obj/item/pinpointer/advpinpointer - l_ear = /obj/item/radio/headset/ert/alt/commander - backpack_contents = list( - /obj/item/storage/box/responseteam = 1, - /obj/item/storage/box/handcuffs = 1, - /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/clothing/mask/gas/explorer/marines = 1, - /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, - /obj/item/ammo_box/magazine/m50 = 3 - ) - is_solgov_lieutenant = TRUE - /datum/outfit/admin/sol_trader name = "Sol Trader" diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 01f87d3b758..5f0947ac534 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -11,7 +11,7 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","E name = "changeling" config_tag = "changeling" restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") protected_species = list("Machine") required_players = 15 required_enemies = 1 diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index fb15a380c60..86dd810a383 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -48,7 +48,7 @@ GLOBAL_LIST_EMPTY(all_cults) /datum/game_mode/cult name = "cult" config_tag = "cult" - restricted_jobs = list("Chaplain", "AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Security Pod Pilot", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + restricted_jobs = list("Chaplain", "AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Security Pod Pilot", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") protected_jobs = list() required_players = 30 required_enemies = 3 diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 67109419040..9b26886de01 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -74,7 +74,7 @@ Made by Xhuis required_enemies = 2 recommended_enemies = 2 restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") /datum/game_mode/shadowling/announce() to_chat(world, "The current game mode is - Shadowling!") diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index f247f860400..f99b3cc903d 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -11,7 +11,7 @@ name = "traitor" config_tag = "traitor" restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Internal Affairs Agent", "Brig Physician", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm index 7fb1088214b..2a744463b2d 100644 --- a/code/game/gamemodes/vampire/traitor_vamp.dm +++ b/code/game/gamemodes/vampire/traitor_vamp.dm @@ -2,7 +2,7 @@ name = "traitor+vampire" config_tag = "traitorvamp" traitors_possible = 3 //hard limit on traitors if scaling is turned off - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Solar Federation Brigadier General") restricted_jobs = list("Cyborg") secondary_restricted_jobs = list("AI") required_players = 10 diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index ff3a6152da1..4275decf496 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -9,7 +9,7 @@ name = "vampire" config_tag = "vampire" restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") protected_species = list("Machine") required_players = 15 required_enemies = 1 diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index f2b28fea297..42d91002257 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -100,6 +100,8 @@ return get_all_centcom_access() + get_all_accesses() if("Special Operations Officer") return get_all_centcom_access() + get_all_accesses() + if("Solar Federation Brigadier General") + return get_all_centcom_access() + get_all_accesses() if("Nanotrasen Navy Representative") return get_all_centcom_access() + get_all_accesses() if("Nanotrasen Navy Officer") @@ -401,7 +403,7 @@ return list("VIP Guest","Custodian","Thunderdome Overseer","Emergency Response Team Member","Emergency Response Team Leader","Intel Officer","Medical Officer","Death Commando","Research Officer","Deathsquad Officer","Special Operations Officer","Nanotrasen Navy Representative","Nanotrasen Navy Officer","Nanotrasen Navy Captain","Supreme Commander") /proc/get_all_solgov_jobs() - return list("Solar Federation Lieutenant","Solar Federation Specops Lieutenant","Solar Federation Marine","Solar Federation Specops Marine","Solar Federation Representative","Sol Trader") + return list("Solar Federation Lieutenant","Solar Federation Specops Lieutenant","Solar Federation Marine","Solar Federation Specops Marine","Solar Federation Representative","Sol Trader","Solar Federation Brigadier General") //gets the actual job rank (ignoring alt titles) //this is used solely for sechuds diff --git a/code/game/jobs/job/central.dm b/code/game/jobs/job/central.dm index c25dfdd256f..f86fcfc5727 100644 --- a/code/game/jobs/job/central.dm +++ b/code/game/jobs/job/central.dm @@ -71,7 +71,6 @@ jobtype = /datum/job/ntspecops uniform = /obj/item/clothing/under/rank/centcom/captain suit = /obj/item/clothing/suit/space/deathsquad/officer - back = /obj/item/storage/backpack/ert/security belt = /obj/item/storage/belt/military/assault gloves = /obj/item/clothing/gloves/combat shoes = /obj/item/clothing/shoes/combat @@ -104,3 +103,23 @@ if(visualsOnly) return H.mind.offstation_role = TRUE + +/datum/job/ntspecops/solgovspecops + title = "Solar Federation Brigadier General" + outfit = /datum/outfit/job/ntspecops/solgovspecops + +/datum/outfit/job/ntspecops/solgovspecops + name = "Solar Federation Brigadier General" + uniform = /obj/item/clothing/under/rank/centcom/captain/solgov + suit = /obj/item/clothing/suit/space/deathsquad/officer/solgov + head = /obj/item/clothing/head/helmet/space/deathsquad/beret/solgov + backpack = /obj/item/storage/backpack/satchel + +/datum/outfit/job/ntspecops/solgovspecops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Solar Federation Brigadier General"), name, "lifetimeid") + H.sec_hud_set_ID() diff --git a/code/game/machinery/tcomms/nttc.dm b/code/game/machinery/tcomms/nttc.dm index 0576bbe7e41..94ad0e2b5ce 100644 --- a/code/game/machinery/tcomms/nttc.dm +++ b/code/game/machinery/tcomms/nttc.dm @@ -51,6 +51,11 @@ "Emergency Response Team Officer" = "dsquadradio", "Nanotrasen Navy Officer" = "dsquadradio", "Special Operations Officer" = "dsquadradio", + "Solar Federation Brigadier General" = "dsquadradio", + "Solar Federation Specops Lieutenant" = "dsquadradio", + "Solar Federation Specops Marine" = "dsquadradio", + "Solar Federation Lieutenant" = "dsquadradio", + "Solar Federation Marine" = "dsquadradio", // Medical "Chemist" = "medradio", "Chief Medical Officer" = "medradio", @@ -119,7 +124,9 @@ /// List of ERT jobs var/list/ert_jobs = list("Emergency Response Team Officer", "Emergency Response Team Engineer", "Emergency Response Team Medic", "Emergency Response Team Leader", "Emergency Response Team Member") /// List of CentComm jobs - var/list/cc_jobs = list("Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer") + var/list/cc_jobs = list("Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation Brigadier General") + /// List of SolGov Marine jobs + var/list/tsf_jobs = list( "Solar Federation Specops Lieutenant", "Solar Federation Specops Marine", "Solar Federation Lieutenant", "Solar Federation Marine") // Defined so code compiles and incase someone has a non-standard job var/job_class = "radio" // NOW FOR ACTUAL TOGGLES @@ -278,7 +285,7 @@ // Makes heads of staff bold if(toggle_command_bold) var/job = tcm.sender_job - if((job in ert_jobs) || (job in heads) || (job in cc_jobs)) + if((job in ert_jobs) || (job in heads) || (job in cc_jobs) || (job in tsf_jobs)) for(var/I in 1 to length(message_pieces)) var/datum/multilingual_say_piece/S = message_pieces[I] if(!S.message) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index d732f3a00ab..417ab94fa2c 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -87,6 +87,11 @@ armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) flags = STOPSPRESSUREDMAGE | THICKMATERIAL +/obj/item/clothing/head/helmet/space/deathsquad/beret/solgov + name = "Trans-Solar Federation commander's beret" + desc = "A camouflaged beret adorned with the star of the Trans-Solar Federation, worn by generals of the Trans-Solar Federation." + icon_state = "solgovceliteberet" + /obj/item/clothing/suit/space/deathsquad/officer name = "officer jacket" desc = "An armored jacket used in special operations." @@ -99,6 +104,12 @@ resistance_flags = FIRE_PROOF | ACID_PROOF w_class = WEIGHT_CLASS_NORMAL +/obj/item/clothing/suit/space/deathsquad/officer/solgov + name = "Trans-Solar Federation commander's jacket" + icon_state = "solgovcommander" + item_state = "solgovcommander" + + //Space santa outfit suit /obj/item/clothing/head/helmet/space/santahat name = "Santa's hat" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index e91942e8e5f..71bd1e165d0 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -129,6 +129,10 @@ armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) displays_id = 0 +/obj/item/clothing/under/rank/centcom/captain/solgov + name = "\improper Trans-Solar Federation commander's uniform" + desc = "Gold trim on space-black cloth, this uniform is worn by generals of the Trans-Solar Federation. It has exotic materials for protection." + /obj/item/clothing/under/rank/centcom/blueshield name = "formal blueshield's uniform" desc = "Gold trim on space-black cloth, this uniform bears \"Close Protection\" on the left shoulder. It's got exotic materials for protection." diff --git a/code/modules/response_team/ert.dm b/code/modules/response_team/ert.dm index f709e0455f9..c36eb4f5e01 100644 --- a/code/modules/response_team/ert.dm +++ b/code/modules/response_team/ert.dm @@ -301,6 +301,22 @@ GLOBAL_VAR_INIT(ert_request_answered, FALSE) /datum/response_team/gamma/announce_team() GLOB.event_announcement.Announce("Attention, [station_name()]. We are sending a code GAMMA elite Emergency Response Team. Standby.", "ERT En-Route") +/datum/response_team/solgov + security_outfit = /datum/outfit/job/centcom/response_team/solgov + command_outfit = /datum/outfit/job/centcom/response_team/solgov/lieutenant + borg_path = /mob/living/silicon/robot/ert/red + +/datum/response_team/solgov/announce_team() + GLOB.event_announcement.Announce("Attention, [station_name()], this is the TSF navy vessel Aurelia. We have detected your distress call, a squad of Marines is inbound. Standby.", "Marines En-Route") + +/datum/response_team/solgovspecops + security_outfit = /datum/outfit/job/centcom/response_team/solgov/elite + command_outfit = /datum/outfit/job/centcom/response_team/solgov/elite/lieutenant + borg_path = /mob/living/silicon/robot/ert/gamma + +/datum/response_team/solgovspecops/announce_team() + GLOB.event_announcement.Announce("Attention, [station_name()], this is the TSF navy vessel Aurelia. We have detected your distress call, a squad of elite SpecOps Marines is inbound. Standby.", "Marines En-Route") + /datum/outfit/job/centcom/response_team name = "Response team" var/rt_assignment = "Emergency Response Team Member" diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index 8c3fbda5e57..bd2556f86bc 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -534,3 +534,129 @@ implants = list(/obj/item/implant/mindshield, /obj/item/implant/death_alarm ) + +//////////////////// OORAH MARINES /////////////////// +/datum/outfit/job/centcom/response_team/solgov + name = "Solar Federation Marine" + name = "Solar Federation Marine" + rt_job = rt_assignment + rt_mob_job = "ERT Security" + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/armor/bulletproof + back = /obj/item/storage/backpack/security + belt = /obj/item/storage/belt/military/assault/marines/full + head = /obj/item/clothing/head/soft/solgov/marines + glasses = /obj/item/clothing/glasses/night + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat + l_ear = /obj/item/radio/headset/ert + id = /obj/item/card/id + l_hand = /obj/item/gun/projectile/automatic/shotgun/bulldog + suit_store = /obj/item/gun/projectile/automatic/pistol/m1911 + r_pocket = /obj/item/flashlight/seclite + pda = /obj/item/pda + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/clothing/shoes/magboots = 1, + /obj/item/whetstone = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/arm/flash, + /obj/item/organ/internal/cyberimp/chest/nutriment, + /obj/item/organ/internal/cyberimp/eyes/hud/security + ) + implants = list(/obj/item/implant/mindshield, + /obj/item/implant/death_alarm + ) + + var/is_solgov_lieutenant = FALSE + + +/datum/outfit/job/centcom/response_team/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + if(is_solgov_lieutenant) + H.real_name = "Lieutenant [pick(GLOB.last_names)]" + else + H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]" + H.name = H.real_name + var/obj/item/card/id/I = H.wear_id + I.assignment = name + if(istype(I) && is_solgov_lieutenant) + apply_to_card(I, H, get_centcom_access("Emergency Response Team Leader"), name, "lifetimeid") + else if(istype(I)) + apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), name, "lifetimeid") + H.sec_hud_set_ID() + +/datum/outfit/job/centcom/response_team/solgov/lieutenant + name = "Solar Federation Lieutenant" + rt_assignment = "Solar Federation Lieutenant" + rt_job = rt_assignment + rt_mob_job = "ERT Commander" + uniform = /obj/item/clothing/under/solgov/command + head = /obj/item/clothing/head/beret/solgov/command + glasses = /obj/item/clothing/glasses/night + back = /obj/item/storage/backpack/satchel + l_ear = /obj/item/radio/headset/ert/alt/commander + l_hand = null + belt = /obj/item/melee/baton/loaded + suit_store = /obj/item/gun/projectile/automatic/pistol/deagle + l_pocket = /obj/item/pinpointer/advpinpointer + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/storage/box/handcuffs = 1, + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/ammo_box/magazine/m50 = 3 + ) + is_solgov_lieutenant = TRUE + +/datum/outfit/job/centcom/response_team/solgov/elite + name = "Solar Federation Specops Marine" + rt_assignment = "Solar Federation Specops Marine" + uniform = /obj/item/clothing/under/solgov/elite + head = /obj/item/clothing/head/soft/solgov/marines/elite + belt = /obj/item/storage/belt/military/assault/marines/elite/full + l_hand = /obj/item/gun/projectile/automatic/ar + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/whetstone = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/hud/security, + /obj/item/organ/internal/cyberimp/chest/nutriment, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/arm/flash, + /obj/item/organ/internal/eyes/cybernetic/shield + ) +/datum/outfit/job/centcom/response_team/solgov/elite/lieutenant + name = "Solar Federation Specops Lieutenant" + rt_assignment = "Solar Federation Specops Lieutenant" + rt_job = rt_assignment + rt_mob_job = "ERT Commander" + uniform = /obj/item/clothing/under/solgov/command/elite + head = /obj/item/clothing/head/beret/solgov/command/elite + glasses = /obj/item/clothing/glasses/night + back = /obj/item/storage/backpack/satchel + belt = /obj/item/melee/baton/loaded + l_hand = null + suit_store = /obj/item/gun/projectile/automatic/pistol/deagle + l_pocket = /obj/item/pinpointer/advpinpointer + l_ear = /obj/item/radio/headset/ert/alt/commander + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/storage/box/handcuffs = 1, + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, + /obj/item/ammo_box/magazine/m50 = 3 + ) + is_solgov_lieutenant = TRUE diff --git a/code/modules/tgui/modules/ert_manager.dm b/code/modules/tgui/modules/ert_manager.dm index b31adf47120..b141da41cab 100644 --- a/code/modules/tgui/modules/ert_manager.dm +++ b/code/modules/tgui/modules/ert_manager.dm @@ -12,7 +12,7 @@ /datum/ui_module/ert_manager/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.admin_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "ERTManager", name, 350, 430, master_ui, state) + ui = new(user, src, ui_key, "ERTManager", name, 350, 450, master_ui, state) ui.autoupdate = TRUE ui.open() @@ -70,6 +70,10 @@ D = new /datum/response_team/red if("Gamma") D = new /datum/response_team/gamma + if("SolGov") + D = new /datum/response_team/solgov + if("SolGov Specops") + D = new /datum/response_team/solgovspecops else to_chat(usr, "Invalid ERT type.") return @@ -90,11 +94,10 @@ if(cyborg_slots > 0) slots_list += "cyborg: [cyborg_slots]" var/slot_text = english_list(slots_list) - notify_ghosts("An ERT is being dispatched. Open positions: [slot_text]") + notify_ghosts("A [ert_type] ERT is being dispatched. Open positions: [slot_text]") message_admins("[key_name_admin(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]", 1) log_admin("[key_name(usr)] dispatched a [ert_type] ERT. Slots: [slot_text]") GLOB.event_announcement.Announce("Attention, [station_name()]. We are attempting to assemble an ERT. Standby.", "ERT Protocol Activated") trigger_armed_response_team(D, commander_slots, security_slots, medical_slots, engineering_slots, janitor_slots, paranormal_slots, cyborg_slots) else return FALSE - diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index e73ec9917eb..c5b31326afe 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index b39a4262086..c53771fdad3 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/tgui/packages/tgui/interfaces/ERTManager.js b/tgui/packages/tgui/interfaces/ERTManager.js index 615bbdde508..20db30d10b8 100644 --- a/tgui/packages/tgui/interfaces/ERTManager.js +++ b/tgui/packages/tgui/interfaces/ERTManager.js @@ -33,6 +33,29 @@ export const ERTManager = (props, context) => { ? "purple" : ""} onClick={() => act('ert_type', { ert_type: "Gamma" })} /> +
+