diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 0636d584e992..590fdef0e88b 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -235,12 +235,14 @@ Security HUDs! Basic mode shows only the job.
holder.icon_state = "hud_imp_chem"
set_hud_image_active(IMPCHEM_HUD)
- if(HAS_TRAIT(src, TRAIT_MINDSHIELD))
- holder = hud_list[IMPLOYAL_HUD]
- var/icon/IC = icon(icon, icon_state, dir)
- holder.pixel_y = IC.Height() - world.icon_size
- holder.icon_state = "hud_imp_loyal"
- set_hud_image_active(IMPLOYAL_HUD)
+ //Dripstation edited
+ if(istype(I, /obj/item/implant/mindshield))
+ var/obj/item/implant/mindshield/MS = I
+ holder = hud_list[IMPLOYAL_HUD]
+ var/icon/IC = icon(icon, icon_state, dir)
+ holder.pixel_y = IC.Height() - world.icon_size
+ holder.icon_state = MS.implant_visible_as
+ set_hud_image_active(IMPLOYAL_HUD)
/mob/living/carbon/human/proc/sec_hud_set_security_status()
var/image/holder = hud_list[WANTED_HUD]
diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm
index 440ae58340f8..fce078c7794a 100644
--- a/code/game/objects/items/implants/implant_mindshield.dm
+++ b/code/game/objects/items/implants/implant_mindshield.dm
@@ -16,6 +16,7 @@
return dat
+/* Dripstation start
/obj/item/implant/mindshield/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
if(..())
if(!target.mind)
@@ -85,6 +86,7 @@
ADD_TRAIT(target, TRAIT_MINDSHIELD, "implant")
target.sec_hud_set_implants()
return TRUE
+*/ //Dripstation end
/obj/item/implant/mindshield/removed(mob/target, silent = FALSE, special = 0)
if(..())
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 600d9b2052b6..cc521a195774 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -85,39 +85,19 @@
icon_state = "paramed"
req_access = list(ACCESS_PARAMEDIC)
+/* dripstation edit
/obj/structure/closet/secure_closet/paramedic/PopulateContents()
..()
- if(prob(50))
- new /obj/item/storage/backpack/medic(src)
- else
- new /obj/item/storage/backpack/satchel/med(src)
- new /obj/item/storage/firstaid/hypospray/paramedic(src)
- new /obj/item/clothing/shoes/sneakers/white(src)
- switch(pick("blue", "green", "purple"))
- if ("blue")
- new /obj/item/clothing/under/rank/medical/doctor/blue(src)
- if ("green")
- new /obj/item/clothing/under/rank/medical/doctor/green(src)
- if ("purple")
- new /obj/item/clothing/under/rank/medical/doctor/purple(src)
- switch(pick("blue", "green", "purple"))
- if ("blue")
- new /obj/item/clothing/under/rank/medical/doctor/blue(src)
- if ("green")
- new /obj/item/clothing/under/rank/medical/doctor/green(src)
- if ("purple")
- new /obj/item/clothing/under/rank/medical/doctor/purple(src)
- new /obj/item/clothing/under/rank/medical(src)
- new /obj/item/clothing/suit/toggle/labcoat/emt(src)
- new /obj/item/clothing/head/beret/emt/green(src)
- new /obj/item/clothing/head/beret/emt(src)
- new /obj/item/clothing/head/soft/emt(src)
+ new /obj/item/clothing/shoes/sneakers/white(src) //shoes and a jumpsuit in case something goes wrong, otherwise clothes are just in vendor
+ new /obj/item/clothing/under/rank/medical/doctor(src)
new /obj/item/defibrillator/loaded(src)
- new /obj/item/clothing/suit/toggle/labcoat/emt/green(src)
- new /obj/item/clothing/head/soft/emt/green (src)
+ new /obj/item/storage/firstaid/hypospray/paramedic(src)
new /obj/item/radio/headset/headset_med(src)
new /obj/item/storage/belt/medical(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
+ new /obj/item/clothing/glasses/hud/health(src)
+ new /obj/item/roller(src)
+*/
/obj/structure/closet/secure_closet/mmedical
name = "mining medic's locker"
@@ -199,6 +179,7 @@
req_access = list(ACCESS_PSYCH)
icon_state = "cabinet"
+/* dripstation edit
/obj/structure/closet/secure_closet/psych/PopulateContents()
..()
new /obj/item/clothing/suit/straight_jacket(src)
@@ -210,3 +191,4 @@
new /obj/item/storage/pill_bottle/psicodine(src)
new /obj/item/assembly/flash(src)
new /obj/item/assembly/flash(src)
+*/
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 0730a76a4109..48f3caa2a85f 100755
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -174,6 +174,7 @@
max_integrity = 70
door_anim_time = 0 // no animation
+/* //dripstation edit
/obj/structure/closet/secure_closet/detective/PopulateContents()
..()
new /obj/item/storage/box/evidence(src)
@@ -188,6 +189,7 @@
new /obj/item/binoculars(src)
new /obj/item/storage/backpack/duffelbag/clothing/sec/detective(src)
new /obj/item/barrier_taperoll/police(src)
+*/
/obj/structure/closet/secure_closet/injection
name = "lethal injections"
@@ -319,6 +321,7 @@
max_integrity = 70
door_anim_time = 0
+/* //dripstation edit
/obj/structure/closet/secure_closet/physician/PopulateContents()
..()
new /obj/item/storage/backpack/duffelbag/clothing/sec/physician(src)
@@ -331,3 +334,4 @@
new /obj/item/clothing/mask/breath/medical(src)
new /obj/item/defibrillator/loaded(src)
new /obj/item/clothing/gloves/color/latex/nitrile
+*/
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index 98c6a401ebbe..0f40b2e09af1 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -6,6 +6,7 @@
/obj/structure/closet/syndicate/personal
desc = "It's a personal storage unit for operative gear."
+/* Dripstation edit, check modular_dripstation\code\game\objects\structures\crates_lockers\closets.dm
/obj/structure/closet/syndicate/personal/PopulateContents()
..()
new /obj/item/clothing/under/syndicate(src)
@@ -15,6 +16,7 @@
new /obj/item/storage/belt/military(src)
new /obj/item/crowbar/red(src)
new /obj/item/clothing/glasses/night(src)
+*/
/obj/structure/closet/syndicate/nuclear
desc = "It's a storage unit for a Syndicate boarding party."
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index a195e07f1a49..d26270a82648 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -710,7 +710,11 @@ GLOBAL_LIST_EMPTY(station_turfs)
/turf/handle_fall(mob/faller)
if(has_gravity(src))
playsound(src, "bodyfall", 50, 1)
+ /* dripstation edit
faller.drop_all_held_items()
+ */
+ if(!HAS_TRAIT(faller, TRAIT_STRONG_GRIP)) //dripstation edit
+ faller.drop_all_held_items() //dripstation edit
/turf/proc/photograph(limit=20)
var/image/I = new()
diff --git a/code/modules/antagonists/devil/devil_helpers.dm b/code/modules/antagonists/devil/devil_helpers.dm
index 00809fc2755d..b2de876e33e4 100644
--- a/code/modules/antagonists/devil/devil_helpers.dm
+++ b/code/modules/antagonists/devil/devil_helpers.dm
@@ -18,7 +18,10 @@
/obj/item/clothing/under/rank/medical/virologist = 1,
/obj/item/clothing/under/rank/medical/nursesuit = 1,
/obj/item/clothing/under/rank/medical = 1,
+ /* Dripstation edit
/obj/item/clothing/under/rank/det = 1,
+ */
+ /obj/item/clothing/under/rank/security/detective = 1,
/obj/item/clothing/under/suit/white = 0.5,
/obj/item/clothing/under/rank/civilian/chaplain/burial = 1
)
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 7ce8362e35d2..03e843876db3 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -317,6 +317,7 @@
/obj/item/toy/crayon/white,
/obj/item/clothing/head/fedora/det_hat)
crate_name = "forensics crate"
+
/*
/datum/supply_pack/security/laser
name = "Lasers Crate"
@@ -327,6 +328,7 @@
/obj/item/gun/energy/laser)
crate_name = "laser crate"
*/
+
/datum/supply_pack/security/secfiringpins
name = "Mindshield Firing Pins Crate"
desc = "Upgrade your arsenal with 10 mindshield firing pins. Requires Security access to open."
@@ -1733,6 +1735,36 @@
/obj/item/vending_refill/wallhypo)
crate_name = "medical vending crate"
+//DRIPSTATION
+/datum/supply_pack/medical/gloves
+ name = "Nitrile Gloves Crate"
+ desc = "Contains one pair of pricy nitrile gloves."
+ cost = 1000
+ small_item = TRUE
+ contains = list(/obj/item/clothing/gloves/color/latex/nitrile)
+
+/datum/supply_pack/costumes_toys/randomised/sunglasses
+ name = "Eye Protection Crate"
+ desc = "Contains one pair of pricy real eye protection."
+ contraband = TRUE
+ cost = 700
+ num_contained = 1
+ small_item = TRUE
+ contains = list(/obj/item/clothing/glasses/sunglasses,
+ /obj/item/clothing/glasses/sunglasses,
+ /obj/item/clothing/glasses/sunglasses,
+ /obj/item/clothing/glasses/sunglasses/aviators)
+
+/datum/supply_pack/security/armory/sunglasses
+ name = "Sunglasses Crate"
+ desc = "Contains three pairs of pricy real sunglasses."
+ cost = 1500
+ contains = list(/obj/item/clothing/glasses/sunglasses,
+ /obj/item/clothing/glasses/sunglasses,
+ /obj/item/clothing/glasses/sunglasses)
+ crate_name = "sunglasses crate"
+//DRIPSTATION
+
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Science /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 7143885d9da6..df66cb12fc6a 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -173,6 +173,7 @@
icon_state = "stripedbluescarf"
custom_price = 10
+/* Dripstation edit
/obj/item/clothing/neck/petcollar
name = "pet collar"
desc = "It has a little bell!"
@@ -191,6 +192,7 @@
/obj/item/clothing/neck/petcollar/attack_self(mob/user)
tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
+Dripstation edit */
/obj/item/clothing/neck/artist
name = "post-modern scarf"
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index 02348b4c7fc4..dee2b0cff95e 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -27,7 +27,10 @@
/datum/outfit/tournament/gangster
name = "tournament gangster"
+ /* Dripstation Edit
uniform = /obj/item/clothing/under/rank/det
+ */
+ uniform = /obj/item/clothing/under/rank/security/detective // Dripstation Edit
suit = /obj/item/clothing/suit/det_suit
glasses = /obj/item/clothing/glasses/thermal/monocle
head = /obj/item/clothing/head/fedora/det_hat
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 89def9e56e1b..bff36833307e 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -65,7 +65,9 @@
pda_type = /obj/item/modular_computer/tablet/pda/preset/security/detective
ears = /obj/item/radio/headset/headset_sec/alt
+ /* Dripstation edit
uniform = /obj/item/clothing/under/rank/det
+ */
uniform_skirt = /obj/item/clothing/under/rank/security/detective/skirt
neck = /obj/item/clothing/neck/tie/detective
shoes = /obj/item/clothing/shoes/sneakers/brown
diff --git a/code/modules/mob/living/simple_animal/friendly/pet.dm b/code/modules/mob/living/simple_animal/friendly/pet.dm
index 8ff174ace02b..394f11daa35d 100644
--- a/code/modules/mob/living/simple_animal/friendly/pet.dm
+++ b/code/modules/mob/living/simple_animal/friendly/pet.dm
@@ -99,8 +99,12 @@
/mob/living/simple_animal/pet/regenerate_icons()
cut_overlays()
if(pcollar && collar_type)
+/* Dripstation edit
add_overlay("[collar_type]collar")
add_overlay("[collar_type]tag")
+*/
+ add_overlay(mutable_appearance('modular_dripstation/icons/mob/pet.dmi', "[collar_type]collar[pcollar.collar]"))
+ add_overlay(mutable_appearance('modular_dripstation/icons/mob/pet.dmi', "[collar_type]tag[pcollar.tagtype]"))
/mob/living/simple_animal/pet/proc/wuv(mob/M, change = TRUE)
if(change)
diff --git a/modular_dripstation/code/game/gamemodes/nuclear/nuclear.dm b/modular_dripstation/code/game/gamemodes/nuclear/nuclear.dm
index 7ddfef54d082..6444c96694df 100644
--- a/modular_dripstation/code/game/gamemodes/nuclear/nuclear.dm
+++ b/modular_dripstation/code/game/gamemodes/nuclear/nuclear.dm
@@ -12,11 +12,35 @@
justanop.teach(H)
/datum/outfit/syndicate/full
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/bloodred
+ belt = /obj/item/storage/belt/military/webbing/syndicate/gorlex
+ back = /obj/item/storage/backpack/syndie
backpack_contents = list(/obj/item/storage/box/syndie/nuke=1,\
/obj/item/tank/jetpack/oxygen/harness=1,\
/obj/item/gun/ballistic/automatic/pistol=1,\
/obj/item/kitchen/knife/combat/survival)
+/datum/antagonist/nukeop/lone/equip_op()
+ if(!ishuman(owner.current))
+ return
+ var/mob/living/carbon/human/H = owner.current
+
+ H.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs
+
+ H.equipOutfit(nukeop_outfit)
+ var/obj/item/clothing/head/helmet/space/hardsuit/syndi/HE = H.get_item_by_slot(ITEM_SLOT_HEAD)
+ if(istype(HE, /obj/item/clothing/head/helmet/space/hardsuit/syndi))
+ HE.spaceready(H)
+ return TRUE
+
+/datum/outfit/nuclear_operative
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/bloodred/preview
+ head = /obj/item/clothing/head/helmet/space/hardsuit/syndi/bloodred/preview
+
+/datum/outfit/nuclear_operative_elite
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite/preview
+ head = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/preview
+
/datum/outfit/syndicate/no_crystals
var/faction = "The Syndicate"
diff --git a/modular_dripstation/code/game/gamemods/nuclear/nuclear.dm b/modular_dripstation/code/game/gamemods/nuclear/nuclear.dm
deleted file mode 100644
index 09d8bcecc362..000000000000
--- a/modular_dripstation/code/game/gamemods/nuclear/nuclear.dm
+++ /dev/null
@@ -1,25 +0,0 @@
-/datum/outfit/syndicate/full
- suit = /obj/item/clothing/suit/space/hardsuit/syndi/bloodred
- belt = /obj/item/storage/belt/military/webbing/syndicate/gorlex
- back = /obj/item/storage/backpack/syndie
-
-/datum/antagonist/nukeop/lone/equip_op()
- if(!ishuman(owner.current))
- return
- var/mob/living/carbon/human/H = owner.current
-
- H.set_species(/datum/species/human) //Plasamen burn up otherwise, and lizards are vulnerable to asimov AIs
-
- H.equipOutfit(nukeop_outfit)
- var/obj/item/clothing/head/helmet/space/hardsuit/syndi/HE = H.get_item_by_slot(ITEM_SLOT_HEAD)
- if(istype(HE, /obj/item/clothing/head/helmet/space/hardsuit/syndi))
- HE.spaceready(H)
- return TRUE
-
-/datum/outfit/nuclear_operative
- suit = /obj/item/clothing/suit/space/hardsuit/syndi/bloodred/preview
- head = /obj/item/clothing/head/helmet/space/hardsuit/syndi/bloodred/preview
-
-/datum/outfit/nuclear_operative_elite
- suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite/preview
- head = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/preview
\ No newline at end of file
diff --git a/modular_dripstation/code/game/machinery/suit_storage_unit.dm b/modular_dripstation/code/game/machinery/suit_storage_unit.dm
index 0608c2e1b8d3..49e2fdc6beb1 100644
--- a/modular_dripstation/code/game/machinery/suit_storage_unit.dm
+++ b/modular_dripstation/code/game/machinery/suit_storage_unit.dm
@@ -70,6 +70,13 @@
magboots_type = /obj/item/clothing/shoes/magboots/security
department = "sec"
+/obj/machinery/suit_storage_unit/warden
+ suit_type = /obj/item/clothing/suit/space/hardsuit/security/warden
+ mask_type = /obj/item/clothing/mask/gas/sechailer
+ tank_type = /obj/item/tank/internals/oxygen/red
+ magboots_type = /obj/item/clothing/shoes/magboots/security
+ department = "sec"
+
/obj/machinery/suit_storage_unit/hos
suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos
mask_type = /obj/item/clothing/mask/gas/sechailer
@@ -87,6 +94,16 @@
mask_type = /obj/item/clothing/mask/gas/explorer
department = "cargo"
+/obj/machinery/suit_storage_unit/mining/winter
+ suit_type = /obj/item/clothing/suit/hooded/explorer/winter
+ mask_type = /obj/item/clothing/mask/gas/explorer
+ department = "cargo"
+
+/obj/machinery/suit_storage_unit/mining/medic
+ suit_type = /obj/item/clothing/suit/hooded/miningmedic
+ mask_type = /obj/item/clothing/mask/gas/explorer
+ department = "med"
+
/obj/machinery/suit_storage_unit/miningdualmod
suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/mining
mask_type = /obj/item/clothing/mask/gas/explorer
@@ -168,6 +185,18 @@
tank_type = /obj/item/tank/jetpack/oxygen/harness
department = "synd"
+/obj/machinery/suit_storage_unit/syndicate/engi
+ suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/engineering/syndicate
+ mask_type = /obj/item/clothing/mask/gas/syndicate
+ tank_type = /obj/item/tank/jetpack/oxygen/harness
+ department = "synd"
+
+/obj/machinery/suit_storage_unit/syndicate/winter/engi
+ suit_type = /obj/item/clothing/suit/space/hardsuit/syndi/engineering/syndicate/winter
+ mask_type = /obj/item/clothing/mask/gas/syndicate
+ tank_type = /obj/item/tank/jetpack/oxygen/harness
+ department = "synd"
+
/obj/machinery/suit_storage_unit/syndicate/donk
suit_type = /obj/item/clothing/suit/space/hardsuit/syndi
mask_type = /obj/item/clothing/mask/gas/syndicate
diff --git a/modular_dripstation/code/game/objects/items/card_ids.dm b/modular_dripstation/code/game/objects/items/card_ids.dm
index b1f3ccef588a..a3d63625892f 100644
--- a/modular_dripstation/code/game/objects/items/card_ids.dm
+++ b/modular_dripstation/code/game/objects/items/card_ids.dm
@@ -174,3 +174,6 @@
/obj/item/card/id/ert/clown
icon_state = "ERT_clown"
+
+/obj/item/card/id/makeshift
+ icon = 'modular_dripstation/icons/obj/card.dmi'
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/devices/radio/encryptionkey.dm b/modular_dripstation/code/game/objects/items/devices/radio/encryptionkey.dm
index 711fb033a9a7..6d95c3bdc209 100644
--- a/modular_dripstation/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/modular_dripstation/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -11,3 +11,12 @@
icon_state = "qm_cypherkey"
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_COMMAND = 1)
+/obj/item/encryptionkey/heads/procedure
+ name = "\proper the procedure encryption key"
+ icon_state = "proc_cypherkey"
+ channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_SERVICE = 1)
+
+/obj/item/encryptionkey/heads/bshield
+ name = "\proper the close protection encryption key"
+ icon_state = "bshield_cypherkey"
+ channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_MEDICAL = 1)
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/devices/radio/radio.dm b/modular_dripstation/code/game/objects/items/devices/radio/radio.dm
index bb545439d757..bb1dbc4479bd 100644
--- a/modular_dripstation/code/game/objects/items/devices/radio/radio.dm
+++ b/modular_dripstation/code/game/objects/items/devices/radio/radio.dm
@@ -67,17 +67,64 @@
icon_state = "sci_headset"
/obj/item/radio/headset/qm
- name = "quartermaster`s radio headset"
+ name = "\proper the quartermaster`s radio headset"
desc = "The headset of the guy who will one day be second on command."
icon_state = "qm_headset"
keyslot = new /obj/item/encryptionkey/heads/qm
command = TRUE
/obj/item/radio/headset/qm/alt
- name = "quartermaster`s bowman headset"
+ name = "\proper the quartermaster`s bowman headset"
desc = "Do you see the crates? Load into crates. When you finish, you will receive crates. If you lose crates, you will get crates. If you finish the crates, you'll get nothing. You cum in the shuttle, you get ten credits. If you break ten credits, you'll get nothing. Do you see the shuttle? Load into shuttle."
icon_state = "qm_headset"
/obj/item/radio/headset/qm/alt/Initialize(mapload)
. = ..()
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
+
+/obj/item/radio/headset/magistrate
+ name = "\proper the magistrate's radio headset"
+ desc = "The headset of the Magistrate."
+ icon_state = "cap_headset"
+ keyslot = new /obj/item/encryptionkey/heads/procedure
+ command = TRUE
+
+/obj/item/radio/headset/magistrate/alt
+ name = "\proper the magistrate's bowman headset"
+ desc = "The headset of the Magistrate. Protects ears from flashbangs."
+ icon_state = "proc_headset_alt"
+
+/obj/item/radio/headset/magistrate/alt/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
+
+/obj/item/radio/headset/ntrep
+ name = "\proper the Nanotrasen Representative's radio headset"
+ desc = "The headset of the Nanotrasen Representative."
+ icon_state = "cap_headset"
+ keyslot = new /obj/item/encryptionkey/heads/procedure
+ command = TRUE
+
+/obj/item/radio/headset/ntrep/alt
+ name = "\proper the Nanotrasen Representative's bowman headset"
+ desc = "The headset of the Nanotrasen Representative. Protects ears from flashbangs."
+ icon_state = "proc_headset_alt"
+
+/obj/item/radio/headset/ntrep/alt/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
+
+/obj/item/radio/headset/blueshield
+ name = "\proper the blueshield's radio headset"
+ desc = "The headset of the Blueshield."
+ icon_state = "cent_headset"
+ keyslot = new /obj/item/encryptionkey/heads/bshield
+
+/obj/item/radio/headset/blueshield/alt
+ name = "\proper the blueshield's bowman headset"
+ desc = "The headset of the Blueshield. Protects ears from flashbangs."
+ icon_state = "shield_headset_alt"
+
+/obj/item/radio/headset/blueshield/alt/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/implants/biosig_ntcommand.dm b/modular_dripstation/code/game/objects/items/implants/biosig_ntcommand.dm
new file mode 100644
index 000000000000..8490341eb09d
--- /dev/null
+++ b/modular_dripstation/code/game/objects/items/implants/biosig_ntcommand.dm
@@ -0,0 +1,74 @@
+/obj/item/implant/biosig_ntcommand
+ name = "nanotrasen command biosignaller implant"
+ desc = "An alarm which monitors host vital signs and transmits a radio message upon death. Usually implanted into command staff."
+ actions_types = null
+ verb_say = "broadcasts"
+ verb_exclaim = "broadcasts"
+ var/obj/item/radio/radio
+ var/static/list/stealth_areas = typecacheof(list(/area/yogs/infiltrator_base, /area/centcom/syndicate_mothership, /area/shuttle/yogs/stealthcruiser, /area/ruin/syndicate_icemoon, /area/ruin/powered/syndicate_lava_base, /area/ruin/space/has_grav/listeningstation, /area/ruin/space/has_grav/syndiederelict))
+
+obj/item/encryptionkey/biosig_ntcommand
+ name = "\improper biosignaller radio encryption key"
+ icon_state = "cent_cypherkey"
+ independent = TRUE
+ channels = list(RADIO_CHANNEL_COMMON = 1, RADIO_CHANNEL_CENTCOM = 1)
+
+/obj/item/implant/biosig_ntcommand/Initialize(mapload)
+ . = ..()
+ radio = new(src)
+ radio.keyslot = new/obj/item/encryptionkey/biosig_ntcommand// Should broadcast both on the secure centcom and common channels to notify both all station and central command dudes.
+ radio.listening = FALSE
+ radio.recalculateChannels()
+
+/obj/item/implant/biosig_ntcommand/activate(cause)
+ if(!imp_in)
+ return FALSE
+
+ // Location.
+ var/area/turf = get_area(imp_in)
+ // Name of implant user.
+ var/mobname = imp_in.name
+ // What is to be said.
+ var/message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesig//N@$¤#§>..." // Default message for unexpected causes.
+
+ switch(cause)
+ if("death")
+ if(!is_type_in_typecache(turf, stealth_areas)) //give the syndies a bit of stealth
+ message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesigns ceased in [turf.name]!"
+ if("emp")
+ if(prob(70)) //30% chance to give give gib message
+ var/empname = prob(50) ? turf.name : pick(GLOB.teleportlocs)
+ message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesigns ceased in [empname]!" //eh, sorry, implant fried themselves.
+
+
+ name = "[mobname]'s Biosignaller"
+ radio.talk_into(src, message, RADIO_CHANNEL_CENTCOM)
+ radio.talk_into(src, message, RADIO_CHANNEL_COMMON)
+ qdel(src)
+
+/obj/item/implant/biosig_ntcommand/emp_act(severity)
+ activate("emp")
+
+/obj/item/implant/biosig_ntcommand/on_mob_death(mob/living/L, gibbed)
+ if(gibbed)
+ activate("gibbed") // Will use default message.
+ else
+ activate("death")
+
+/obj/item/implant/biosig_ntcommand/get_data()
+ . = {"Implant Specifications:
+ Name:Nanotrasen \"Profit Margin\" Class Employee Biosignaller Implant
+ Life:Until activation
+ Important Notes:Broadcasts a message over an encrypted channel.
+
+ Implant Details:
+ Function:Contains a miniature radio connected to a bioscanner. Broadcasts the death and last known position of the user both over an encrypted radio channel and all stationary.
"
+ Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
+
+/obj/item/implanter/biosig_ntcommand
+ name = "implanter"
+ imp_type = /obj/item/implant/biosig_ntcommand
+
+/obj/item/implantcase/biosig_ntcommand
+ name = "implant case - 'Standart Biosignal NT'"
+ imp_type = /obj/item/implant/biosig_ntcommand
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/implants/mindshield.dm b/modular_dripstation/code/game/objects/items/implants/mindshield.dm
new file mode 100644
index 000000000000..5fc76bbb9d0e
--- /dev/null
+++ b/modular_dripstation/code/game/objects/items/implants/mindshield.dm
@@ -0,0 +1,242 @@
+/////Nanotrasen variants/////
+/////Security and export variant/////
+/obj/item/implant/mindshield
+ var/implant_visible_as = "hud_imp_loyal"
+ var/active = TRUE
+
+/obj/item/implant/mindshield/get_data()
+ var/dat = {"Implant Specifications:
+ Name: Nanotrasen Employee Management Implant
+ Life: One year.
+ Important Notes: Personnel injected with this device are much more resistant to brainwashing.
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that protects the host's mental functions from manipulation.
+ Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+ return dat
+
+
+/obj/item/implant/mindshield/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
+ if(..())
+ if(target.mind && !silent)
+ to_chat(target, span_notice("You feel a sense of peace and security. You are now protected from brainwashing."))
+ ADD_TRAIT(target, TRAIT_MINDSHIELD, "implant")
+ target.sec_hud_set_implants()
+ return TRUE
+
+/obj/item/implanter/mindshield
+ name = "implanter"
+
+/////High quality variant/////
+/obj/item/implant/mindshield/centcom
+ name = "high quality mindshield implant"
+ desc = "Protects value assets from brainwashing. Grants access to military grade weaponry."
+ implant_visible_as = "hud_imp_loyal_ert"
+
+/obj/item/implant/mindshield/centcom/get_data()
+ var/dat = {"Implant Specifications:
+ Name: Nanotrasen Human Resourse Menatal Protector
+ Life: Five years.
+ Important Notes: Combat and high value personnel injected with this device are much more resistant to brainwashing.
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that protects the host's mental functions from manipulation.
+ Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+ return dat
+
+/obj/item/implanter/mindshield/centcom
+ name = "implanter"
+ imp_type = /obj/item/implant/mindshield/centcom
+
+/obj/item/implantcase/mindshield/centcom
+ name = "implant case - 'High Quality Mindshield'"
+ imp_type = /obj/item/implant/mindshield/centcom
+
+/////Syndicate variants/////
+/////Syndicate agent variant/////
+/obj/item/implant/mindshield/tot
+ icon_state = "totmindshield"
+ actions_types = list(/datum/action/item_action/hands_free/activate)
+
+/obj/item/implant/mindshield/tot/activate()
+ . = ..()
+ active = !active
+ to_chat(imp_in, "You feel a faint click as [name] [active ? "activates" : "deactivates"]")
+ implant_visible_as = "[active ? "hud_imp_loyal" : null]"
+ imp_in.sec_hud_set_implants()
+
+
+/obj/item/implant/mindshield/tot/get_data()
+ var/dat = {"Implant Specifications:
+ Name: Cybersun Brainwash Denial Implant
+ Life: Five Days.
+ Important Notes: Device reverts previous mental interference. Agents injected with this device are much more resistant to brainwashing on the mission.
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that protects the host's mental functions from manipulation.
+ Special Features: Will revert most forms of brainwashing before brainwash shielding.
+ Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+ return dat
+
+/obj/item/implanter/mindshield/tot
+ name = "implanter"
+
+/////Syndicate operative variant/////
+/obj/item/implant/mindshield/tot_obvious
+ icon_state = "totmindshield_obv"
+ actions_types = list(/datum/action/item_action/hands_free/activate)
+ implant_visible_as = "hud_imp_loyal_totobv"
+
+/obj/item/implant/mindshield/tot_obvious/activate()
+ . = ..()
+ active = !active
+ to_chat(imp_in, "You feel a faint click as [name] [active ? "activates" : "deactivates"]")
+ implant_visible_as = "[active ? "hud_imp_loyal_totobv" : null]"
+ imp_in.sec_hud_set_implants()
+
+/obj/item/implant/mindshield/tot_obvious/get_data()
+ var/dat = {"Implant Specifications:
+ Name: Cybersun Brainwash Denial Implant
+ Life: One Year.
+ Important Notes: Device reverts previous mental interference. Operatives injected with this device are much more resistant to brainwashing on the mission.
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that protects the host's mental functions from manipulation.
+ Special Features: Will revert most forms of brainwashing before brainwash shielding.
+ Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+ return dat
+
+/obj/item/implanter/tot_obvious
+ name = "implanter"
+ imp_type = /obj/item/implant/mindshield/tot_obvious
+
+/obj/item/implantcase/tot_obvious
+ name = "implant case - 'Syndicate Operative Field Mentalshield'"
+ desc = "A glass case containing a Amnestic implant."
+ imp_type = /obj/item/implant/mindshield/tot_obvious
+
+/////Amnestic implant/////
+/obj/item/implant/amnestic
+ name = "Amnestic implant"
+ desc = "Reverts recent mental interference by providing artificial amnesia."
+ actions_types = null
+
+/obj/item/implant/amnestic/get_data()
+ var/dat = {"Implant Specifications:
+ Name: Nanotrasen Employee Recovery Implant
+ Life: Three minutes.
+ Important Notes: Personnel injected with this device will remember their true allighment.
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that removes recent memory and restores the host's mental functions.
+ Special Features: Removes recent memory of the host, providing artificial amnesia.
+ Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+ return dat
+
+/obj/item/implant/amnestic/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
+ if(..())
+ if(!target.mind || target.stat == DEAD)
+ removed(target, TRUE)
+ return TRUE
+
+ for(var/obj/item/implant/I in target.implants)
+ if(istype(I, /obj/item/implant/mindshield))
+ target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your curent mental conditioning! And causes heavy influence on your brain functions!!"))
+ if(istype(target, /mob/living/carbon/human))
+ traumatize(target)
+ removed(target, TRUE)
+ return FALSE
+
+ if(target.mind.has_antag_datum(/datum/antagonist/brainwashed))
+ target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
+
+ var/datum/antagonist/hivemind/host = target.mind.has_antag_datum(/datum/antagonist/hivemind) //Releases the target from mind control beforehand
+ if(host)
+ var/datum/mind/M = host.owner
+ if(M)
+ var/datum/action/cooldown/spell/aoe/target_hive/hive_control/the_spell = locate(/datum/action/cooldown/spell/aoe/target_hive/hive_control) in M.current.actions
+ if(the_spell && the_spell.active)
+ the_spell.release_control() //he basicly forget the targets
+
+ if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.has_antag_datum(/datum/antagonist/hivemind) || target.mind.unconvertable)
+ if(!silent)
+ target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your curent mental conditioning, but your allighment lasts much more longer and can`t be reverted by this level of braiwashing!"))
+ removed(target, TRUE)
+ return FALSE
+ if(target.mind.has_antag_datum(/datum/antagonist/gang/boss) || target.mind.has_antag_datum(/datum/antagonist/mindslave))
+ if(!silent)
+ target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your curent mental conditioning, but your allighment lasts much more longer and can`t be reverted by this level of braiwashing!"))
+ removed(target, TRUE)
+ return FALSE
+
+ if(IS_VASSAL(target))
+ if(IS_FAVORITE_VASSAL(target))
+ if(!silent)
+ target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your curent mental conditioning, but your allighment can`t be reverted by this level of braiwashing!"))
+ removed(target, TRUE)
+ return FALSE
+ target.mind.remove_antag_datum(/datum/antagonist/vassal)
+
+ var/datum/antagonist/hivevessel/woke = target.is_wokevessel()
+ if(is_hivemember(target))
+ for(var/datum/antagonist/hivemind/hive in GLOB.antagonists)
+ if(hive.hivemembers.Find(target))
+ var/mob/living/carbon/C = hive.owner.current.get_real_hivehost()
+ if(C)
+ C.apply_status_effect(STATUS_EFFECT_HIVE_TRACKER, target, woke?TRACKER_AWAKENED_TIME:TRACKER_MINDSHIELD_TIME)
+ target.apply_status_effect(STATUS_EFFECT_HIVE_TRACKER, C, TRACKER_DEFAULT_TIME)
+ if(C.mind) //If you were using mind control, too bad
+ C.apply_status_effect(STATUS_EFFECT_HIVE_RADAR)
+ to_chat(C, span_assimilator("We detect a surge of psionic energy from a far away vessel before they disappear from the hive. Whatever happened, there's a good chance they're after us now."))
+ to_chat(target, span_assimilator("You hear supernatural wailing echo throughout your mind as you are finally set free. Deep down, you can feel the lingering presence of those who enslaved you... as can they!"))
+ target.apply_status_effect(STATUS_EFFECT_HIVE_RADAR)
+ remove_hivemember(target)
+ removed(target, TRUE)
+ return TRUE
+
+ if(woke)
+ woke.one_mind.remove_member(target.mind)
+ target.mind.remove_antag_datum(/datum/antagonist/hivevessel)
+
+ var/datum/antagonist/rev/rev = target.mind.has_antag_datum(/datum/antagonist/rev)
+ if(rev)
+ rev.remove_revolutionary(FALSE, user)
+ removed(target, TRUE)
+ return TRUE
+ if(target.mind.has_antag_datum(/datum/antagonist/gang))
+ target.mind.remove_antag_datum(/datum/antagonist/gang)
+ removed(target, TRUE)
+ return TRUE
+ if(!silent)
+ if(target.mind in SSticker.mode.cult)
+ to_chat(target, span_warning("You feel something interfering with your mental conditioning, but you FAITH resist it!"))
+ removed(target, TRUE)
+ return TRUE
+
+ to_chat(target, span_warning("You feel odd. It seems you can`t remember anything about that shift..."))
+ removed(target, TRUE)
+ return TRUE
+
+/obj/item/implant/amnestic/proc/traumatize(mob/living/carbon/human/H)
+ var/resistance = pick(
+ 50;TRAUMA_RESILIENCE_BASIC,
+ 30;TRAUMA_RESILIENCE_SURGERY,
+ 15;TRAUMA_RESILIENCE_LOBOTOMY,
+ 5;TRAUMA_RESILIENCE_MAGIC)
+
+ var/trauma_type = pickweight(list(
+ BRAIN_TRAUMA_MILD = 60,
+ BRAIN_TRAUMA_SEVERE = 30,
+ BRAIN_TRAUMA_SPECIAL = 10
+ ))
+
+ H.gain_trauma_type(trauma_type, resistance)
+
+/obj/item/implanter/amnestic
+ name = "implanter"
+ imp_type = /obj/item/implant/mindshield
+
+/obj/item/implantcase/amnestic
+ name = "implant case - 'Amnestic'"
+ desc = "A glass case containing a Amnestic implant."
+ imp_type = /obj/item/implant/amnestic
diff --git a/modular_dripstation/code/game/objects/items/pins.dm b/modular_dripstation/code/game/objects/items/pins.dm
new file mode 100644
index 000000000000..06cf5af16243
--- /dev/null
+++ b/modular_dripstation/code/game/objects/items/pins.dm
@@ -0,0 +1,18 @@
+/obj/item/firing_pin/implant/mindshield
+ name = "mindshield firing pin"
+ desc = "This Security firing pin authorizes the weapon for only Nanotrasen Brand mindshield-implanted users."
+ icon_state = "firing_pin_loyalty"
+ req_implant = /obj/item/implant/mindshield
+
+/obj/item/firing_pin/implant/mindshield/pin_auth(mob/living/user)
+ if(user)
+ for(var/obj/item/implant/I in user.implants)
+ if(req_implant && (I.type == /obj/item/implant/mindshield || I.type == /obj/item/implant/mindshield/centcom))
+ return TRUE
+ return FALSE
+
+/obj/item/firing_pin/implant/centcom_mindshield
+ name = "mindshield firing pin"
+ desc = "This Centcom firing pin authorizes the weapon for only high quality mindshield-implanted users."
+ icon_state = "firing_pin_centcomloyalty"
+ req_implant = /obj/item/implant/mindshield/centcom
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/storage/boxes.dm b/modular_dripstation/code/game/objects/items/storage/boxes.dm
index f56c10e30427..953252e0e445 100644
--- a/modular_dripstation/code/game/objects/items/storage/boxes.dm
+++ b/modular_dripstation/code/game/objects/items/storage/boxes.dm
@@ -338,6 +338,16 @@
new /obj/item/badge/security/cadet(src)
new /obj/item/badge/security/cadet(src)
+/obj/item/storage/box/security/biosig_nt
+ name = "biosignaller implant box"
+ desc = "A box claiming to contain 'Nanotrasen \"Profit Margin\" Class Employee Biosignaller' implants."
+ illustration = "implant"
+
+/obj/item/storage/box/security/biosig_nt/PopulateContents()
+ for(var/i in 1 to 6)
+ new /obj/item/implantcase/biosig_ntcommand(src)
+ new /obj/item/implanter/biosig_ntcommand(src)
+
// Syndie kit
/obj/item/storage/box/donkdrip
illustration = null
diff --git a/modular_dripstation/code/game/objects/items/storage/garment.dm b/modular_dripstation/code/game/objects/items/storage/garment.dm
index c406d0baf79c..7c198dce97af 100644
--- a/modular_dripstation/code/game/objects/items/storage/garment.dm
+++ b/modular_dripstation/code/game/objects/items/storage/garment.dm
@@ -54,6 +54,20 @@
desc = "A bag for storing extra clothes and gloves. This one belongs to the quartermaster."
icon_state = "garment_bag_qm"
+/obj/item/storage/bag/garment/magistrate
+ name = "magistrate's garment bag"
+ desc = "A bag for storing extra clothes and gloves. This one belongs to the Magistrate."
+ icon_state = "garment_bag_hos"
+
+/obj/item/storage/bag/garment/ntrep
+ name = "nanotrasen representative's garment bag"
+ desc = "A bag for storing extra clothes and gloves. This one belongs to the Nanotrasen Representative."
+ icon_state = "garment_bag_captain"
+
+/obj/item/storage/bag/garment/blueshield
+ name = "blueshield's garment bag"
+ desc = "A bag for storing extra clothes and gloves. This one belongs to the Blueshield."
+ icon_state = "garment_bag_bs"
/obj/item/storage/bag/garment/Initialize(mapload)
. = ..()
@@ -74,40 +88,37 @@
// 5. gloves
/obj/item/storage/bag/garment/captain/PopulateContents()
- new /obj/item/clothing/under/rank/captain(src)
- new /obj/item/clothing/under/rank/captain/skirt(src)
- new /obj/item/clothing/under/rank/captain/formal(src)
- new /obj/item/clothing/under/rank/captain/formal/skirt(src)
+ new /obj/item/clothing/under/rank/command/captain(src)
+ new /obj/item/clothing/under/rank/command/captain/skirt(src)
+ new /obj/item/clothing/under/rank/command/captain/formal(src)
+ new /obj/item/clothing/under/rank/command/captain/formal/skirt(src)
new /obj/item/clothing/under/yogs/victoriouscaptainuniform(src)
new /obj/item/clothing/under/captainparade(src)
- new /obj/item/clothing/under/rank/captain/dress(src)
- new /obj/item/clothing/under/rank/captain/kilt(src)
- new /obj/item/clothing/suit/armor/vest/capcarapace(src)
- new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src)
- new /obj/item/clothing/suit/armor/vest/capcarapace/jacket(src)
+ new /obj/item/clothing/under/rank/command/captain/dress(src)
+ new /obj/item/clothing/under/rank/command/captain/kilt(src)
new /obj/item/clothing/suit/toggle/capformal(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/suit/hooded/wintercoat/captain/alt(src)
new /obj/item/clothing/neck/cloak/cap(src)
new /obj/item/clothing/neck/mantle/capmantle(src)
- new /obj/item/clothing/head/caphat(src)
+ new /obj/item/clothing/head/caphat/parade(src)
+ new /obj/item/clothing/head/caphat/parade/white(src)
new /obj/item/clothing/head/beret/captain(src)
new /obj/item/clothing/head/beret/captain/white(src)
new /obj/item/clothing/head/beret/captain/black(src)
new /obj/item/clothing/gloves/color/captain(src)
/obj/item/storage/bag/garment/hop/PopulateContents()
- new /obj/item/clothing/under/rank/head_of_personnel(src)
- new /obj/item/clothing/under/rank/head_of_personnel/skirt(src)
- new /obj/item/clothing/under/rank/head_of_personnel/dress(src)
- new /obj/item/clothing/under/rank/head_of_personnel/parade(src)
- new /obj/item/clothing/under/rank/head_of_personnel/parade/skirt(src)
- new /obj/item/clothing/under/rank/head_of_personnel/turtleneck(src)
- new /obj/item/clothing/under/rank/head_of_personnel/skirt/turtleneck(src)
- new /obj/item/clothing/under/rank/head_of_personnel/paradefancy(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/skirt(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/dress(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/parade(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/parade/skirt(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/turtleneck(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/skirt/turtleneck(src)
+ new /obj/item/clothing/under/rank/command/head_of_personnel/paradefancy(src)
new /obj/item/clothing/under/yogs/hopcasual(src)
new /obj/item/clothing/suit/toggle/capformal/hop(src)
- new /obj/item/clothing/suit/hooded/wintercoat/hop(src)
new /obj/item/clothing/suit/hooded/wintercoat/hop/formal(src)
new /obj/item/clothing/neck/mantle/hopmantle(src)
new /obj/item/clothing/neck/cloak/hop(src)
@@ -118,10 +129,10 @@
new /obj/item/clothing/gloves/color/black(src)
/obj/item/storage/bag/garment/hos/PopulateContents()
- new /obj/item/clothing/under/rank/head_of_security(src)
- new /obj/item/clothing/under/rank/head_of_security/skirt(src)
- new /obj/item/clothing/under/rank/head_of_security/corporate(src)
- new /obj/item/clothing/under/rank/head_of_security/corporate/skirt(src)
+ new /obj/item/clothing/under/rank/security/head_of_security(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/skirt(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/corporate(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/corporate/skirt(src)
new /obj/item/clothing/under/rank/security/head_of_security/alt(src)
new /obj/item/clothing/under/rank/security/head_of_security/alt/skirt(src)
new /obj/item/clothing/under/rank/security/head_of_security/grey(src)
@@ -141,13 +152,13 @@
new /obj/item/clothing/mask/gas/sechailer/swat/hos(src)
/obj/item/storage/bag/garment/warden/PopulateContents()
- new /obj/item/clothing/under/rank/warden(src)
- new /obj/item/clothing/under/rank/warden/skirt(src)
- new /obj/item/clothing/under/rank/warden/corporate(src)
- new /obj/item/clothing/under/rank/warden/corporate/skirt(src)
+ new /obj/item/clothing/under/rank/security/warden(src)
+ new /obj/item/clothing/under/rank/security/warden/skirt(src)
+ new /obj/item/clothing/under/rank/security/warden/corporate(src)
+ new /obj/item/clothing/under/rank/security/warden/corporate/skirt(src)
new /obj/item/clothing/under/yogs/ocelot(src)
- new /obj/item/clothing/under/rank/warden/navyblue(src)
- new /obj/item/clothing/under/rank/warden/classic(src)
+ new /obj/item/clothing/under/rank/security/warden/navyblue(src)
+ new /obj/item/clothing/under/rank/security/warden/classic(src)
new /obj/item/clothing/suit/armor/wardenjacket(src)
new /obj/item/clothing/suit/armor/vest/wardenjacket(src)
new /obj/item/clothing/suit/armor/vest/warden/alt(src)
@@ -162,7 +173,7 @@
/obj/item/storage/bag/garment/physician/PopulateContents()
new /obj/item/clothing/under/yogs/rank/physician(src)
- new /obj/item/clothing/under/rank/medical/purple(src)
+ new /obj/item/clothing/under/rank/medical/doctor/purple(src)
new /obj/item/clothing/under/yogs/rank/physician/white(src)
new /obj/item/clothing/under/yogs/rank/physician/white/skirt(src)
new /obj/item/clothing/under/yogs/rank/physician/turtle(src)
@@ -177,31 +188,32 @@
new /obj/item/clothing/glasses/hud/health(src)
/obj/item/storage/bag/garment/research_director/PopulateContents()
- new /obj/item/clothing/under/rank/research_director(src)
- new /obj/item/clothing/under/rank/research_director/skirt(src)
- new /obj/item/clothing/under/rank/research_director/dark(src)
- new /obj/item/clothing/under/rank/research_director/alt(src)
- new /obj/item/clothing/under/rank/research_director/alt/skirt(src)
- new /obj/item/clothing/under/rank/research_director/turtleneck(src)
- new /obj/item/clothing/under/rank/research_director/turtleneck/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/research_director(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/dark(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/alt(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/alt/skirt(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/turtleneck(src)
+ new /obj/item/clothing/under/rank/rnd/research_director/turtleneck/skirt(src)
new /obj/item/clothing/suit/toggle/labcoat/science/rd(src)
new /obj/item/clothing/suit/toggle/labcoat/science/brown(src)
- new /obj/item/clothing/suit/toggle/labcoat(src)
+ new /obj/item/clothing/suit/toggle/labcoat/science/purple(src)
+ new /obj/item/clothing/suit/toggle/labcoat/long(src)
new /obj/item/clothing/suit/hooded/wintercoat/science/rd(src)
new /obj/item/clothing/neck/cloak/rd(src)
new /obj/item/clothing/neck/mantle/rdmantle(src)
- new /obj/item/clothing/head/beret/sci(src)
- new /obj/item/clothing/head/beret/rd(src)
new /obj/item/clothing/head/beret/rd/white(src)
+ new /obj/item/clothing/head/beret/rd(src)
+ new /obj/item/clothing/head/beret/sci(src)
new /obj/item/clothing/gloves/color/latex(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/clothing/glasses/hud/diagnostic/sunglasses/rd(src)
new /obj/item/clothing/glasses/sunglasses/reagent/sci(src)
- new /obj/item/clothing/glasses/welding/superior(src)
/obj/item/storage/bag/garment/chief_medical/PopulateContents()
new /obj/item/clothing/head/beret/cmo(src)
new /obj/item/clothing/neck/cloak/cmo(src)
+ new /obj/item/clothing/neck/mantle/cmomantle(src)
new /obj/item/clothing/suit/toggle/labcoat/cmo(src)
new /obj/item/clothing/suit/toggle/labcoat/cmo/alt(src)
new /obj/item/clothing/suit/toggle/labcoat/cmo/long(src)
@@ -209,55 +221,95 @@
new /obj/item/clothing/suit/hooded/wintercoat/medical/cmo/long(src)
new /obj/item/clothing/gloves/color/latex/nitrile/advanced(src)
new /obj/item/clothing/glasses/hud/health/sunglasses/cmo(src)
- new /obj/item/clothing/under/rank/chief_medical_officer(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/skirt(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/alt(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/skirt/alt(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src)
- new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck/alt(src)
- new /obj/item/clothing/under/rank/medical/scrcmo(src)
- new /obj/item/clothing/under/rank/medical/black(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/alt(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt/alt(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck/alt(src)
+ new /obj/item/clothing/under/rank/medical/chief_medical_officer/scrcmo(src)
+ new /obj/item/clothing/under/rank/medical/doctor/black(src)
/obj/item/storage/bag/garment/engineering_chief/PopulateContents()
- new /obj/item/clothing/under/rank/chief_engineer(src)
- new /obj/item/clothing/under/rank/chief_engineer/skirt(src)
- new /obj/item/clothing/under/rank/chief_engineer/alt(src)
- new /obj/item/clothing/under/rank/chief_engineer/gorka(src)
- new /obj/item/clothing/under/rank/chief_engineer/formal(src)
- new /obj/item/clothing/under/rank/chief_engineer/skirt/formal(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/alt(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/gorka(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/turtle(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/casual(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/formal(src)
+ new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt/formal(src)
new /obj/item/clothing/neck/cloak/ce(src)
+ new /obj/item/clothing/neck/cloak/ce/alt(src)
+ new /obj/item/clothing/neck/mantle/cemantle(src)
new /obj/item/clothing/head/hardhat/weldhat/white(src)
new /obj/item/clothing/head/welding/engie(src)
new /obj/item/clothing/gloves/atmos/ce(src)
- new /obj/item/clothing/under/yogs/ceturtleneck(src)
- new /obj/item/clothing/under/yogs/cecasual(src)
new /obj/item/clothing/head/beret/ce(src)
+ new /obj/item/clothing/head/beret/ce/alt(src)
new /obj/item/clothing/suit/hazardvest/white(src)
- new /obj/item/clothing/suit/hooded/wintercoat/engineering/ce(src)
new /obj/item/clothing/mask/gas/atmos(src)
new /obj/item/clothing/glasses/meson/engine(src)
new /obj/item/clothing/glasses/meson/sunglasses/ce(src)
/obj/item/storage/bag/garment/quartermaster/PopulateContents()
- new /obj/item/clothing/under/rank/cargo(src)
- new /obj/item/clothing/under/rank/cargo/turtleneck(src)
- new /obj/item/clothing/under/rank/cargo/turtleneck/alt(src)
- new /obj/item/clothing/under/rank/cargo/qmc(src)
- new /obj/item/clothing/under/rank/cargo/official(src)
- new /obj/item/clothing/under/rank/cargo/supply_chief(src)
- new /obj/item/clothing/under/rank/cargo/supply_chief/alt(src)
- new /obj/item/clothing/under/rank/cargo/skirt(src)
+ new /obj/item/clothing/under/rank/cargo/qm(src)
+ new /obj/item/clothing/under/rank/cargo/qm/turtleneck(src)
+ new /obj/item/clothing/under/rank/cargo/qm/turtleneck/alt(src)
+ new /obj/item/clothing/under/rank/cargo/qm/qmc(src)
+ new /obj/item/clothing/under/rank/cargo/qm/official(src)
+ new /obj/item/clothing/under/rank/cargo/qm/supply_chief(src)
+ new /obj/item/clothing/under/rank/cargo/qm/supply_chief/alt(src)
+ new /obj/item/clothing/under/rank/cargo/qm/skirt(src)
new /obj/item/clothing/under/rank/cargo/qm/skirt/turtleneck(src)
- new /obj/item/clothing/under/rank/cargo/skirt/supply_chief(src)
- new /obj/item/clothing/under/rank/cargo/skirt/supply_chief/alt(src)
+ new /obj/item/clothing/under/rank/cargo/qm/skirt/supply_chief(src)
+ new /obj/item/clothing/under/rank/cargo/qm/skirt/supply_chief/alt(src)
new /obj/item/clothing/gloves/fingerless/tactifool/qm(src)
new /obj/item/clothing/gloves/cargo_gauntlet/qm(src)
new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/clothing/suit/hooded/wintercoat/qm(src)
- new /obj/item/clothing/suit/trenchcoatqm(src)
new /obj/item/clothing/head/soft(src)
- new /obj/item/clothing/head/welding/tagilla(src)
new /obj/item/clothing/head/beret/quartermaster(src)
new /obj/item/clothing/head/qmhat(src)
new /obj/item/clothing/neck/cloak/qm(src)
+
+/obj/item/storage/bag/garment/magistrate/PopulateContents()
+ new /obj/item/clothing/under/rank/centcom_officer/magistrate(src)
+ new /obj/item/clothing/under/rank/centcom_officer/magistrate/skirt(src)
+ new /obj/item/clothing/under/rank/centcom_officer/magistrate/formal(src)
+ new /obj/item/clothing/neck/cloak/magistrate(src)
+ new /obj/item/clothing/suit/judgerobe(src)
+ new /obj/item/clothing/suit/toggle/dress_NTjacket_black(src)
+ new /obj/item/clothing/suit/toggle/NTjacket_black(src)
+ new /obj/item/clothing/head/judge_wig(src)
+ new /obj/item/clothing/gloves/color/white(src)
+
+/obj/item/storage/bag/garment/ntrep/PopulateContents()
+ new /obj/item/clothing/under/rank/centcom_officer/ntrep(src)
+ new /obj/item/clothing/under/rank/centcom_officer/ntrep/skirt(src)
+ new /obj/item/clothing/under/rank/centcom_officer/ntrep/formal(src)
+ new /obj/item/clothing/neck/cloak/nanotrasen_representative(src)
+ new /obj/item/clothing/head/ntrep(src)
+ new /obj/item/clothing/head/ntrep/high(src)
+ new /obj/item/clothing/suit/toggle/ntrep(src)
+ new /obj/item/clothing/gloves/color/white(src)
+
+/obj/item/storage/bag/garment/blueshield/PopulateContents()
+ new /obj/item/clothing/under/rank/blueshield(src)
+ new /obj/item/clothing/under/rank/blueshield/skirt(src)
+ new /obj/item/clothing/under/rank/blueshield/urban(src)
+ new /obj/item/clothing/under/rank/blueshield/grey(src)
+ new /obj/item/clothing/under/rank/blueshield/grey/skirt(src)
+ new /obj/item/clothing/under/rank/blueshield/white(src)
+ new /obj/item/clothing/under/rank/blueshield/white/skirt(src)
+ new /obj/item/clothing/under/rank/blueshield/blue(src)
+ new /obj/item/clothing/under/rank/blueshield/blue/skirt(src)
+ new /obj/item/clothing/under/rank/blueshield/formal(src)
+ new /obj/item/clothing/under/rank/blueshield/turtle(src)
+ new /obj/item/clothing/under/rank/blueshield/turtle_skirt(src)
+ new /obj/item/clothing/neck/mantle/blueshield(src)
+ new /obj/item/clothing/neck/cloak/blueshield(src)
+ new /obj/item/clothing/head/beret/blueshield(src)
+ new /obj/item/clothing/gloves/color/white(src)
+ new /obj/item/clothing/gloves/combat(src)
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/storage/lockbox.dm b/modular_dripstation/code/game/objects/items/storage/lockbox.dm
index 21806d272381..d15bf7608139 100644
--- a/modular_dripstation/code/game/objects/items/storage/lockbox.dm
+++ b/modular_dripstation/code/game/objects/items/storage/lockbox.dm
@@ -50,3 +50,12 @@
item_state = "vialbox_secure"
else
item_state = "vialbox"
+
+/obj/item/storage/lockbox/amnestic
+ name = "lockbox of amnestic implants"
+ req_access = list(ACCESS_SECURITY)
+
+/obj/item/storage/lockbox/amnestic/PopulateContents()
+ for(var/i in 1 to 3)
+ new /obj/item/implantcase/amnestic(src)
+ new /obj/item/implanter/amnestic(src)
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/items/tools_syndicate.dm b/modular_dripstation/code/game/objects/items/tools_syndicate.dm
new file mode 100644
index 000000000000..39beae27266f
--- /dev/null
+++ b/modular_dripstation/code/game/objects/items/tools_syndicate.dm
@@ -0,0 +1,175 @@
+/obj/item/wrench/nuke
+ name = "fancy wrench"
+ desc = "It's one of those fancy wrenches that you turn backward without twisting the bolt for faster action."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "wrench_syndie"
+ item_state = "wrench_syndie"
+ toolspeed = 0.5
+
+/obj/item/wrench/combat
+ name = "combat wrench"
+ desc = "It's like a normal wrench but edgier. Can be found on the battlefield."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "wrench_combat"
+ item_state = "wrench_combat"
+ tool_behaviour = null
+ toolspeed = null
+ var/on = FALSE
+
+/obj/item/wrench/combat/attack_self(mob/living/user)
+ if(on)
+ on = FALSE
+ force = initial(force)
+ w_class = initial(w_class)
+ throwforce = initial(throwforce)
+ tool_behaviour = initial(tool_behaviour)
+ attack_verb = list("bopped")
+ toolspeed = initial(toolspeed)
+ playsound(user, 'sound/weapons/saberoff.ogg', 35, TRUE)
+ to_chat(user, "[src] can now be kept at bay.")
+ else
+ on = TRUE
+ force = 15
+ w_class = WEIGHT_CLASS_NORMAL
+ throwforce = 10
+ tool_behaviour = TOOL_WRENCH
+ attack_verb = list("devastated", "brutalized", "committed a war crime against", "obliterated", "humiliated")
+ toolspeed = 0.33
+ hitsound = 'sound/weapons/blade1.ogg'
+ playsound(user, 'sound/weapons/saberon.ogg', 35, TRUE)
+ to_chat(user, "[src] is now active. Woe onto your enemies!")
+ update_icons()
+
+/obj/item/wrench/combat/proc/update_icons()
+ if(on)
+ icon_state = "[initial(icon_state)]_on"
+ item_state = "[initial(item_state)]1"
+ else
+ icon_state = "[initial(icon_state)]"
+ item_state = "[initial(item_state)]"
+
+/obj/item/wirecutters/nuke
+ name = "nonstandart wirecutters"
+ desc = "The blades of these wirecutters have suspiciously fine serrated teeth."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "wirecutters_syndie"
+ item_state = "wirecutters_syndie"
+ toolspeed = 0.5
+ random_color = FALSE
+
+/obj/item/crowbar/nuke
+ name = "special crowbar"
+ desc = "It has special counterweights that adjust to the amount of pressure put on it by using a complex array of springs and screws."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "crowbar_syndie"
+ item_state = "crowbar_syndie"
+ toolspeed = 0.5
+ force = 8
+
+/obj/item/weldingtool/hugetank/nuke
+ desc = "An upgraded welder based of the industrial welder. Has remarkable painting and more stealthy welding flash."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "syndiewelder"
+ item_state = "syndiewelder"
+ toolspeed = 0.5
+ light_range = 1
+
+/obj/item/inducer/nuke
+ desc = "A tool for inductively charging internal power cells. This one has a suspicious colour scheme, and seems to be rigged to transfer charge at a much faster rate."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "inducer-syndi"
+ item_state = "inducer-syndi"
+ slot_flags = ITEM_SLOT_BELT
+ w_class = WEIGHT_CLASS_SMALL
+ powertransfer = 2000
+ cell_type = /obj/item/stock_parts/cell/super
+
+/obj/item/jawsoflife/syndicate
+ name = "red jaws of life"
+ desc = "A pocket sized re-engineered copy of Nanotrasen's standard jaws of life. Can be used to force open airlocks in its crowbar configuration."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "syndie_pry"
+ item_state = "jawsoflife_syndie"
+ slot_flags = ITEM_SLOT_BELT
+ w_class = WEIGHT_CLASS_SMALL
+ toolspeed = 0.5
+
+/obj/item/jawsoflife/syndicate/transform_crowbar(mob/user)
+ tool_behaviour = TOOL_CROWBAR
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "syndie_pry"
+ playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
+ if (iscyborg(user))
+ to_chat(user,span_notice("Your servos whirr as the cutting head reconfigures into a prying head."))
+ else
+ to_chat(user, span_notice("You attach the pry jaws to [src]."))
+ update_appearance(UPDATE_ICON)
+
+/obj/item/jawsoflife/syndicate/transform_cutters(mob/user)
+ attack_verb = list("pinched", "nipped")
+ icon_state = "syndie_cutter"
+ hitsound = 'sound/items/jaws_cut.ogg'
+ usesound = 'sound/items/jaws_cut.ogg'
+ tool_behaviour = TOOL_WIRECUTTER
+ playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
+ if (iscyborg(user))
+ to_chat(user,span_notice("Your servos whirr as the prying head reconfigures into a cutting head."))
+ else
+ to_chat(user, span_notice("You attach the cutting jaws to [src]."))
+ update_appearance(UPDATE_ICON)
+
+/obj/item/construction/rcd/combat
+ name = "combat RCD"
+ delay_mod = 0.8
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+
+/obj/item/multitool/ai_detect/red
+ name = "obvious device"
+ desc = "Syndicate device disguised as a multitool. Something is definitely wrong with it."
+ icon = 'modular_dripstation/icons/obj/tools.dmi'
+ icon_state = "redmultitool"
+ item_state = "redmultitool"
+ toolspeed = 0.33
+
+/obj/item/storage/toolbox/syndicate/PopulateContents()
+ new /obj/item/screwdriver/nuke(src)
+ new /obj/item/wrench/nuke(src)
+ new /obj/item/weldingtool/largetank(src)
+ new /obj/item/crowbar/nuke(src)
+ new /obj/item/wirecutters/nuke(src)
+ new /obj/item/multitool/ai_detect(src)
+ new /obj/item/clothing/gloves/combat(src)
+ //YOGS start - toolspeed
+ for(var/obj/item/I in contents)
+ I.toolspeed = 0.5
+
+/obj/item/storage/toolbox/syndicate/real
+ name = "syndicate toolbox"
+
+/obj/item/storage/toolbox/syndicate/real/PopulateContents()
+ new /obj/item/screwdriver/nuke(src)
+ new /obj/item/wrench/nuke(src)
+ new /obj/item/weldingtool/hugetank/nuke(src)
+ new /obj/item/crowbar/nuke(src)
+ new /obj/item/wirecutters/nuke(src)
+ new /obj/item/multitool/ai_detect(src)
+ new /obj/item/clothing/gloves/combat(src)
+ for(var/obj/item/I in contents)
+ I.toolspeed = 0.33
+ I.name = "syndicate [I.name]"
+
+/obj/item/storage/belt/military/syndicate_eng
+ name = "/improper battle engineer`s belt"
+ desc = "Engineer is engihere!"
+
+/obj/item/storage/belt/military/syndicate_eng/PopulateContents()
+ new /obj/item/screwdriver/nuke(src)
+ new /obj/item/wrench/combat(src)
+ new /obj/item/weldingtool/hugetank/nuke(src)
+ new /obj/item/jawsoflife/syndicate(src)
+ new /obj/item/multitool/ai_detect/red(src)
+ new /obj/item/inducer/nuke(src)
+ new /obj/item/clothing/gloves/combat(src)
+ for(var/obj/item/I in contents)
+ I.toolspeed = 0.33
+ I.name = "syndicate [I.name]"
\ No newline at end of file
diff --git a/modular_dripstation/code/game/objects/structures/coatrack.dm b/modular_dripstation/code/game/objects/structures/coatrack.dm
index acbfb8bc27cb..525f243f8ec0 100644
--- a/modular_dripstation/code/game/objects/structures/coatrack.dm
+++ b/modular_dripstation/code/game/objects/structures/coatrack.dm
@@ -9,7 +9,7 @@
var/obj/item/clothing/suit/suit = null
var/obj/item/clothing/head/hat = null
var/list/allowed_suits = list(
- // /obj/item/clothing/suit/armor/vest/capcarapace/jacket,
+ /obj/item/clothing/suit/armor/vest/capcarapace/jacket,
/obj/item/clothing/suit/hooded/wintercoat/captain,
/obj/item/clothing/suit/det_suit,
/obj/item/clothing/suit/toggle/labcoat,
@@ -18,7 +18,12 @@
/obj/item/clothing/suit/dracula,
/obj/item/clothing/suit/pirate,
/obj/item/clothing/suit/hooded/wintercoat,
- // /obj/item/clothing/suit/armor/vest/warden/winter,
+ /obj/item/clothing/suit/armor/vest/warden/winter,
+ /obj/item/clothing/suit/trenchcoatqm,
+ /obj/item/clothing/suit/hooded/wintercoat/hop,
+ /obj/item/clothing/suit/hooded/wintercoat/medical/cmo/long,
+ /obj/item/clothing/suit/armor/hos/trenchcoat/winter,
+ /obj/item/clothing/suit/hooded/wintercoat/engineering/ce,
)
var/list/allowed_hats = list(
/obj/item/clothing/head/fedora/det_hat,
@@ -27,14 +32,29 @@
/obj/item/clothing/head/warden,
/obj/item/clothing/head/beret/sec,
/obj/item/clothing/head/beret/rd,
- /obj/item/clothing/head/beret/captain,
+ /obj/item/clothing/head/beret/captain,
+ /obj/item/clothing/head/caphat/parade,
+ /obj/item/clothing/head/hopcap,
+
)
var/list/custom_sprites = list(
/obj/item/clothing/head/beret/sec,
/obj/item/clothing/head/HoS/beret,
/obj/item/clothing/head/beret/captain,
/obj/item/clothing/head/beret/rd,
- )
+ )
+
+/obj/structure/coatrack/Initialize(mapload)
+ . = ..()
+ if(mapload)
+ for(var/obj/item/I in loc)
+ if(is_type_in_list(I, allowed_hats))
+ I.loc = src
+ hat = I
+ if(is_type_in_list(I, allowed_suits))
+ I.loc = src
+ suit = I
+ update_appearance(UPDATE_OVERLAYS)
/obj/structure/coatrack/attack_hand(mob/user as mob)
if(suit && hat)
diff --git a/modular_dripstation/code/game/objects/structures/crates_lockers/closets.dm b/modular_dripstation/code/game/objects/structures/crates_lockers/closets.dm
index 7c2e8b07e617..f48a87d2d585 100644
--- a/modular_dripstation/code/game/objects/structures/crates_lockers/closets.dm
+++ b/modular_dripstation/code/game/objects/structures/crates_lockers/closets.dm
@@ -14,6 +14,40 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
icon_state = "med"
icon_door = "med_generic"
+/obj/structure/closet/secure_closet/paramedic/PopulateContents()
+ ..()
+ if(prob(50))
+ new /obj/item/storage/backpack/medic(src)
+ else
+ new /obj/item/storage/backpack/satchel/med(src)
+ new /obj/item/storage/firstaid/hypospray/paramedic(src)
+ new /obj/item/clothing/shoes/sneakers/white(src)
+ switch(pick("blue", "green", "purple"))
+ if ("blue")
+ new /obj/item/clothing/under/rank/medical/doctor/blue(src)
+ if ("green")
+ new /obj/item/clothing/under/rank/medical/doctor/green(src)
+ if ("purple")
+ new /obj/item/clothing/under/rank/medical/doctor/purple(src)
+ switch(pick("blue", "green", "purple"))
+ if ("blue")
+ new /obj/item/clothing/under/rank/medical/doctor/blue(src)
+ if ("green")
+ new /obj/item/clothing/under/rank/medical/doctor/green(src)
+ if ("purple")
+ new /obj/item/clothing/under/rank/medical/doctor/purple(src)
+ new /obj/item/clothing/under/rank/medical/paramedic(src)
+ new /obj/item/clothing/suit/toggle/labcoat/emt(src)
+ new /obj/item/clothing/head/beret/emt/green(src)
+ new /obj/item/clothing/head/beret/emt(src)
+ new /obj/item/clothing/head/soft/emt(src)
+ new /obj/item/defibrillator/loaded(src)
+ new /obj/item/clothing/suit/toggle/labcoat/emt/green(src)
+ new /obj/item/clothing/head/soft/emt/green (src)
+ new /obj/item/radio/headset/headset_med(src)
+ new /obj/item/storage/belt/medical(src)
+ new /obj/item/clothing/gloves/color/latex/nitrile(src)
+
/obj/structure/closet/secure_closet/freezer
locked_state = "freezer_locked"
unlocked_state = "freezer_unlocked"
@@ -23,6 +57,21 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
locked_state = "cabinet_locked"
unlocked_state = "cabinet_unlocked"
+/obj/structure/closet/secure_closet/psych/PopulateContents()
+ ..()
+ new /obj/item/clothing/under/rank/psych(src)
+ new /obj/item/clothing/under/rank/psych/skirt(src)
+ new /obj/item/clothing/under/rank/psych/turtleneck(src)
+ new /obj/item/clothing/suit/straight_jacket(src)
+ new /obj/item/clothing/mask/muzzle(src)
+ new /obj/item/storage/pill_bottle/happiness(src)
+ new /obj/item/storage/pill_bottle/dice(src)
+ new /obj/item/storage/pill_bottle/happy(src)
+ new /obj/item/storage/pill_bottle/lsd(src)
+ new /obj/item/storage/pill_bottle/psicodine(src)
+ new /obj/item/assembly/flash(src)
+ new /obj/item/assembly/flash(src)
+
/obj/structure/closet/secure_closet/personal/cabinet
locked_state = "cabinet_locked"
unlocked_state = "cabinet_unlocked"
@@ -122,6 +171,10 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/pinpointer/nuke(src)
new /obj/item/clothing/shoes/combat(src)
new /obj/item/clothing/gloves/combat(src)
+ if(prob(50))
+ new /obj/item/clothing/neck/petcollar/spike(src)
+ else
+ new /obj/item/clothing/neck/petcollar/sec(src)
new /obj/item/storage/belt/security/chief/full(src)
new /obj/item/clothing/glasses/hud/security/sunglasses/hos(src)
new /obj/item/clothing/shoes/xeno_wraps/jackboots/combat(src)
@@ -164,11 +217,10 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/clothing/head/helmet/sec(src)
new /obj/item/radio/headset/headset_sec(src)
new /obj/item/radio/headset/headset_sec/alt(src)
- new /obj/item/clothing/glasses/hud/security/sunglasses(src)
+ new /obj/item/clipboard/yog/paperwork/security(src)
new /obj/item/flashlight/seclite(src)
new /obj/item/radio/security(src)
- new /obj/item/clipboard/yog/paperwork/security(src)
- new /obj/item/barrier_taperoll/police(src)
+ new /obj/item/clothing/glasses/hud/security/sunglasses(src)
/obj/structure/closet/secure_closet/detective/PopulateContents()
..()
@@ -208,7 +260,10 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/glasses/hud/personnel(src)
new /obj/item/restraints/handcuffs/cable/zipties(src)
- new /obj/item/clothing/neck/petcollar(src)
+ if(prob(50))
+ new /obj/item/clothing/neck/petcollar(src)
+ else
+ new /obj/item/clothing/neck/petcollar/bell(src)
new /obj/item/clothing/suit/armor/vest/light(src)
new /obj/item/pet_carrier(src)
new /obj/item/door_remote/civillian(src)
@@ -231,7 +286,10 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
else
new /obj/item/storage/backpack/satchel/cap(src)
new /obj/item/storage/backpack/duffelbag/captain(src)
- new /obj/item/clothing/neck/petcollar(src)
+ if(prob(50))
+ new /obj/item/clothing/neck/petcollar/holo(src)
+ else
+ new /obj/item/clothing/neck/petcollar/bell(src)
new /obj/item/pet_carrier(src)
new /obj/item/cartridge/captain(src)
new /obj/item/storage/box/silver_ids(src)
@@ -239,6 +297,8 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/radio/headset/heads/captain(src)
new /obj/item/restraints/handcuffs/cable/zipties(src)
new /obj/item/storage/belt/sabre(src)
+ new /obj/item/clothing/suit/armor/vest/capcarapace(src)
+ new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src)
new /obj/item/clothing/glasses/hud/personnel(src)
new /obj/item/door_remote/captain(src)
new /obj/item/storage/photo_album/Captain(src)
@@ -438,19 +498,68 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
req_access = list(ACCESS_BLUESHIELD)
icon_state = "bs"
+/obj/structure/closet/secure_closet/blueshield/PopulateContents()
+ ..()
+ new /obj/item/storage/firstaid/advanced(src)
+ new /obj/item/clothing/glasses/hud/security(src)
+ new /obj/item/clothing/glasses/sunglasses(src)
+ new /obj/item/storage/box/flashbangs(src)
+ new /obj/item/flashlight/seclite(src)
+ new /obj/item/clothing/shoes/combat(src)
+ new /obj/item/storage/belt/military/assault/blueshield(src)
+ new /obj/item/clothing/suit/armor/bulletproof/blueshield(src)
+ new /obj/item/radio/headset/blueshield(src)
+ new /obj/item/storage/bag/garment/blueshield(src)
+ new /obj/item/clothing/shoes/laceup(src)
+
// ###### NT REPRESENTATIVE ######
/obj/structure/closet/secure_closet/ntrep
name = "\improper Nanotrasen Representative's locker"
icon = 'modular_dripstation/icons/obj/closet.dmi'
req_access = list(ACCESS_NTREP)
- icon_state = "cc"
+ icon_state = "ntr"
+
+/obj/structure/closet/secure_closet/ntrep/PopulateContents()
+ ..()
+ new /obj/item/book/manual/wiki/security_space_law(src)
+ new /obj/item/storage/secure/briefcase(src)
+ new /obj/item/assembly/flash/handheld(src)
+ new /obj/item/clothing/glasses/hud/personnel(src)
+ new /obj/item/radio/headset/ntrep(src)
+ new /obj/item/storage/bag/garment/ntrep(src)
+ new /obj/item/clothing/shoes/laceup(src)
+ new /obj/item/taperecorder(src)
+ new /obj/item/tape(src)
+ new /obj/item/tape(src)
+ new /obj/item/tape(src)
// ###### MAGISTRATE ######
/obj/structure/closet/secure_closet/magistrate
name = "\improper Magistrate's locker"
icon = 'modular_dripstation/icons/obj/closet.dmi'
req_access = list(ACCESS_MAGISTRATE)
- icon_state = "cc"
+ icon_state = "magi"
+
+/obj/structure/closet/secure_closet/magistrate/PopulateContents()
+ ..()
+ new /obj/item/book/manual/wiki/security_space_law(src)
+ new /obj/item/storage/secure/briefcase(src)
+ new /obj/item/assembly/flash/handheld(src)
+ new /obj/item/reagent_containers/spray/pepper(src)
+ new /obj/item/clothing/glasses/sunglasses(src)
+ new /obj/item/gavelblock(src)
+ new /obj/item/gavelhammer(src)
+ new /obj/item/clothing/accessory/medal/silver/legal(src)
+ new /obj/item/clothing/accessory/lawyers_badge(src)
+ new /obj/item/radio/headset/magistrate(src)
+ new /obj/item/megaphone(src)
+ new /obj/item/storage/bag/garment/magistrate(src)
+ new /obj/item/clothing/shoes/laceup/brown(src)
+ new /obj/item/clothing/shoes/laceup(src)
+ new /obj/item/taperecorder(src)
+ new /obj/item/tape(src)
+ new /obj/item/tape(src)
+ new /obj/item/tape(src)
// ###### QUARTERMASTER ######
/obj/structure/closet/secure_closet/quartermaster
@@ -472,6 +581,8 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/storage/backpack/cargo/tactical(src)
new /obj/item/circuitboard/machine/techfab/department/cargo(src)
new /obj/item/storage/photo_album/QM(src)
+ new /obj/item/stamp(src)
+ new /obj/item/stamp/denied(src)
new /obj/item/circuitboard/machine/ore_silo(src)
new /obj/item/card/id/departmental_budget/car(src)
new /obj/item/clothing/mask/gas(src)
@@ -493,9 +604,11 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/defibrillator/compact/advanced/loaded(src)
new /obj/item/assembly/flash/handheld(src)
new /obj/item/storage/firstaid/hypospray/deluxe/cmo(src)
- new /obj/item/autosurgeon/cmo(src)
new /obj/item/door_remote/chief_medical_officer(src)
- new /obj/item/clothing/neck/petcollar(src)
+ if(prob(50))
+ new /obj/item/clothing/neck/petcollar/holo(src)
+ else
+ new /obj/item/clothing/neck/petcollar/bell(src)
new /obj/item/pet_carrier(src)
new /obj/item/wallframe/defib_mount(src)
new /obj/item/circuitboard/machine/techfab/department/medical(src)
@@ -544,7 +657,27 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/clothing/shoes/xeno_wraps/command(src)
new /obj/item/storage/lockbox/medal/eng(src)
new /obj/item/barrier_taperoll/engineering(src)
- new /obj/item/multisurgeon/magboots(src)
+
+/obj/structure/closet/secure_closet/cargotech
+ name = "\improper cargotech's locker"
+ desc = "Crates. Pull them. Lockers. Push them."
+ icon = 'modular_dripstation/icons/obj/closet.dmi'
+ req_access = list(ACCESS_CARGO)
+ icon_state = "cargo"
+
+/obj/structure/closet/secure_closet/cargotech/PopulateContents()
+ ..()
+ new /obj/item/clothing/under/rank/cargo/tech(src)
+ new /obj/item/clothing/under/rank/cargo/tech/skirt(src)
+ new /obj/item/clothing/shoes/workboots/cargo(src)
+ new /obj/item/storage/backpack/cargo(src)
+ new /obj/item/storage/backpack/satchel/cargo(src)
+ new /obj/item/storage/backpack/duffelbag/cargo(src)
+ new /obj/item/clothing/gloves/fingerless(src)
+ new /obj/item/radio/headset/headset_cargo(src)
+ new /obj/item/export_scanner(src)
+ new /obj/item/stamp(src)
+ new /obj/item/stamp/denied(src)
/obj/structure/closet/l3closet/PopulateContents()
new /obj/item/storage/bag/bio(src)
@@ -616,3 +749,16 @@ GLOBAL_LIST_INIT(closet_cutting_types, typecacheof(list(
new /obj/item/clothing/gloves/color/latex/hazmat/cyan(src)
new /obj/item/clothing/mask/breath(src)
new /obj/item/tank/internals/oxygen(src)
+
+/////SYNDICATE/////
+/obj/structure/closet/syndicate/personal
+
+/obj/structure/closet/syndicate/personal/PopulateContents()
+ ..()
+ new /obj/item/clothing/under/syndicate(src)
+ new /obj/item/clothing/shoes/combat(src)
+ new /obj/item/radio/headset/syndicate(src)
+ new /obj/item/ammo_box/magazine/m10mm(src) //probably fix this in weapon update
+ new /obj/item/storage/belt/military(src)
+ new /obj/item/crowbar/red(src)
+ new /obj/item/clothing/glasses/night(src)
\ No newline at end of file
diff --git a/modular_dripstation/code/modules/cargo/packs.dm b/modular_dripstation/code/modules/cargo/packs.dm
index da7b83a96a61..d38a7f21ff19 100644
--- a/modular_dripstation/code/modules/cargo/packs.dm
+++ b/modular_dripstation/code/modules/cargo/packs.dm
@@ -143,7 +143,7 @@
/obj/item/clothing/suit/armor/officerjacket,
/obj/item/clothing/head/beret/sec/navyofficer,
/obj/item/clothing/head/beret/sec/navyofficer,
- /obj/item/clothing/under/rank/warden/navyblue,
+ /obj/item/clothing/under/rank/security/warden/navyblue,
/obj/item/clothing/suit/armor/wardenjacket,
/obj/item/clothing/head/beret/sec/navywarden)
@@ -153,8 +153,8 @@
cost = 3000
contains = list(/obj/item/clothing/suit/armor/laserproof,
/obj/item/clothing/suit/armor/laserproof,
- /obj/item/clothing/head/helmet/laserproof,
- /obj/item/clothing/head/helmet/laserproof)
+ /obj/item/clothing/head/helmet/laserproof/raised,
+ /obj/item/clothing/head/helmet/laserproof/raised)
/datum/supply_pack/clearance/heavymining
name = "Old Mining Hardsuit Crate"
@@ -163,6 +163,16 @@
order_limit = 1
contains = list(/obj/item/clothing/suit/space/hardsuit/heavymining)
+/datum/supply_pack/security/armory/mindshield
+ desc = "Prevent against radical thoughts with three Mindshield implants. Requires Armory access to open."
+
+/datum/supply_pack/security/armory/amnestic
+ name = "Amnestic Implants Crate"
+ desc = "Revert radical thoughts with three Amnestic implants. Requires Armory access to open."
+ cost = 4000
+ contains = list(/obj/item/storage/lockbox/amnestic)
+ crate_name = "amnestic implant crate"
+
/datum/supply_pack/security/armory/hos
name = "Head of Security Armor Crate"
desc = "Contains set of HoS heavy armor."
diff --git a/modular_dripstation/code/modules/clothing/_neck.dm b/modular_dripstation/code/modules/clothing/_neck.dm
index 8cff152ebc40..e5918c2f7b5e 100644
--- a/modular_dripstation/code/modules/clothing/_neck.dm
+++ b/modular_dripstation/code/modules/clothing/_neck.dm
@@ -47,6 +47,32 @@
desc = "A shawl worn by the Head of Security. Do you dare take up their mantle?"
icon_state = "hosmantle"
+/obj/item/clothing/neck/mantle/blueshield
+ name = "\proper the blueshield's shawl"
+ desc = "Worn by the Lieutenant of an elite safeguard team. Be prepared to watch everybody die horribly and stay alive to help em other day."
+ icon_state = "bsmantle"
+
+/obj/item/clothing/neck/cloak/nanotrasen_representative
+ name = "\proper the nanotrasen representative's cloak"
+ desc = "A cloak worn by the Nanotrasen Representative. Be careful and don't arouse Nanotrasen wrath upon you."
+ icon_state = "ntrcloak"
+ icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+
+/obj/item/clothing/neck/cloak/magistrate
+ name = "\proper the magistrate's cloak"
+ desc = "A cloak worn by the Magistrate. And remember - The Law comes first."
+ icon_state = "magistratecloak"
+ icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+
+/obj/item/clothing/neck/cloak/blueshield
+ name = "\proper the blueshield's cloak"
+ desc = "A cloak worn by the Blueshield. Bad bodyguard - dead bodyguard. Dead bodyguard - bad bodyguard. Stay alive."
+ icon_state = "blueshieldcloak"
+ icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+
/obj/item/clothing/neck/cloak/hos
icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
@@ -71,6 +97,217 @@
icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+/obj/item/clothing/neck/cloak/ce/alt
+ name = "chief engineer's green cloak"
+ icon_state = "cecloak_green"
+
/obj/item/clothing/neck/cloak/rd
icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+
+/obj/item/clothing/neck/petcollar
+ name = "silver tag collar"
+ desc = "A collar for your little pets... or the big ones."
+ icon_state = "collar_bksilv"
+ icon = 'modular_dripstation/icons/obj/clothing/neck.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/neck.dmi'
+ var/tagname = null
+ var/pet_worn_icon = 'modular_dripstation/icons/mob/pet.dmi'
+ var/tagtype = "silver"
+ var/collar = "black"
+
+/obj/item/clothing/neck/petcollar/attack_self(mob/user)
+ tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN)
+ name = "[initial(name)] - [tagname]"
+
+/obj/item/clothing/neck/petcollar/bell
+ name = "bell collar"
+ desc = "It has a little bell!"
+ icon_state = "petcollar"
+ tagtype = "gold"
+ collar = "cyan"
+
+/obj/item/clothing/neck/petcollar/bell/Initialize(mapload)
+ .= ..()
+ AddComponent(/datum/component/squeak, list('sound/effects/collarbell1.ogg'=1,'sound/effects/collarbell2.ogg'=1), 50, 100, 2)
+
+/obj/item/clothing/neck/petcollar/sec
+ name = "security pet collar"
+ desc = "Blood-hungry security dogs."
+ icon_state = "seccollar"
+ tagtype = "gold"
+ collar = "sec"
+
+/obj/item/clothing/neck/petcollar/spike
+ name = "spiked collar"
+ desc = "A collar with spikes that look as sharp as your teeth."
+ icon_state = "collar_bkspike"
+ tagtype = "spike"
+ collar = "black"
+
+/obj/item/clothing/neck/petcollar/pink
+ name = "pink collar"
+ desc = "This collar will make your pets look FA-BU-LOUS."
+ icon_state = "collar_pisilv"
+ tagtype = "silver"
+ collar = "pink"
+
+/obj/item/clothing/neck/petcollar/holo
+ name = "holo-collar"
+ desc = "An expensive holo-collar for the modern day pet."
+ icon_state = "collar_bkholo"
+ tagtype = "holo"
+ collar = "black"
+
+/obj/item/clothing/neck/collar/shock
+ name = "shock collar"
+ desc = "A collar used to ease hungry predators."
+ icon_state = "collar_bkshk0"
+ flags_1 = CONDUCT_1
+ var/on = TRUE
+ var/code = 2
+ var/frequency = FREQ_ELECTROPACK
+ var/shock_cooldown = FALSE
+
+/obj/item/clothing/neck/collar/shock/Initialize(mapload)
+ . = ..()
+ set_frequency(frequency)
+
+/obj/item/clothing/neck/collar/shock/Destroy() //Clean up your toys when you're done.
+ SSradio.remove_object(src, frequency)
+ return ..()
+
+/obj/item/clothing/neck/collar/shock/suicide_act(mob/user)
+ user.visible_message(span_suicide("[user] hooks [user.p_them()]self to the shock collar and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!"))
+ return (FIRELOSS)
+
+//ATTACK HAND IGNORING PARENT RETURN VALUE
+/obj/item/clothing/neck/collar/shock/attack_hand(mob/user)
+ if(iscarbon(user))
+ var/mob/living/carbon/C = user
+ if(src == C.back)
+ to_chat(user, span_warning("You need help taking this off!"))
+ return
+ return ..()
+
+/obj/item/clothing/neck/collar/shock/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/clothing/head/helmet))
+ var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit(user)
+ A.icon = 'icons/obj/assemblies.dmi'
+
+ if(!user.transferItemToLoc(W, A))
+ to_chat(user, span_warning("[W] is stuck to your hand, you cannot attach it to [src]!"))
+ return
+ W.master = A
+ A.part1 = W
+
+ user.transferItemToLoc(src, A, TRUE)
+ master = A
+ A.part2 = src
+
+ user.put_in_hands(A)
+ A.add_fingerprint(user)
+ else
+ return ..()
+
+
+
+/obj/item/clothing/neck/collar/shock/receive_signal(datum/signal/signal)
+ if(!signal || signal.data["code"] != code)
+ return
+
+ if(isliving(loc) && on)
+ if(shock_cooldown)
+ return
+ shock_cooldown = TRUE
+ addtimer(VARSET_CALLBACK(src, shock_cooldown, FALSE), 100)
+ var/mob/living/L = loc
+ step(L, pick(GLOB.cardinals))
+
+ to_chat(L, span_danger("You feel a sharp shock!"))
+ var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
+ s.set_up(3, 1, L)
+ s.start()
+
+ L.Paralyze(5 SECONDS)
+
+ if(master)
+ master.receive_signal()
+ return
+
+/obj/item/clothing/neck/collar/shock/proc/set_frequency(new_frequency)
+ SSradio.remove_object(src, frequency)
+ frequency = new_frequency
+ SSradio.add_object(src, frequency, RADIO_SIGNALER)
+
+/obj/item/clothing/neck/collar/shock/ui_status(mob/user)
+ var/mob/living/carbon/C = user
+ if(C?.back == src)
+ return UI_CLOSE
+ return ..()
+
+/obj/item/clothing/neck/collar/shock/ui_state(mob/user)
+ return GLOB.hands_state
+
+/obj/item/clothing/neck/collar/shock/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "Shock collar", name)
+ ui.open()
+
+/obj/item/clothing/neck/collar/shock/ui_data(mob/user)
+ var/list/data = list()
+ data["power"] = on
+ data["frequency"] = frequency
+ data["code"] = code
+ data["minFrequency"] = MIN_FREE_FREQ
+ data["maxFrequency"] = MAX_FREE_FREQ
+ return data
+
+/obj/item/clothing/neck/collar/shock/ui_act(action, params)
+ if(..())
+ return
+
+ var/mob/living/carbon/C = usr
+ if(C?.back == src)
+ return
+
+ switch(action)
+ if("power")
+ on = !on
+ icon_state = "shock collar[on]"
+ . = TRUE
+ if("freq")
+ var/value = unformat_frequency(params["freq"])
+ if(value)
+ frequency = sanitize_frequency(value, TRUE)
+ set_frequency(frequency)
+ . = TRUE
+ if("code")
+ var/value = text2num(params["code"])
+ if(value)
+ value = round(value)
+ code = clamp(value, 1, 100)
+ . = TRUE
+ if("reset")
+ if(params["reset"] == "freq")
+ frequency = initial(frequency)
+ . = TRUE
+ else if(params["reset"] == "code")
+ code = initial(code)
+ . = TRUE
+
+/obj/item/clothing/neck/choker
+ name = "choker"
+ desc = "Close-fitting necklace worn around the neck, 15 inch in length. Made of velvet."
+ icon_state = "choker_black"
+
+/obj/item/clothing/neck/choker/gold
+ name = "gold choker"
+ desc = "Close-fitting necklace worn around the neck, 15 inch in length. Made of gold."
+ icon_state = "choker_gold"
+
+/obj/item/clothing/neck/maid
+ name = "maid neck cover"
+ desc = "A neckpiece for a maid costume, it smells faintly of disappointment."
+ icon_state = "maid_neck"
\ No newline at end of file
diff --git a/modular_dripstation/code/modules/clothing/accessories.dm b/modular_dripstation/code/modules/clothing/accessories.dm
index fa107a155981..9f145ce5140e 100644
--- a/modular_dripstation/code/modules/clothing/accessories.dm
+++ b/modular_dripstation/code/modules/clothing/accessories.dm
@@ -7,3 +7,35 @@
desc = "Practical? No. Tactical? Also no. Cute? Most definitely yes."
icon_state = "maidapronsynd"
item_state = "maidapronsynd"
+
+/obj/item/clothing/accessory/armband/cargo
+ name = "cargo bay guard armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is brown."
+
+/obj/item/clothing/accessory/armband/engine
+ name = "engineering armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is orange with a reflective strip!"
+
+/obj/item/clothing/accessory/armband/science
+ name = "science armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is purple."
+
+/obj/item/clothing/accessory/armband/service
+ name = "service armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is green."
+
+/obj/item/clothing/accessory/armband/hydro
+ name = "hydroponics armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is green and blue."
+
+/obj/item/clothing/accessory/armband/med
+ name = "medical armband"
+ desc = "An armband, worn by station stuff to display which department they're assigned to. This one is white."
+
+/obj/item/clothing/accessory/armband/medblue
+ name = "medical guard armband"
+ desc = "An armband, worn by station stuff members to display which department they're assigned to. This one is white and green."
+
+/obj/item/clothing/accessory/medal/silver/legal
+ name = "meritous legal medal"
+ desc = "An award issued by the Magistrate to legal staff who uphold the rule of law."
\ No newline at end of file
diff --git a/modular_dripstation/code/modules/clothing/armor.dm b/modular_dripstation/code/modules/clothing/armor.dm
index 1c2ecc5ce471..4cc16094e0a5 100644
--- a/modular_dripstation/code/modules/clothing/armor.dm
+++ b/modular_dripstation/code/modules/clothing/armor.dm
@@ -179,6 +179,15 @@ obj/item/clothing/head/helmet/swat/nanotrasen
armor = list(MELEE = 5, BULLET = 5, LASER = 60, ENERGY = 50, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100, WOUND = 5)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/hit_reflect_chance = 50
+ toggle_message = "You pull the visor down on"
+ alt_toggle_message = "You push the visor up on"
+ can_toggle = 1
+ flags_inv = HIDEEARS|HIDEFACE
+ actions_types = list(/datum/action/item_action/toggle)
+ visor_flags_inv = HIDEFACE
+ toggle_cooldown = 0
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
+ visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/helmet/laserproof/IsReflect(def_zone)
if(!(def_zone in list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES))) //If not shot where ablative is covering you, you don't get the reflection bonus!
@@ -186,6 +195,14 @@ obj/item/clothing/head/helmet/swat/nanotrasen
if (prob(hit_reflect_chance))
return TRUE
+/obj/item/clothing/head/helmet/laserproof/raised/Initialize(mapload)
+ . = ..()
+ up = !up
+ flags_1 ^= visor_flags
+ flags_inv ^= visor_flags_inv
+ flags_cover ^= visor_flags_cover
+ icon_state = "[initial(icon_state)][up ? "up" : ""]"
+
/obj/item/clothing/suit/armor/laserproof
icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
@@ -250,6 +267,11 @@ obj/item/clothing/head/helmet/swat/nanotrasen
flags_cover = HEADCOVERSEYES
armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 10, BOMB = 50, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, WOUND = 20)
+/obj/item/clothing/suit/armor/vest/bulletproof/cybersun
+ name = "combat cybersun vest"
+ desc = "Type III bulletproof armor usually issued to paramilitary groups and real soldiers alike. Protects full body. This model has additional armor against energy based weaponry."
+ armor = list(MELEE = 15, BULLET = 60, LASER = 30, ENERGY = 30, BOMB = 50, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, WOUND = 20)
+
/obj/item/clothing/suit/armor/vest/combat
name = "combat vest"
desc = "Type III bulletproof armor usually issued to paramilitary groups and real soldiers alike. Protects full body and arms. Has additional armor against energy based weaponry."
diff --git a/modular_dripstation/code/modules/clothing/belt.dm b/modular_dripstation/code/modules/clothing/belt.dm
index 42d9959bed73..f2aa0228c5bf 100644
--- a/modular_dripstation/code/modules/clothing/belt.dm
+++ b/modular_dripstation/code/modules/clothing/belt.dm
@@ -8,6 +8,15 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/belt.dmi'
item_state = "medicalbelt"
+/obj/item/storage/belt/medical/full/PopulateContents()
+ SSwardrobe.provide_type(/obj/item/scalpel, src)
+ SSwardrobe.provide_type(/obj/item/retractor, src)
+ SSwardrobe.provide_type(/obj/item/cautery, src)
+ SSwardrobe.provide_type(/obj/item/stack/medical/gauze/twelve, src)
+ SSwardrobe.provide_type(/obj/item/stack/medical/suture, src)
+ SSwardrobe.provide_type(/obj/item/stack/medical/mesh, src)
+ SSwardrobe.provide_type(/obj/item/reagent_containers/autoinjector/medipen/ekit, src)
+
/obj/item/storage/belt/medical/chief
icon = 'icons/obj/clothing/belts.dmi'
worn_icon = 'icons/mob/clothing/belt.dmi'
@@ -30,6 +39,75 @@
icon = 'modular_dripstation/icons/obj/clothing/belt.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/belt.dmi'
+/obj/item/storage/belt/security/chief/Initialize(mapload)
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_items = 6
+ STR.max_combined_w_class = 18
+ STR.max_w_class = WEIGHT_CLASS_NORMAL
+ STR.set_holdable(list(
+ /obj/item/melee/baton,
+ /obj/item/melee/classic_baton,
+ /obj/item/grenade,
+ /obj/item/reagent_containers/spray/pepper,
+ /obj/item/restraints/handcuffs,
+ /obj/item/assembly/flash/handheld,
+ /obj/item/clothing/glasses,
+ /obj/item/ammo_casing/shotgun,
+ /obj/item/ammo_box,
+ /obj/item/storage/box/rubbershot,
+ /obj/item/storage/box/lethalshot,
+ /obj/item/storage/box/breacherslug,
+ /obj/item/storage/box/beanbag,
+ /obj/item/reagent_containers/food/snacks/donut,
+ /obj/item/kitchen/knife/combat,
+ /obj/item/flashlight/seclite,
+ /obj/item/melee/classic_baton/telescopic,
+ /obj/item/radio,
+ /obj/item/pinpointer/tracker,
+ /obj/item/clothing/gloves,
+ /obj/item/restraints/legcuffs/bola,
+ /obj/item/gun/ballistic/revolver/tracking,
+ /obj/item/holosign_creator/security,
+ /obj/item/shield/riot/tele,
+ /obj/item/barrier_taperoll/police,
+ /obj/item/multitool/tricorder,
+ /obj/item/crowbar,
+ /obj/item/screwdriver,
+ /obj/item/weldingtool,
+ /obj/item/wirecutters,
+ /obj/item/wrench,
+ /obj/item/multitool,
+ /obj/item/flashlight,
+ /obj/item/stack/cable_coil,
+ /obj/item/t_scanner,
+ /obj/item/analyzer,
+ /obj/item/geiger_counter,
+ /obj/item/extinguisher/mini,
+ /obj/item/radio,
+ /obj/item/clothing/gloves,
+ /obj/item/holosign_creator/atmos,
+ /obj/item/holosign_creator/engineering,
+ /obj/item/forcefield_projector,
+ /obj/item/assembly/signaler,
+ /obj/item/lightreplacer,
+ /obj/item/construction/rcd,
+ /obj/item/pipe_dispenser,
+ /obj/item/inducer,
+ /obj/item/holosign_creator/multi/chief_engineer,
+ /obj/item/airlock_painter,
+ /obj/item/grenade/chem_grenade/smart_metal_foam,
+ /obj/item/grenade/chem_grenade/metalfoam,
+ /obj/item/storage/bag/construction,
+ /obj/item/handdrill,
+ /obj/item/jawsoflife,
+ /obj/item/shuttle_creator,
+ /obj/item/barrier_taperoll/engineering,
+ /obj/item/storage/bag/sheetsnatcher,
+ /obj/item/boxcutter,
+ /obj/item/holotool
+ ))
+
/obj/item/storage/belt/grenade
icon_state = "grenadebeltnew"
item_state = "grenadebeltnew"
diff --git a/modular_dripstation/code/modules/clothing/combatrig.dm b/modular_dripstation/code/modules/clothing/combatrig.dm
index b3e37f93e077..f3dce14b488e 100644
--- a/modular_dripstation/code/modules/clothing/combatrig.dm
+++ b/modular_dripstation/code/modules/clothing/combatrig.dm
@@ -718,7 +718,7 @@
desc = "A standardized dual-mode helmet derived from more advanced special operations helmets. Designed for security operations in hasard AO`s."
armor = list(MELEE = 30, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, WOUND = 15, ELECTRIC = 100)
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE
- light_color = LIGHT_COLOR_RED
+ light_color = LIGHT_COLOR_DEFAULT
/obj/item/clothing/suit/space/hardsuit/syndi/security
name = "security RIG"
@@ -726,7 +726,7 @@
//item_state = "sec_rig"
item_state = "sec_hardsuit"
hardsuit_type = "sec"
- desc = "A standardized dual-mode RIG derived from more advanced special operations hardsuits. Used by paramilitary groups and PMC alike across human space. Expensive in production and maintaining."
+ desc = "A standardized dual-mode RIG derived from more advanced special operations hardsuits. Used by paramilitary groups and PMC alike affiliated with or contracted by Nanotrasen across human space. Expensive in production and maintaining. Has NT logo on it`s back."
armor = list(MELEE = 30, BULLET = 25, LASER = 30, ENERGY = 10, BOMB = 40, BIO = 100, RAD = 50, FIRE = 75, ACID = 75, WOUND = 15, ELECTRIC = 100)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/security
diff --git a/modular_dripstation/code/modules/clothing/department/civilian.dm b/modular_dripstation/code/modules/clothing/department/civilian.dm
new file mode 100644
index 000000000000..0db550942339
--- /dev/null
+++ b/modular_dripstation/code/modules/clothing/department/civilian.dm
@@ -0,0 +1,35 @@
+/obj/item/clothing/under/maid
+ name = "maid costume"
+ desc = "Maid in USSP."
+ icon_state = "maid"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/civilian/civilian.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi'
+
+/obj/item/clothing/under/rank/civilian/janitor/maid
+ desc = "Special maid uniform for space housekeeping."
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/civilian/civilian.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi'
+
+/obj/item/clothing/under/janimaid
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/civilian/civilian.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi'
+
+/obj/item/clothing/under/lewdmaid
+ name = "maid uniform"
+ desc = "Cosplay maid uniform for your roleplay."
+ icon_state = "maid_lewd"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/civilian/civilian.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi'
+ body_parts_covered = CHEST|GROIN|FEET|LEGS
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/wench
+ name = "wench uniform"
+ desc = "Wench uniform for regular duty."
+ icon_state = "wench"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/civilian/civilian.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi'
+ body_parts_covered = CHEST|GROIN|FEET|LEGS
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
\ No newline at end of file
diff --git a/modular_dripstation/code/modules/clothing/department/command.dm b/modular_dripstation/code/modules/clothing/department/command.dm
index e1fe77e85209..cea6b1205940 100644
--- a/modular_dripstation/code/modules/clothing/department/command.dm
+++ b/modular_dripstation/code/modules/clothing/department/command.dm
@@ -1,16 +1,16 @@
// ###### HOP ######
-/obj/item/clothing/under/rank/head_of_personnel
+/obj/item/clothing/under/rank/command/head_of_personnel
icon = 'modular_dripstation/icons/obj/clothing/uniform/command/hop.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/hop.dmi'
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/head_of_personnel/skirt
+/obj/item/clothing/under/rank/command/head_of_personnel/skirt
can_adjust = TRUE
mutantrace_variation = DIGITIGRADE_VARIATION
fitted = NO_FEMALE_UNIFORM
alt_covers_chest = FALSE
-/obj/item/clothing/under/rank/head_of_personnel/dress
+/obj/item/clothing/under/rank/command/head_of_personnel/dress
name = "head of personnel's dress"
icon_state = "hop_dress"
can_adjust = FALSE
@@ -18,7 +18,7 @@
body_parts_covered = CHEST|GROIN|ARMS
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/head_of_personnel/paradefancy
+/obj/item/clothing/under/rank/command/head_of_personnel/paradefancy
name = "head of personnel's fancy uniform"
desc = "For these special occasions when paperwork can wait."
icon_state = "hopwhimsy"
@@ -26,36 +26,36 @@
can_adjust = FALSE
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/head_of_personnel/parade
+/obj/item/clothing/under/rank/command/head_of_personnel/parade
name = "head of personnel's parade uniform"
desc = "A luxurious uniform for the head of personnel, woven in a deep blue. On the lapel is a small pin in the shape of a corgi's head."
icon_state = "hop_parade_male"
can_adjust = FALSE
-/obj/item/clothing/under/rank/head_of_personnel/parade/skirt
+/obj/item/clothing/under/rank/command/head_of_personnel/parade/skirt
name = "head of personnel's parade skirt"
icon_state = "hop_parade_female"
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
-/obj/item/clothing/under/rank/head_of_personnel/turtleneck
+/obj/item/clothing/under/rank/command/head_of_personnel/turtleneck
name = "head of personnel's turtleneck"
desc = "A dark teal turtleneck and black khakis, for a second with a superior sense of style."
icon_state = "hopturtle"
can_adjust = TRUE
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/head_of_personnel/turtleneck/alt
+/obj/item/clothing/under/rank/command/head_of_personnel/turtleneck/alt
icon_state = "hopturtle_alt"
-/obj/item/clothing/under/rank/head_of_personnel/skirt/turtleneck
+/obj/item/clothing/under/rank/command/head_of_personnel/skirt/turtleneck
name = "head of personnel's turtleneck skirt"
desc = "A dark teal turtleneck and tanblack khaki skirt, for a second with a superior sense of style."
icon_state = "hopturtle_skirt"
body_parts_covered = CHEST|GROIN|ARMS
fitted = NO_FEMALE_UNIFORM
-/obj/item/clothing/under/rank/head_of_personnel/skirt/secretary
+/obj/item/clothing/under/rank/command/head_of_personnel/skirt/secretary
name = "head of personnel's secretary skirt"
icon_state = "hop_secretary"
fitted = NO_FEMALE_UNIFORM
@@ -107,24 +107,24 @@
item_state = "sunhudskill"
// ###### CAPTAIN ######
-/obj/item/clothing/under/rank/captain
+/obj/item/clothing/under/rank/command/captain
icon = 'modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi'
alt_covers_chest = FALSE
-/obj/item/clothing/under/rank/captain/skirt
+/obj/item/clothing/under/rank/command/captain/skirt
can_adjust = TRUE
alt_covers_chest = TRUE
fitted = NO_FEMALE_UNIFORM
-/obj/item/clothing/under/rank/captain/formal
+/obj/item/clothing/under/rank/command/captain/formal
name = "captain's formal uniform"
desc = "Parade version of station captain`s uniform."
icon_state = "station_captain"
item_state = "station_captain"
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/captain/formal/skirt
+/obj/item/clothing/under/rank/command/captain/formal/skirt
name = "captain's formal skirt"
desc = "Parade version of station captain`s skirt."
icon_state = "station_captain_skirt"
@@ -135,14 +135,14 @@
/obj/item/clothing/under/yogs/victoriouscaptainuniform
can_adjust = FALSE
-/obj/item/clothing/under/rank/captain/kilt
+/obj/item/clothing/under/rank/command/captain/kilt
desc = "Not a skirt, it is, however, armoured and decorated with a tartan sash."
name = "captain's kilt"
icon_state = "capkilt"
item_state = "kilt"
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/captain/dress
+/obj/item/clothing/under/rank/command/captain/dress
name = "captain's dress"
icon_state = "cap_secretary"
can_adjust = FALSE
@@ -152,6 +152,7 @@
/obj/item/clothing/under/captainparade
icon = 'modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi'
+ icon_state = "captain_parade"
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi'
/obj/item/clothing/suit/armor/vest/capcarapace
@@ -191,6 +192,12 @@
desc = "Worn by a Captain to show their class."
icon_state = "captunic"
flags_inv = null
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ armor = list(MELEE = 20, BULLET = 25, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 0, ACID = 50)
+
+/obj/item/clothing/suit/captunic/Initialize(mapload)
+ . = ..()
+ allowed = GLOB.security_wintercoat_allowed
/obj/item/clothing/suit/armor/vest/capcarapace/jacket
name = "captain's jacket"
@@ -237,8 +244,12 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
/obj/item/clothing/head/caphat/parade
- icon = 'icons/obj/clothing/hats/hats.dmi'
- worn_icon = 'icons/mob/clothing/head/head.dmi'
+ icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
+
+/obj/item/clothing/head/caphat/parade/white
+ icon_state = "cap_parade"
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
/obj/item/clothing/head/beret/captain
name = "captain's formal beret"
@@ -273,26 +284,94 @@
/////////NT Rep
/obj/item/clothing/under/rank/centcom_officer/ntrep
- desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears station name on the left shoulder."
- name = "\improper Formal Nanotrasen Representative's Uniform"
- icon = 'modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi'
- worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi'
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Nanotrasen Representative\" and bears station name on the left shoulder."
+ name = "\improper Nanotrasen Representative's Uniform"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/command/ntrep.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/ntrep.dmi'
+ icon_state = "ntrep"
/obj/item/clothing/under/rank/centcom_officer/ntrep/Initialize()
. = ..()
desc = "Gold trim on space-black cloth, this uniform bears [station_name()] on the left shoulder."
+/obj/item/clothing/under/rank/centcom_officer/ntrep/skirt
+ name = "\improper Nanotrasen Representative's Skirt"
+ icon_state = "ntrep_skirt"
+
+/obj/item/clothing/under/rank/centcom_officer/ntrep/formal
+ name = "\improper Formal Nanotrasen Representative's Uniform"
+ icon_state = "ntrep_formal"
+
+/obj/item/clothing/suit/toggle/nt_jacket/internalaffairs
+ name = "\improper Internal Affairs jacket"
+ desc = "A smooth black jacket."
+ icon_state = "nt_jacket"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ body_parts_covered = CHEST|GROIN|ARMS
+ cold_protection = CHEST|GROIN|ARMS
+ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
+
+/obj/item/clothing/suit/toggle/ntrep
+ name = "\improper Nanotrasen Representative jacket"
+ desc = "A fancy black jacket; standard issue to Nanotrasen Representatives."
+ icon_state = "ntrep"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ body_parts_covered = CHEST|GROIN|ARMS
+ cold_protection = CHEST|GROIN|ARMS
+ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
+
+/obj/item/clothing/head/ntrep
+ name = "Nanotrasen Representative`s hat"
+ desc = "The hat of the Nanotrasen Representative."
+ icon_state = "ntrep"
+
+/obj/item/clothing/head/ntrep/high
+ name = "Nanotrasen Representative`s high hat"
+ desc = "The high hat of the Nanotrasen Representative."
+ icon_state = "ntrep_high"
+
/////////Magistrate
/obj/item/clothing/under/rank/centcom_officer/magistrate
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears station name on the left shoulder."
- name = "\improper Formal Magistrate's Uniform"
- icon = 'modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi'
- worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi'
+ name = "\improper Magistrate's Uniform"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/command/magistrate.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/magistrate.dmi'
+ icon_state = "magistrate"
/obj/item/clothing/under/rank/centcom_officer/magistrate/Initialize()
. = ..()
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears [station_name()] on the left shoulder."
+/obj/item/clothing/under/rank/centcom_officer/magistrate/skirt
+ name = "\improper Nanotrasen Magistrate's Skirt"
+ icon_state = "magistrate_skirt"
+
+/obj/item/clothing/under/rank/centcom_officer/magistrate/formal
+ name = "\improper Formal Magistrate's Uniform"
+ icon_state = "magistrate_formal"
+
+/obj/item/clothing/suit/toggle/NTjacket_black
+ name = "\improper Magistrate jacket"
+ desc = "A smooth black and gold jacket."
+ icon_state = "NTjacket_black"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ body_parts_covered = CHEST|GROIN|ARMS
+ cold_protection = CHEST|GROIN|ARMS
+ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
+
+/obj/item/clothing/suit/toggle/dress_NTjacket_black
+ name = "\improper Magistrate dress jacket"
+ desc = "A smooth black and gold jacket."
+ icon_state = "dress_NTjacket_black"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ body_parts_covered = CHEST|GROIN|ARMS
+ cold_protection = CHEST|GROIN|ARMS
+ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
+
////////Blue Shield////////
/obj/item/clothing/suit/armor/vest/blueshield
name = "blueshield security armor"
@@ -316,38 +395,94 @@
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
-/obj/item/clothing/under/rank/centcom_officer/centcom_shield/blueshield
+/obj/item/clothing/under/rank/blueshield
name = "blueshield's uniform"
desc = "A short-sleeved black uniform, paired with grey digital-camo cargo pants, all made out of a sturdy material. Blueshield standard issue."
icon_state = "blueshield"
icon = 'modular_dripstation/icons/obj/clothing/uniform/command/blueshield.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/command/blueshield.dmi'
+ armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 0, FIRE = 20, ACID = 30)
-/obj/item/clothing/under/rank/centcom_officer/centcom_shield/blueshield/skirt
+/obj/item/clothing/under/rank/blueshield/skirt
name = "blueshield's skirt"
desc = "A short, black and grey with blue markings skirted uniform. For the feminine Blueshield."
icon_state = "blueshield_skirt"
-/obj/item/clothing/under/rank/centcom_officer/centcom_shield/blueshield
+/obj/item/clothing/under/rank/blueshield/urban
name = "blueshield's jumpsuit"
desc = "A short-sleeved grey jumpsuit, paired with grey digital-camo cargo pants, all made out of a sturdy material. Blueshield ERT-style."
icon_state = "shield_urban"
-/obj/item/clothing/under/rank/centcom_officer/centcom_shield/blueshield
+/obj/item/clothing/under/rank/blueshield/grey
name = "blueshield's turtle"
desc = "A short-sleeved grey turtle, paired with grey digital-camo cargo pants, all made out of a sturdy material. Blueshield tactical-style."
icon_state = "blueshield_turtle_grey"
-/obj/item/clothing/under/rank/centcom_officer/centcom_shield/blueshield
+/obj/item/clothing/under/rank/blueshield/grey/skirt
name = "blueshield's skirtle"
desc = "A short, black and grey with blue markings skirted tactical skirtle. For the feminine Blueshield."
icon_state = "blueshield_turtle_grey_skirt"
+/obj/item/clothing/under/rank/blueshield/white
+ name = "blueshield's turtle"
+ desc = "A short-sleeved white formal shirt, paired with black pants, all made out of a sturdy material. Blueshield regular white."
+ icon_state = "blueshield_white"
+
+/obj/item/clothing/under/rank/blueshield/white/skirt
+ name = "blueshield's skirtle"
+ desc = "A short, white shirt with blue markings and tactical skirt. For the feminine Blueshield."
+ icon_state = "blueshield_white_skirt"
+
+/obj/item/clothing/under/rank/blueshield/blue
+ name = "blueshield's blue uniform"
+ desc = "A short-sleeved blue formal shirt, paired with black pants, all made out of a sturdy material. Blueshield regular blue."
+ icon_state = "blueshieldsuit_blue"
+
+/obj/item/clothing/under/rank/blueshield/blue/skirt
+ name = "blueshield's skirtle"
+ desc = "A short, blue shirt with white markings and tactical skirt. For the feminine Blueshield."
+ icon_state = "blueshieldskirt_blue"
+
+/obj/item/clothing/under/rank/blueshield/formal
+ name = "blueshield's formal uniform"
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Close Protection\" and bears station name on the left shoulder."
+ icon_state = "blueshield_formal"
+
+/obj/item/clothing/under/rank/blueshield/formal/Initialize()
+ . = ..()
+ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Close Protection\" and bears [station_name()] on the left shoulder."
+
+/obj/item/clothing/under/rank/blueshield/turtle
+ desc = "It's a turtleneck worn by low rank Shields."
+ name = "\improper Close Protection Blueshield Lieutenant's turtleneck"
+ icon_state = "bs_turtleneck"
+
+/obj/item/clothing/under/rank/blueshield/turtle_skirt
+ desc = "It's a jumpskirt worn by low rank Shields."
+ name = "\improper Close Protection Blueshield Lieutenant's jumpskirt"
+ icon_state = "bs_skirtleneck"
+
/obj/item/clothing/head/beret/blueshield
- name = "blueshield bulletproof armor"
+ name = "blueshield`s bulletproof armor"
desc = "An armored bulletproof vest with the badge of a Blueshield Lieutenant."
icon_state = "bulletproof_bs"
+/obj/item/clothing/mask/gas/sechailer/swat/blueshield
+ name = "\improper Close Protection SWAT mask"
+ icon_state = "blue_sechailer"
+ icon = 'modular_dripstation/icons/obj/clothing/masks.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/masks.dmi'
+
+/obj/item/storage/belt/military/assault/blueshield/Initialize(mapload) // Amber-like
+ . = ..()
+ new /obj/item/reagent_containers/spray/pepper(src)
+ new /obj/item/assembly/flash/handheld(src)
+ new /obj/item/flashlight/flare(src)
+ new /obj/item/restraints/handcuffs/cable/zipties(src)
+ new /obj/item/reagent_containers/medspray/synthflesh(src)
+ new /obj/item/reagent_containers/autoinjector/medipen/survival(src)
+ new /obj/item/reagent_containers/autoinjector/medipen/survival(src)
+
////////Formal coat////////
/obj/item/clothing/suit/toggle/capformal
name = "captain's formal coat"
diff --git a/modular_dripstation/code/modules/clothing/department/corporate.dm b/modular_dripstation/code/modules/clothing/department/corporate.dm
index af2d4c441df4..4e213613d7e4 100644
--- a/modular_dripstation/code/modules/clothing/department/corporate.dm
+++ b/modular_dripstation/code/modules/clothing/department/corporate.dm
@@ -188,6 +188,52 @@
icon = 'modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi'
+/obj/item/clothing/under/syndicate/sniper
+ name = "executive suit"
+ desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp."
+ icon_state = "tactical_suit"
+ item_state = "bl_suit"
+ can_adjust = FALSE
+ mutantrace_variation = DIGITIGRADE_VARIATION
+
+/obj/item/clothing/under/syndicate/sniper/female
+ desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit for women. Intended for the most formal operator. The collar is really sharp."
+ icon_state = "tactical_suit_fem"
+ item_state = "black_suit_fem"
+ can_adjust = FALSE
+ mutantrace_variation = NONE
+
+/obj/item/clothing/suit/armor/vest/capcarapace/syndicate
+ desc = "A fireproof armored chestpiece reinforced with ceramic plates and plasteel pauldrons to provide additional protection whilst still offering maximum mobility and flexibility. Issued only to the syndicate's finest, although it does chafe your nipples."
+ icon_state = "syndie_carapace"
+ resistance_flags = FIRE_PROOF
+
+/obj/item/clothing/suit/toggle/capformal/syndicate
+ icon_state = "syndie_coat"
+ resistance_flags = FIRE_PROOF
+ mutantrace_variation = NONE
+
+/obj/item/clothing/suit/armor/hos/syndicate
+ name = "syndicate captain's armored coat"
+ mutantrace_variation = NONE
+ pocket_storage_component_path = null
+ armor = list(MELEE = 40, BULLET = 35, LASER = 40, ENERGY = 25, BOMB = 25, BIO = 0, RAD = 0, FIRE = 100, ACID = 90, WOUND = 15)
+ resistance_flags = FIRE_PROOF
+
+/obj/item/clothing/suit/armor/hos/syndicate/winter
+ name = "syndicate captain's unarmored winter coat"
+ desc = "Winter fashion!"
+ armor = list(MELEE = 10, BULLET = 15, LASER = 10, ENERGY = 25, BOMB = 25, BIO = 0, RAD = 0, FIRE = 100, ACID = 90, WOUND = 15)
+ resistance_flags = FIRE_PROOF
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+
+/obj/item/clothing/suit/armor/hos/syndicate/winter/armored
+ name = "syndicate captain's armored winter coat"
+ desc = "A sinister looking vest of advanced armor worn over a black and red fireproof jacket. The gold collar and shoulders denote that this belongs to a high ranking syndicate officer."
+ armor = list(MELEE = 40, BULLET = 35, LASER = 40, ENERGY = 25, BOMB = 25, BIO = 0, RAD = 0, FIRE = 100, ACID = 90, WOUND = 15)
+ resistance_flags = FIRE_PROOF
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+
/////Donk Co//////
/obj/item/clothing/under/syndicate/donk
name = "Donk! Co. employee uniform"
@@ -274,7 +320,7 @@
/obj/item/clothing/under/syndicate/cybersun
name = "Cybersun clerk uniform"
desc = "Standart uniform worn by personnel employed by Cybersun industries."
- icon_state = "cybersun_combat"
+ icon_state = "cybersun_clerk"
mutantrace_variation = NONE
/obj/item/clothing/under/syndicate/cybersun/lab
@@ -304,6 +350,12 @@
mutantrace_variation = NONE
armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 0, FIRE = 60, ACID = 100, WOUND = 10, ELECTRIC = 0)
+/obj/item/clothing/under/costume/mech_suit/cybersun
+ desc = "An armored mech pilot suit, used exclusively by Cybersun mech operators."
+ icon_state = "cybersun_mech_suit"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi'
+
//////////Waffle Co//////////////
/obj/item/clothing/under/syndicate/waffle
name = "Waffle Co combat uniform"
@@ -397,3 +449,4 @@
icon_state = "gec_ce"
mutantrace_variation = NONE
armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 80, ACID = 40, WOUND = 0, ELECTRIC = 0)
+
diff --git a/modular_dripstation/code/modules/clothing/department/engineering.dm b/modular_dripstation/code/modules/clothing/department/engineering.dm
index b70c30bc8f22..f4bbeb583dfc 100644
--- a/modular_dripstation/code/modules/clothing/department/engineering.dm
+++ b/modular_dripstation/code/modules/clothing/department/engineering.dm
@@ -22,14 +22,14 @@
icon_state = "hazard_b"
// ###### Engineer ######
-/obj/item/clothing/under/rank/engineer
+/obj/item/clothing/under/rank/engineering/engineer
icon = 'modular_dripstation/icons/obj/clothing/uniform/engineering/engineer.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/engineering/engineer.dmi'
-/obj/item/clothing/under/rank/engineer/skirt
+/obj/item/clothing/under/rank/engineering/engineer/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/engineer/gorka
+/obj/item/clothing/under/rank/engineering/engineer/gorka
name = "engineer`s gorka"
desc = "Gorka undersuit for hard work."
icon_state = "engine_gorka"
@@ -37,14 +37,14 @@
mutantrace_variation = NONE
// ###### Atmostech ######
-/obj/item/clothing/under/rank/atmospheric_technician
+/obj/item/clothing/under/rank/engineering/atmospheric_technician
icon = 'modular_dripstation/icons/obj/clothing/uniform/engineering/atmos.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/engineering/atmos.dmi'
-/obj/item/clothing/under/rank/atmospheric_technician/skirt
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/atmospheric_technician/gorka
+/obj/item/clothing/under/rank/engineering/atmospheric_technician/gorka
name = "atmospheric technician`s gorka"
desc = "Gorka undersuit for hard work."
icon_state = "atmos_gorka"
@@ -73,35 +73,56 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
// ###### Chief Engineer ######
-/obj/item/clothing/under/rank/chief_engineer
+/obj/item/clothing/under/rank/engineering/chief_engineer
icon = 'modular_dripstation/icons/obj/clothing/uniform/engineering/chief.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/engineering/chief.dmi'
-/obj/item/clothing/under/rank/chief_engineer/skirt
+/obj/item/clothing/under/rank/engineering/chief_engineer/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/chief_engineer/alt
+/obj/item/clothing/under/rank/engineering/chief_engineer/alt
icon_state = "chiefengineer_alt"
-/obj/item/clothing/under/rank/chief_engineer/gorka
+/obj/item/clothing/under/rank/engineering/chief_engineer/gorka
name = "chief`s gorka"
desc = "Gorka undersuit for hard work."
icon_state = "chiefengineer_gorka"
can_adjust = FALSE
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/chief_engineer/formal
+/obj/item/clothing/under/rank/engineering/chief_engineer/formal
name = "chief engineer's official uniform"
desc = "It's an official version of high visibility uniform given to the finest engineers. It has minor radiation shielding."
- name = "network admin`s gorka"
- desc = "Gorka undersuit for hard work."
icon_state = "chiefengineer_formal"
-/obj/item/clothing/under/rank/chief_engineer/skirt/formal
+/obj/item/clothing/under/rank/engineering/chief_engineer/skirt/formal
name = "chief engineer's official skirt"
desc = "It's an official version of high visibility skirt given to the finest engineers. It has minor radiation shielding."
- icon_state = "chiefengineer_formal"
+ icon_state = "chiefengineer_formal_skirt"
+
+/obj/item/clothing/under/rank/engineering/chief_engineer/turtle
+ name = "chief engineer's turtleneck"
+ desc = "Sleek industrial version of high visibility uniform given to the finest engineers. Provides tacticoolness."
+ icon_state = "turtleneck_chiefengineer"
+
+/obj/item/clothing/under/rank/engineering/chief_engineer/casual
+ name = "casual chief engineer uniform"
+ desc = "Even the CE has to take a break from setting up the engine somet- and the singlo is loose."
+ icon_state = "ce_suit"
+ can_adjust = FALSE
+ mutantrace_variation = NONE
+
+/obj/item/clothing/head/beret/ce
+ name = "chief engineer's white beret"
+ icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
+/obj/item/clothing/head/beret/ce/alt
+ name = "chief engineer's beret"
+ desc = "A fancy beret designed exactly to the Chief Engineer's tastes, minus the LEDs."
+ icon_state = "ceberet"
+ icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
////////Wardrobs/////////
/obj/machinery/vending/wardrobe/engi_wardrobe
@@ -110,10 +131,10 @@
/obj/item/storage/backpack/industrial = 3,
/obj/item/storage/backpack/satchel/eng = 3,
/obj/item/clothing/suit/hooded/wintercoat/engineering = 3,
- /obj/item/clothing/under/rank/engineer = 3,
- /obj/item/clothing/under/rank/engineer/skirt = 3,
+ /obj/item/clothing/under/rank/engineering/engineer = 3,
+ /obj/item/clothing/under/rank/engineering/engineer/skirt = 3,
/obj/item/clothing/under/rank/engineering/engineer/hazard = 3,
- /obj/item/clothing/under/rank/engineer/gorka = 3,
+ /obj/item/clothing/under/rank/engineering/engineer/gorka = 3,
/obj/item/clothing/suit/hazardvest = 3,
/obj/item/clothing/shoes/workboots = 3,
/obj/item/clothing/shoes/xeno_wraps/engineering = 3,
@@ -133,9 +154,9 @@
/obj/item/storage/backpack/industrial/atmos = 2,
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos = 2,
/obj/item/clothing/head/beret/atmos = 2,
- /obj/item/clothing/under/rank/atmospheric_technician = 2,
- /obj/item/clothing/under/rank/atmospheric_technician/skirt = 2,
- /obj/item/clothing/under/rank/atmospheric_technician/gorka = 2,
+ /obj/item/clothing/under/rank/engineering/atmospheric_technician = 2,
+ /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt = 2,
+ /obj/item/clothing/under/rank/engineering/atmospheric_technician/gorka = 2,
/obj/item/clothing/shoes/workboots = 2)
contraband = list(/obj/item/clothing/under/syndicate/tacticool/atmos = 1)
diff --git a/modular_dripstation/code/modules/clothing/department/medical.dm b/modular_dripstation/code/modules/clothing/department/medical.dm
index c31e0f67f72a..13061502e91d 100644
--- a/modular_dripstation/code/modules/clothing/department/medical.dm
+++ b/modular_dripstation/code/modules/clothing/department/medical.dm
@@ -1,33 +1,39 @@
// ###### CMO ######
-/obj/item/clothing/under/rank/chief_medical_officer
+/obj/item/clothing/under/rank/medical/chief_medical_officer
icon_state = "cmo"
icon = 'modular_dripstation/icons/obj/clothing/uniform/medical/cmo.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/medical/cmo.dmi'
mutantrace_variation = DIGITIGRADE_VARIATION
-/obj/item/clothing/under/rank/chief_medical_officer/skirt
+/obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
icon_state = "cmo_skirt"
can_adjust = TRUE
-/obj/item/clothing/under/rank/chief_medical_officer/alt
+/obj/item/clothing/under/rank/medical/chief_medical_officer/alt
icon_state = "cmo_alt"
can_adjust = TRUE
mutantrace_variation = DIGITIGRADE_VARIATION
-/obj/item/clothing/under/rank/chief_medical_officer/skirt/alt
+/obj/item/clothing/under/rank/medical/chief_medical_officer/skirt/alt
icon_state = "cmo_alt_skirt"
can_adjust = TRUE
-/obj/item/clothing/under/rank/chief_medical_officer/turtleneck
+/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck
icon_state = "cmoturtle"
can_adjust = TRUE
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/chief_medical_officer/turtleneck/alt
+/obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck/alt
icon_state = "cmoturtle_blue"
can_adjust = TRUE
mutantrace_variation = NONE
+/obj/item/clothing/under/rank/medical/chief_medical_officer/scrcmo
+ name = "chief medical scrubs"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in CMO colors."
+ icon_state = "scrubscmo"
+ mutantrace_variation = NONE
+
/obj/item/clothing/head/beret/cmo
worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
@@ -57,6 +63,9 @@
// ###### PARAMED ######
/obj/item/clothing/under/rank/medical/paramedic
+ name = "paramedic jumpsuit"
+ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic."
+ icon_state = "paramed"
can_adjust = TRUE
icon = 'modular_dripstation/icons/obj/clothing/uniform/medical/paramedic.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/medical/paramedic.dmi'
@@ -64,7 +73,6 @@
/obj/item/clothing/under/rank/medical/paramedic/skirt
name = "paramedic jumpskirt"
- desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic."
icon_state = "paramed_skirt"
mutantrace_variation = NONE
fitted = FEMALE_UNIFORM_TOP
@@ -74,6 +82,11 @@
name = "em technician jumpsuit"
icon_state = "emt"
+/obj/item/clothing/under/rank/medical/paramedic/emt/white
+ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained emergency medical technician."
+ name = "em technician jumpsuit (White)"
+ icon_state = "emt_white"
+
/obj/item/clothing/under/rank/medical/paramedic/emt/skirt
name = "em technician jumpskirt"
desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained emergency medical technician."
@@ -81,10 +94,31 @@
fitted = FEMALE_UNIFORM_TOP
mutantrace_variation = NONE
+/obj/item/clothing/under/rank/medical/paramedic/emt/skirt/white
+ name = "em technician jumpskirt (White)"
+ icon_state = "emt_skirt_white"
+
/obj/item/clothing/under/rank/medical/paramedic/recovery
name = "emergency medical technician's recovery undersuit"
desc = "A verstile blue and white uniform honored to hard working recovery medics in hazardous environments. It has minor protection against biohazards."
mutantrace_variation = DIGITIGRADE_VARIATION
+ icon_state = "recovery_emt"
+ can_adjust = FALSE
+
+/obj/item/clothing/suit/hooded/wintercoat/medical/paramedic
+ icon_state = "coatparamedic"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+
+/obj/item/clothing/suit/hooded/wintercoat/medical/paramedic/emt
+ icon_state = "coatemt"
+ hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/paramedic/emt
+
+/obj/item/clothing/head/hooded/winterhood/medical/paramedic
+ icon_state = "hood_paramedic"
+
+/obj/item/clothing/head/hooded/winterhood/medical/paramedic/emt
+ icon_state = "hood_emt"
/obj/machinery/vending/wardrobe/para_wardrobe
name = "\improper ParaDrobe"
@@ -92,20 +126,26 @@
product_ads = "Make those blood stains look fashionable!!"
vend_reply = "Thank you for using the ParaDrobe!"
default_price = 50
- icon_vend = "medidrobe-vend"
- icon_deny = "medidrobe-deny"
+ icon_state = "paradrobe"
+ icon_vend = "paradrobe-vend"
+ icon_deny = "paradrobe-deny"
req_access = list(ACCESS_PARAMEDIC)
products = list(/obj/item/clothing/under/rank/medical/paramedic = 2,
/obj/item/clothing/under/rank/medical/paramedic/skirt = 2,
/obj/item/clothing/under/rank/medical/paramedic/emt = 1,
/obj/item/clothing/under/rank/medical/paramedic/emt/skirt = 1,
+ /obj/item/clothing/under/rank/medical/paramedic/emt/white = 1,
+ /obj/item/clothing/under/rank/medical/paramedic/emt/skirt/white = 1,
/obj/item/clothing/under/rank/medical/paramedic/recovery = 1,
/obj/item/clothing/suit/toggle/labcoat/emt/paramedic = 2,
/obj/item/clothing/suit/toggle/labcoat/emt = 1,
/obj/item/clothing/suit/toggle/labcoat/emt/green = 1,
- /obj/item/clothing/suit/toggle/emt_vest = 2,
- /obj/item/clothing/suit/toggle/emt_vest/jacket = 2,
- /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic = 2,
+ /obj/item/clothing/suit/toggle/emt_vest = 1,
+ /obj/item/clothing/suit/toggle/emt_vest/jacket = 1,
+ /obj/item/clothing/suit/toggle/emt_vest/jacket/paramedic = 2,
+ /obj/item/clothing/suit/toggle/emt_vest/jacket/highvis = 1,
+ /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic = 1,
+ /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic/emt = 1,
/obj/item/clothing/head/beret/emt = 1,
/obj/item/clothing/head/beret/emt/green = 1,
/obj/item/clothing/head/beret/emt/paramed = 1,
@@ -114,6 +154,7 @@
/obj/item/clothing/head/soft/emt/paramed = 1,
/obj/item/clothing/gloves/color/latex = 2,
/obj/item/clothing/shoes/sneakers/black = 2,
+ /obj/item/clothing/shoes/sneakers/blue = 2,
/obj/item/clothing/shoes/xeno_wraps/medical = 2,
/obj/item/storage/backpack/emt = 1,
/obj/item/storage/backpack/satchel/emt = 1,
@@ -139,6 +180,24 @@
icon_state = "virology_skirt"
+// ###### Psych ######
+/obj/item/clothing/under/rank/psych
+ icon_state = "psych"
+ icon = 'modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi'
+ mutantrace_variation = DIGITIGRADE_VARIATION
+ can_adjust = TRUE
+
+/obj/item/clothing/under/rank/psych/skirt
+ icon_state = "psych_skirt"
+ mutantrace_variation = NONE
+ fitted = FEMALE_UNIFORM_TOP
+
+/obj/item/clothing/under/rank/psych/turtleneck
+ icon_state = "psychturtle"
+ mutantrace_variation = NONE
+
+
// ###### Chemistry ######
/obj/item/clothing/under/rank/chemist
icon_state = "chemistry"
@@ -172,46 +231,37 @@
/obj/item/clothing/gloves/color/latex = 2,
/obj/item/storage/backpack/chemistry = 2,
/obj/item/storage/backpack/satchel/chem = 2,
+ /obj/item/storage/backpack/duffelbag/chemistry = 2,
/obj/item/storage/bag/chemistry = 4)
// ###### MD ######
-/obj/item/clothing/under/rank/nursesuit
+/obj/item/clothing/under/rank/medical/nursesuit
-/obj/item/clothing/under/rank/medical
+/obj/item/clothing/under/rank/medical/doctor
icon = 'modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi'
-/obj/item/clothing/under/rank/medical/blue
+/obj/item/clothing/under/rank/medical/doctor/blue
icon = 'icons/obj/clothing/uniforms.dmi'
worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
-/obj/item/clothing/under/rank/medical/green
+/obj/item/clothing/under/rank/medical/doctor/green
icon = 'icons/obj/clothing/uniforms.dmi'
worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
-/obj/item/clothing/under/rank/medical/purple
+/obj/item/clothing/under/rank/medical/doctor/purple
icon = 'icons/obj/clothing/uniforms.dmi'
worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
-/obj/item/clothing/under/rank/medical/black
+/obj/item/clothing/under/rank/medical/doctor/black
name = "medical scrubs"
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in black."
icon_state = "scrubsblack"
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/medical/scrcmo
- name = "medical scrubs"
- desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in CMO colors."
- icon_state = "scrubscmo"
- mutantrace_variation = NONE
-
/obj/item/clothing/under/rank/medical/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/psych
- icon = 'icons/obj/clothing/uniforms.dmi'
- worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
-
/obj/machinery/vending/wardrobe/medi_wardrobe
extra_price = 150
products = list(/obj/item/clothing/accessory/pocketprotector = 4,
@@ -220,14 +270,14 @@
/obj/item/storage/backpack/satchel/med = 4,
/obj/item/clothing/head/beret/med = 4,
/obj/item/clothing/suit/hooded/wintercoat/medical = 4,
- /obj/item/clothing/under/rank/nursesuit = 4,
+ /obj/item/clothing/under/rank/medical/nursesuit = 4,
/obj/item/clothing/head/nursehat = 4,
/obj/item/clothing/under/yogs/nursedress = 4,
- /obj/item/clothing/under/rank/medical/skirt= 4,
- /obj/item/clothing/under/rank/medical/blue = 4,
- /obj/item/clothing/under/rank/medical/green = 4,
- /obj/item/clothing/under/rank/medical/purple = 4,
- /obj/item/clothing/under/rank/medical = 4,
+ /obj/item/clothing/under/rank/medical/doctor = 4,
+ /obj/item/clothing/under/rank/medical/doctor/skirt= 4,
+ /obj/item/clothing/under/rank/medical/doctor/blue = 4,
+ /obj/item/clothing/under/rank/medical/doctor/green = 4,
+ /obj/item/clothing/under/rank/medical/doctor/purple = 4,
/obj/item/clothing/suit/toggle/labcoat/md = 4,
/obj/item/clothing/shoes/sneakers/white = 4,
/obj/item/clothing/shoes/xeno_wraps/medical = 4,
diff --git a/modular_dripstation/code/modules/clothing/department/research.dm b/modular_dripstation/code/modules/clothing/department/research.dm
index 623ad89d3597..3fb1c9c2c41d 100644
--- a/modular_dripstation/code/modules/clothing/department/research.dm
+++ b/modular_dripstation/code/modules/clothing/department/research.dm
@@ -1,7 +1,7 @@
// ###### RD ######
/obj/item/clothing/suit/toggle/labcoat/science/rd
name = "research directors labcoat"
- desc = "A Nanotrasen special fancy labcoat for Research Directors."
+ desc = "A Nanotrasen special fancy labcoat for Research and Development finest. El Psy Kongroo!"
icon_state = "labcoat_rd"
icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
@@ -9,12 +9,25 @@
/obj/item/clothing/suit/toggle/labcoat/science/brown
name = "research directors brown labcoat"
- desc = "A Nanotrasen standart brown labcoat for Research Directors."
+ desc = "A Nanotrasen standart brown labcoat for Research Directors. You should be reasonable while wearing this."
icon_state = "labcoat_rd_brown"
icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
mutantrace_variation = NONE
+/obj/item/clothing/suit/toggle/labcoat/science/purple
+ name = "research directors purple labcoat"
+ desc = "A Nanotrasen purple labcoat for Research Directors. Why it`s in your garment?"
+ icon_state = "labcoat_purpleaf"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ mutantrace_variation = NONE
+
+/obj/item/clothing/suit/toggle/labcoat/long
+ name = "long labcoat"
+ desc = "Standart long labcoat for mad or sad scientists. El Psy Kongroo!"
+ icon_state = "labcoat_long"
+
/obj/item/clothing/head/beret/rd
desc = "A brown beret with a science insignia emblazoned on it. It has that authentic burning plasma smell, with a hint of tritium."
icon_state = "beretrdalt"
@@ -55,25 +68,25 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/eyes.dmi'
glass_colour_type = /datum/client_colour/glass_colour/green
-/obj/item/clothing/under/rank/research_director
+/obj/item/clothing/under/rank/rnd/research_director
icon = 'modular_dripstation/icons/obj/clothing/uniform/science/rd.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/science/rd.dmi'
-/obj/item/clothing/under/rank/research_director/dark
+/obj/item/clothing/under/rank/rnd/research_director/dark
icon_state = "director_dark"
-/obj/item/clothing/under/rank/research_director/skirt
+/obj/item/clothing/under/rank/rnd/research_director/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/research_director/alt
+/obj/item/clothing/under/rank/rnd/research_director/alt
icon_state = "director_jumpsuit"
mutantrace_variation = DIGITIGRADE_VARIATION
-/obj/item/clothing/under/rank/research_director/alt/skirt
+/obj/item/clothing/under/rank/rnd/research_director/alt/skirt
icon_state = "director_jumpskirt"
can_adjust = TRUE
-/obj/item/clothing/under/rank/research_director/turtleneck/skirt
+/obj/item/clothing/under/rank/rnd/research_director/turtleneck/skirt
can_adjust = TRUE
// ###### SCIENTIST ######
@@ -89,10 +102,6 @@
icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
-/obj/item/clothing/accessory/armband/science
- name = "science armband"
- desc = "An armband, worn by the crew to display which department they're assigned to. This one is purple."
-
/obj/item/clothing/head/cone
icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
@@ -100,41 +109,41 @@
/obj/item/clothing/suit/toggle/labcoat/mad
icon_state = "labcoat_green"
-/obj/item/clothing/under/rank/scientist
+/obj/item/clothing/under/rank/rnd/scientist
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a toxin researcher."
name = "toxin researcher's jumpsuit"
icon = 'modular_dripstation/icons/obj/clothing/uniform/science/science.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/science/science.dmi'
-/obj/item/clothing/under/rank/scientist/skirt
+/obj/item/clothing/under/rank/rnd/scientist/skirt
name = "toxin researcher's jumpskirt"
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a toxin researcher."
can_adjust = TRUE
-/obj/item/clothing/under/rank/scientist/alt
+/obj/item/clothing/under/rank/rnd/scientist/alt
icon_state = "science"
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist."
name = "scientist's jumpsuit"
-/obj/item/clothing/under/rank/scientist/skirt/alt
+/obj/item/clothing/under/rank/rnd/scientist/skirt/alt
icon_state = "science_skirt"
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist."
name = "scientist's jumpskirt"
-/obj/item/clothing/under/rank/scientist/utility
+/obj/item/clothing/under/rank/rnd/scientist/utility
name = "science utility uniform"
desc = "Old standart issue research uniform. Looks like real science."
can_adjust = FALSE
icon_state = "util_sci"
-/obj/item/clothing/under/rank/scientist/nanite
+/obj/item/clothing/under/rank/rnd/scientist/nanite
name = "nanite specialist uniform"
desc = "You are here to deal with nanites."
icon_state = "nanite"
icon = 'modular_dripstation/icons/obj/clothing/uniform/science/nanite.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/science/nanite.dmi'
-/obj/item/clothing/under/rank/scientist/skirt/nanite
+/obj/item/clothing/under/rank/rnd/scientist/skirt/nanite
name = "nanite specialist skirt"
desc = "You are here to deal with nanites."
can_adjust = FALSE
@@ -184,44 +193,44 @@
desc = "A painted welding helmet, has some oriental symbols on it."
icon_state = "yuki_matsuda"
-/obj/item/clothing/under/rank/roboticist
+/obj/item/clothing/under/rank/rnd/roboticist
icon = 'modular_dripstation/icons/obj/clothing/uniform/science/robotist.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/science/robotist.dmi'
-/obj/item/clothing/under/rank/roboticist/senior
+/obj/item/clothing/under/rank/rnd/roboticist/senior
name = "senior roboticist`s uniform"
desc = "You are in chanrge here."
icon_state = "senior_roboticist"
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/roboticist/biomech
+/obj/item/clothing/under/rank/rnd/roboticist/biomech
name = "biomech engineer`s uniform"
desc = "You are here to repair bionics and upgrade silicons."
icon_state = "biomech_engineer"
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/roboticist/mech
+/obj/item/clothing/under/rank/rnd/roboticist/mech
name = "biomech engineer`s uniform"
desc = "You are here to make mechs great again."
icon_state = "biomech_engineer"
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/roboticist/skirt
+/obj/item/clothing/under/rank/rnd/roboticist/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/roboticist/skirt/senior
+/obj/item/clothing/under/rank/rnd/roboticist/skirt/senior
name = "senior roboticist`s skirt"
desc = "You are in chanrge here."
icon_state = "senior_roboticist"
can_adjust = FALSE
-/obj/item/clothing/under/rank/roboticist/skirt/biomech
+/obj/item/clothing/under/rank/rnd/roboticist/skirt/biomech
name = "biomech engineer`s skirt"
desc = "You are here to repair bionics and upgrade silicons."
icon_state = "biomech_engineer"
can_adjust = FALSE
-/obj/item/clothing/under/rank/roboticist/skirt/mech
+/obj/item/clothing/under/rank/rnd/roboticist/skirt/mech
name = "biomech engineer`s skirt"
desc = "You are here to make mechs great again."
icon_state = "biomech_engineer"
@@ -234,13 +243,13 @@
/obj/item/storage/backpack/science = 3,
/obj/item/storage/backpack/satchel/tox = 3,
/obj/item/storage/backpack/duffelbag/science = 3,
- /obj/item/clothing/under/rank/scientist = 3,
- /obj/item/clothing/under/rank/scientist/skirt = 3,
- /obj/item/clothing/under/rank/scientist/alt = 2,
- /obj/item/clothing/under/rank/scientist/skirt/alt = 2,
- /obj/item/clothing/under/rank/scientist/utility = 1,
- /obj/item/clothing/under/rank/scientist/nanite = 1,
- /obj/item/clothing/under/rank/scientist/skirt/nanite = 1,
+ /obj/item/clothing/under/rank/rnd/scientist = 3,
+ /obj/item/clothing/under/rank/rnd/scientist/skirt = 3,
+ /obj/item/clothing/under/rank/rnd/scientist/alt = 2,
+ /obj/item/clothing/under/rank/rnd/scientist/skirt/alt = 2,
+ /obj/item/clothing/under/rank/rnd/scientist/utility = 1,
+ /obj/item/clothing/under/rank/rnd/scientist/nanite = 1,
+ /obj/item/clothing/under/rank/rnd/scientist/skirt/nanite = 1,
/obj/item/clothing/suit/hooded/wintercoat/science = 3,
/obj/item/clothing/suit/toggle/labcoat = 5,
/obj/item/clothing/suit/toggle/labcoat/science = 5,
@@ -260,14 +269,14 @@
/obj/item/storage/backpack/satchel/tox/robo = 3,
/obj/item/storage/backpack/duffelbag/science/robo = 3,
/obj/item/clothing/glasses/hud/diagnostic = 2,
- /obj/item/clothing/under/rank/roboticist = 2,
- /obj/item/clothing/under/rank/roboticist/skirt = 2,
- /obj/item/clothing/under/rank/roboticist/senior = 1,
- /obj/item/clothing/under/rank/roboticist/biomech = 1,
- /obj/item/clothing/under/rank/roboticist/mech = 1,
- /obj/item/clothing/under/rank/roboticist/skirt/senior = 1,
- /obj/item/clothing/under/rank/roboticist/skirt/biomech = 1,
- /obj/item/clothing/under/rank/roboticist/skirt/mech = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist = 2,
+ /obj/item/clothing/under/rank/rnd/roboticist/skirt = 2,
+ /obj/item/clothing/under/rank/rnd/roboticist/senior = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist/biomech = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist/mech = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist/skirt/senior = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist/skirt/biomech = 1,
+ /obj/item/clothing/under/rank/rnd/roboticist/skirt/mech = 1,
/obj/item/clothing/suit/toggle/labcoat = 2,
/obj/item/clothing/suit/toggle/labcoat/wardtlab = 2,
/obj/item/clothing/suit/toggle/labcoat/aeneasrinil = 2,
diff --git a/modular_dripstation/code/modules/clothing/department/security.dm b/modular_dripstation/code/modules/clothing/department/security.dm
index 4ff75fe36ddf..14e0eccf6653 100644
--- a/modular_dripstation/code/modules/clothing/department/security.dm
+++ b/modular_dripstation/code/modules/clothing/department/security.dm
@@ -1,20 +1,20 @@
// ###### HOS ######
-/obj/item/clothing/under/rank/head_of_security
+/obj/item/clothing/under/rank/security/head_of_security
icon = 'modular_dripstation/icons/obj/clothing/uniform/security/hos.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/security/hos.dmi'
-/obj/item/clothing/under/rank/head_of_security/skirt
+/obj/item/clothing/under/rank/security/head_of_security/skirt
can_adjust = TRUE
fitted = NO_FEMALE_UNIFORM
-/obj/item/clothing/under/rank/head_of_security/corporate
+/obj/item/clothing/under/rank/security/head_of_security/corporate
name = "head of security's corporate uniform"
desc = "Standart issue fancy corporate uniform issued to the Head of Security."
icon_state = "hos_corporate"
can_adjust = FALSE
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/head_of_security/corporate/skirt
+/obj/item/clothing/under/rank/security/head_of_security/corporate/skirt
name = "head of security's corporate dress"
desc = "Standart issue fancy corporate dress issued to the Head of Security."
icon_state = "hos_corporatef"
@@ -29,6 +29,7 @@
/obj/item/clothing/head/HoS
icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
/obj/item/clothing/head/helmet/HoS
name = "\improper HOS SWAT helmet"
@@ -76,25 +77,25 @@
// ###### WARDEN ######
-/obj/item/clothing/under/rank/warden
+/obj/item/clothing/under/rank/security/warden
name = "warden's jumpsuit"
alt_covers_chest = FALSE
icon = 'modular_dripstation/icons/obj/clothing/uniform/security/warden.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/security/warden.dmi'
-/obj/item/clothing/under/rank/warden/skirt
+/obj/item/clothing/under/rank/security/warden/skirt
name = "warden's jumpskirt"
alt_covers_chest = TRUE
can_adjust = TRUE
fitted = NO_FEMALE_UNIFORM
-/obj/item/clothing/under/rank/warden/alt
+/obj/item/clothing/under/rank/security/warden/alt
name = "black warden uniform"
desc = "A jumpsuit made of strong material, providing robust protection."
icon_state = "bwarden"
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/warden/corporate
+/obj/item/clothing/under/rank/security/warden/corporate
name = "warden's corporate uniform"
desc = "Standart issue fancy corporate uniform issued to the Warden."
icon_state = "warden_corporate"
@@ -102,7 +103,7 @@
mutantrace_variation = NONE
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/warden/classic
+/obj/item/clothing/under/rank/security/warden/classic
name = "warden's classic uniform"
desc = "Old issue fancy security uniform, this one has silver lining."
icon_state = "warden-collar"
@@ -110,7 +111,7 @@
mutantrace_variation = NONE
alt_covers_chest = TRUE
-/obj/item/clothing/under/rank/warden/corporate/skirt
+/obj/item/clothing/under/rank/security/warden/corporate/skirt
name = "head of security's corporate dress"
desc = "Standart issue fancy corporate dress issued to the Head of Security."
icon_state = "warden_corporatef"
@@ -123,7 +124,7 @@
icon = 'modular_dripstation/icons/obj/clothing/masks.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/masks.dmi'
-/obj/item/clothing/under/rank/warden/navyblue
+/obj/item/clothing/under/rank/security/warden/navyblue
mutantrace_variation = NONE
/obj/item/clothing/suit/armor/wardenjacket
@@ -177,39 +178,39 @@
// ###### OFFICER ######
-/obj/item/clothing/under/rank/security
+/obj/item/clothing/under/rank/security/officer
icon = 'modular_dripstation/icons/obj/clothing/uniform/security/security.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/security/security.dmi'
-/obj/item/clothing/under/rank/security/skirt
+/obj/item/clothing/under/rank/security/officer/skirt
can_adjust = TRUE
fitted = NO_FEMALE_UNIFORM
-/obj/item/clothing/under/rank/security/alt
+/obj/item/clothing/under/rank/security/officer/alt
name = "black security uniform"
desc = "A jumpsuit made of strong material, providing robust protection."
icon_state = "bsecurity"
-/obj/item/clothing/under/rank/security/redshirt
+/obj/item/clothing/under/rank/security/officer/redshirt
name = "white classic security uniform"
desc = "A jumpsuit made of strong material, providing robust protection."
icon_state = "redshirt"
-/obj/item/clothing/under/rank/security/corporate
+/obj/item/clothing/under/rank/security/officer/corporate
name = "corporate security uniform"
desc = "Standart issue fancy corporate uniform issued to offcers."
icon_state = "sec_corporate"
-/obj/item/clothing/under/rank/security/classic
+/obj/item/clothing/under/rank/security/officer/classic
name = "classic security uniform"
desc = "Old issue fancy security uniform, this one has gold lining."
icon_state = "clsecurity"
-/obj/item/clothing/under/rank/security/navyblue
+/obj/item/clothing/under/rank/security/officer/navyblue
icon = 'icons/obj/clothing/uniforms.dmi'
worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
-/obj/item/clothing/under/rank/security/navyblue/russian
+/obj/item/clothing/under/rank/security/officer/navyblue/russian
icon_state = "officertanclothes"
icon = 'icons/obj/clothing/uniforms.dmi'
worn_icon = 'icons/mob/clothing/uniform/uniform.dmi'
@@ -305,14 +306,14 @@
fitted = FEMALE_UNIFORM_TOP
////Detective////
-/obj/item/clothing/under/rank/det
+/obj/item/clothing/under/rank/security/detective
icon = 'modular_dripstation/icons/obj/clothing/uniform/security/detective.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/security/detective.dmi'
-/obj/item/clothing/under/rank/det/grey
+/obj/item/clothing/under/rank/security/detective/grey
icon_state = "noirdet"
-/obj/item/clothing/under/rank/det/grey/skirt
+/obj/item/clothing/under/rank/security/detective/grey/skirt
icon_state = "noirdet_skirt"
/obj/item/clothing/suit/det_suit
@@ -355,17 +356,18 @@
products = list(/obj/item/storage/backpack/security = 3,
/obj/item/storage/backpack/satchel/sec = 3,
/obj/item/storage/backpack/duffelbag/sec = 3,
- /obj/item/clothing/under/rank/security = 3,
- /obj/item/clothing/under/rank/security/alt = 3,
- /obj/item/clothing/under/rank/security/skirt = 3,
+ /obj/item/clothing/under/rank/security/officer = 3,
+ /obj/item/clothing/under/rank/security/officer/alt = 3,
+ /obj/item/clothing/under/rank/security/officer/skirt = 3,
/obj/item/clothing/under/rank/security/officer/grey = 3,
- /obj/item/clothing/under/rank/security/redshirt = 3,
- /obj/item/clothing/under/rank/security/classic = 3,
- /obj/item/clothing/under/rank/security/corporate = 3,
+ /obj/item/clothing/under/rank/security/officer/redshirt = 3,
+ /obj/item/clothing/under/rank/security/officer/classic = 3,
+ /obj/item/clothing/under/rank/security/officer/corporate = 3,
/obj/item/clothing/suit/hooded/wintercoat/security = 3,
/obj/item/clothing/suit/armor/vest/secmiljacket = 2,
/obj/item/clothing/suit/toggle/bomber/secbomber/soft = 2,
/obj/item/clothing/suit/poncho/sec = 2,
+ /obj/item/clothing/glasses/hud/security/ballistic = 2,
/obj/item/clothing/gloves/color/black/tactifool = 3,
/obj/item/clothing/shoes/jackboots = 3,
/obj/item/clothing/shoes/jackboots/jacksandal = 3,
@@ -391,10 +393,10 @@
vend_reply = "Thank you for using the DetDrobe!"
light_mask = "detdrobe-light-mask"
req_access = list(ACCESS_FORENSICS_LOCKERS)
- products = list(/obj/item/clothing/under/rank/det = 1,
+ products = list(/obj/item/clothing/under/rank/security/detective = 1,
+ /obj/item/clothing/under/rank/security/detective/skirt = 1,
+ /obj/item/clothing/under/rank/security/detective/grey = 1,
/obj/item/clothing/under/rank/security/detective/skirt = 1,
- /obj/item/clothing/under/rank/det/grey = 1,
- /obj/item/clothing/under/rank/det/grey/skirt = 1,
/obj/item/clothing/under/rank/det/yogs = 1,
/obj/item/clothing/suit/det_suit = 1,
/obj/item/clothing/suit/det_suit/grey = 1,
diff --git a/modular_dripstation/code/modules/clothing/department/service.dm b/modular_dripstation/code/modules/clothing/department/service.dm
index 18f66e65a3e2..262c68a55161 100644
--- a/modular_dripstation/code/modules/clothing/department/service.dm
+++ b/modular_dripstation/code/modules/clothing/department/service.dm
@@ -1,12 +1,12 @@
// ###### Botany ######
-/obj/item/clothing/under/rank/hydroponics
+/obj/item/clothing/under/rank/civilian/hydroponics
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/botany.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi'
icon_state = "botany_jean"
item_state = "g_suit"
mutantrace_variation = DIGITIGRADE_VARIATION
-/obj/item/clothing/under/rank/hydroponics/skirt
+/obj/item/clothing/under/rank/civilian/hydroponics/skirt
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/botany.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi'
icon_state = "botany_skirt"
@@ -15,17 +15,17 @@
fitted = FEMALE_UNIFORM_TOP
mutantrace_variation = NONE
-/obj/item/clothing/under/rank/hydroponics/turtleneck
+/obj/item/clothing/under/rank/civilian/hydroponics/turtleneck
name = "botanist's turtleneck"
desc = "It's a tactical turtleneck designed to protect against minor plant-related hazards."
icon_state = "hydroponics_turtle"
-/obj/item/clothing/under/rank/hydroponics/turtleneckalt
+/obj/item/clothing/under/rank/civilian/hydroponics/turtleneckalt
name = "botanist's turtleneck"
desc = "It's a tactical turtleneck designed to protect against minor plant-related hazards. With additional pouches!"
icon_state = "hydroponics_turtlealt"
-/obj/item/clothing/under/rank/hydroponics/turtleneckalt/skirt
+/obj/item/clothing/under/rank/civilian/hydroponics/turtleneckalt/skirt
name = "botanist's skirtleneck"
desc = "It's a tactical skirtleneck designed to protect against minor plant-related hazards. With additional pouches!"
icon_state = "hydroponics_turtlealt_skirt"
@@ -40,13 +40,13 @@
/obj/item/clothing/suit/apron = 2,
/obj/item/clothing/suit/apron/overalls = 3,
/obj/item/clothing/under/yogs/botanyuniform = 3,
- /obj/item/clothing/under/rank/hydroponics = 3,
- /obj/item/clothing/under/rank/hydroponics/skirt = 3,
+ /obj/item/clothing/under/rank/civilian/hydroponics = 3,
+ /obj/item/clothing/under/rank/civilian/hydroponics/skirt = 3,
/obj/item/clothing/mask/bandana = 3,
/obj/item/clothing/accessory/armband/hydro = 3)
- premium = list(/obj/item/clothing/under/rank/hydroponics/turtleneck = 1,
- /obj/item/clothing/under/rank/hydroponics/turtleneckalt = 1,
- /obj/item/clothing/under/rank/hydroponics/turtleneckalt/skirt = 1)
+ premium = list(/obj/item/clothing/under/rank/civilian/hydroponics/turtleneck = 1,
+ /obj/item/clothing/under/rank/civilian/hydroponics/turtleneckalt = 1,
+ /obj/item/clothing/under/rank/civilian/hydroponics/turtleneckalt/skirt = 1)
// ###### Janitor ######
/obj/item/clothing/under/rank/janitor
@@ -60,28 +60,29 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/janitor.dmi'
// ###### Mime ######
-/obj/item/clothing/under/rank/mime
+/obj/item/clothing/under/rank/civilian/mime
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi'
can_adjust = TRUE
-/obj/item/clothing/under/rank/mime/skirt
+/obj/item/clothing/under/rank/civilian/mime/skirt
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi'
can_adjust = TRUE
/obj/item/clothing/under/sexymime
can_adjust = FALSE
+ icon_state = "sexymime"
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi'
-/obj/item/clothing/under/rank/mime/skirt/sexymime
+/obj/item/clothing/under/rank/civilian/mime/skirt/sexymime
icon_state = "mime_skirtle"
icon = 'modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi'
can_adjust = FALSE
- mutantrace_variation = DIGITIGRADE_VARIATION
- fitted = NO_FEMALE_UNIFORM
+ mutantrace_variation = NONE
+ fitted = FEMALE_UNIFORM_TOP
/obj/machinery/vending/autodrobe
@@ -163,8 +164,8 @@
/obj/item/clothing/under/rank/civilian/clown/sexy = 1,
/obj/item/clothing/mask/gas/sexymime = 1,
/obj/item/clothing/under/sexymime = 1,
- /obj/item/clothing/under/rank/mime/skirt = 1,
- /obj/item/clothing/under/rank/mime/skirt/sexymime = 1,
+ /obj/item/clothing/under/rank/civilian/mime/skirt = 1,
+ /obj/item/clothing/under/rank/civilian/mime/skirt/sexymime = 1,
/obj/item/clothing/mask/rat/bat = 1,
/obj/item/clothing/mask/rat/bee = 1,
/obj/item/clothing/mask/rat/bear = 1,
diff --git a/modular_dripstation/code/modules/clothing/department/supply.dm b/modular_dripstation/code/modules/clothing/department/supply.dm
index 3981703696d2..bff2cbbf0dca 100644
--- a/modular_dripstation/code/modules/clothing/department/supply.dm
+++ b/modular_dripstation/code/modules/clothing/department/supply.dm
@@ -88,78 +88,78 @@
body_parts_covered = HEAD
armor = list(MELEE = 15, BULLET = 0, LASER = 0, ENERGY = 10, BOMB = 10, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, WOUND = 5)
-/obj/item/clothing/under/rank/cargo
+/obj/item/clothing/under/rank/cargo/qm
icon_state = "qm"
icon = 'modular_dripstation/icons/obj/clothing/uniform/cargo/qm.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/cargo/qm.dmi'
-/obj/item/clothing/under/rank/cargo/skirt
+/obj/item/clothing/under/rank/cargo/qm/skirt
can_adjust = TRUE
-/obj/item/clothing/under/rank/cargo/official
+/obj/item/clothing/under/rank/cargo/qm/official
icon_state = "qmtanofficial"
-/obj/item/clothing/under/rank/cargo/supply_chief
+/obj/item/clothing/under/rank/cargo/qm/supply_chief
icon_state = "supply_chief"
-/obj/item/clothing/under/rank/cargo/skirt/supply_chief
+/obj/item/clothing/under/rank/cargo/qm/skirt/supply_chief
icon_state = "supply_chief_skirt"
-/obj/item/clothing/under/rank/cargo/supply_chief/alt
+/obj/item/clothing/under/rank/cargo/qm/supply_chief/alt
icon_state = "supply_chiefalt"
-/obj/item/clothing/under/rank/cargo/skirt/supply_chief/alt
+/obj/item/clothing/under/rank/cargo/qm/skirt/supply_chief/alt
icon_state = "supply_chiefalt_skirt"
-/obj/item/clothing/under/rank/cargo/qmc
+/obj/item/clothing/under/rank/cargo/qm/qmc
icon_state = "qmc"
desc = "For those cases when you need to order alcohol for the entire station."
-/obj/item/clothing/under/rank/cargo/turtleneck/alt
+/obj/item/clothing/under/rank/cargo/qm/turtleneck/alt
name = "quartermaster's tactical turtleneck"
desc = "Why would a cargo head need to be a tacticool? Ask their coworkers."
icon_state = "qmtactical"
// ###### CARGO TECH ######
-/obj/item/clothing/under/rank/cargotech
+/obj/item/clothing/under/rank/cargo/tech
custom_price = 50
alt_covers_chest = TRUE
icon_state = "cargotech"
icon = 'modular_dripstation/icons/obj/clothing/uniform/cargo/cargotech.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/uniform/cargo/cargotech.dmi'
-/obj/item/clothing/under/rank/cargotech/customs
+/obj/item/clothing/under/rank/cargo/tech/customs
name = "customs uniform"
icon_state = "customs_uniform"
desc = "Slick uniform issued to Cargonia guard."
alt_covers_chest = FALSE
-/obj/item/clothing/under/rank/cargotech/mail
+/obj/item/clothing/under/rank/cargo/tech/mail
name = "mailman uniform"
icon_state = "mailroom_technician"
desc = "Uniform issued to Cargonia mailmen. NOTHING STOPS THE MAIL!"
-/obj/item/clothing/under/rank/cargotech/delivery
+/obj/item/clothing/under/rank/cargo/tech/delivery
name = "delivery officer uniform"
icon_state = "deliveries_officer"
desc = "Uniform issued to Cargonia delivery officials. Deliver with style!"
-/obj/item/clothing/under/rank/cargotech/jean
+/obj/item/clothing/under/rank/cargo/tech/jean
name = "technician's tacticool cargo pants"
icon_state = "cargotechjean"
desc = "Tactical version of standart cargo uniform."
-/obj/item/clothing/under/rank/cargotech/skirt/jean
+/obj/item/clothing/under/rank/cargo/tech/skirt/jean
name = "technician's tacticool skirt"
icon_state = "cargotechjean_skirt"
desc = "Tactical version of standart cargo skirt."
-/obj/item/clothing/under/rank/cargotech/skirt/mail
+/obj/item/clothing/under/rank/cargo/tech/skirt/mail
name = "mailwoman skirt"
icon_state = "mailroom_technician_skirt"
desc = "Skirt issued to Cargonia mailwomen. NOTHING STOPS THE MAIL!"
-/obj/item/clothing/under/rank/cargotech/skirt/delivery
+/obj/item/clothing/under/rank/cargo/tech/skirt/delivery
name = "delivery officer skirt"
icon_state = "deliveries_officer_skirt"
desc = "Skirt issued to Cargonia delivery officials. Deliver with style!"
@@ -245,15 +245,15 @@ obj/item/clothing/suit/hooded/wintercoat/cargo
vend_reply = "Thank you for using the CargoDrobe!"
default_price = 50
products = list(/obj/item/clothing/suit/hooded/wintercoat/cargo = 3,
- /obj/item/clothing/under/rank/cargotech = 3,
- /obj/item/clothing/under/rank/cargotech/skirt = 3,
- /obj/item/clothing/under/rank/cargotech/customs = 2,
- /obj/item/clothing/under/rank/cargotech/jean = 2,
- /obj/item/clothing/under/rank/cargotech/skirt/jean = 2,
- /obj/item/clothing/under/rank/cargotech/mail = 3,
- /obj/item/clothing/under/rank/cargotech/skirt/mail = 3,
- /obj/item/clothing/under/rank/cargotech/delivery = 3,
- /obj/item/clothing/under/rank/cargotech/skirt/delivery = 3,
+ /obj/item/clothing/under/rank/cargo/tech = 3,
+ /obj/item/clothing/under/rank/cargo/tech/skirt = 3,
+ /obj/item/clothing/under/rank/cargo/tech/customs = 2,
+ /obj/item/clothing/under/rank/cargo/tech/jean = 2,
+ /obj/item/clothing/under/rank/cargo/tech/skirt/jean = 2,
+ /obj/item/clothing/under/rank/cargo/tech/mail = 3,
+ /obj/item/clothing/under/rank/cargo/tech/skirt/mail = 3,
+ /obj/item/clothing/under/rank/cargo/tech/delivery = 3,
+ /obj/item/clothing/under/rank/cargo/tech/skirt/delivery = 3,
/obj/item/clothing/under/rank/miner = 2,
/obj/item/clothing/under/rank/miner/skirt = 2,
/obj/item/clothing/under/rank/miner/lavaland = 2,
diff --git a/modular_dripstation/code/modules/clothing/glasses.dm b/modular_dripstation/code/modules/clothing/glasses.dm
index ab0b46d701d8..cc2875f24dd5 100644
--- a/modular_dripstation/code/modules/clothing/glasses.dm
+++ b/modular_dripstation/code/modules/clothing/glasses.dm
@@ -280,7 +280,6 @@
/obj/item/clothing/glasses/welding
icon = 'modular_dripstation/icons/obj/clothing/eyes.dmi'
- worn_icon = 'modular_dripstation/icons/mob/clothing/eyes.dmi'
/obj/item/clothing/glasses/regular
flags_cover = null //GLASSESCOVERSEYES
@@ -313,9 +312,9 @@
hud_type = DATA_HUD_MEDICAL_BASIC
flags_cover = null //GLASSESCOVERSEYES
-/obj/item/clothing/glasses/hud/health/regular
- name = "prescription health glasses"
- desc = "Protect your vision with stile!"
+/obj/item/clothing/glasses/regular
+ name = "prescription glasses"
+ desc = "Corrects your vision!"
icon_state = "glasses"
item_state = "glasses"
vision_correction = 1 //corrects nearsightedness
diff --git a/modular_dripstation/code/modules/clothing/gloves.dm b/modular_dripstation/code/modules/clothing/gloves.dm
index ff35a86137d8..e03ec5c1adc8 100644
--- a/modular_dripstation/code/modules/clothing/gloves.dm
+++ b/modular_dripstation/code/modules/clothing/gloves.dm
@@ -151,27 +151,55 @@
worn_icon = 'modular_dripstation/icons/mob/clothing/hands.dmi'
icon_state = "combat"
cryo_preserve = TRUE
+ var/fingerless_variation = /obj/item/clothing/gloves/fingerless/combat
+ var/can_be_cut = TRUE
+
+/obj/item/clothing/gloves/combat/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_WIRECUTTER)
+ if(can_be_cut && icon_state == initial(icon_state))//only if not dyed
+ to_chat(user, span_notice("You snip the fingertips off of [src]."))
+ I.play_tool_sound(src)
+ var/obj/item/clothing/gloves/fingerless/FG = fingerless_variation
+ new FG(drop_location())
+ qdel(src)
+ ..()
+
+/obj/item/clothing/gloves/fingerless/combat
+ name = "combat fingerless gloves"
+ desc = "These tactical gloves provide strong grip on the items they hold. Probably you won't lose anything if you accidentally find yourself on the ground."
+ icon = 'modular_dripstation/icons/obj/clothing/gloves.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hands.dmi'
+ icon_state = "combat_fingerless"
+ clothing_traits = list(TRAIT_STRONG_GRIP)
+ body_parts_covered = ARMS|HANDS
+ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 60, RAD = 0, FIRE = 80, ACID = 50, WOUND = 0, ELECTRIC = 0)
/obj/item/clothing/gloves/combat/militech
icon_state = "militech_combat"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/shelg
icon_state = "shelg_combat"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/gorlex
icon_state = "gorlex_combat"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/cybersun
icon_state = "cybersun_combat"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/cybersun/bloody
icon_state = "cybersun_combat_bloody"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/maid
name = "combat maid sleeves"
desc = "These 'tactical' gloves and sleeves are fireproof and electrically insulated. Warm to boot."
icon_state = "syndimaid_arms"
item_state = "syndimaid_arms"
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/odst //robust
name = "\improper ODST gloves"
@@ -185,6 +213,7 @@
body_parts_covered = ARMS|HANDS
clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_STRONG_GRIP)
armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 15, BIO = 5, RAD = 5, FIRE = 80, ACID = 50, WOUND = 5, ELECTRIC = 100)
+ can_be_cut = FALSE
/obj/item/clothing/gloves/combat/odst/deathsquad //literally overpowered
var/tacticalspeed = 0.66 //Does channels 34% faster
@@ -349,8 +378,9 @@
resistance_flags = NONE
custom_premium_price = 400
cryo_preserve = TRUE
+/*Tacklers switch off, to turn it on you need to include #include "code\datums\component\tackle.dm"
/// For storing our tackler datum so we can remove it after
-// var/datum/component/tackler
+ var/datum/component/tackler
/// See: [/datum/component/tackler/var/stamina_cost]
var/tackle_stam_cost = 25
/// See: [/datum/component/tackler/var/base_knockdown]
@@ -363,7 +393,7 @@
var/tackle_speed = 1
/// See: [/datum/component/tackler/var/skill_mod]
var/skill_mod = 1
-/* tacklers off - needs to include #include "code\datums\component\tackle.dm"
+
/obj/item/clothing/gloves/tackler/Destroy()
tackler = null
return ..()
@@ -383,7 +413,8 @@
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(ITEM_SLOT_GLOVES) == src)
QDEL_NULL(tackler)
-*/
+*///Tacklers switch off
+
/obj/item/clothing/gloves/tackler/security
name = "security gripper gloves"
desc = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls. Fireproof to boot!"
@@ -398,15 +429,17 @@
desc = "Special gloves that manipulate the blood vessels on insane level and give the user an edge in close combat."
icon_state = "tacticalgloves"
+ var/tacticalspeed = 0.66 //Does channels 34% faster
+ var/worn
+ clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_STRONG_GRIP)
+
+ /*Tacklers switch off
tackle_stam_cost = 20
base_knockdown = 1.5 SECONDS
tackle_range = 6
tackle_speed = 2
skill_mod = 4
-
- var/tacticalspeed = 0.66 //Does channels 34% faster
- var/worn
- clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_STRONG_GRIP)
+ *///Tacklers switch off
/obj/item/clothing/gloves/tackler/tactical/equipped(mob/user, slot)
..()
@@ -433,11 +466,6 @@
desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Absorbing electrical shocks and fireproof to boot!"
icon_state = "combat"
- tackle_stam_cost = 30
- base_knockdown = 1.25 SECONDS
- tackle_range = 5
- skill_mod = 2
-
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
@@ -445,27 +473,39 @@
resistance_flags = NONE
armor = list(MELEE = 15, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 15, BIO = 5, RAD = 5, FIRE = 80, ACID = 50, WOUND = 0, ELECTRIC = 100)
+ /*Tacklers switch off
+ tackle_stam_cost = 30
+ base_knockdown = 1.25 SECONDS
+ tackle_range = 5
+ skill_mod = 2
+ *///Tacklers switch off
+
/obj/item/clothing/gloves/tackler/nt
name = "\improper NT gripper gloves"
- desc = "NT brand tackler gloves, granting the user ability to launch headfirst into walls and letting the user sail through the hallways."
+ desc = "NT brand tackler gloves, both fireproof and insulated, granting the user ability to launch headfirst into walls and letting the user sail through the hallways."
icon_state = "nt_combat"
+ /*Tacklers switch off
tackle_stam_cost = 15
base_knockdown = 0.5 SECONDS
tackle_range = 5
tackle_speed = 2
min_distance = 2
skill_mod = -2
+ *///Tacklers switch off
/obj/item/clothing/gloves/tackler/combat/nt_elite
name = "\improper NT elite gripper gloves"
- desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks."
+ desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing heat and electrical shocks."
icon_state = "nt_combat"
+ /*Tacklers switch off
tackle_stam_cost = 25
base_knockdown = 1 SECONDS
- tackle_range = 5
+ tackle_range = 6
+ tackle_speed = 2
skill_mod = 3
+ *///Tacklers switch off
/obj/item/clothing/gloves/tackler/combat/waffle
@@ -473,24 +513,28 @@
desc = "The ultimate in high risk, high reward, perfect for when you need to stop target from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues."
icon_state = "waffle_combat"
+ /*Tacklers switch off
tackle_stam_cost = 50
base_knockdown = 2 SECONDS
tackle_range = 10
min_distance = 7
tackle_speed = 6
skill_mod = 7
+ *///Tacklers switch off
/obj/item/clothing/gloves/tackler/combat/infiltrator
name = "infiltrator combat gloves"
desc = "Sleek, aerodynamic gripper gloves that are less effective at actually performing takedowns, but more effective at letting the user sail through the hallways."
icon_state = "infiltrator"
+ /*Tacklers switch off
tackle_stam_cost = 15
base_knockdown = 0.5 SECONDS
tackle_range = 5
tackle_speed = 2
min_distance = 2
skill_mod = -2
+ *///Tacklers switch off
/obj/item/clothing/gloves/tackler/combat/infiltrator/chameleon
var/datum/action/item_action/chameleon/change/chameleon_action
diff --git a/modular_dripstation/code/modules/clothing/hardsuit.dm b/modular_dripstation/code/modules/clothing/hardsuit.dm
index 649432644a53..20191f102bf2 100644
--- a/modular_dripstation/code/modules/clothing/hardsuit.dm
+++ b/modular_dripstation/code/modules/clothing/hardsuit.dm
@@ -28,6 +28,10 @@
//item_state = "atmospherics_helm"
hardsuit_type = "atmospherics"
+/obj/item/clothing/suit/space/hardsuit/engine/atmos
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi' //doublecheck
+ worn_icon = 'modular_dripstation/icons/mob/clothing/spacesuits/suits.dmi' //doublecheck
+
/obj/item/clothing/head/helmet/space/hardsuit/engine/elite
icon_state = "white_helm0"
//item_state = "white_helm"
@@ -557,4 +561,4 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
slowdown = 0
- clothing_traits = list(TRAIT_ANTIMAGIC_NO_SELFBLOCK)
\ No newline at end of file
+ clothing_traits = list(TRAIT_ANTIMAGIC_NO_SELFBLOCK)
diff --git a/modular_dripstation/code/modules/clothing/magboots.dm b/modular_dripstation/code/modules/clothing/magboots.dm
index 9d794e6d5764..31fd71a32576 100644
--- a/modular_dripstation/code/modules/clothing/magboots.dm
+++ b/modular_dripstation/code/modules/clothing/magboots.dm
@@ -99,11 +99,13 @@
/obj/item/clothing/shoes/magboots/syndie/elite
name = "elite magboots"
- icon_state = "gsyndiemag"
+ icon_state = "gsyndiemag0"
+ magboot_state = "gsyndiemag"
/obj/item/clothing/shoes/magboots/syndie/blred
name = "blood-red magboots"
- icon_state = "brsyndiemag"
+ icon_state = "brsyndiemag0"
+ magboot_state = "brsyndiemag"
/obj/item/clothing/shoes/magboots/paramedic
name = "paramedic magboots"
diff --git a/modular_dripstation/code/modules/clothing/shoes.dm b/modular_dripstation/code/modules/clothing/shoes.dm
index fe9b0d6f63ec..17297a46a13a 100644
--- a/modular_dripstation/code/modules/clothing/shoes.dm
+++ b/modular_dripstation/code/modules/clothing/shoes.dm
@@ -1,6 +1,10 @@
////Sneakers////
/obj/item/clothing/shoes/sneakers
+/obj/item/clothing/shoes/sneakers/white
+ name = "white shoes"
+ greyscale_colors = "#c2c2c2#ffffff"
+
/obj/item/clothing/shoes/sneakers/brown
greyscale_colors = "#592d01#ffffff"
diff --git a/modular_dripstation/code/modules/clothing/suit.dm b/modular_dripstation/code/modules/clothing/suit.dm
index f92680f0bd72..d5e6b5c49bc9 100644
--- a/modular_dripstation/code/modules/clothing/suit.dm
+++ b/modular_dripstation/code/modules/clothing/suit.dm
@@ -111,10 +111,6 @@
icon_state = "jwig"
item_state = "pwig"
-/obj/item/clothing/under/maid
- name = "maid costume"
- desc = "Maid in USSP."
-
/obj/item/clothing/suit/maiddress
name = "maid dress"
desc = "Classic maid dress for working woman."
diff --git a/modular_dripstation/code/modules/clothing/toggles.dm b/modular_dripstation/code/modules/clothing/toggles.dm
index e65a0282077b..20c3773701fd 100644
--- a/modular_dripstation/code/modules/clothing/toggles.dm
+++ b/modular_dripstation/code/modules/clothing/toggles.dm
@@ -5,6 +5,77 @@
/obj/item/clothing/head/hooded/explorer
icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
+ //dynamic_hair_suffix = ""
+
+/obj/item/clothing/suit/hooded/explorer/winter
+ icon_state = "explorer_winter"
+ item_state = "explorer_winter"
+
+/obj/item/clothing/head/hooded/explorer/winter
+ icon_state = "explorer_winter"
+ item_state = "explorer_winter"
+ //dynamic_hair_suffix = ""
+
+/obj/item/clothing/suit/hooded/miningmedic
+ name = "recovery suit"
+ desc = "A lightly armoured suit for search and rescue in harsh environments."
+ icon_state = "recovery"
+ item_state = "recovery"
+ icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/suits.dmi'
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+ cold_protection = CHEST|GROIN|LEGS|ARMS
+ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
+ heat_protection = CHEST|GROIN|LEGS|ARMS
+ flags_inv = HIDEGLOVES|HIDESHOES
+ flags_prot = HIDEJUMPSUIT
+ hoodtype = /obj/item/clothing/head/hooded/miningmedic
+ armor = list(MELEE = 40, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 50, WOUND = 10)
+
+ resistance_flags = FIRE_PROOF
+ mutantrace_variation = DIGITIGRADE_VARIATION
+ allowed = list(/obj/item/analyzer,/obj/item/multitool/tricorder,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/autoinjector,/obj/item/healthanalyzer,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper,/obj/item/melee/classic_baton/telescopic,/obj/item/soap,/obj/item/sensor_device,/obj/item/tank/internals, /obj/item/hypospray, /obj/item/flashlight, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat)
+/*
+/obj/item/clothing/suit/hooded/miningmedic/Initialize(mapload) //can't be reinforced like regular explorer suits, but can also carry medical stuff in addition to mining stuff
+ . = ..()
+ allowed |= GLOB.labcoat_allowed
+ allowed |= GLOB.mining_allowed
+*/
+
+/obj/item/clothing/head/hooded/miningmedic
+ name = "recovery hood"
+ desc = "A lightly armoured hood for search and rescue in harsh environments."
+ icon_state = "recovery"
+ icon = 'modular_dripstation/icons/obj/clothing/hats.dmi'
+ worn_icon = 'modular_dripstation/icons/mob/clothing/hats.dmi'
+ body_parts_covered = HEAD
+ flags_inv = HIDEHAIR|HIDEEARS // hoods don't hide your face, silly
+ flags_prot = HIDEHAIR
+ min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
+ max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
+ armor = list(MELEE = 40, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 50, BIO = 100, RAD = 50, FIRE = 50, ACID = 50, WOUND = 10)
+ resistance_flags = FIRE_PROOF
+ var/adjusted = NORMAL_STYLE
+
+//don't want this to be a subtype of the explorer suit or it'll inherit the armor plating
+/obj/item/clothing/head/hooded/miningmedic/verb/hood_adjust()
+ set name = "Adjust Hood Style"
+ set category = null
+ set src in usr
+ switch(adjusted)
+ if(NORMAL_STYLE)
+ adjusted = ALT_STYLE
+ to_chat(usr, span_notice("You adjust the hood to wear it more casually."))
+ flags_inv &= ~HIDEHAIR
+ if(ALT_STYLE)
+ adjusted = NORMAL_STYLE
+ to_chat(usr, span_notice("You adjust the hood back to normal."))
+ flags_inv |= HIDEHAIR
+ if(ishuman(usr))
+ var/mob/living/carbon/human/H = usr
+ H.update_hair()
+ H.update_body()
/obj/item/clothing/suit/toggle/labcoat
icon = 'modular_dripstation/icons/obj/clothing/suits.dmi'
@@ -213,11 +284,21 @@
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 35, RAD = 0, FIRE = 35, ACID = 35)
/obj/item/clothing/suit/toggle/emt_vest/jacket
- name = "paramedic jacket"
+ name = "emt jacket"
desc = "A hazard jacket used in the recovery of bodies."
+ icon_state = "emt_jacket"
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
+/obj/item/clothing/suit/toggle/emt_vest/jacket/paramedic
+ name = "paramedic jacket"
+ icon_state = "paramedic_jacket"
+
+/obj/item/clothing/suit/toggle/emt_vest/jacket/highvis
+ name = "em tech jacket"
+ desc = "A high vision jacket used in the recovery of bodies."
+ icon_state = "highvis"
+
/obj/item/clothing/head/hooded/winterhood
dynamic_hair_suffix = ""
diff --git a/modular_dripstation/code/modules/clothing/underwear.dm b/modular_dripstation/code/modules/clothing/underwear.dm
index 2c78061f12e3..70c8de71f556 100644
--- a/modular_dripstation/code/modules/clothing/underwear.dm
+++ b/modular_dripstation/code/modules/clothing/underwear.dm
@@ -176,6 +176,11 @@
icon_state = "tank_white"
gender = NEUTER
+/datum/sprite_accessory/undershirt/tank_grey
+ name = "Tank (Grey)"
+ icon_state = "tank_grey"
+ gender = NEUTER
+
/datum/sprite_accessory/undershirt/shirt_black
name = "Shirt (Black)"
icon_state = "shirt_black"
diff --git a/modular_dripstation/code/modules/clothing/voidsuit.dm b/modular_dripstation/code/modules/clothing/voidsuit.dm
index 58b941c7bcea..d5ef3672e79d 100644
--- a/modular_dripstation/code/modules/clothing/voidsuit.dm
+++ b/modular_dripstation/code/modules/clothing/voidsuit.dm
@@ -35,7 +35,7 @@
/obj/item/clothing/suit/space/explorer
name = "explorer space suit"
- icon_state = "explorer"
+ icon_state = "space_explorer"
//item_state = "explorer"
desc = "A suit that protects against low pressure environments. Has a big NT logo on the back. This variation has reinforced bulletproof plating."
armor = list(MELEE = 25, BULLET = 25, LASER = 0, ENERGY = 0, BOMB = 20, BIO = 100, RAD = 70, FIRE = 60, ACID = 65, WOUND = 0, ELECTRIC = 100)
diff --git a/modular_dripstation/code/modules/job/job_types/captain.dm b/modular_dripstation/code/modules/job/job_types/captain.dm
index 9191152a6e98..6d575c4f8afd 100644
--- a/modular_dripstation/code/modules/job/job_types/captain.dm
+++ b/modular_dripstation/code/modules/job/job_types/captain.dm
@@ -3,4 +3,5 @@
glasses = /obj/item/clothing/glasses/sunglasses
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/laceup
- box = /obj/item/storage/box/captain
\ No newline at end of file
+ box = /obj/item/storage/box/captain
+ implants = list(/obj/item/implant/mindshield/centcom)
\ No newline at end of file
diff --git a/modular_dripstation/code/modules/job/job_types/detective.dm b/modular_dripstation/code/modules/job/job_types/detective.dm
index 102cf3b207d4..1c4c7feafd12 100644
--- a/modular_dripstation/code/modules/job/job_types/detective.dm
+++ b/modular_dripstation/code/modules/job/job_types/detective.dm
@@ -1,4 +1,5 @@
/datum/outfit/job/detective
+ uniform = /obj/item/clothing/under/rank/security/detective
shoes = /obj/item/clothing/shoes/laceup
ears = /obj/item/radio/headset/headset_sec
diff --git a/modular_dripstation/code/modules/job/job_types/hop.dm b/modular_dripstation/code/modules/job/job_types/hop.dm
index 4e7feea4a900..f290f34f1361 100644
--- a/modular_dripstation/code/modules/job/job_types/hop.dm
+++ b/modular_dripstation/code/modules/job/job_types/hop.dm
@@ -18,6 +18,7 @@
backpack = /obj/item/storage/backpack/head_of_personnel
satchel = /obj/item/storage/backpack/satchel/head_of_personnel
duffelbag = /obj/item/storage/backpack/duffelbag/head_of_personnel
+ implants = list(/obj/item/implant/mindshield)
/datum/outfit/job/plasmaman/hop
backpack = /obj/item/storage/backpack/head_of_personnel
diff --git a/modular_dripstation/code/modules/job/job_types/medical_doctor.dm b/modular_dripstation/code/modules/job/job_types/medical_doctor.dm
index b7e88458ae76..cce2787ccec8 100644
--- a/modular_dripstation/code/modules/job/job_types/medical_doctor.dm
+++ b/modular_dripstation/code/modules/job/job_types/medical_doctor.dm
@@ -1,10 +1,19 @@
/datum/outfit/job/doctor
gloves = null
- chameleon_extras = list(/obj/item/gun/syringe, /obj/item/clothing/gloves/color/latex)
-
+ belt = null
pda_slot = ITEM_SLOT_LPOCKET
+ chameleon_extras = list(/obj/item/gun/syringe, /obj/item/clothing/gloves/color/latex)
/datum/outfit/job/plasmaman/doctor
gloves = /obj/item/clothing/gloves/color/latex
+ belt = null
+ pda_slot = ITEM_SLOT_LPOCKET
+/datum/outfit/job/doctor/dead
+ name = "Medical Doctor (Dead)"
+ gloves = /obj/item/clothing/gloves/color/latex
+ suit = /obj/item/clothing/suit/toggle/labcoat
+ belt = /obj/item/storage/belt/medical/full
+ l_hand = null
+ pda_type = /obj/item/modular_computer/tablet/pda/preset/medical
pda_slot = ITEM_SLOT_LPOCKET
diff --git a/modular_dripstation/code/modules/job/job_types/rd.dm b/modular_dripstation/code/modules/job/job_types/rd.dm
index f703b1523e67..6be7747eb7b1 100644
--- a/modular_dripstation/code/modules/job/job_types/rd.dm
+++ b/modular_dripstation/code/modules/job/job_types/rd.dm
@@ -1,8 +1,8 @@
/datum/outfit/job/rd
id_type = /obj/item/card/id/head
glasses = /obj/item/clothing/glasses/material/aviator
- uniform = /obj/item/clothing/under/rank/research_director/alt
- uniform_skirt = /obj/item/clothing/under/rank/research_director/alt/skirt
+ uniform = /obj/item/clothing/under/rank/rnd/research_director/alt
+ uniform_skirt = /obj/item/clothing/under/rank/rnd/research_director/alt/skirt
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/laceup/brown
backpack = /obj/item/storage/backpack/science/rd
diff --git a/modular_dripstation/code/modules/job/job_types/warden.dm b/modular_dripstation/code/modules/job/job_types/warden.dm
index 84367054f967..c19a54b71205 100644
--- a/modular_dripstation/code/modules/job/job_types/warden.dm
+++ b/modular_dripstation/code/modules/job/job_types/warden.dm
@@ -1,7 +1,7 @@
/datum/outfit/job/warden
gloves = /obj/item/clothing/gloves/color/black/tactifool
- uniform = /obj/item/clothing/under/rank/warden
- uniform_skirt = /obj/item/clothing/under/rank/warden/skirt
+ uniform = /obj/item/clothing/under/rank/security/warden
+ uniform_skirt = /obj/item/clothing/under/rank/security/warden/skirt
/datum/outfit/job/plasmaman/warden
//pda_type = /obj/item/modular_computer/tablet/pda/preset/warden
diff --git a/modular_dripstation/code/modules/surgery/organs/autosurgeon.dm b/modular_dripstation/code/modules/surgery/organs/autosurgeon.dm
new file mode 100644
index 000000000000..0935c6677fc0
--- /dev/null
+++ b/modular_dripstation/code/modules/surgery/organs/autosurgeon.dm
@@ -0,0 +1,49 @@
+/obj/item/autosurgeon
+ icon = 'modular_dripstation/icons/obj/device.dmi'
+ icon_state = "autoimplanter"
+
+/obj/item/autosurgeon/xray_eyes
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/anti_stun
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/reviver
+ icon_state = "autoimplanter_nt"
+
+/obj/item/autosurgeon/reviver/syndicate
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/arm/syndicate/syndie_mantis
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/arm/syndicate/syndie_hammer
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/arm/syndicate/stechkin_implant
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/nt_mantis
+ icon_state = "autoimplanter_nt"
+
+/obj/item/autosurgeon/nt_mantis/left
+ icon_state = "autoimplanter_nt"
+
+/obj/item/autosurgeon/plasmavessel //Yogs Start: Just an autosurgeon with a plasma vessel in it, used in /obj/item/storage/box/syndie_kit/xeno_organ_kit
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/syndicate/spinalspeed
+ icon_state = "autoimplanter_red"
+
+/obj/item/autosurgeon/suspicious
+ icon_state = "autoimplanter_red"
+
+/obj/item/multisurgeon
+ icon = 'modular_dripstation/icons/obj/device.dmi'
+ icon_state = "autoimplanter"
+
+/obj/item/multisurgeon/airshoes //for traitors
+ icon_state = "autoimplanter_red"
+
+/obj/item/multisurgeon/noslipall //for traitors
+ icon_state = "autoimplanter_red"
diff --git a/modular_dripstation/icons/mob/clothing/backpacks.dmi b/modular_dripstation/icons/mob/clothing/backpacks.dmi
index b1886dfa56a1..deb8d6fa9814 100644
Binary files a/modular_dripstation/icons/mob/clothing/backpacks.dmi and b/modular_dripstation/icons/mob/clothing/backpacks.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/belt.dmi b/modular_dripstation/icons/mob/clothing/belt.dmi
index 8548a46f12f3..ef09dbf523b3 100644
Binary files a/modular_dripstation/icons/mob/clothing/belt.dmi and b/modular_dripstation/icons/mob/clothing/belt.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/eyes.dmi b/modular_dripstation/icons/mob/clothing/eyes.dmi
index f28dc8423e76..86e470488d67 100644
Binary files a/modular_dripstation/icons/mob/clothing/eyes.dmi and b/modular_dripstation/icons/mob/clothing/eyes.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/hats.dmi b/modular_dripstation/icons/mob/clothing/hats.dmi
index f763907927ee..b38c1fd75f22 100644
Binary files a/modular_dripstation/icons/mob/clothing/hats.dmi and b/modular_dripstation/icons/mob/clothing/hats.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/neck.dmi b/modular_dripstation/icons/mob/clothing/neck.dmi
index 6a0635c0c619..7fcea8b6d9e1 100644
Binary files a/modular_dripstation/icons/mob/clothing/neck.dmi and b/modular_dripstation/icons/mob/clothing/neck.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/shoes.dmi b/modular_dripstation/icons/mob/clothing/shoes.dmi
index e1d389a63291..dcb544821215 100644
Binary files a/modular_dripstation/icons/mob/clothing/shoes.dmi and b/modular_dripstation/icons/mob/clothing/shoes.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/spacesuits/helmets.dmi b/modular_dripstation/icons/mob/clothing/spacesuits/helmets.dmi
index e8957cb127c4..f8efe908c094 100644
Binary files a/modular_dripstation/icons/mob/clothing/spacesuits/helmets.dmi and b/modular_dripstation/icons/mob/clothing/spacesuits/helmets.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/spacesuits/suits.dmi b/modular_dripstation/icons/mob/clothing/spacesuits/suits.dmi
index 80097d18764e..e6082be46f1b 100644
Binary files a/modular_dripstation/icons/mob/clothing/spacesuits/suits.dmi and b/modular_dripstation/icons/mob/clothing/spacesuits/suits.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/suits.dmi b/modular_dripstation/icons/mob/clothing/suits.dmi
index 357358239438..b6f67beda74a 100644
Binary files a/modular_dripstation/icons/mob/clothing/suits.dmi and b/modular_dripstation/icons/mob/clothing/suits.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/under.dmi b/modular_dripstation/icons/mob/clothing/under.dmi
index f0e3412f1cca..d2ad77503c8f 100644
Binary files a/modular_dripstation/icons/mob/clothing/under.dmi and b/modular_dripstation/icons/mob/clothing/under.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/cargo/cargotech.dmi b/modular_dripstation/icons/mob/clothing/uniform/cargo/cargotech.dmi
index 07027c3677af..ef4e7158f999 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/cargo/cargotech.dmi and b/modular_dripstation/icons/mob/clothing/uniform/cargo/cargotech.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/cargo/explorer.dmi b/modular_dripstation/icons/mob/clothing/uniform/cargo/explorer.dmi
index f9550d56823f..6271b1695475 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/cargo/explorer.dmi and b/modular_dripstation/icons/mob/clothing/uniform/cargo/explorer.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/cargo/miner.dmi b/modular_dripstation/icons/mob/clothing/uniform/cargo/miner.dmi
index 26783b75cf3a..c8fed19371ed 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/cargo/miner.dmi and b/modular_dripstation/icons/mob/clothing/uniform/cargo/miner.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/cargo/qm.dmi b/modular_dripstation/icons/mob/clothing/uniform/cargo/qm.dmi
index a915497bb5ee..e85c79537a0f 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/cargo/qm.dmi and b/modular_dripstation/icons/mob/clothing/uniform/cargo/qm.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi b/modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi
index e9f11e1026a0..ba09e88a6877 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi and b/modular_dripstation/icons/mob/clothing/uniform/civilian/civilian.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/blueshield.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/blueshield.dmi
index 31ed7cf1f949..f9551196061b 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/blueshield.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/blueshield.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/bridge_assistant.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/bridge_assistant.dmi
index 03854ad023ee..39ad6cdd5d6e 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/bridge_assistant.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/bridge_assistant.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi
index 6c561155b791..78203be210c2 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/captain.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/hop.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/hop.dmi
index b132354698db..4b0efc8d5b46 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/hop.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/hop.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/magistrate.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/magistrate.dmi
index 3f2de88dd30d..a6a62b81bb57 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/magistrate.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/magistrate.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/command/ntrep.dmi b/modular_dripstation/icons/mob/clothing/uniform/command/ntrep.dmi
index 546258c3da5a..911fdf14145c 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/command/ntrep.dmi and b/modular_dripstation/icons/mob/clothing/uniform/command/ntrep.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/corporate/nanotrasen.dmi b/modular_dripstation/icons/mob/clothing/uniform/corporate/nanotrasen.dmi
index 3f9a360744ba..1997f56edb31 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/corporate/nanotrasen.dmi and b/modular_dripstation/icons/mob/clothing/uniform/corporate/nanotrasen.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/corporate/pmc.dmi b/modular_dripstation/icons/mob/clothing/uniform/corporate/pmc.dmi
index b88162091785..a8faa7e96d61 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/corporate/pmc.dmi and b/modular_dripstation/icons/mob/clothing/uniform/corporate/pmc.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi b/modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi
index e2614b93f697..54f22fa0f39d 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi and b/modular_dripstation/icons/mob/clothing/uniform/corporate/syndicate.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/engineering/atmos.dmi b/modular_dripstation/icons/mob/clothing/uniform/engineering/atmos.dmi
index 9a343d6fe27c..183eb805e267 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/engineering/atmos.dmi and b/modular_dripstation/icons/mob/clothing/uniform/engineering/atmos.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/engineering/chief.dmi b/modular_dripstation/icons/mob/clothing/uniform/engineering/chief.dmi
index daed98dbf132..235d4120de21 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/engineering/chief.dmi and b/modular_dripstation/icons/mob/clothing/uniform/engineering/chief.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/engineering/engineer.dmi b/modular_dripstation/icons/mob/clothing/uniform/engineering/engineer.dmi
index 7c06827afcbb..9723fd076095 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/engineering/engineer.dmi and b/modular_dripstation/icons/mob/clothing/uniform/engineering/engineer.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/engineering/signaltech.dmi b/modular_dripstation/icons/mob/clothing/uniform/engineering/signaltech.dmi
index 003550378104..765ea63643d2 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/engineering/signaltech.dmi and b/modular_dripstation/icons/mob/clothing/uniform/engineering/signaltech.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/medical/chemistry.dmi b/modular_dripstation/icons/mob/clothing/uniform/medical/chemistry.dmi
index 8d28630adabc..879b26e4555b 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/medical/chemistry.dmi and b/modular_dripstation/icons/mob/clothing/uniform/medical/chemistry.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/medical/cmo.dmi b/modular_dripstation/icons/mob/clothing/uniform/medical/cmo.dmi
index 8799ac47fba1..90233a3d438c 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/medical/cmo.dmi and b/modular_dripstation/icons/mob/clothing/uniform/medical/cmo.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi b/modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi
index f25e411cf60d..3f91fce4c3e5 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi and b/modular_dripstation/icons/mob/clothing/uniform/medical/medical.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/medical/paramedic.dmi b/modular_dripstation/icons/mob/clothing/uniform/medical/paramedic.dmi
index e2bf5b6af312..876ffd49346c 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/medical/paramedic.dmi and b/modular_dripstation/icons/mob/clothing/uniform/medical/paramedic.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/medical/virology.dmi b/modular_dripstation/icons/mob/clothing/uniform/medical/virology.dmi
index 686a48d12e2e..a908618ad3d3 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/medical/virology.dmi and b/modular_dripstation/icons/mob/clothing/uniform/medical/virology.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/science/nanite.dmi b/modular_dripstation/icons/mob/clothing/uniform/science/nanite.dmi
index b1f0f010cb24..c202ee908e1f 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/science/nanite.dmi and b/modular_dripstation/icons/mob/clothing/uniform/science/nanite.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/science/rd.dmi b/modular_dripstation/icons/mob/clothing/uniform/science/rd.dmi
index 4f51458d8447..adea1d309b93 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/science/rd.dmi and b/modular_dripstation/icons/mob/clothing/uniform/science/rd.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/science/robotist.dmi b/modular_dripstation/icons/mob/clothing/uniform/science/robotist.dmi
index 3cd66e2e15af..02106bb7b154 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/science/robotist.dmi and b/modular_dripstation/icons/mob/clothing/uniform/science/robotist.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/science/science.dmi b/modular_dripstation/icons/mob/clothing/uniform/science/science.dmi
index feb7443cbf90..f46e84d0f038 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/science/science.dmi and b/modular_dripstation/icons/mob/clothing/uniform/science/science.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/security/pod_pilot.dmi b/modular_dripstation/icons/mob/clothing/uniform/security/pod_pilot.dmi
index 683fdaf40689..9cc0112b500d 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/security/pod_pilot.dmi and b/modular_dripstation/icons/mob/clothing/uniform/security/pod_pilot.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/security/security.dmi b/modular_dripstation/icons/mob/clothing/uniform/security/security.dmi
index f8f4b5235078..95e32f9e6c47 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/security/security.dmi and b/modular_dripstation/icons/mob/clothing/uniform/security/security.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/security/warden.dmi b/modular_dripstation/icons/mob/clothing/uniform/security/warden.dmi
index eaf4692bd06a..978f779dc412 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/security/warden.dmi and b/modular_dripstation/icons/mob/clothing/uniform/security/warden.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi b/modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi
index 9a8bf64b7d0f..4deb625b17d1 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi and b/modular_dripstation/icons/mob/clothing/uniform/service/botany.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/service/janitor.dmi b/modular_dripstation/icons/mob/clothing/uniform/service/janitor.dmi
index e16b0958c1d5..52ce0bb3f363 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/service/janitor.dmi and b/modular_dripstation/icons/mob/clothing/uniform/service/janitor.dmi differ
diff --git a/modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi b/modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi
index 453f2d136099..7045c327f0e8 100644
Binary files a/modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi and b/modular_dripstation/icons/mob/clothing/uniform/service/mime.dmi differ
diff --git a/modular_dripstation/icons/mob/inhands/clothing/clothing_lefthand.dmi b/modular_dripstation/icons/mob/inhands/clothing/clothing_lefthand.dmi
index e5c3f5bc9b3a..6dc43da51c7b 100644
Binary files a/modular_dripstation/icons/mob/inhands/clothing/clothing_lefthand.dmi and b/modular_dripstation/icons/mob/inhands/clothing/clothing_lefthand.dmi differ
diff --git a/modular_dripstation/icons/mob/inhands/clothing/clothing_righthand.dmi b/modular_dripstation/icons/mob/inhands/clothing/clothing_righthand.dmi
index 3e63651217a1..a9236802aef0 100644
Binary files a/modular_dripstation/icons/mob/inhands/clothing/clothing_righthand.dmi and b/modular_dripstation/icons/mob/inhands/clothing/clothing_righthand.dmi differ
diff --git a/modular_dripstation/icons/mob/pet.dmi b/modular_dripstation/icons/mob/pet.dmi
new file mode 100644
index 000000000000..fb3dd1fa1522
Binary files /dev/null and b/modular_dripstation/icons/mob/pet.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/gloves.dmi b/modular_dripstation/icons/obj/clothing/gloves.dmi
index 0eda22b44b92..212f819dcf29 100644
Binary files a/modular_dripstation/icons/obj/clothing/gloves.dmi and b/modular_dripstation/icons/obj/clothing/gloves.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/hats.dmi b/modular_dripstation/icons/obj/clothing/hats.dmi
index 5f37ad1a7773..290769a71f41 100644
Binary files a/modular_dripstation/icons/obj/clothing/hats.dmi and b/modular_dripstation/icons/obj/clothing/hats.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/neck.dmi b/modular_dripstation/icons/obj/clothing/neck.dmi
index c693889af4b3..ff826c8fb8b5 100644
Binary files a/modular_dripstation/icons/obj/clothing/neck.dmi and b/modular_dripstation/icons/obj/clothing/neck.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/shoes.dmi b/modular_dripstation/icons/obj/clothing/shoes.dmi
index 7a21087900a7..da6d234341eb 100644
Binary files a/modular_dripstation/icons/obj/clothing/shoes.dmi and b/modular_dripstation/icons/obj/clothing/shoes.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/suits.dmi b/modular_dripstation/icons/obj/clothing/suits.dmi
index bfd7340646ac..af8b424767c5 100644
Binary files a/modular_dripstation/icons/obj/clothing/suits.dmi and b/modular_dripstation/icons/obj/clothing/suits.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/command/blueshield.dmi b/modular_dripstation/icons/obj/clothing/uniform/command/blueshield.dmi
index 7746979a5c94..9f0c68428828 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/command/blueshield.dmi and b/modular_dripstation/icons/obj/clothing/uniform/command/blueshield.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi b/modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi
index acb42e07d478..a8e20e1b449e 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi and b/modular_dripstation/icons/obj/clothing/uniform/command/captain.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/command/hop.dmi b/modular_dripstation/icons/obj/clothing/uniform/command/hop.dmi
index d80c24c4d417..fcb814a76f3f 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/command/hop.dmi and b/modular_dripstation/icons/obj/clothing/uniform/command/hop.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/command/magistrate.dmi b/modular_dripstation/icons/obj/clothing/uniform/command/magistrate.dmi
index 3f2de88dd30d..e92b0307d584 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/command/magistrate.dmi and b/modular_dripstation/icons/obj/clothing/uniform/command/magistrate.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/command/ntrep.dmi b/modular_dripstation/icons/obj/clothing/uniform/command/ntrep.dmi
index 546258c3da5a..310a6256e827 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/command/ntrep.dmi and b/modular_dripstation/icons/obj/clothing/uniform/command/ntrep.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/corporate/pmc.dmi b/modular_dripstation/icons/obj/clothing/uniform/corporate/pmc.dmi
index 764eba5f369a..6e9157f16851 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/corporate/pmc.dmi and b/modular_dripstation/icons/obj/clothing/uniform/corporate/pmc.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi b/modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi
index 9770594ce984..61a40c26a14d 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi and b/modular_dripstation/icons/obj/clothing/uniform/corporate/syndicate.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/engineering/chief.dmi b/modular_dripstation/icons/obj/clothing/uniform/engineering/chief.dmi
index 48bb052a20da..1bfde321945a 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/engineering/chief.dmi and b/modular_dripstation/icons/obj/clothing/uniform/engineering/chief.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/medical/cmo.dmi b/modular_dripstation/icons/obj/clothing/uniform/medical/cmo.dmi
index dddf6de801e6..66e8b2a54a83 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/medical/cmo.dmi and b/modular_dripstation/icons/obj/clothing/uniform/medical/cmo.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi b/modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi
index 4104054cb5ac..9b2d4a035a64 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi and b/modular_dripstation/icons/obj/clothing/uniform/medical/medical.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/medical/paramedic.dmi b/modular_dripstation/icons/obj/clothing/uniform/medical/paramedic.dmi
index 65c79e13674c..3f0fb2978c60 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/medical/paramedic.dmi and b/modular_dripstation/icons/obj/clothing/uniform/medical/paramedic.dmi differ
diff --git a/modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi b/modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi
index f0d10885ab82..403f77b7d5b8 100644
Binary files a/modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi and b/modular_dripstation/icons/obj/clothing/uniform/service/mime.dmi differ
diff --git a/modular_dripstation/icons/obj/coatrack.dmi b/modular_dripstation/icons/obj/coatrack.dmi
index 959f82b8dada..dc44cca09ced 100644
Binary files a/modular_dripstation/icons/obj/coatrack.dmi and b/modular_dripstation/icons/obj/coatrack.dmi differ
diff --git a/modular_dripstation/icons/obj/device.dmi b/modular_dripstation/icons/obj/device.dmi
index 69280a5463dd..5a07ba1db2d0 100644
Binary files a/modular_dripstation/icons/obj/device.dmi and b/modular_dripstation/icons/obj/device.dmi differ
diff --git a/modular_dripstation/icons/obj/implants.dmi b/modular_dripstation/icons/obj/implants.dmi
index 092ce94abaee..b5e0a6d21aa3 100644
Binary files a/modular_dripstation/icons/obj/implants.dmi and b/modular_dripstation/icons/obj/implants.dmi differ
diff --git a/modular_dripstation/icons/obj/radio.dmi b/modular_dripstation/icons/obj/radio.dmi
index 5a1d99a16ef4..525520c1f249 100644
Binary files a/modular_dripstation/icons/obj/radio.dmi and b/modular_dripstation/icons/obj/radio.dmi differ
diff --git a/modular_dripstation/icons/obj/storage/backpacks.dmi b/modular_dripstation/icons/obj/storage/backpacks.dmi
index 0d652a1277d3..3b5c4098ab33 100644
Binary files a/modular_dripstation/icons/obj/storage/backpacks.dmi and b/modular_dripstation/icons/obj/storage/backpacks.dmi differ
diff --git a/modular_dripstation/icons/obj/tools.dmi b/modular_dripstation/icons/obj/tools.dmi
new file mode 100644
index 000000000000..7a278c4920ae
Binary files /dev/null and b/modular_dripstation/icons/obj/tools.dmi differ
diff --git a/modular_dripstation/includes.dm b/modular_dripstation/includes.dm
index 85d5c6da3249..8d97786d439b 100644
--- a/modular_dripstation/includes.dm
+++ b/modular_dripstation/includes.dm
@@ -27,7 +27,6 @@
#include "code\game\effects\effects_foam.dm"
#include "code\game\effects\temporary_visuals\misc.dm"
#include "code\game\gamemodes\nuclear\nuclear.dm"
-#include "code\game\gamemods\nuclear\nuclear.dm"
#include "code\game\machinery\airlock_control.dm"
#include "code\game\machinery\aug_manipulator.dm"
#include "code\game\machinery\bounty_board.dm"
@@ -102,11 +101,13 @@
#include "code\game\objects\items\handcuffs.dm"
#include "code\game\objects\items\holotool.dm"
#include "code\game\objects\items\holy_weapons.dm"
+#include "code\game\objects\items\implants\biosig_ntcommand.dm"
#include "code\game\objects\items\implants\implant_misc.dm"
#include "code\game\objects\items\implants\implant.dm"
#include "code\game\objects\items\implants\implanter.dm"
#include "code\game\objects\items\implants\implantpad.dm"
#include "code\game\objects\items\implants\implantuplink.dm"
+#include "code\game\objects\items\implants\mindshield.dm"
#include "code\game\objects\items\manuals.dm"
#include "code\game\objects\items\miscellaneous.dm"
#include "code\game\objects\items\mop.dm"
@@ -124,9 +125,11 @@
#include "code\game\objects\items\storage\firstaid.dm"
#include "code\game\objects\items\storage\garment.dm"
#include "code\game\objects\items\storage\lockbox.dm"
+#include "code\game\objects\items\pins.dm"
#include "code\game\objects\items\supermatter_delaminator.dm"
#include "code\game\objects\items\tanks\watertank.dm"
#include "code\game\objects\items\teleportation.dm"
+#include "code\game\objects\items\tools_syndicate.dm"
#include "code\game\objects\items\toys.dm"
#include "code\game\objects\items\trash.dm"
#include "code\game\objects\items\weaponry.dm"
@@ -199,6 +202,7 @@
#include "code\modules\clothing\bagsholding.dm"
#include "code\modules\clothing\belt.dm"
#include "code\modules\clothing\combatrig.dm"
+#include "code\modules\clothing\department\civilian.dm"
#include "code\modules\clothing\department\command.dm"
#include "code\modules\clothing\department\corporate.dm"
#include "code\modules\clothing\department\engineering.dm"
@@ -362,6 +366,7 @@
#include "code\modules\surgery\_bodyparts.dm"
#include "code\modules\surgery\anasthesia_machine.dm"
#include "code\modules\surgery\surgery_step.dm"
+#include "code\modules\surgery\organs\autosurgeon.dm"
#include "code\modules\surgery\tools.dm"
#include "code\modules\uplink\uplink_devices.dm"
#include "code\modules\uplink\uplink_items.dm"
diff --git a/yogstation/code/modules/clothing/head.dm b/yogstation/code/modules/clothing/head.dm
index 5142f6666ba0..28355d5f9a05 100644
--- a/yogstation/code/modules/clothing/head.dm
+++ b/yogstation/code/modules/clothing/head.dm
@@ -195,8 +195,10 @@
/obj/item/clothing/head/beret/ce
name = "chief engineer beret"
desc = "A white beret with the engineering insignia emblazoned on it. Its owner knows what they're doing. Probably."
+ /*
icon = 'yogstation/icons/obj/clothing/hats.dmi'
worn_icon = 'yogstation/icons/mob/clothing/head/head.dmi'
+ */
icon_state = "beret_ce"
armor = list(rad = 20, fire = 80)
strip_delay = 60
@@ -204,8 +206,10 @@
/obj/item/clothing/head/beret/sci
name = "science beret"
desc = "A purple beret with the science insignia emblazoned on it. It has that authentic burning plasma smell."
+ /*
icon = 'yogstation/icons/obj/clothing/hats.dmi'
worn_icon = 'yogstation/icons/mob/clothing/head/head.dmi'
+ */
icon_state = "beret_sci"
armor = list(bomb = 5, bio = 5, fire = 5, acid = 10)
strip_delay = 60
diff --git a/yogstation/code/modules/clothing/spacesuits/hardsuit.dm b/yogstation/code/modules/clothing/spacesuits/hardsuit.dm
index eb3337028f89..418b682d8f9b 100644
--- a/yogstation/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/yogstation/code/modules/clothing/spacesuits/hardsuit.dm
@@ -1,5 +1,7 @@
+/*
/obj/item/clothing/suit/space/hardsuit/engine
jetpack = /obj/item/tank/jetpack/suit
/obj/item/clothing/suit/space/hardsuit/security
jetpack = /obj/item/tank/jetpack/suit
+*/
diff --git a/yogstation/code/modules/mob/living/carbon/human/human_defense.dm b/yogstation/code/modules/mob/living/carbon/human/human_defense.dm
index 41c6aac7a43b..740b3d911a5e 100644
--- a/yogstation/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/yogstation/code/modules/mob/living/carbon/human/human_defense.dm
@@ -1,3 +1,4 @@
+/* Dripstation edit
/mob/living/carbon/human/grippedby(mob/living/user, instant = FALSE)
if(wear_neck)
if(wear_neck.type == /obj/item/clothing/neck/petcollar)
@@ -9,3 +10,4 @@
devour_mob(pulling)
else
.=..()
+*/