diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index d40d94655d1..1514e35478f 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -37,6 +37,7 @@
new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, "Ammo-357", "RA"),
new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"),
new/datum/uplink_item(/obj/item/weapon/melee/energy/sword, 4, "Energy Sword", "ES"),
+ new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Syndicate Bundle", "BU"),
new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM")
),
@@ -55,6 +56,7 @@
"Devices and Tools" = list(
new/datum/uplink_item(/obj/item/weapon/card/emag, 3, "Cryptographic Sequencer", "EC"),
new/datum/uplink_item(/obj/item/weapon/storage/toolbox/syndicate, 1, "Fully Loaded Toolbox", "ST"),
+ new/datum/uplink_item(/obj/item/weapon/stamp/chameleon, 3, "Morphic Chameleon Stmap", "CS"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/space, 3, "Space Suit", "SS"),
new/datum/uplink_item(/obj/item/clothing/glasses/thermal/syndi, 3, "Thermal Imaging Glasses", "TM"),
new/datum/uplink_item(/obj/item/device/encryptionkey/binary, 3, "Binary Translator Key", "BT"),
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 3afa1b3e8b7..0846070a71c 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -46,6 +46,7 @@
new /obj/item/weapon/cartridge/janitor(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/soft/purple(src)
+ new /obj/item/clothing/head/beret/jan(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/caution(src)
new /obj/item/weapon/caution(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 1fd6bdff5fc..088b1205555 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -29,6 +29,8 @@
new /obj/item/clothing/suit/armor/captain(src)
new /obj/item/weapon/melee/telebaton(src)
new /obj/item/clothing/under/dress/dress_cap(src)
+ new /obj/item/clothing/head/helmet/formalcaptain(src)
+ new /obj/item/clothing/under/captainformal(src)
return
@@ -82,6 +84,7 @@
new /obj/item/clothing/shoes/leather(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/under/rank/head_of_personnel_whimsy(src)
+ new /obj/item/clothing/head/helmet/hop(src)
return
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index dbbb93cb271..d660cee8254 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -401,3 +401,23 @@
new /obj/item/clothing/shoes/jackboots(src)
new /obj/item/clothing/gloves/black(src)
return
+
+/obj/structure/closet/wardrobe/suit
+ name = "suit locker"
+ icon_state = "mixed"
+ icon_closed = "mixed"
+
+/obj/structure/closet/wardrobe/suit/New()
+ ..()
+ new /obj/item/clothing/under/assistantformal(src)
+ new /obj/item/clothing/under/suit_jacket/charcoal(src)
+ new /obj/item/clothing/under/suit_jacket/navy(src)
+ new /obj/item/clothing/under/suit_jacket/burgundy(src)
+ new /obj/item/clothing/under/suit_jacket/checkered(src)
+ new /obj/item/clothing/under/suit_jacket/tan(src)
+ new /obj/item/clothing/under/sl_suit(src)
+ new /obj/item/clothing/under/suit_jacket(src)
+ new /obj/item/clothing/under/suit_jacket/female(src)
+ new /obj/item/clothing/under/suit_jacket/really_black(src)
+ new /obj/item/clothing/under/suit_jacket/red(src)
+ new /obj/item/clothing/under/scratch(src)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm
index adf6fe4bcea..70aafb41af5 100644
--- a/code/game/turfs/simulated/floor_types.dm
+++ b/code/game/turfs/simulated/floor_types.dm
@@ -221,4 +221,10 @@
icon_state = "snow"
/turf/simulated/floor/plating/snow/ex_act(severity)
- return
\ No newline at end of file
+ return
+
+/turf/simulated/floor/plating/airless/catwalk
+ icon = 'icons/turf/catwalks.dmi'
+ icon_state = "Floor3"
+ name = "catwalk"
+ desc = "Cats really don't like these things."
\ No newline at end of file
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index aee6547694a..240f6602a35 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -13,37 +13,120 @@ proc/populate_gear_list()
var/list/allowed_roles //Roles that can spawn with this item.
var/whitelisted //Term to check the whitelist for..
-//Standard gear datums.
+// This is sorted both by slot and alphabetically! Don't fuck it up!
+// Headslot items
-/datum/gear/cards
- display_name = "deck of cards"
- path = /obj/item/weapon/deck
+/datum/gear/gbandana
+ display_name = "bandana, green"
+ path = /obj/item/clothing/head/greenbandana
cost = 2
+ slot = slot_head
-/datum/gear/dice
- display_name = "d20"
- path = /obj/item/weapon/dice/d20
+/datum/gear/bandana
+ display_name = "bandana, pirate-red"
+ path = /obj/item/clothing/head/bandana
+ cost = 2
+ slot = slot_head
+
+/datum/gear/bsec_beret
+ display_name = "beret, blue (security)"
+ path = /obj/item/clothing/head/beret/sec/alt
cost = 1
+ slot = slot_head
+ allowed_roles = list("Security Officer","Head of Security","Warden")
-/datum/gear/comb
- display_name = "purple comb"
- path = /obj/item/weapon/fluff/cado_keppel_1
+/datum/gear/eng_beret
+ display_name = "beret, engie-orange"
+ path = /obj/item/clothing/head/beret/eng
+ cost = 2
+ slot = slot_head
+// allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
+
+/datum/gear/purp_beret
+ display_name = "beret, purple"
+ path = /obj/item/clothing/head/beret/jan
+ cost = 2
+ slot = slot_head
+
+/datum/gear/red_beret
+ display_name = "beret, red"
+ path = /obj/item/clothing/head/beret
+ cost = 2
+ slot = slot_head
+
+/datum/gear/sec_beret
+ display_name = "beret, red (security)"
+ path = /obj/item/clothing/head/beret/sec
cost = 1
+ slot = slot_head
+ allowed_roles = list("Security Officer","Head of Security","Warden")
-/datum/gear/tie_horrible
- display_name = "horrible tie"
- path = /obj/item/clothing/tie/horrible
+/datum/gear/bcap
+ display_name = "cap, blue"
+ path = /obj/item/clothing/head/soft/blue
cost = 2
+ slot = slot_head
-/datum/gear/tie_blue
- display_name = "blue tie"
- path = /obj/item/clothing/tie/blue
+/datum/gear/mailman
+ display_name = "cap, blue station"
+ path = /obj/item/clothing/head/mailman
cost = 2
+ slot = slot_head
-/datum/gear/tie_red
- display_name = "red tie"
- path = /obj/item/clothing/tie/red
+/datum/gear/flatcap
+ display_name = "cap, brown-flat"
+ path = /obj/item/clothing/head/flatcap
cost = 2
+ slot = slot_head
+
+/datum/gear/corpcap
+ display_name = "cap, corporate (Security)"
+ path = /obj/item/clothing/head/soft/sec/corp
+ cost = 2
+ slot = slot_head
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+/datum/gear/gcap
+ display_name = "cap, green"
+ path = /obj/item/clothing/head/soft/green
+ cost = 2
+ slot = slot_head
+
+ /datum/gear/grcap
+ display_name = "cap, grey"
+ path = /obj/item/clothing/head/soft/grey
+ cost = 2
+ slot = slot_head
+
+ /datum/gear/ocap
+ display_name = "cap, orange"
+ path = /obj/item/clothing/head/soft/orange
+ cost = 2
+ slot = slot_head
+
+/datum/gear/purcap
+ display_name = "cap, purple"
+ path = /obj/item/clothing/head/soft/purple
+ cost = 2
+ slot = slot_head
+
+/datum/gear/raincap
+ display_name = "cap, rainbow"
+ path = /obj/item/clothing/head/soft/rainbow
+ cost = 3
+ slot = slot_head
+
+/datum/gear/rcap
+ display_name = "cap, red"
+ path = /obj/item/clothing/head/soft/red
+ cost = 2
+ slot = slot_head
+
+/datum/gear/ycap
+ display_name = "cap, yellow"
+ path = /obj/item/clothing/head/soft/yellow
+ cost = 2
+ slot = slot_head
/datum/gear/hairflower
display_name = "hair flower pin"
@@ -51,47 +134,384 @@ proc/populate_gear_list()
cost = 2
slot = slot_head
-/datum/gear/bandana
- display_name = "pirate bandana"
- path = /obj/item/clothing/head/bandana
- cost = 3
+/datum/gear/dbhardhat
+ display_name = "hardhat, blue"
+ path = /obj/item/clothing/head/hardhat/dblue
+ cost = 2
slot = slot_head
+/datum/gear/ohardhat
+ display_name = "hardhat, orange"
+ path = /obj/item/clothing/head/hardhat/orange
+ cost = 2
+ slot = slot_head
+
+/datum/gear/yhardhat
+ display_name = "hardhat, yellow"
+ path = /obj/item/clothing/head/hardhat
+ cost = 2
+ slot = slot_head
+
+/datum/gear/boater
+ display_name = "hat, boatsman"
+ path = /obj/item/clothing/head/boaterhat
+ cost = 2
+ slot = slot_head
+
+ /datum/gear/bowler
+ display_name = "hat, bowler"
+ path = /obj/item/clothing/head/bowler
+ cost = 2
+ slot = slot_head
+
+/datum/gear/fez
+ display_name = "hat, fez"
+ path = /obj/item/clothing/head/fez
+ cost = 2
+ slot = slot_head
+
+/datum/gear/ushanka
+ display_name = "ushanka"
+ path = /obj/item/clothing/head/ushanka
+ cost = 2
+ slot = slot_head
+
+/datum/gear/zhan_scarf
+ display_name = "headscarf, white"
+ path = /obj/item/clothing/head/tajaran/scarf
+ cost = 2
+ slot = slot_head
+// whitelisted = "Tajaran" // It's a headscarf. It isn't even a taj-themed headscarf!
+
+// Eyes
+
+/datum/gear/eyepatch
+ display_name = "eyepatch"
+ path = /obj/item/clothing/glasses/eyepatch
+ cost = 1
+ slot = slot_glasses
+
+/datum/gear/green_glasses
+ display_name = "Glasses, green"
+ path = /obj/item/clothing/glasses/gglasses
+ cost = 1
+
+/datum/gear/scanning_goggles
+ display_name = "scanning goggles"
+ path = /obj/item/clothing/glasses/fluff/uzenwa_sissra_1
+ cost = 1
+// allowed_roles = list("Roboticist", "Scientist", "Research Director")
+
+/datum/gear/security
+ display_name = "Security HUD"
+ path = /obj/item/clothing/glasses/hud/security
+ cost = 1
+ slot = slot_glasses
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+/datum/gear/thugshades
+ display_name = "Sunglasses, Fat (Security)"
+ path = /obj/item/clothing/glasses/sunglasses/big
+ cost = 1
+ slot = slot_glasses
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+/datum/gear/prescription
+ display_name = "sunglasses, presciption"
+ path = /obj/item/clothing/glasses/sunglasses/prescription
+ cost = 3
+ slot = slot_glasses
+
+// Mask
+
+/datum/gear/sterilemask
+ display_name = "sterile mask"
+ path = /obj/item/clothing/mask/surgical
+ slot = slot_w_uniform
+ cost = 2
+
+// Uniform slot
+
+/datum/gear/exec_suit
+ display_name = "executive suit"
+ path = /obj/item/clothing/under/suit_jacket/really_black
+ slot = slot_w_uniform
+ cost = 2
+
+/datum/gear/kilt
+ display_name = "kilt"
+ path = /obj/item/clothing/under/kilt
+ slot = slot_w_uniform
+ cost = 3
+
+/datum/gear/skirt_blue
+ display_name = "plaid skirt, blue"
+ path = /obj/item/clothing/under/dress/plaid_blue
+ slot = slot_w_uniform
+ cost = 2
+
+/datum/gear/skirt_purple
+ display_name = "plaid skirt, purple"
+ path = /obj/item/clothing/under/dress/plaid_purple
+ slot = slot_w_uniform
+ cost = 2
+
+/datum/gear/skirt_red
+ display_name = " plaid skirt, red"
+ path = /obj/item/clothing/under/dress/plaid_red
+ slot = slot_w_uniform
+ cost = 2
+
+/datum/gear/skirt_black
+ display_name = "skirt, black"
+ path = /obj/item/clothing/under/blackskirt
+ slot = slot_w_uniform
+ cost = 2
+
+/datum/gear/sundress
+ display_name = "sundress"
+ path = /obj/item/clothing/under/sundress
+ slot = slot_w_uniform
+ cost = 3
+
+/datum/gear/uniform_captain
+ display_name = "uniform, captain's dress"
+ path = /obj/item/clothing/under/dress/dress_cap
+ slot = slot_w_uniform
+ cost = 1
+ allowed_roles = list("Captain")
+
+/datum/gear/corpsecsuit
+ display_name = "uniform, corporate (Security)"
+ path = /obj/item/clothing/under/rank/security/corp
+ cost = 2
+ slot = slot_w_uniform
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+/datum/gear/uniform_hop
+ display_name = "uniform, HoP's dress"
+ path = /obj/item/clothing/under/dress/dress_hop
+ slot = slot_w_uniform
+ cost = 1
+ allowed_roles = list("Head of Personnel")
+
+/datum/gear/uniform_hr
+ display_name = "uniform, HR director (HoP)"
+ path = /obj/item/clothing/under/dress/dress_hr
+ slot = slot_w_uniform
+ cost = 1
+ allowed_roles = list("Head of Personnel")
+
+/datum/gear/navysecsuit
+ display_name = "uniform, navyblue (Security)"
+ path = /obj/item/clothing/under/rank/security/navyblue
+ cost = 2
+ slot = slot_w_uniform
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+// Attachments
+
+/datum/gear/armband_cargo
+ display_name = "armband, cargo"
+ path = /obj/item/clothing/tie/armband/cargo
+ cost = 1
+
+/datum/gear/armband_emt
+ display_name = "armband, EMT"
+ path = /obj/item/clothing/tie/armband/medgreen
+ cost = 2
+
+/datum/gear/armband_engineering
+ display_name = "armband, engineering"
+ path = /obj/item/clothing/tie/armband/engine
+ cost = 1
+
+/datum/gear/armband_hydroponics
+ display_name = "armband, hydroponics"
+ path = /obj/item/clothing/tie/armband/hydro
+ cost = 1
+
+/datum/gear/armband_medical
+ display_name = "armband, medical"
+ path = /obj/item/clothing/tie/armband/med
+ cost = 1
+
+/datum/gear/armband
+ display_name = "armband, red"
+ path = /obj/item/clothing/tie/armband
+ cost = 1
+
+/datum/gear/armband_science
+ display_name = "armband, science"
+ path = /obj/item/clothing/tie/armband/science
+ cost = 1
+
+/datum/gear/armpit
+ display_name = "shoulder holster"
+ path = /obj/item/clothing/tie/holster/armpit
+ cost = 2
+ allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Head of Security")
+
+/datum/gear/tie_blue
+ display_name = "tie, blue"
+ path = /obj/item/clothing/tie/blue
+ cost = 1
+
+/datum/gear/tie_red
+ display_name = "tie, red"
+ path = /obj/item/clothing/tie/red
+ cost = 1
+
+/datum/gear/tie_horrible
+ display_name = "tie, socially disgraceful"
+ path = /obj/item/clothing/tie/horrible
+ cost = 1
+
+/datum/gear/brown_vest
+ display_name = "webbing, engineering"
+ path = /obj/item/clothing/tie/storage/brown_vest
+ cost = 2
+ allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
+
+/datum/gear/black_vest
+ display_name = "webbing, security"
+ path = /obj/item/clothing/tie/storage/black_vest
+ cost = 2
+ allowed_roles = list("Security Officer","Head of Security","Warden")
+
+/datum/gear/webbing
+ display_name = "webbing, simple"
+ path = /obj/item/clothing/tie/storage/webbing
+ cost = 2
+
+// Suit slot
+
+/datum/gear/apron
+ display_name = "apron, blue"
+ path = /obj/item/clothing/suit/apron
+ cost = 1
+ slot = slot_wear_suit
+
+/datum/gear/bomber
+ display_name = "bomberjacker"
+ path = /obj/item/clothing/suit/bomber
+ cost = 4
+ slot = slot_wear_suit
+
+/datum/gear/unathi_mantle
+ display_name = "hide mantle (Unathi)"
+ path = /obj/item/clothing/suit/unathi/mantle
+ cost = 2
+ slot = slot_wear_suit
+ whitelisted = "Unathi"
+
+/datum/gear/labcoat
+ display_name = "labcoat"
+ path = /obj/item/clothing/suit/storage/labcoat
+ cost = 3
+ slot = slot_wear_suit
+
/datum/gear/overalls
display_name = "overalls"
path = /obj/item/clothing/suit/apron/overalls
cost = 2
slot = slot_wear_suit
+/datum/gear/gponcho
+ display_name = "poncho, green"
+ path = /obj/item/clothing/suit/poncho/green
+ cost = 4
+ slot = slot_wear_suit
+
+/datum/gear/rponcho
+ display_name = "poncho, red"
+ path = /obj/item/clothing/suit/poncho/red
+ cost = 4
+ slot = slot_wear_suit
+
+/datum/gear/poncho
+ display_name = "poncho, tan"
+ path = /obj/item/clothing/suit/poncho
+ cost = 4
+ slot = slot_wear_suit
+
+/datum/gear/unathi_robe
+ display_name = "roughspun robe (Unathi)"
+ path = /obj/item/clothing/suit/unathi/robe
+ cost = 3
+ slot = slot_wear_suit
+// whitelisted = "Unathi" // You don't have a monopoly on a robe!
+
+/datum/gear/suspenders
+ display_name = "suspenders"
+ path = /obj/item/clothing/suit/suspenders
+ cost = 2
+ slot = slot_wear_suit
+
/datum/gear/wcoat
display_name = "waistcoat"
path = /obj/item/clothing/suit/wcoat
cost = 2
slot = slot_wear_suit
-/datum/gear/prescription
- display_name = "prescription sunglasses"
- path = /obj/item/clothing/glasses/sunglasses/prescription
- cost = 3
- slot = slot_glasses
-
-/datum/gear/eyepatch
- display_name = "eyepatch"
- path = /obj/item/clothing/glasses/eyepatch
- cost = 3
- slot = slot_glasses
-
-/datum/gear/flatcap
- display_name = "flat cap"
- path = /obj/item/clothing/head/flatcap
- cost = 2
- slot = slot_head
-
-/datum/gear/labcoat
- display_name = "labcoat"
- path = /obj/item/clothing/suit/storage/labcoat
+/datum/gear/zhan_furs
+ display_name = "Zhan-Khazan furs (Tajaran)"
+ path = /obj/item/clothing/suit/tajaran/furs
cost = 3
slot = slot_wear_suit
+ whitelisted = "Tajaran" // You do have a monopoly on a fur suit tho
+
+// Gloves
+
+/datum/gear/black_gloves
+ display_name = "gloves, black"
+ path = /obj/item/clothing/gloves/black
+ cost = 2
+ slot = slot_gloves
+
+/datum/gear/blue_gloves
+ display_name = "gloves, blue"
+ path = /obj/item/clothing/gloves/blue
+ cost = 1
+ slot = slot_gloves
+
+/datum/gear/brown_gloves
+ display_name = "gloves, brown"
+ path = /obj/item/clothing/gloves/brown
+ cost = 2
+ slot = slot_gloves
+
+/datum/gear/green_gloves
+ display_name = "gloves, green"
+ path = /obj/item/clothing/gloves/green
+ cost = 1
+ slot = slot_gloves
+
+/datum/gear/orange_gloves
+ display_name = "gloves, orange"
+ path = /obj/item/clothing/gloves/orange
+ cost = 1
+ slot = slot_gloves
+
+/datum/gear/red_gloves
+ display_name = "gloves, red"
+ path = /obj/item/clothing/gloves/red
+ cost = 1
+ slot = slot_gloves
+
+/datum/gear/white_gloves
+ display_name = "gloves, white"
+ path = /obj/item/clothing/gloves/white
+ cost = 2
+ slot = slot_gloves
+
+// Shoelocker
+
+/datum/gear/jackboots
+ display_name = "jackboots"
+ path = /obj/item/clothing/shoes/jackboots
+ cost = 2
+ slot = slot_shoes
/datum/gear/sandal
display_name = "sandals"
@@ -99,309 +519,138 @@ proc/populate_gear_list()
cost = 1
slot = slot_shoes
-/datum/gear/leather
- display_name = "leather shoes"
- path = /obj/item/clothing/shoes/leather
- cost = 2
- slot = slot_shoes
-
-/datum/gear/dress_shoes
- display_name = "dress shoes"
- path = /obj/item/clothing/shoes/centcom
- cost = 2
- slot = slot_shoes
-
-/datum/gear/black_gloves
- display_name = "black gloves"
- path = /obj/item/clothing/gloves/black
- cost = 1
- slot = slot_gloves
-
-/datum/gear/red_gloves
- display_name = "red gloves"
- path = /obj/item/clothing/gloves/red
- cost = 1
- slot = slot_gloves
-
-/datum/gear/blue_gloves
- display_name = "blue gloves"
- path = /obj/item/clothing/gloves/blue
- cost = 1
- slot = slot_gloves
-
-/datum/gear/orange_gloves
- display_name = "orange gloves"
- path = /obj/item/clothing/gloves/orange
- cost = 1
- slot = slot_gloves
-
-/datum/gear/purple_gloves
- display_name = "purple gloves"
- path = /obj/item/clothing/gloves/purple
- cost = 1
- slot = slot_gloves
-
-/datum/gear/brown_gloves
- display_name = "brown gloves"
- path = /obj/item/clothing/gloves/brown
- cost = 1
- slot = slot_gloves
-
-/datum/gear/green_gloves
- display_name = "green gloves"
- path = /obj/item/clothing/gloves/green
- cost = 2
- slot = slot_gloves
-
-/datum/gear/white_gloves
- display_name = "white gloves"
- path = /obj/item/clothing/gloves/white
- cost = 2
- slot = slot_gloves
-
/datum/gear/black_shoes
- display_name = "black shoes"
+ display_name = "shoes, black"
path = /obj/item/clothing/shoes/black
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/blue_shoes
- display_name = "blue shoes"
+ display_name = "shoes, blue"
path = /obj/item/clothing/shoes/blue
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/brown_shoes
- display_name = "brown shoes"
+ display_name = "shoes, brown"
path = /obj/item/clothing/shoes/brown
- cost = 2
+ cost = 1
+ slot = slot_shoes
+
+/datum/gear/laceyshoes
+ display_name = "shoes, classy"
+ path = /obj/item/clothing/shoes/laceup
+ cost = 1
+ slot = slot_shoes
+
+/datum/gear/dress_shoes
+ display_name = "shoes, dress"
+ path = /obj/item/clothing/shoes/centcom
+ cost = 1
slot = slot_shoes
/datum/gear/green_shoes
- display_name = "green shoes"
+ display_name = "shoes, green"
path = /obj/item/clothing/shoes/green
- cost = 2
+ cost = 1
+ slot = slot_shoes
+
+/datum/gear/leather
+ display_name = "shoes, leather"
+ path = /obj/item/clothing/shoes/leather
+ cost = 1
slot = slot_shoes
/datum/gear/orange_shoes
- display_name = "orange shoes"
+ display_name = "shoes, orange"
path = /obj/item/clothing/shoes/orange
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/purple_shoes
- display_name = "purple shoes"
+ display_name = "shoes, purple"
path = /obj/item/clothing/shoes/purple
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/red_shoes
- display_name = "red shoes"
+ display_name = "shoes, red"
path = /obj/item/clothing/shoes/red
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/white_shoes
- display_name = "white shoes"
+ display_name = "shoes, white"
path = /obj/item/clothing/shoes/white
- cost = 2
+ cost = 1
slot = slot_shoes
/datum/gear/yellow_shoes
- display_name = "yellow shoes"
+ display_name = "shoes, yellow"
path = /obj/item/clothing/shoes/yellow
- cost = 2
+ cost = 1
slot = slot_shoes
-/datum/gear/jackboots
- display_name = "jackboots"
- path = /obj/item/clothing/shoes/jackboots
- cost = 3
- slot = slot_shoes
+// "Useful" items
-/datum/gear/webbing
- display_name = "webbing"
- path = /obj/item/clothing/tie/storage/webbing
- cost = 1
-
-/datum/gear/armband
- display_name = "red armband"
- path = /obj/item/clothing/tie/armband
- cost = 1
-
-/datum/gear/armband_cargo
- display_name = "cargo armband"
- path = /obj/item/clothing/tie/armband/cargo
- cost = 1
-
-/datum/gear/armband_engineering
- display_name = "engineering armband"
- path = /obj/item/clothing/tie/armband/engine
- cost = 1
-
-/datum/gear/armband_science
- display_name = "science armband"
- path = /obj/item/clothing/tie/armband/science
- cost = 1
-
-/datum/gear/armband_hydroponics
- display_name = "hydroponics armband"
- path = /obj/item/clothing/tie/armband/hydro
- cost = 1
-
-/datum/gear/armband_medical
- display_name = "medical armband"
- path = /obj/item/clothing/tie/armband/med
- cost = 1
-
-/datum/gear/armband_emt
- display_name = "EMT armband"
- path = /obj/item/clothing/tie/armband/medgreen
- cost = 1
-
-/datum/gear/skirt_blue
- display_name = "blue plaid skirt"
- path = /obj/item/clothing/under/dress/plaid_blue
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/skirt_red
- display_name = "red plaid skirt"
- path = /obj/item/clothing/under/dress/plaid_red
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/skirt_purple
- display_name = "purple plaid skirt"
- path = /obj/item/clothing/under/dress/plaid_purple
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/skirt_black
- display_name = "black skirt"
- path = /obj/item/clothing/under/blackskirt
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/sundress
- display_name = "sundress"
- path = /obj/item/clothing/under/sundress
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/uniform_captain
- display_name = "captain's dress uniform"
- path = /obj/item/clothing/under/dress/dress_cap
- slot = slot_w_uniform
- cost = 3
- allowed_roles = list("Captain")
-
-/datum/gear/uniform_hop
- display_name = "HoP dress uniform"
- path = /obj/item/clothing/under/dress/dress_hop
- slot = slot_w_uniform
- cost = 3
- allowed_roles = list("Head of Personnel")
-
-/datum/gear/uniform_hr
- display_name = "HR director uniform"
- path = /obj/item/clothing/under/dress/dress_hr
- slot = slot_w_uniform
- cost = 3
- allowed_roles = list("Head of Personnel")
-
-/datum/gear/kilt
- display_name = "kilt"
- path = /obj/item/clothing/under/kilt
- slot = slot_w_uniform
- cost = 3
-
-/datum/gear/exec_suit
- display_name = "executive suit"
- path = /obj/item/clothing/under/suit_jacket/really_black
- slot = slot_w_uniform
- cost = 3
-
-//Security
-/datum/gear/security
- display_name = "Security HUD"
- path = /obj/item/clothing/glasses/hud/security
- cost = 3
- slot = slot_glasses
- allowed_roles = list("Security Officer","Head of Security","Warden")
-
-/datum/gear/black_vest
- display_name = "black webbing vest"
- path = /obj/item/clothing/tie/storage/black_vest
- cost = 3
- allowed_roles = list("Security Officer","Head of Security","Warden")
-
-/datum/gear/armpit
- display_name = "shoulder holster"
- path = /obj/item/clothing/tie/holster/armpit
- cost = 3
- allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Head of Security")
-
-/datum/gear/sec_beret
- display_name = "security beret"
- path = /obj/item/clothing/head/beret/sec
- cost = 1
- slot = slot_head
- allowed_roles = list("Security Officer","Head of Security","Warden")
-
-//Engineering
-/datum/gear/eng_beret
- display_name = "engineering beret"
- path = /obj/item/clothing/head/beret/eng
- cost = 1
- slot = slot_head
- allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
-
-/datum/gear/brown_vest
- display_name = "brown webbing vest"
- path = /obj/item/clothing/tie/storage/brown_vest
- cost = 3
- allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
-
-/datum/gear/engineer_bandana
- display_name = "engineering bandana"
- path = /obj/item/clothing/head/helmet/greenbandana/fluff/taryn_kifer_1
+/datum/gear/briefcase
+ display_name = "briefcase"
+ path = /obj/item/weapon/storage/briefcase
cost = 2
- slot = slot_head
- allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
-//Science
-/datum/gear/scanning_goggles
- display_name = "scanning goggles"
- path = /obj/item/clothing/glasses/fluff/uzenwa_sissra_1
+/datum/gear/matchbook
+ display_name = "matchbook"
+ path = /obj/item/weapon/storage/box/matches
cost = 2
- allowed_roles = list("Roboticist", "Scientist", "Research Director")
-//Species-specific gear datums.
-/datum/gear/zhan_furs
- display_name = "Zhan-Khazan furs"
- path = /obj/item/clothing/suit/tajaran/furs
- cost = 3
- slot = slot_wear_suit
- whitelisted = "Tajaran"
+// The rest of the trash.
-/datum/gear/zhan_scarf
- display_name = "Zhan-Khazan headscarf"
- path = /obj/item/clothing/head/tajaran/scarf
+/datum/gear/ashtray
+ display_name = "ashtray, plastic"
+ path = /obj/item/ashtray/plastic
+ cost = 1
+
+/datum/gear/cane
+ display_name = "cane"
+ path = /obj/item/weapon/cane
cost = 2
- slot = slot_head
- whitelisted = "Tajaran"
-/datum/gear/unathi_robe
- display_name = "roughspun robe"
- path = /obj/item/clothing/suit/unathi/robe
- cost = 3
- slot = slot_wear_suit
- whitelisted = "Unathi"
+/datum/gear/clipboard
+ display_name = "clipboard"
+ path = /obj/item/weapon/clipboard
+ cost = 1
-/datum/gear/unathi_mantle
- display_name = "hide mantle"
- path = /obj/item/clothing/suit/unathi/mantle
- cost = 2
- slot = slot_wear_suit
- whitelisted = "Unathi"
+/datum/gear/dice
+ display_name = "d20"
+ path = /obj/item/weapon/dice/d20
+ cost = 1
+
+/datum/gear/cards
+ display_name = "deck of cards"
+ path = /obj/item/weapon/deck
+ cost = 1
+
+/datum/gear/blipstick
+ display_name = "lipstick, black"
+ path = /obj/item/weapon/lipstick
+ cost = 1
+
+/datum/gear/jlipstick
+ display_name = "lipstick, jade"
+ path = /obj/item/weapon/lipstick
+ cost = 1
+
+/datum/gear/plipstick
+ display_name = "lipstick, purple"
+ path = /obj/item/weapon/lipstick
+ cost = 1
+
+/datum/gear/rlipstick
+ display_name = "lipstick, red"
+ path = /obj/item/weapon/lipstick
+ cost = 1
+
+/datum/gear/comb
+ display_name = "purple comb"
+ path = /obj/item/weapon/fluff/cado_keppel_1
+ cost = 2
\ No newline at end of file
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 5a572514e1b..ce2d677da59 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -20,6 +20,20 @@
flags_inv = 0
body_parts_covered = 0
+/obj/item/clothing/head/helmet/hop
+ name = "crew resource's hat"
+ desc = "A stylish hat that both protects you from enraged former-crewmembers and gives you a false sense of authority."
+ icon_state = "hopcap"
+ flags_inv = 0
+ body_parts_covered = 0
+
+/obj/item/clothing/head/helmet/formalcaptain
+ name = "parade hat"
+ desc = "No one in a commanding position should be without a perfect, white hat of ultimate authority."
+ icon_state = "officercap"
+ flags_inv = 0
+ body_parts_covered = 0
+
/obj/item/clothing/head/helmet/riot
name = "riot helmet"
desc = "It's a helmet specifically designed to protect against close range attacks."
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 8ec2ef98eda..36fa4823e4a 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -83,6 +83,12 @@
desc = "A beret with the engineering insignia emblazoned on it. For engineers that are more inclined towards style than safety."
icon_state = "e_beret_badge"
flags = FPRINT | TABLEPASS
+/obj/item/clothing/head/beret/jan
+ name = "purple beret"
+ desc = "A stylish, if purple, beret."
+ icon_state = "purpleberet"
+ flags = FPRINT | TABLEPASS
+
//Medical
/obj/item/clothing/head/surgery
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index cf5530b306a..fa8f4ca22bc 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -40,9 +40,9 @@
body_parts_covered = 0
/obj/item/clothing/head/mailman
- name = "mailman's hat"
+ name = "station cap"
icon_state = "mailman"
- desc = "'Right-on-time' mail service head wear."
+ desc = "Choo-choo!"
flags = FPRINT | TABLEPASS
body_parts_covered = 0
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index d29a870614c..066a8770d78 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -70,6 +70,28 @@
blood_overlay_type = "armor"
body_parts_covered = 0
+//Security
+/obj/item/clothing/suit/security/navyofficer
+ name = "security officer's jacket"
+ desc = "This jacket is for those special occasions when a security officer actually feels safe."
+ icon_state = "officerbluejacket"
+ item_state = "officerbluejacket"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/suit/security/navywarden
+ name = "warden's jacket"
+ desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig."
+ icon_state = "wardenbluejacket"
+ item_state = "wardenbluejacket"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
+/obj/item/clothing/suit/security/navyhos
+ name = "head of security's jacket"
+ desc = "This piece of clothing was specifically designed for asserting superior authority."
+ icon_state = "hosbluejacket"
+ item_state = "hosbluejacket"
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
+
//Detective
/obj/item/clothing/suit/storage/det_suit
name = "coat"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 09726bb3d36..bbfe5ffa769 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -62,7 +62,7 @@
/obj/item/clothing/suit/greatcoat
name = "great coat"
- desc = "A Nazi great coat"
+ desc = "A heavy great coat"
icon_state = "nazi"
item_state = "nazi"
flags = FPRINT | TABLEPASS
@@ -347,3 +347,29 @@
icon_state = "swim_red"
item_color = "swim_red"
siemens_coefficient = 1
+
+/obj/item/clothing/suit/poncho
+ name = "poncho"
+ desc = "A simple, comfortable poncho."
+ icon_state = "classicponcho"
+ item_state = "classicponcho"
+
+/obj/item/clothing/suit/poncho/green
+ name = "green poncho"
+ desc = "Your classic, non-racist poncho. This one is green."
+ icon_state = "greenponcho"
+ item_state = "greenponcho"
+
+/obj/item/clothing/suit/poncho/red
+ name = "red poncho"
+ desc = "Your classic, non-racist poncho. This one is red."
+ icon_state = "redponcho"
+ item_state = "redponcho"
+
+/obj/item/clothing/suit/bomber
+ name = "bomber jacker"
+ desc = "A well-worn WW2 leather bomber jacket."
+ icon_state = "bomber"
+ item_state = "bomber"
+ flags = FPRINT | TABLEPASS
+ body_parts_covered = UPPER_TORSO|ARMS
\ No newline at end of file
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 93db4210358..f17832d7beb 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -174,4 +174,29 @@
item_state = "jensencoat"
flags_inv = 0
siemens_coefficient = 0.6
- body_parts_covered = UPPER_TORSO|ARMS
\ No newline at end of file
+ body_parts_covered = UPPER_TORSO|ARMS
+
+/*
+ * Navy uniforms
+ */
+
+/obj/item/clothing/under/rank/security/navyblue
+ name = "security officer's uniform"
+ desc = "The latest in fashionable security outfits."
+ icon_state = "officerblueclothes"
+ item_state = "officerblueclothes"
+ item_color = "officerblueclothes"
+
+/obj/item/clothing/under/rank/head_of_security/navyblue
+ desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security."
+ name = "head of security's uniform"
+ icon_state = "hosblueclothes"
+ item_state = "hosblueclothes"
+ item_color = "hosblueclothes"
+
+/obj/item/clothing/under/rank/warden/navyblue
+ desc = "The insignia on this uniform tells you that this uniform belongs to the Warden."
+ name = "warden's uniform"
+ icon_state = "wardenblueclothes"
+ item_state = "wardenblueclothes"
+ item_color = "wardenblueclothes"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 9c52df5a266..2e8697f36a8 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -390,4 +390,74 @@
icon_state = "sundress"
item_state = "sundress"
item_color = "sundress"
- body_parts_covered = UPPER_TORSO|LOWER_TORSO
\ No newline at end of file
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO
+
+/obj/item/clothing/under/captainformal
+ name = "captain's formal uniform"
+ desc = "A captain's formal-wear, for special occasions."
+ icon_state = "captain_formal"
+ item_state = "by_suit"
+ item_color = "captain_formal"
+
+/obj/item/clothing/under/hosformalmale
+ name = "head of security's formal uniform"
+ desc = "A male head of security's formal-wear, for special occasions."
+ icon_state = "hos_formal_male"
+ item_state = "r_suit"
+ item_color = "hos_formal_male"
+
+/obj/item/clothing/under/hosformalfem
+ name = "head of security's formal uniform"
+ desc = "A female head of security's formal-wear, for special occasions."
+ icon_state = "hos_formal_fem"
+ item_state = "r_suit"
+ item_color = "hos_formal_fem"
+
+/obj/item/clothing/under/assistantformal
+ name = "assistant's formal uniform"
+ desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown."
+ icon_state = "assistant_formal"
+ item_state = "gy_suit"
+ item_color = "assistant_formal"
+
+/obj/item/clothing/under/suit_jacket/charcoal
+ name = "charcoal suit"
+ desc = "A charcoal suit and red tie. Very professional."
+ icon_state = "charcoal_suit"
+ item_state = "charcoal_suit"
+ item_color = "charcoal_suit"
+
+/obj/item/clothing/under/suit_jacket/navy
+ name = "navy suit"
+ desc = "A navy suit and red tie, intended for the station's finest."
+ icon_state = "navy_suit"
+ item_state = "navy_suit"
+ item_color = "navy_suit"
+
+/obj/item/clothing/under/suit_jacket/burgundy
+ name = "burgundy suit"
+ desc = "A burgundy suit and black tie. Somewhat formal."
+ icon_state = "burgundy_suit"
+ item_state = "burgundy_suit"
+ item_color = "burgundy_suit"
+
+/obj/item/clothing/under/suit_jacket/checkered
+ name = "checkered suit"
+ desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?"
+ icon_state = "checkered_suit"
+ item_state = "checkered_suit"
+ item_color = "checkered_suit"
+
+/obj/item/clothing/under/suit_jacket/tan
+ name = "tan suit"
+ desc = "A tan suit with a yellow tie. Smart, but casual."
+ icon_state = "tan_suit"
+ item_state = "tan_suit"
+ item_color = "tan_suit"
+
+/obj/item/clothing/under/serviceoveralls
+ name = "Workman outfit"
+ desc = "The very image of a working man. Not that you're probably doing work."
+ icon_state = "mechanic_s"
+ item_state = "mechanic_s"
+ item_color = "mechanic_s"
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index c84c5b43559..aba8b377f63 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -245,10 +245,10 @@ var/list/ai_verbs_default = list(
//if(icon_state == initial(icon_state))
var/icontype = ""
if (custom_sprite == 1) icontype = ("Custom")//automagically selects custom sprite if one is available
- else icontype = input("Select an icon!", "AI", null, null) in list("Monochrome", "Blue", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static")
+ else icontype = input("Select an icon!", "AI", null, null) in list("Monochrome", "Rainbow", "Blue", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static", "Soviet", "Trapped", "Heartline")
switch(icontype)
if("Custom") icon_state = "[src.ckey]-ai"
- if("Clown") icon_state = "ai-clown2"
+ if("Rainbow") icon_state = "ai-clown"
if("Monochrome") icon_state = "ai-mono"
if("Inverted") icon_state = "ai-u"
if("Firewall") icon_state = "ai-magma"
@@ -263,6 +263,9 @@ var/list/ai_verbs_default = list(
if("Bliss") icon_state = "ai-bliss"
if("Triumvirate") icon_state = "ai-triumvirate"
if("Triumvirate Static") icon_state = "ai-triumvirate-malf"
+ if("Soviet") icon_state = "ai-redoctober"
+ if("Trapped") icon_state = "ai-hades"
+ if("Heartline") icon_state = "ai-heartline"
else icon_state = "ai"
//else
//usr <<"You can only change your display once!"
@@ -684,7 +687,8 @@ var/list/ai_verbs_default = list(
else
var/icon_list[] = list(
"default",
- "floating face"
+ "floating face",
+ "carp"
)
input = input("Please select a hologram:") as null|anything in icon_list
if(input)
@@ -694,6 +698,8 @@ var/list/ai_verbs_default = list(
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
if("floating face")
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2"))
+ if("carp")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4"))
return
/*/mob/living/silicon/ai/proc/corereturn()
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 667aeb186d2..a6d6f02d391 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -190,6 +190,7 @@ var/list/robot_verbs_default = list(
module_sprites["Basic"] = "robot_old"
module_sprites["Android"] = "droid"
module_sprites["Default"] = "robot"
+ module_sprites["Drone"] = "drone-standard"
if("Service")
module = new /obj/item/weapon/robot_module/butler(src)
@@ -198,6 +199,7 @@ var/list/robot_verbs_default = list(
module_sprites["Bro"] = "Brobot"
module_sprites["Rich"] = "maximillion"
module_sprites["Default"] = "Service2"
+ module_sprites["Drone"] = "drone-service" // How does this even work...? Oh well.
if("Clerical")
module = new /obj/item/weapon/robot_module/clerical(src)
@@ -206,6 +208,7 @@ var/list/robot_verbs_default = list(
module_sprites["Bro"] = "Brobot"
module_sprites["Rich"] = "maximillion"
module_sprites["Default"] = "Service2"
+ module_sprites["Drone"] = "drone-service"
if("Miner")
module = new /obj/item/weapon/robot_module/miner(src)
@@ -215,6 +218,7 @@ var/list/robot_verbs_default = list(
module_sprites["Basic"] = "Miner_old"
module_sprites["Advanced Droid"] = "droid-miner"
module_sprites["Treadhead"] = "Miner"
+ module_sprites["Drone"] = "drone-medical"
if("Crisis")
module = new /obj/item/weapon/robot_module/crisis(src)
@@ -236,6 +240,7 @@ var/list/robot_verbs_default = list(
module_sprites["Standard"] = "surgeon"
module_sprites["Advanced Droid"] = "droid-medical"
module_sprites["Needles"] = "medicalrobot"
+ module_sprites["Drone"] = "drone-medical"
if("Security")
module = new /obj/item/weapon/robot_module/security(src)
@@ -244,6 +249,8 @@ var/list/robot_verbs_default = list(
module_sprites["Red Knight"] = "Security"
module_sprites["Black Knight"] = "securityrobot"
module_sprites["Bloodhound"] = "bloodhound"
+ module_sprites["Bloodhound - Treaded"] = "secborg+tread"
+ module_sprites["Drone"] = "drone-sec"
if("Engineering")
module = new /obj/item/weapon/robot_module/engineering(src)
@@ -253,6 +260,8 @@ var/list/robot_verbs_default = list(
module_sprites["Basic"] = "Engineering"
module_sprites["Antique"] = "engineerrobot"
module_sprites["Landmate"] = "landmate"
+ module_sprites["Landmate - Treaded"] = "engiborg+tread"
+ module_sprites["Drone"] = "drone-engineer"
if("Construction")
module = new /obj/item/weapon/robot_module/construction(src)
@@ -262,12 +271,15 @@ var/list/robot_verbs_default = list(
module_sprites["Basic"] = "Engineering"
module_sprites["Antique"] = "engineerrobot"
module_sprites["Landmate"] = "landmate"
+ module_sprites["Landmate - Treaded"] = "engiborg+tread"
+ module_sprites["Drone"] = "drone-engineer"
if("Janitor")
module = new /obj/item/weapon/robot_module/janitor(src)
module_sprites["Basic"] = "JanBot2"
module_sprites["Mopbot"] = "janitorrobot"
module_sprites["Mop Gear Rex"] = "mopgearrex"
+ module_sprites["Drone"] = "drone-janitor"
if("Combat")
module = new /obj/item/weapon/robot_module/combat(src)
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 225290d91b6..4678531947d 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -2,9 +2,9 @@
/mob/living/simple_animal/cat
name = "cat"
desc = "A domesticated, feline pet. Has a tendency to adopt crewmembers."
- icon_state = "cat"
- icon_living = "cat"
- icon_dead = "cat_dead"
+ icon_state = "cat2"
+ icon_living = "cat2"
+ icon_dead = "cat2_dead"
speak = list("Meow!","Esp!","Purr!","HSSSSS")
speak_emote = list("purrs", "meows")
emote_hear = list("meows","mews")
@@ -76,6 +76,15 @@
//RUNTIME IS ALIVE! SQUEEEEEEEE~
/mob/living/simple_animal/cat/Runtime
name = "Runtime"
- desc = "Its fur has the look and feel of velvet, and its tail quivers occasionally."
-
+ desc = "Her fur has the look and feel of velvet, and her tail quivers occasionally."
+ icon_state = "cat"
+ icon_living = "cat"
+ icon_dead = "cat_dead"
+/mob/living/simple_animal/cat/kitten
+ name = "kitten"
+ desc = "D'aaawwww"
+ icon_state = "kitten"
+ icon_living = "kitten"
+ icon_dead = "kitten_dead"
+ gender = NEUTER
\ No newline at end of file
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 5374d98b36c..1717560c56a 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -67,3 +67,28 @@
/obj/item/weapon/stamp/attack_paw(mob/user as mob)
return attack_hand(user)
+
+// Syndicate stamp to forge documents.
+
+/obj/item/weapon/stamp/chameleon/attack_self(mob/user as mob)
+
+ var/list/stamp_types = typesof(/obj/item/weapon/stamp) - src.type // Get all stamp types except our own
+ var/list/stamps = list()
+
+ // Generate them into a list
+ for(var/stamp_type in stamp_types)
+ var/obj/item/weapon/stamp/S = new stamp_type
+ stamps[capitalize(S.name)] = S
+
+ var/list/show_stamps = list("EXIT" = null) + sortList(stamps) // the list that will be shown to the user to pick from
+
+ var/input_stamp = input(user, "Choose a stamp to disguise as.", "Choose a stamp.") in show_stamps
+
+ if(user && src in user.contents)
+
+ var/obj/item/weapon/stamp/chosen_stamp = stamps[capitalize(input_stamp)]
+
+ if(chosen_stamp)
+ name = chosen_stamp.name
+ icon_state = chosen_stamp.icon_state
+ item_color = chosen_stamp.item_color
\ No newline at end of file
diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi
index d7f3722c64a..5cf5b9cae70 100644
Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ
diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi
index 57ef083f54b..a81afab57b9 100644
Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ
diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi
index d3a4bf4d53b..ad16ae98a22 100644
Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index e9886ba8a0f..20cb0a702c4 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 155303f6bc2..802563e9145 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 55765d66644..b8f4ca65eb9 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 9cf9462cbb5..00895fea16d 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index b2c3ea11e66..59ac92eb56e 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index ae85b6bce26..73d964dc248 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 1d4857adea4..1ee07beba64 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index b3e2fc80e69..6e59e9587f5 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/turf/catwalks.dmi b/icons/turf/catwalks.dmi
new file mode 100644
index 00000000000..049cde3a13a
Binary files /dev/null and b/icons/turf/catwalks.dmi differ