diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 22d61c818ec..4448ef20655 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -3,7 +3,7 @@ /datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() - if(!visualsOnly) + if(!visualsOnly && H.mind) H.mind.assigned_role = name H.job = name @@ -627,6 +627,10 @@ /obj/item/implanter/death_alarm = 1, ) + implants = list(/obj/item/implant/mindshield, + /obj/item/implant/death_alarm + ) + /datum/outfit/admin/solgov_rep/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) @@ -634,33 +638,43 @@ var/obj/item/card/id/I = H.wear_id if(istype(I)) - apply_to_card(I, H, get_all_accesses(), name, "lifetimeid") + apply_to_card(I, H, get_all_centcom_access(), name, "lifetimeid") + I.assignment = "Solar Federation Representative" /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 - head = /obj/item/clothing/head/soft/solgov - glasses = /obj/item/clothing/glasses/hud/security/night + 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/ar + 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/ammo_box/magazine/m556 = 3, /obj/item/clothing/shoes/magboots = 1, - /obj/item/gun/projectile/automatic/pistol/m1911 = 1, - /obj/item/ammo_box/magazine/m45 = 2 + /obj/item/whetstone = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 ) - var/is_tsf_lieutenant = FALSE + 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) @@ -668,31 +682,80 @@ if(visualsOnly) return - if(is_tsf_lieutenant) + 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 - if(istype(I)) - apply_to_card(I, H, get_all_accesses(), name, "lifetimeid") + 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/soft/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/melee/classic_baton/telescopic = 1, + /obj/item/storage/box/handcuffs = 1, /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/gun/projectile/automatic/pistol/deagle = 1, - /obj/item/ammo_box/magazine/m50 = 2 + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/ammo_box/magazine/m50 = 3 ) - is_tsf_lieutenant = TRUE + 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/jobs/access.dm b/code/game/jobs/access.dm index 6eaaf03aaef..f2b28fea297 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -400,6 +400,9 @@ /proc/get_all_centcom_jobs() 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") + //gets the actual job rank (ignoring alt titles) //this is used solely for sechuds /obj/proc/GetJobRealName() @@ -424,24 +427,6 @@ return "Unknown" -//gets the alt title, failing that the actual job rank -//this is unused -// THEN WHY IS IT STILL HERE?? -AA07, 2020-07-31 -/obj/proc/sdsdsd() //GetJobDisplayName - if(!istype(src, /obj/item/pda) && !istype(src,/obj/item/card/id)) - return - - var/assignment - if(istype(src, /obj/item/pda)) - if(src:id) - assignment = src:id:assignment - else if(istype(src, /obj/item/card/id)) - assignment = src:assignment - - if(assignment) - return assignment - - return "Unknown" /proc/GetIdCard(mob/living/carbon/human/H) if(H.wear_id) @@ -499,12 +484,18 @@ var/job_icons = get_all_job_icons() var/centcom = get_all_centcom_jobs() + var/solgov = get_all_solgov_jobs() if(assignmentName in centcom) //Return with the NT logo if it is a Centcom job return "Centcom" if(rankName in centcom) return "Centcom" + if(assignmentName in solgov) //Return with the SolGov logo if it is a SolGov job + return "solgov" + if(rankName in solgov) + return "solgov" + if(assignmentName in job_icons) //Check if the job has a hud icon return assignmentName if(rankName in job_icons) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 301b43403f6..eb700165441 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -366,6 +366,22 @@ item_state = "assault" storage_slots = 6 +/obj/item/storage/belt/military/assault/marines/full/populate_contents() + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m45(src) + new /obj/item/ammo_box/magazine/m45(src) + update_icon() + +/obj/item/storage/belt/military/assault/marines/elite/full/populate_contents() + new /obj/item/ammo_box/magazine/m556/arg(src) + new /obj/item/ammo_box/magazine/m556/arg(src) + new /obj/item/ammo_box/magazine/m556/arg(src) + new /obj/item/ammo_box/magazine/m45(src) + new /obj/item/ammo_box/magazine/m45(src) + update_icon() /obj/item/storage/belt/janitor name = "janibelt" desc = "A belt used to hold most janitorial supplies." diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 9f01c2edcdb..dd99bba3211 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -198,3 +198,19 @@ desc = "A cap coroners wear during autopsies. Keeps their hair from falling into the cadavers. It is as dark as the coroner's humor." icon_state = "surgcap_black" dog_fashion = /datum/dog_fashion/head/surgery + +//Special Roles +/obj/item/clothing/head/beret/solgov/command + name = "\improper Trans-Solar Federation Lieutenant's beret" + desc = "A beret worn by marines of the Trans-Solar Federation. The insignia signifies the wearer bears the rank of a Lieutenant." + icon_state = "solgovcberet" + item_color = "solgovc" + dog_fashion = null + armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 60) + strip_delay = 80 + +/obj/item/clothing/head/beret/solgov/command/elite + name = "\improper Trans-Solar Federation Specops Lieutenant's beret" + desc = "A beret worn by marines of the Trans-Solar Federation Psiops division. The insignia signifies the wearer bears the rank of a Lieutenant." + icon_state = "solgovceliteberet" + item_color = "solgovcelite" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index dd2c70692f5..ca0e6d5aad5 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -124,9 +124,29 @@ item_color = "solgov" dog_fashion = null -/obj/item/clothing/head/soft/solgov/command +/obj/item/clothing/head/soft/solgov/marines + armor = list("melee" = 35, "bullet" = 30, "laser" = 30,"energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) + strip_delay = 60 + icon_state = "solgovsoft_flipped" + flipped = TRUE + +/obj/item/clothing/head/soft/solgov/marines/elite + name = "\improper Trans-Solar Federation Specops marine cap" + desc = "A soft cap worn by marines of the Trans-Solar Federation Specops division." + icon_state = "solgovelitesoft_flipped" + item_color = "solgovelite" + +/obj/item/clothing/head/soft/solgov/marines/command name = "\improper Trans-Solar Federation lieutenant's cap" desc = "A soft cap worn by marines of the Trans-Solar Federation. The insignia signifies the wearer bears the rank of a Lieutenant." - icon_state = "solgovcsoft" + icon_state = "solgovcsoft_flipped" item_color = "solgovc" dog_fashion = null + armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 60) + strip_delay = 80 + +/obj/item/clothing/head/soft/solgov/marines/command/elite + name = "\improper Trans-Solar Federation Specops Lieutenant's cap" + desc = "A soft cap worn by marines of the Trans-Solar Federation Specops division. The insignia signifies the wearer bears the rank of a Lieutenant." + icon_state = "solgovcelitesoft" + item_color = "solgovcelite" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index d9a3c6030d1..d8cba5290b7 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -58,6 +58,9 @@ "Grey" = 'icons/mob/species/grey/mask.dmi' ) +/obj/item/clothing/mask/gas/explorer/marines + name = "military gas mask" + /obj/item/clothing/mask/gas/explorer/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index f4a16283fac..e91942e8e5f 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -68,14 +68,25 @@ item_color = "solgov" 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/solgov/elite + name = "\improper Trans-Solar Federation Specops marine uniform" + desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces." + icon_state = "solgovelite" + item_color = "solgovelite" /obj/item/clothing/under/solgov/command name = "\improper Trans-Solar Federation Lieutenant's uniform" - desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces. This one has additional insignia on its shoulders." + desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces. This one has additional insignia on its shoulders and cuffs." icon_state = "solgovc" item_color = "solgovc" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) +/obj/item/clothing/under/solgov/command/elite + name = "\improper Trans-Solar Federation Specops Lieutenant's uniform" + desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Specops Marine Forces. This one has additional insignia on its shoulders and cuffs." + icon_state = "solgovcelite" + item_color = "solgovcelite" + /obj/item/clothing/under/solgov/rep name = "\improper Trans-Solar Federation representative's uniform" desc = "A formal uniform worn by the diplomatic representatives of the Trans-Solar Federation." diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 135f8c14718..355972c8fda 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -375,6 +375,10 @@ max_ammo = 30 multiple_sprites = 2 +/obj/item/ammo_box/magazine/m556/arg + name = "ARG magazine (5.56mm)" + icon_state = "arg" + /obj/item/ammo_box/magazine/m12g name = "shotgun magazine (12g slugs)" desc = "A drum magazine." diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index bbd0beca7e0..338cd24c6fe 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -240,7 +240,7 @@ item_state = "arg" slot_flags = 0 origin_tech = "combat=6;engineering=4" - mag_type = /obj/item/ammo_box/magazine/m556 + mag_type = /obj/item/ammo_box/magazine/m556/arg fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg' magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg' diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 1c941d4748d..f6912b8334c 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index b6bf817d15d..8350faf7d16 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 80e2f09d462..b98c3818b30 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index b1876a7d063..b1303637768 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 718731b8af3..b3717233c2a 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 39789326c49..e4d58e11cc2 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ