diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index faeba542bc1..19b53fd4847 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -581,72 +581,90 @@ if(istype(P)) P.attack_self(H) // activate them, display musical notes effect +// Soviet Military + /datum/outfit/admin/soviet - name = "Soviet Generic" - gloves = /obj/item/clothing/gloves/combat - uniform = /obj/item/clothing/under/costume/soviet + name = "Soviet Tourist" + uniform = /obj/item/clothing/under/new_soviet back = /obj/item/storage/backpack/satchel - head = /obj/item/clothing/head/ushanka + head = /obj/item/clothing/head/sovietsidecap id = /obj/item/card/id + shoes = /obj/item/clothing/shoes/combat + l_ear = /obj/item/radio/headset/soviet + backpack_contents = list( + /obj/item/storage/box/survival = 1 + ) /datum/outfit/admin/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) return - + H.add_language("Neo-Russkiya") + H.set_default_language(GLOB.all_languages["Neo-Russkiya"]) var/obj/item/card/id/I = H.wear_id if(istype(I)) apply_to_card(I, H, list(ACCESS_MAINT_TUNNELS), name) + H.sec_hud_set_ID() -/datum/outfit/admin/soviet/tourist - name = "Soviet Tourist" +/datum/outfit/admin/soviet/conscript + name = "Soviet Conscript" + + r_pocket = /obj/item/flashlight/seclite + r_hand = /obj/item/gun/projectile/shotgun/boltaction + belt = /obj/item/gun/projectile/revolver/nagant - gloves = /obj/item/clothing/gloves/color/black - shoes = /obj/item/clothing/shoes/black - l_ear = /obj/item/radio/headset backpack_contents = list( - /obj/item/storage/box/survival = 1 + /obj/item/storage/box/soviet = 1, + /obj/item/ammo_box/a762 = 4 ) /datum/outfit/admin/soviet/soldier name = "Soviet Soldier" gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - l_ear = /obj/item/radio/headset/syndicate + suit = /obj/item/clothing/suit/sovietcoat glasses = /obj/item/clothing/glasses/sunglasses + r_pocket = /obj/item/flashlight/seclite + belt = /obj/item/gun/projectile/automatic/pistol/APS backpack_contents = list( - /obj/item/storage/box/engineer = 1, - /obj/item/card/emag = 1, - /obj/item/flashlight = 1, - /obj/item/grenade/plastic/c4 = 2, - /obj/item/gun/projectile/revolver/mateba = 1, - /obj/item/ammo_box/a357 = 3 + /obj/item/storage/box/soviet = 1, + /obj/item/lighter = 1, + /obj/item/storage/fancy/cigarettes/cigpack_robust = 1, + /obj/item/ammo_box/magazine/apsm10mm = 2 + ) + +/datum/outfit/admin/soviet/officer + name = "Soviet Officer" + + gloves = /obj/item/clothing/gloves/combat + suit = /obj/item/clothing/suit/sovietcoat/officer + uniform = /obj/item/clothing/under/new_soviet/sovietofficer + head = /obj/item/clothing/head/sovietofficerhat + glasses = /obj/item/clothing/glasses/sunglasses + belt = /obj/item/gun/projectile/revolver/mateba + l_pocket = /obj/item/melee/classic_baton/telescopic + r_pocket = /obj/item/flashlight/seclite + + backpack_contents = list( + /obj/item/storage/box/soviet = 1, + /obj/item/lighter/zippo = 1, + /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1, + /obj/item/ammo_box/a357 = 2 ) /datum/outfit/admin/soviet/admiral name = "Soviet Admiral" - suit = /obj/item/clothing/suit/hgpirate - belt = null gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - head = /obj/item/clothing/head/hgpiratecap - mask = null - l_ear = /obj/item/radio/headset/syndicate - r_ear = null + uniform = /obj/item/clothing/under/new_soviet/sovietadmiral + head = /obj/item/clothing/head/sovietadmiralhat + belt = /obj/item/gun/projectile/revolver/mateba glasses = /obj/item/clothing/glasses/thermal/eyepatch - l_pocket = null - r_pocket = null - suit_store = null - l_hand = null - r_hand = null - pda = null + l_pocket = /obj/item/melee/classic_baton/telescopic backpack_contents = list( - /obj/item/storage/box/engineer = 1, - /obj/item/gun/projectile/revolver/mateba = 1, + /obj/item/storage/box/soviet = 1, /obj/item/ammo_box/a357 = 3 ) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 2cb1c12a7d0..cfd553b844f 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -400,6 +400,9 @@ /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","Solar Federation General") +/proc/get_all_soviet_jobs() + return list("Soviet Tourist", "Soviet Conscript", "Soviet Soldier", "Soviet Officer", "Soviet Admiral") + /proc/get_all_job_icons() //For all existing HUD icons return GLOB.joblist + get_all_ERT_jobs() + list("Prisoner") diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c4cb196a4f1..2d5da64fa44 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -834,6 +834,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons var/job_icons = get_all_job_icons() var/centcom = get_all_centcom_jobs() var/solgov = get_all_solgov_jobs() + var/soviet = get_all_soviet_jobs() if((assignmentName in centcom) || (rankName in centcom)) //Return with the NT logo if it is a Centcom job return "Centcom" @@ -841,6 +842,9 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons if((assignmentName in solgov) || (rankName in solgov)) //Return with the SolGov logo if it is a SolGov job return "solgov" + if((assignmentName in soviet) || (rankName in soviet)) //Return with the U.S.S.P logo if it is a Soviet job + return "soviet" + 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/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 1b1b518532c..f1d7e6b8cf8 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -43,6 +43,12 @@ origin_tech = "syndicate=4" syndie = TRUE //Signifies that it de-crypts Syndicate transmissions +/obj/item/encryptionkey/soviet + name = "soviet encryption key" + icon_state = "cypherkey" + channels = list("Special Ops" = 1) + origin_tech = "syndicate=4" + /obj/item/encryptionkey/binary name = "binary translator key" desc = "An encryption key for a radio headset. To access the binary channel, use :+." diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 45d2afe6c2a..625ef050ae2 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -122,6 +122,16 @@ . = ..() set_frequency(SYND_FREQ) +/obj/item/radio/headset/soviet + name = "soviet headset" + desc = "Used by U.S.S.P forces. Protects ears from flashbangs." + flags = EARBANGPROTECT + origin_tech = "syndicate=3" + icon_state = "soviet_headset" + item_state = "soviet_headset" + ks1type = /obj/item/encryptionkey/soviet + requires_tcomms = FALSE + /obj/item/radio/headset/binary origin_tech = "syndicate=3" ks1type = /obj/item/encryptionkey/binary diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 62932faf19d..5df4b7bd7b2 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -849,6 +849,21 @@ new /obj/item/ammo_box/a357(src) new /obj/item/ammo_box/a357(src) +/obj/item/storage/box/soviet + name = "boxed survival kit" + desc = "A standard issue Soviet military survival kit." + icon_state = "box_soviet" + +/obj/item/storage/box/soviet/populate_contents() + new /obj/item/clothing/mask/breath(src) + new /obj/item/tank/internals/emergency_oxygen/engi(src) + new /obj/item/reagent_containers/hypospray/autoinjector + new /obj/item/flashlight/flare(src) + new /obj/item/crowbar/red(src) + new /obj/item/kitchen/knife/combat(src) + new /obj/item/reagent_containers/food/pill/patch/synthflesh(src) + new /obj/item/reagent_containers/food/pill/patch/synthflesh(src) + /obj/item/storage/box/clown name = "clown box" desc = "A colorful cardboard box for the clown." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 167305706d0..e81329bab96 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -2,7 +2,7 @@ * Contents: * Welding mask * Cakehat - * Ushanka + * Soviet Hats * Pumpkin head * Kitty ears * Cardborg Disguise @@ -97,7 +97,7 @@ /* - * Ushanka + * Soviet Hats */ /obj/item/clothing/head/ushanka name = "ushanka" @@ -123,6 +123,21 @@ item_state = "ushankadown" to_chat(user, "You lower the ear flaps on the ushanka.") +/obj/item/clothing/head/sovietsidecap + name = "\improper Soviet side cap" + desc = "A simple military cap with a Soviet star on the front. What it lacks in protection it makes up for in revolutionary spirit." + icon_state = "sovietsidecap" + +/obj/item/clothing/head/sovietofficerhat + name = "\improper Soviet officer hat" + desc = "A military officer hat designed to stand out so the conscripts know who is in charge." + icon_state = "sovietofficerhat" + +/obj/item/clothing/head/sovietadmiralhat + name = "\improper Soviet admiral hat" + desc = "This hat clearly belongs to someone very important." + icon_state = "sovietadmiralhat" + /* * Pumpkin head */ diff --git a/code/modules/clothing/suits/misc_suits.dm b/code/modules/clothing/suits/misc_suits.dm index 1ef656d56ce..7e81747d76a 100644 --- a/code/modules/clothing/suits/misc_suits.dm +++ b/code/modules/clothing/suits/misc_suits.dm @@ -958,6 +958,23 @@ "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' ) +/obj/item/clothing/suit/sovietcoat + name = "\improper Soviet greatcoat" + desc = "A military overcoat made of rough wool that is thick enough to provide excellent protection against the elements." + icon_state = "sovietcoat" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 5, BOMB = 15, BIO = 0, RAD = 0, FIRE = 30, ACID = 30) + cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + allowed = list(/obj/item/flashlight, /obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_box) + +/obj/item/clothing/suit/sovietcoat/officer + name = "\improper Soviet officer's greatcoat" + desc = "A military overcoat made with expensive wool. The U.S.S.P armband means it must belong to someone important." + icon_state = "sovietofficercoat" + armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 20, BIO = 0, RAD = 0, FIRE = 30, ACID = 30) + /obj/item/clothing/suit/toggle/owlwings name = "owl cloak" desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad." diff --git a/code/modules/clothing/under/costumes.dm b/code/modules/clothing/under/costumes.dm index 8ebae6c5a2c..7a851e43839 100644 --- a/code/modules/clothing/under/costumes.dm +++ b/code/modules/clothing/under/costumes.dm @@ -169,13 +169,12 @@ resistance_flags = NONE /obj/item/clothing/under/costume/soviet - name = "soviet uniform" + name = "old soviet uniform" desc = "For the Motherland!" icon_state = "soviet" item_state = "soviet" item_color = "soviet" - /obj/item/clothing/under/costume/tourist_suit name = "tourist outfit" desc = "A light blue shirt with brown shorts. Feels oddly spooky." diff --git a/code/modules/clothing/under/ussp.dm b/code/modules/clothing/under/ussp.dm new file mode 100644 index 00000000000..083e6cedb22 --- /dev/null +++ b/code/modules/clothing/under/ussp.dm @@ -0,0 +1,21 @@ +/obj/item/clothing/under/new_soviet + name = "\improper Soviet uniform" + desc = "A standard U.S.S.P military uniform." + icon = 'icons/obj/clothing/under/ussp.dmi' + icon_state = "soviet" + item_color = "soviet" + sprite_sheets = list( + "Human" = 'icons/mob/clothing/under/ussp.dmi' + ) + +/obj/item/clothing/under/new_soviet/sovietofficer + name = "\improper Soviet officer uniform" + desc = "A U.S.S.P commanding officer's uniform." + icon_state = "sovietofficer" + item_color = "sovietofficer" + +/obj/item/clothing/under/new_soviet/sovietadmiral + name = "\improper Soviet admiral uniform" + desc = "A U.S.S.P naval admiral's uniform." + icon_state = "sovietadmiral" + item_color = "sovietadmiral" diff --git a/icons/mob/clothing/ears.dmi b/icons/mob/clothing/ears.dmi index 597029a456c..4c5313baf09 100644 Binary files a/icons/mob/clothing/ears.dmi and b/icons/mob/clothing/ears.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 47857eaf113..73ef1daee67 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 300a2ae85f4..960ce28ca5b 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/under/ussp.dmi b/icons/mob/clothing/under/ussp.dmi new file mode 100644 index 00000000000..256c96c9784 Binary files /dev/null and b/icons/mob/clothing/under/ussp.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index a96b6865cee..5deddc796d7 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index a3f4825d257..00af879aba4 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 40f6272a4c3..d9de8ac8c41 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/under/ussp.dmi b/icons/obj/clothing/under/ussp.dmi new file mode 100644 index 00000000000..5bcfa09591d Binary files /dev/null and b/icons/obj/clothing/under/ussp.dmi differ diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi index 6917e5b2066..cc8095d0aff 100644 Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 820095b2e07..ba27a0a1ac2 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/paradise.dme b/paradise.dme index a4a10d8cca8..8170806eb03 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1551,6 +1551,7 @@ #include "code\modules\clothing\under\solgov.dm" #include "code\modules\clothing\under\suit.dm" #include "code\modules\clothing\under\syndicate_jumpsuits.dm" +#include "code\modules\clothing\under\ussp.dm" #include "code\modules\clothing\under\accessories\accessory.dm" #include "code\modules\clothing\under\accessories\armband.dm" #include "code\modules\clothing\under\accessories\holster.dm"