diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm
index 1b48efcb9d2..e7b8701a373 100644
--- a/code/datums/outfits/jobs/cargo.dm
+++ b/code/datums/outfits/jobs/cargo.dm
@@ -24,7 +24,7 @@
l_ear = /obj/item/device/radio/headset/headset_mine
backpack = /obj/item/weapon/storage/backpack/industrial
satchel_one = /obj/item/weapon/storage/backpack/satchel/eng
- id_type = /obj/item/weapon/card/id/cargo
+ id_type = /obj/item/weapon/card/id/cargo/miner
pda_type = /obj/item/device/pda/shaftminer
backpack_contents = list(/obj/item/weapon/tool/crowbar = 1, /obj/item/weapon/storage/bag/ore = 1)
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm
index c8d588a145d..cda81f977f9 100644
--- a/code/datums/outfits/jobs/civilian.dm
+++ b/code/datums/outfits/jobs/civilian.dm
@@ -1,6 +1,6 @@
/decl/hierarchy/outfit/job/assistant
name = OUTFIT_JOB_NAME(USELESS_JOB) //VOREStation Edit - Visitor not Assistant
- id_type = /obj/item/weapon/card/id/assistant
+ id_type = /obj/item/weapon/card/id/generic //VOREStation Edit
/decl/hierarchy/outfit/job/assistant/visitor
name = OUTFIT_JOB_NAME("Visitor")
@@ -25,7 +25,7 @@
/decl/hierarchy/outfit/job/service/bartender
name = OUTFIT_JOB_NAME("Bartender")
uniform = /obj/item/clothing/under/rank/bartender
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service/bartender //VOREStation Edit
pda_type = /obj/item/device/pda/bar
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/bar = 1)
@@ -44,7 +44,7 @@
uniform = /obj/item/clothing/under/rank/chef
suit = /obj/item/clothing/suit/chef
head = /obj/item/clothing/head/chefhat
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service/chef //VOREStation Edit
pda_type = /obj/item/device/pda/chef
/decl/hierarchy/outfit/job/service/chef/cook
@@ -68,13 +68,13 @@
backpack = /obj/item/weapon/storage/backpack/hydroponics
satchel_one = /obj/item/weapon/storage/backpack/satchel/hyd
messenger_bag = /obj/item/weapon/storage/backpack/messenger/hyd
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service/botanist //VOREStation Edit
pda_type = /obj/item/device/pda/botanist
/decl/hierarchy/outfit/job/service/janitor
name = OUTFIT_JOB_NAME("Janitor")
uniform = /obj/item/clothing/under/rank/janitor
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service/janitor //VOREStation Edit
pda_type = /obj/item/device/pda/janitor
/decl/hierarchy/outfit/job/librarian
@@ -84,6 +84,9 @@
id_type = /obj/item/weapon/card/id/civilian
pda_type = /obj/item/device/pda/librarian
+/decl/hierarchy/outfit/job/librarian/journalist
+ id_type = /obj/item/weapon/card/id/civilian/journalist
+
/decl/hierarchy/outfit/job/internal_affairs_agent
name = OUTFIT_JOB_NAME("Internal affairs agent")
l_ear = /obj/item/device/radio/headset/ia
@@ -92,14 +95,14 @@
shoes = /obj/item/clothing/shoes/brown
glasses = /obj/item/clothing/glasses/sunglasses/big
l_hand = /obj/item/weapon/clipboard
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/internal_affairs
pda_type = /obj/item/device/pda/lawyer
/decl/hierarchy/outfit/job/chaplain
name = OUTFIT_JOB_NAME("Chaplain")
uniform = /obj/item/clothing/under/rank/chaplain
l_hand = /obj/item/weapon/storage/bible
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/chaplain
pda_type = /obj/item/device/pda/chaplain
/decl/hierarchy/outfit/job/explorer
@@ -111,7 +114,7 @@
gloves = /obj/item/clothing/gloves/black
l_ear = /obj/item/device/radio/headset
id_slot = slot_wear_id
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/exploration //VOREStation Edit
pda_slot = slot_belt
pda_type = /obj/item/device/pda/cargo // Brown looks more rugged
r_pocket = /obj/item/device/gps/explorer
diff --git a/code/datums/outfits/jobs/civilian_vr.dm b/code/datums/outfits/jobs/civilian_vr.dm
index 7d39ae8c1b6..3acfffdfd15 100644
--- a/code/datums/outfits/jobs/civilian_vr.dm
+++ b/code/datums/outfits/jobs/civilian_vr.dm
@@ -1,5 +1,5 @@
/decl/hierarchy/outfit/job/assistant/worker
- id_type = /obj/item/weapon/card/id/civilian
+ id_type = /obj/item/weapon/card/id/civilian/service
/decl/hierarchy/outfit/job/assistant/cargo
id_type = /obj/item/weapon/card/id/cargo
@@ -16,3 +16,6 @@
/decl/hierarchy/outfit/job/assistant/officer
id_type = /obj/item/weapon/card/id/security
+
+/decl/hierarchy/outfit/job/assistant/entertainer
+ id_type = /obj/item/weapon/card/id/civilian/entertainer
diff --git a/code/datums/outfits/jobs/command_vr.dm b/code/datums/outfits/jobs/command_vr.dm
new file mode 100644
index 00000000000..5e90123ffcc
--- /dev/null
+++ b/code/datums/outfits/jobs/command_vr.dm
@@ -0,0 +1,5 @@
+/decl/hierarchy/outfit/job/hop
+ id_type = /obj/item/weapon/card/id/silver/hop
+
+/decl/hierarchy/outfit/job/secretary
+ id_type = /obj/item/weapon/card/id/silver/secretary
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/engineering.dm b/code/datums/outfits/jobs/engineering.dm
index 3da60103c20..a2aba61a969 100644
--- a/code/datums/outfits/jobs/engineering.dm
+++ b/code/datums/outfits/jobs/engineering.dm
@@ -30,5 +30,5 @@
name = OUTFIT_JOB_NAME("Atmospheric technician")
uniform = /obj/item/clothing/under/rank/atmospheric_technician
belt = /obj/item/weapon/storage/belt/utility/atmostech
- id_type = /obj/item/weapon/card/id/engineering
+ id_type = /obj/item/weapon/card/id/engineering/atmos
pda_type = /obj/item/device/pda/atmos
diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm
index ae996b2f081..6622d3b285b 100644
--- a/code/datums/outfits/jobs/medical.dm
+++ b/code/datums/outfits/jobs/medical.dm
@@ -65,7 +65,7 @@
suit = /obj/item/clothing/suit/storage/toggle/labcoat/chemist
backpack = /obj/item/weapon/storage/backpack/chemistry
satchel_one = /obj/item/weapon/storage/backpack/satchel/chem
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/medical/chemist
pda_type = /obj/item/device/pda/chemist
/decl/hierarchy/outfit/job/medical/geneticist
@@ -75,7 +75,7 @@
backpack = /obj/item/weapon/storage/backpack/genetics
r_pocket = /obj/item/device/flashlight/pen
satchel_one = /obj/item/weapon/storage/backpack/satchel/gen
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/medical/geneticist
pda_type = /obj/item/device/pda/geneticist
/decl/hierarchy/outfit/job/medical/psychiatrist
@@ -83,7 +83,7 @@
uniform = /obj/item/clothing/under/rank/psych
suit = /obj/item/clothing/suit/storage/toggle/labcoat
shoes = /obj/item/clothing/shoes/laceup
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/medical/psych
/decl/hierarchy/outfit/job/medical/psychiatrist/psychologist
name = OUTFIT_JOB_NAME("Psychologist")
@@ -97,7 +97,7 @@
l_hand = /obj/item/weapon/storage/firstaid/regular
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/medical/emt
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
/decl/hierarchy/outfit/job/medical/paramedic/emt
diff --git a/code/datums/outfits/jobs/medical_vr.dm b/code/datums/outfits/jobs/medical_vr.dm
new file mode 100644
index 00000000000..e9b2c1a0d02
--- /dev/null
+++ b/code/datums/outfits/jobs/medical_vr.dm
@@ -0,0 +1,2 @@
+/decl/hierarchy/outfit/job/medical/doctor/virologist
+ id_type = /obj/item/weapon/card/id/medical/virologist
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/science_vr.dm b/code/datums/outfits/jobs/science_vr.dm
new file mode 100644
index 00000000000..cf0e9e4b3a6
--- /dev/null
+++ b/code/datums/outfits/jobs/science_vr.dm
@@ -0,0 +1,8 @@
+/decl/hierarchy/outfit/job/science/xenobiologist
+ id_type = /obj/item/weapon/card/id/science/xenobiologist
+
+/decl/hierarchy/outfit/job/science/xenobotanist
+ name = OUTFIT_JOB_NAME("Xenobotanist")
+ uniform = /obj/item/clothing/under/rank/scientist
+ id_type = /obj/item/weapon/card/id/science/xenobotanist
+ suit = /obj/item/clothing/suit/storage/toggle/labcoat/science
\ No newline at end of file
diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm
index 8260d346b7d..9441a06da02 100644
--- a/code/datums/outfits/jobs/security.dm
+++ b/code/datums/outfits/jobs/security.dm
@@ -20,7 +20,7 @@
name = OUTFIT_JOB_NAME("Warden")
uniform = /obj/item/clothing/under/rank/warden
l_pocket = /obj/item/device/flash
- id_type = /obj/item/weapon/card/id/security
+ id_type = /obj/item/weapon/card/id/security/warden
pda_type = /obj/item/device/pda/warden
/decl/hierarchy/outfit/job/security/detective
@@ -31,7 +31,7 @@
l_pocket = /obj/item/weapon/flame/lighter/zippo
shoes = /obj/item/clothing/shoes/laceup
r_hand = /obj/item/weapon/storage/briefcase/crimekit
- id_type = /obj/item/weapon/card/id/security
+ id_type = /obj/item/weapon/card/id/security/detective
pda_type = /obj/item/device/pda/detective
backpack = /obj/item/weapon/storage/backpack
satchel_one = /obj/item/weapon/storage/backpack/satchel/norm
diff --git a/code/datums/outfits/jobs/special_vr.dm b/code/datums/outfits/jobs/special_vr.dm
index 010010291dd..6dea4e4cfa9 100644
--- a/code/datums/outfits/jobs/special_vr.dm
+++ b/code/datums/outfits/jobs/special_vr.dm
@@ -19,7 +19,7 @@
back = /obj/item/weapon/storage/backpack/satchel
id_type = /obj/item/weapon/card/id/centcom/ERT
pda_type = /obj/item/device/pda/centcom
-
+
post_equip(var/mob/living/carbon/human/H)
..()
ert.add_antagonist(H.mind)
@@ -31,6 +31,7 @@
shoes = /obj/item/clothing/shoes/clown_shoes
mask = /obj/item/clothing/mask/gas/clown_hat
backpack_contents = list(/obj/item/weapon/stamp/clown = 1, /obj/item/weapon/bikehorn = 1)
+ id_type = /obj/item/weapon/card/id/civilian/clown
pda_type = /obj/item/device/pda/clown
flags = 0
@@ -41,8 +42,9 @@
head = /obj/item/clothing/head/soft/mime
mask = /obj/item/clothing/mask/gas/mime
backpack_contents = list(/obj/item/weapon/pen/crayon/mime = 1)
+ id_type = /obj/item/weapon/card/id/civilian/mime
pda_type = /obj/item/device/pda/mime
-
+
post_equip(var/mob/living/carbon/human/H)
..()
if(H.backbag == 1)
diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm
index 455d84c90e1..12eb237a0ca 100644
--- a/code/datums/outfits/outfit_vr.dm
+++ b/code/datums/outfits/outfit_vr.dm
@@ -116,7 +116,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/explorer
- id_type = /obj/item/weapon/card/id/explorer
+ id_type = /obj/item/weapon/card/id/exploration
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -132,6 +132,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_belt
pda_type = /obj/item/device/pda
+ id_type = /obj/item/weapon/card/id/civilian/pilot
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -145,6 +146,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/sar
+ id_type = /obj/item/weapon/card/id/exploration/fm
id_pda_assignment = "Field Medic"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -156,10 +158,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/pathfinder
- id_type = /obj/item/weapon/card/id/explorer/head
+ id_type = /obj/item/weapon/card/id/exploration/head
id_pda_assignment = "Pathfinder"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
/decl/hierarchy/outfit/job/assistant/explorer
- id_type = /obj/item/weapon/card/id/explorer
+ id_type = /obj/item/weapon/card/id/exploration
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 7acd36524ba..febbd265b29 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -205,6 +205,7 @@
// Librarian Alt Titles
/datum/alt_title/journalist
title = "Journalist"
+ title_outfit = /decl/hierarchy/outfit/job/librarian/journalist
title_blurb = "The Journalist uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera."
/datum/alt_title/writer
diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm
index beb4f477f89..3d5e9cb95e3 100644
--- a/code/game/jobs/job/civilian_vr.dm
+++ b/code/game/jobs/job/civilian_vr.dm
@@ -194,7 +194,7 @@
minimal_access = list(access_entertainment)
pto_type = PTO_CIVILIAN
- outfit_type = /decl/hierarchy/outfit/job/assistant
+ outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer
job_description = "An entertainer does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic."
alt_titles = list("Performer" = /datum/alt_title/performer, "Musician" = /datum/alt_title/musician, "Stagehand" = /datum/alt_title/stagehand,
"Actor" = /datum/alt_title/actor, "Dancer" = /datum/alt_title/dancer, "Singer" = /datum/alt_title/singer,
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 20fd6991a01..29925b20597 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -41,7 +41,7 @@
/obj/item/weapon/card/id/guest/attack_self(mob/living/user as mob)
if(user.a_intent == I_HURT)
- if(icon_state == "guest_invalid")
+ if(icon_state == "guest-invalid")
to_chat(user, "This guest pass is already deactivated!")
return
@@ -49,7 +49,8 @@
if(confirm == "Yes")
//rip guest pass 3
user.visible_message("\The [user] deactivates \the [src].")
- icon_state = "guest_invalid"
+ icon_state = "guest-invalid"
+ update_icon()
expiration_time = world.time
expired = 1
return ..()
@@ -66,7 +67,8 @@
/obj/item/weapon/card/id/guest/process()
if(expired == 0 && world.time >= expiration_time)
visible_message("\The [src] flashes a few times before turning red.")
- icon_state = "guest_invalid"
+ icon_state = "guest-invalid"
+ update_icon()
expired = 1
world.time = expiration_time
return
diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index fa56f6ccc10..649d9a3a34c 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -13,19 +13,48 @@
*/
/obj/item/weapon/card
name = "card"
- desc = "Does card things."
- icon = 'icons/obj/card.dmi'
+ desc = "A tiny plaque of plastic. Does card things."
+ icon = 'icons/obj/card_new.dmi'
w_class = ITEMSIZE_TINY
slot_flags = SLOT_EARS
var/associated_account_number = 0
+ var/list/initial_sprite_stack = list("")
+ var/base_icon = "icons/obj/card_new.dmi"
+ var/list/sprite_stack
+
var/list/files = list( )
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
+/obj/item/weapon/card/New()
+ . = ..()
+ reset_icon()
+
+/obj/item/weapon/card/proc/reset_icon()
+ sprite_stack = initial_sprite_stack
+ update_icon()
+
+/obj/item/weapon/card/update_icon()
+ if(!sprite_stack || !istype(sprite_stack) || sprite_stack == list(""))
+ icon = base_icon
+ icon_state = initial(icon_state)
+
+ var/icon/I = null
+ for(var/iconstate in sprite_stack)
+ if(!iconstate)
+ iconstate = icon_state
+ if(I)
+ var/icon/IC = new(base_icon, iconstate)
+ I.Blend(IC, ICON_OVERLAY)
+ else
+ I = new/icon(base_icon, iconstate)
+ if(I)
+ icon = I
+
/obj/item/weapon/card/data
- name = "data disk"
- desc = "A disk of data."
+ name = "data card"
+ desc = "A solid-state storage card, used to back up or transfer information. What knowledge could it contain?"
icon_state = "data"
var/function = "storage"
var/data = "null"
@@ -35,20 +64,20 @@
pickup_sound = 'sound/items/pickup/disk.ogg'
/obj/item/weapon/card/data/verb/label(t as text)
- set name = "Label Disk"
+ set name = "Label Card"
set category = "Object"
set src in usr
if (t)
- src.name = text("data disk- '[]'", t)
+ src.name = text("data card- '[]'", t)
else
- src.name = "data disk"
+ src.name = "data card"
src.add_fingerprint(usr)
return
/obj/item/weapon/card/data/clown
name = "\proper the coordinates to clown planet"
- icon_state = "data"
+ icon_state = "rainbow"
item_state = "card-id"
level = 2
desc = "This card contains coordinates to the fabled Clown Planet. Handle with care."
@@ -62,7 +91,7 @@
/obj/item/weapon/card/emag_broken
desc = "It's a card with a magnetic strip attached to some circuitry. It looks too busted to be used for anything but salvage."
name = "broken cryptographic sequencer"
- icon_state = "emag"
+ icon_state = "emag-spent"
item_state = "card-id"
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm
new file mode 100644
index 00000000000..4567cfe0381
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks.dm
@@ -0,0 +1,98 @@
+// This is a defines file for card sprite stacks. If a new card set comes in, this file can just be disabled and a new one made to match the new sprites.
+// Generally, if the icon file is card_xxx.dmi, this filename should be sprite_stacks_xxx.dm
+// Please make sure that only the relevant sprite_stacks_xxx.file is included, if more are made.
+
+/obj/item/weapon/card
+ icon = 'icons/obj/card_new.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
+ base_icon = "icons/obj/card_new.dmi"
+
+ // New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
+ /*
+ id
+ generic
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
+ centcom
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-gold")
+ vip
+ initial_sprite_stack = list("base-stamp-gold", "top-blue", "stamp-n", "pips-gold")
+ ERT
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "pips-red", "stripe-red")
+ silver
+ initial_sprite_stack = list("base-stamp-silver", "top-mime", "stamp-n-generic")
+ secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
+ hop
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-white")
+ medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
+ chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-orange")
+ geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
+ psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-purple")
+ emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "pips-blue")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "stripe-gold")
+ sar
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n", "pips-medblu")
+ security
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
+ detective
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-brown")
+ warden
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "pips-white")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "stripe-gold")
+ engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
+ atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "pips-medblu", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "stripe-gold")
+ science
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
+ roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "pips-orange")
+ explorer
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "stripe-gold")
+ pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-purple") //not a true head, no gold stripe for you
+ cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
+ miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "pips-purple")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-gold")
+ civilian
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+ chaplain
+ initial_sprite_stack = list("base-stamp-silver", "top-dark", "stamp-cross", "pips-white")
+ internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+ botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-brown")
+ bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-dark")
+ chef
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-white")
+ janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "pips-purple")
+ journalist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n")
+ clown
+ initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
+ mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
+ pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "pips-blue")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "stripe-white")
+ syndicate
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
+ officer
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
+ */ // VOREStation Removal - defined in id_stacks_vr.dm
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/id_stacks_cit.dm b/code/game/objects/items/weapons/id cards/id_stacks_cit.dm
new file mode 100644
index 00000000000..a35b1febf98
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks_cit.dm
@@ -0,0 +1,92 @@
+// This is a defines file for card sprite stacks. If a new card set comes in, this file can just be disabled and a new one made to match the new sprites.
+// Generally, if the icon file is card_xxx.dmi, this filename should be sprite_stacks_xxx.dm
+// Please make sure that only the relevant sprite_stacks_xxx.file is included, if more are made.
+
+
+
+/obj/item/weapon/card
+ icon = 'icons/obj/card_new.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
+ base_icon = "icons/obj/card_new.dmi"
+
+ // New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
+ id
+ centcom
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-nanotrasen", "letter-n-command", "pips-gold")
+ vip
+ initial_sprite_stack = list("base-stamp-gold", "top-blue", "dept-vip-gold", "letter-n-command", "pips-gold")
+ ERT
+ initial_sprite_stack = list("base-stamp", "top-dark", "dept-nanotrasen", "letter-n-command")
+ silver
+ initial_sprite_stack = list("base-stamp-silver", "top-mime", "letter-n-generic")
+ secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-secretary", "letter-n-command")
+ hop
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-hop", "letter-n-command", "pips-gold")
+ medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "letter-n-medical")
+ chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "letter-n-medical", "pips-engineering")
+ geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "letter-n-medical", "pips-science")
+ psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "letter-n-medical", "pips-science")
+ emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "letter-n-medical", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "dept-medical", "letter-n-command", "pips-gold")
+ sar
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-exploration", "letter-n-command", "pips-command")
+ security
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "letter-n-security")
+ detective
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "letter-n-security", "pips-cargo")
+ warden
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "letter-n-security", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "dept-security", "letter-n-command", "pips-gold")
+ engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "dept-engineering", "letter-n-engineering")
+ atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "dept-engineering", "pips-medical", "letter-n-engineering")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "dept-engineering", "letter-n-command", "pips-gold")
+ science
+ initial_sprite_stack = list("base-stamp", "top-purple", "dept-science", "letter-n-science")
+ roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "dept-science", "letter-n-science", "pips-engineering")
+ explorer
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-exploration", "letter-n-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "dept-science", "letter-n-command", "pips-gold")
+ pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-exploration", "letter-n-command", "pips-gold")
+ cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "dept-cargo", "letter-n-cargo")
+ miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "dept-cargo", "letter-n-cargo", "pips-science")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "dept-cargo", "letter-n-command", "pips-gold")
+ civilian
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "letter-n-civilian")
+ chaplain
+ initial_sprite_stack = list("base-stamp-silver", "top-dark", "letter-cross", "pips-white")
+ internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-internal-affairs", "letter-n-command")
+ botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "letter-n-civilian", "pips-cargo")
+ bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "letter-n-civilian", "pips-dark")
+ chef
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "letter-n-civilian", "pips-white")
+ janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "letter-n-civilian", "pips-science")
+ journalist
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-press", "letter-n-civilian")
+ clown
+ initial_sprite_stack = list("base-stamp", "top-pink", "dept-clown", "letter-n-clown")
+ mime
+ initial_sprite_stack = list("base-stamp", "top-white", "letter-n-mime")
+ pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "dept-pilot", "letter-n-command", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-command", "letter-n-command", "pips-civilian")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/id_stacks_deptname.dm b/code/game/objects/items/weapons/id cards/id_stacks_deptname.dm
new file mode 100644
index 00000000000..bce7340ecc0
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks_deptname.dm
@@ -0,0 +1,92 @@
+// This is a defines file for card sprite stacks. If a new card set comes in, this file can just be disabled and a new one made to match the new sprites.
+// Generally, if the icon file is card_xxx.dmi, this filename should be sprite_stacks_xxx.dm
+// Please make sure that only the relevant sprite_stacks_xxx.file is included, if more are made.
+
+
+
+/obj/item/weapon/card
+ icon = 'icons/obj/card_new.dmi' // These are redefined here so that changing sprites is as easy as clicking the checkbox.
+ base_icon = "icons/obj/card_new.dmi"
+
+ // New sprite stacks can be defined here. You could theoretically change icon-states as well but right now this file compiles before station_ids.dm so those wouldn't be affected.
+ id
+ centcom
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-nanotrasen", "stamp-n", "pips-gold")
+ vip
+ initial_sprite_stack = list("base-stamp-gold", "dept-vip", "top-blue", "stamp-n", "pips-gold")
+ ERT
+ initial_sprite_stack = list("base-stamp", "top-dark", "dept-ert", "stamp-n")
+ silver
+ initial_sprite_stack = list("base-stamp-silver", "top-mime", "stamp-n-generic")
+ secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-secretary", "stamp-n")
+ hop
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-hop", "stamp-n", "pips-gold")
+ medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "stamp-n")
+ chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "stamp-n", "pips-engineering")
+ geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "stamp-n", "pips-science")
+ psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "stamp-n", "pips-science")
+ emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-medical", "stamp-n", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "dept-medical", "stamp-n", "pips-gold")
+ sar
+ initial_sprite_stack = list("base-stamp", "top-medblu", "dept-exploration", "stamp-n", "pips-command")
+ security
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "stamp-n")
+ detective
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "stamp-n", "pips-cargo")
+ warden
+ initial_sprite_stack = list("base-stamp", "top-red", "dept-security", "stamp-n", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "dept-security", "stamp-n", "pips-gold")
+ engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "dept-engineering", "stamp-n")
+ atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "dept-engineering", "pips-medical", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "dept-engineering", "stamp-n", "pips-gold")
+ science
+ initial_sprite_stack = list("base-stamp", "top-purple", "dept-science", "stamp-n")
+ roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "dept-science", "stamp-n", "pips-engineering")
+ explorer
+ initial_sprite_stack = list("base-stamp", "top-blue", "dept-exploration", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "dept-science", "stamp-n", "pips-gold")
+ pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "dept-exploration", "stamp-n", "pips-gold")
+ cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "dept-cargo", "stamp-n")
+ miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "dept-cargo", "stamp-n", "pips-science")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "dept-cargo", "stamp-n", "pips-gold")
+ civilian
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "stamp-n")
+ chaplain
+ initial_sprite_stack = list("base-stamp-silver", "top-dark", "letter-cross", "pips-white")
+ internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-internal-affairs", "stamp-n")
+ botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "stamp-n", "pips-cargo")
+ bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "stamp-n", "pips-dark")
+ chef
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "stamp-n", "pips-white")
+ janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-civilian", "stamp-n", "pips-science")
+ journalist
+ initial_sprite_stack = list("base-stamp", "top-green", "dept-press", "stamp-n")
+ clown
+ initial_sprite_stack = list("base-stamp", "top-pink", "dept-clown", "stamp-n")
+ mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n-mime")
+ pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "dept-pilot", "stamp-n", "pips-command")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-command", "stamp-n", "pips-civilian")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/id_stacks_vr.dm b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
new file mode 100644
index 00000000000..12442a353f3
--- /dev/null
+++ b/code/game/objects/items/weapons/id cards/id_stacks_vr.dm
@@ -0,0 +1,131 @@
+/obj/item/weapon/card
+
+ id
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+ generic
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-silhouette", "clip")
+ centcom
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+ vip
+ initial_sprite_stack = list("base-stamp-gold", "top-darkgreen", "stamp-n", "pips-gold", "stripe-gold")
+ ERT
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-red", "stripe-red")
+ medic
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-medblu", "stripe-medblu")
+ commander
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold", "stripe-gold")
+ engineer
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-orange", "stripe-orange")
+ janitor
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-purple", "stripe-purple")
+ silver
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n")
+ secretary
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n")
+ hop
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
+ medical
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n")
+ chemist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-orange")
+ geneticist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-purple")
+ psych
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-brown")
+ virologist
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-green")
+ emt
+ initial_sprite_stack = list("base-stamp", "top-medblu", "stamp-n", "stripe-blue")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-medblu", "stamp-n", "pips-gold")
+ /*
+ sar
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n", "pips-medblu")
+ */
+ security
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n")
+ detective
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-brown")
+ warden
+ initial_sprite_stack = list("base-stamp", "top-red", "stamp-n", "stripe-white")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-red", "stamp-n", "pips-gold")
+ engineering
+ initial_sprite_stack = list("base-stamp", "top-orange", "stamp-n")
+ atmos
+ initial_sprite_stack = list("base-stamp", "top-orange", "stripe-medblu", "stamp-n")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-orange", "stamp-n", "pips-gold")
+ science
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n")
+ roboticist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-brown")
+ xenobiologist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-orange")
+ xenobotanist
+ initial_sprite_stack = list("base-stamp", "top-purple", "stamp-n", "stripe-green")
+ /*
+ explorer
+ initial_sprite_stack = list("base-stamp", "top-darkgreen", "stamp-n")
+ */
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-purple", "stamp-n", "pips-gold")
+ /*
+ pathfinder
+ initial_sprite_stack = list("base-stamp-silver", "top-darkgreen", "stamp-n", "pips-purple") //not a true head, no gold stripe for you
+ */
+ cargo
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n")
+ miner
+ initial_sprite_stack = list("base-stamp", "top-brown", "stamp-n", "stripe-purple")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-brown", "stamp-n", "pips-white")
+ civilian
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n")
+ chaplain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-cross", "stripe-white")
+ internal_affairs
+ initial_sprite_stack = list("base-stamp", "top-blue", "stamp-n", "stripe-black")
+ service
+ botanist
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-darkgreen")
+ bartender
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-black")
+ chef
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-white")
+ janitor
+ initial_sprite_stack = list("base-stamp", "top-green", "stamp-n", "stripe-purple")
+ journalist
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-red")
+ clown
+ initial_sprite_stack = list("base-stamp", "top-rainbow", "stamp-n")
+ mime
+ initial_sprite_stack = list("base-stamp", "top-white", "stamp-n", "stripe-black")
+ entertainer
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-brown")
+ pilot
+ initial_sprite_stack = list("base-stamp", "top-generic", "stamp-n", "stripe-pink")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-blue", "stamp-n", "pips-gold")
+ exploration
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n")
+ fm
+ initial_sprite_stack = list("base-stamp", "top-pink", "stamp-n", "stripe-medblu")
+ head
+ initial_sprite_stack = list("base-stamp-silver", "top-pink", "stamp-n", "pips-white")
+ talon
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette")
+ doctor
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-medblu", "stripe-medblu")
+ engineer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-orange", "stripe-orange")
+ officer
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-red", "stripe-red")
+ pilot
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-purple", "stripe-purple")
+ captain
+ initial_sprite_stack = list("base-stamp-dark", "top-dark", "stamp-silhouette", "pips-gold", "stripe-gold")
+ syndicate
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s")
+ officer
+ initial_sprite_stack = list("base-stamp-dark", "top-syndicate", "stamp-s", "pips-gold", "stripe-gold")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm
index b47d65fc2c6..4f21a737c8e 100644
--- a/code/game/objects/items/weapons/id cards/station_ids.dm
+++ b/code/game/objects/items/weapons/id cards/station_ids.dm
@@ -1,7 +1,7 @@
/obj/item/weapon/card/id
name = "identification card"
desc = "A card used to provide ID and determine access across the station."
- icon_state = "id"
+ icon_state = "generic-nt"
item_state = "card-id"
sprite_sheets = list(
@@ -127,13 +127,13 @@
/obj/item/weapon/card/id/silver
name = "identification card"
desc = "A silver card which shows honour and dedication."
- icon_state = "silver"
+ icon_state = "silver-id"
item_state = "silver_id"
/obj/item/weapon/card/id/gold
name = "identification card"
desc = "A golden card which shows power and might."
- icon_state = "gold"
+ icon_state = "gold-id"
item_state = "gold_id"
preserve_item = 1
@@ -144,13 +144,14 @@
/obj/item/weapon/card/id/gold/captain/spare
name = "\improper Site Manager's spare ID"
desc = "The spare ID of the High Lord himself."
+ icon_state = "gold-id-alternate"
registered_name = "Site Manager"
/obj/item/weapon/card/id/synthetic
name = "\improper Synthetic ID"
desc = "Access module for NanoTrasen Synthetics"
icon_state = "id-robot"
- item_state = "tdgreen"
+ item_state = "idgreen"
assignment = "Synthetic"
/obj/item/weapon/card/id/synthetic/Initialize()
@@ -172,7 +173,7 @@
/obj/item/weapon/card/id/centcom
name = "\improper CentCom. ID"
desc = "An ID straight from Central Command."
- icon_state = "nanotrasen"
+ icon_state = "cc-id"
registered_name = "Central Command"
assignment = "General"
@@ -187,7 +188,7 @@
/obj/item/weapon/card/id/centcom/ERT
name = "\improper Emergency Response Team ID"
assignment = "Emergency Response Team"
- icon_state = "centcom"
+ icon_state = "ert-id"
/obj/item/weapon/card/id/centcom/ERT/Initialize()
. = ..()
@@ -197,14 +198,13 @@
/obj/item/weapon/card/id/medical
name = "identification card"
desc = "A card issued to station medical staff."
- icon_state = "med"
+ icon_state = "medical-id"
primary_color = rgb(189,237,237)
secondary_color = rgb(223,255,255)
/obj/item/weapon/card/id/medical/head
name = "identification card"
desc = "A card which represents care and compassion."
- icon_state = "medGold"
primary_color = rgb(189,237,237)
secondary_color = rgb(255,223,127)
assignment = "Chief Medical Officer"
@@ -213,14 +213,17 @@
/obj/item/weapon/card/id/security
name = "identification card"
desc = "A card issued to station security staff."
- icon_state = "sec"
+ icon_state = "security-id"
primary_color = rgb(189,47,0)
secondary_color = rgb(223,127,95)
+/obj/item/weapon/card/id/security/warden
+ assignment = "Warden"
+ rank = "Warden"
+
/obj/item/weapon/card/id/security/head
name = "identification card"
desc = "A card which represents honor and protection."
- icon_state = "secGold"
primary_color = rgb(189,47,0)
secondary_color = rgb(255,223,127)
assignment = "Head of Security"
@@ -229,14 +232,17 @@
/obj/item/weapon/card/id/engineering
name = "identification card"
desc = "A card issued to station engineering staff."
- icon_state = "eng"
+ icon_state = "engineering-id"
primary_color = rgb(189,94,0)
secondary_color = rgb(223,159,95)
+/obj/item/weapon/card/id/engineering/atmos
+ assignment = "Atmospheric Technician"
+ rank = "Atmospheric Technician"
+
/obj/item/weapon/card/id/engineering/head
name = "identification card"
desc = "A card which represents creativity and ingenuity."
- icon_state = "engGold"
primary_color = rgb(189,94,0)
secondary_color = rgb(255,223,127)
assignment = "Chief Engineer"
@@ -245,14 +251,13 @@
/obj/item/weapon/card/id/science
name = "identification card"
desc = "A card issued to station science staff."
- icon_state = "sci"
+ icon_state = "science-id"
primary_color = rgb(142,47,142)
secondary_color = rgb(191,127,191)
/obj/item/weapon/card/id/science/head
name = "identification card"
desc = "A card which represents knowledge and reasoning."
- icon_state = "sciGold"
primary_color = rgb(142,47,142)
secondary_color = rgb(255,223,127)
assignment = "Research Director"
@@ -261,14 +266,13 @@
/obj/item/weapon/card/id/cargo
name = "identification card"
desc = "A card issued to station cargo staff."
- icon_state = "cargo"
+ icon_state = "cargo-id"
primary_color = rgb(142,94,0)
secondary_color = rgb(191,159,95)
/obj/item/weapon/card/id/cargo/head
name = "identification card"
desc = "A card which represents service and planning."
- icon_state = "cargoGold"
primary_color = rgb(142,94,0)
secondary_color = rgb(255,223,127)
assignment = "Quartermaster"
@@ -281,7 +285,7 @@
/obj/item/weapon/card/id/civilian
name = "identification card"
desc = "A card issued to station civilian staff."
- icon_state = "civ"
+ icon_state = "civilian-id"
primary_color = rgb(0,94,142)
secondary_color = rgb(95,159,191)
assignment = "Civilian"
@@ -290,13 +294,12 @@
/obj/item/weapon/card/id/civilian/head //This is not the HoP. There's no position that uses this right now.
name = "identification card"
desc = "A card which represents common sense and responsibility."
- icon_state = "civGold"
primary_color = rgb(0,94,142)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/external
name = "identification card"
desc = "An identification card of some sort. It does not look like it is issued by NT."
- icon_state = "permit"
+ icon_state = "generic"
primary_color = rgb(142,94,0)
secondary_color = rgb(191,159,95)
diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm
index afb85ecb7a5..01f6591104e 100644
--- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm
+++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm
@@ -1,6 +1,6 @@
/obj/item/weapon/card/id/syndicate
name = "agent card"
- icon_state = "syndicate"
+ icon_state = "generic-s"
assignment = "Agent"
origin_tech = list(TECH_ILLEGAL = 3)
var/electronic_warfare = 1
@@ -67,11 +67,12 @@
if(!id_card_states)
id_card_states = list()
for(var/path in typesof(/obj/item/weapon/card/id))
- var/obj/item/weapon/card/id/ID = path
+ var/obj/item/weapon/card/id/ID = new path()
var/datum/card_state/CS = new()
CS.icon_state = initial(ID.icon_state)
CS.item_state = initial(ID.item_state)
- CS.name = initial(ID.name) + " - " + initial(ID.icon_state)
+ CS.sprite_stack = ID.initial_sprite_stack
+ CS.name = initial(ID.name)
id_card_states += CS
id_card_states = dd_sortedObjectList(id_card_states)
@@ -81,6 +82,7 @@
var/name
var/icon_state
var/item_state
+ var/sprite_stack
/datum/card_state/dd_SortValue()
return name
@@ -89,5 +91,6 @@
name = "syndicate ID card"
desc = "An ID straight from the Syndicate."
registered_name = "Syndicate"
- assignment = "Syndicate Overlord"
- access = list(access_syndicate, access_external_airlocks)
\ No newline at end of file
+ assignment = "Syndicate Commander"
+ icon_state = "syndicate-id"
+ access = list(access_syndicate, access_external_airlocks)
diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/under/accessories/permits.dm
index d7a5c3f396a..c89d9ee0198 100644
--- a/code/modules/clothing/under/accessories/permits.dm
+++ b/code/modules/clothing/under/accessories/permits.dm
@@ -3,8 +3,8 @@
/obj/item/clothing/accessory/permit
name = "permit"
desc = "A permit for something."
- icon = 'icons/obj/card.dmi'
- icon_state = "permit"
+ icon = 'icons/obj/card_new.dmi'
+ icon_state = "permit-generic"
w_class = ITEMSIZE_TINY
slot = ACCESSORY_SLOT_MEDAL
var/owner = 0 //To prevent people from just renaming the thing if they steal it
@@ -30,6 +30,7 @@
/obj/item/clothing/accessory/permit/gun
name = "weapon permit"
desc = "A card indicating that the owner is allowed to carry a firearm."
+ icon_state = "permit-security"
/obj/item/clothing/accessory/permit/gun/bar
name = "bar shotgun permit"
@@ -38,8 +39,9 @@
/obj/item/clothing/accessory/permit/gun/planetside
name = "planetside gun permit"
desc = "A card indicating that the owner is allowed to carry a firearm while on the surface."
+ icon_state = "permit-science"
/obj/item/clothing/accessory/permit/drone
name = "drone identification card"
desc = "A card issued by the EIO, indicating that the owner is a Drone Intelligence. Drones are mandated to carry this card within SolGov space, by law."
- icon_state = "permit_drone"
\ No newline at end of file
+ icon_state = "permit-drone"
\ No newline at end of file
diff --git a/icons/obj/card_cit.dmi b/icons/obj/card_cit.dmi
new file mode 100644
index 00000000000..165c0c0a5ad
Binary files /dev/null and b/icons/obj/card_cit.dmi differ
diff --git a/icons/obj/card_new.dmi b/icons/obj/card_new.dmi
new file mode 100644
index 00000000000..f5b658ccd07
Binary files /dev/null and b/icons/obj/card_new.dmi differ
diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm
index 56e62dd28d9..9fa06c2fa99 100644
--- a/maps/southern_cross/job/outfits.dm
+++ b/maps/southern_cross/job/outfits.dm
@@ -14,7 +14,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_l_store
pda_type = /obj/item/device/pda/explorer //VORESTation Edit - Better Brown
- id_type = /obj/item/weapon/card/id/explorer //VOREStation Edit
+ id_type = /obj/item/weapon/card/id/science/explorer
id_pda_assignment = "Explorer"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1)
@@ -48,6 +48,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
id_slot = slot_wear_id
pda_slot = slot_belt
pda_type = /obj/item/device/pda //VOREStation Edit - Civilian
+ id_type = /obj/item/weapon/card/id/civilian/pilot
id_pda_assignment = "Pilot"
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -60,6 +61,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go
l_hand = /obj/item/weapon/storage/firstaid/regular
belt = /obj/item/weapon/storage/belt/medical/emt
pda_slot = slot_l_store
+ id_type = /obj/item/weapon/card/id/medical/sar
pda_type = /obj/item/device/pda/sar //VOREStation Add
id_pda_assignment = "Field Medic" //VOREStation Edit
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
diff --git a/maps/tether/tether_jobs.dm b/maps/tether/tether_jobs.dm
index 89ea143f504..7c671ac58ad 100644
--- a/maps/tether/tether_jobs.dm
+++ b/maps/tether/tether_jobs.dm
@@ -136,7 +136,7 @@
/decl/hierarchy/outfit/job/talon_captain
name = OUTFIT_JOB_NAME("Talon Captain")
- id_type = /obj/item/weapon/card/id/gold
+ id_type = /obj/item/weapon/card/id/talon/captain
id_slot = slot_wear_id
pda_type = null
@@ -151,6 +151,7 @@
/decl/hierarchy/outfit/job/talon_pilot
name = OUTFIT_JOB_NAME("Talon Pilot")
+ id_type = /obj/item/weapon/card/id/talon/pilot
id_slot = slot_wear_id
pda_type = null
flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL
@@ -167,7 +168,7 @@
name = OUTFIT_JOB_NAME("Talon Doctor")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/medical
+ id_type = /obj/item/weapon/card/id/talon/doctor
id_slot = slot_wear_id
pda_type = null
@@ -185,7 +186,7 @@
name = OUTFIT_JOB_NAME("Talon Security")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/security
+ id_type = /obj/item/weapon/card/id/talon/officer
id_slot = slot_wear_id
pda_type = null
backpack_contents = list(/obj/item/weapon/handcuffs = 1)
@@ -203,7 +204,7 @@
name = OUTFIT_JOB_NAME("Talon Engineer")
hierarchy_type = /decl/hierarchy/outfit/job
- id_type = /obj/item/weapon/card/id/engineering
+ id_type = /obj/item/weapon/card/id/talon/engineer
id_slot = slot_wear_id
pda_type = null
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL
diff --git a/vorestation.dme b/vorestation.dme
index 838e59bd6c1..c437a9a9fdd 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -394,11 +394,14 @@
#include "code\datums\outfits\jobs\civilian.dm"
#include "code\datums\outfits\jobs\civilian_vr.dm"
#include "code\datums\outfits\jobs\command.dm"
+#include "code\datums\outfits\jobs\command_vr.dm"
#include "code\datums\outfits\jobs\engineering.dm"
#include "code\datums\outfits\jobs\job.dm"
#include "code\datums\outfits\jobs\medical.dm"
+#include "code\datums\outfits\jobs\medical_vr.dm"
#include "code\datums\outfits\jobs\misc.dm"
#include "code\datums\outfits\jobs\science.dm"
+#include "code\datums\outfits\jobs\science_vr.dm"
#include "code\datums\outfits\jobs\security.dm"
#include "code\datums\outfits\jobs\special_vr.dm"
#include "code\datums\outfits\military\fleet.dm"
@@ -1307,6 +1310,8 @@
#include "code\game\objects\items\weapons\grenades\supermatter.dm"
#include "code\game\objects\items\weapons\id cards\cards.dm"
#include "code\game\objects\items\weapons\id cards\cards_vr.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks.dm"
+#include "code\game\objects\items\weapons\id cards\id_stacks_vr.dm"
#include "code\game\objects\items\weapons\id cards\station_ids.dm"
#include "code\game\objects\items\weapons\id cards\station_ids_vr.dm"
#include "code\game\objects\items\weapons\id cards\syndicate_ids.dm"