diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index f4c3ca9e1b..c02048450b 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -9,6 +9,7 @@ spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_bar) alt_titles = list("Barista") @@ -38,6 +39,7 @@ spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_kitchen) alt_titles = list("Cook") @@ -65,6 +67,7 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_hydroponics, access_bar, access_kitchen) minimal_access = list(access_hydroponics) alt_titles = list("Hydroponicist") @@ -98,6 +101,7 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/cargo/head economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) @@ -128,6 +132,7 @@ spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/cargo access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) @@ -153,6 +158,7 @@ spawn_positions = 3 supervisors = "the quartermaster and the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/cargo economic_modifier = 5 access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station) minimal_access = list(access_mining, access_mining_station, access_mailsorting) @@ -192,6 +198,7 @@ spawn_positions = 2 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_janitor, access_maint_tunnels) minimal_access = list(access_janitor, access_maint_tunnels) alt_titles = list("Custodian") @@ -218,6 +225,7 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_library, access_maint_tunnels) minimal_access = list(access_library) alt_titles = list("Journalist") @@ -244,6 +252,7 @@ spawn_positions = 2 supervisors = "company officials and Corporate Regulations" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian economic_modifier = 7 access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads) minimal_access = list(access_lawyer, access_sec_doors, access_heads) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index 61cba70023..9ce0e2b811 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -9,6 +9,7 @@ spawn_positions = 1 supervisors = "the head of personnel" selection_color = "#515151" + idtype = /obj/item/weapon/card/id/civilian access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels) minimal_access = list(access_morgue, access_chapel_office, access_crematorium) alt_titles = list("Counselor") diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 707bab0899..6940cd57c9 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -9,7 +9,7 @@ spawn_positions = 1 supervisors = "the captain" selection_color = "#7F6E2C" - idtype = /obj/item/weapon/card/id/silver + idtype = /obj/item/weapon/card/id/engineering/head req_admin_notify = 1 economic_modifier = 10 @@ -59,6 +59,7 @@ spawn_positions = 5 supervisors = "the chief engineer" selection_color = "#5B4D20" + idtype = /obj/item/weapon/card/id/engineering economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) @@ -96,6 +97,7 @@ spawn_positions = 2 supervisors = "the chief engineer" selection_color = "#5B4D20" + idtype = /obj/item/weapon/card/id/engineering economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks) diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index eeb0c8072a..32fd340755 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -9,7 +9,7 @@ spawn_positions = 1 supervisors = "the captain" selection_color = "#026865" - idtype = /obj/item/weapon/card/id/silver + idtype = /obj/item/weapon/card/id/medical/head req_admin_notify = 1 economic_modifier = 10 access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, @@ -48,6 +48,7 @@ spawn_positions = 3 supervisors = "the chief medical officer" selection_color = "#013D3B" + idtype = /obj/item/weapon/card/id/medical economic_modifier = 7 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva) @@ -109,6 +110,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#013D3B" + idtype = /obj/item/weapon/card/id/medical economic_modifier = 5 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics) minimal_access = list(access_medical, access_medical_equip, access_chemistry) @@ -170,6 +172,7 @@ economic_modifier = 5 supervisors = "the chief medical officer" selection_color = "#013D3B" + idtype = /obj/item/weapon/card/id/medical access = list(access_medical, access_medical_equip, access_morgue, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_psychiatrist) alt_titles = list("Psychologist") @@ -202,6 +205,7 @@ spawn_positions = 2 supervisors = "the chief medical officer" selection_color = "#013D3B" + idtype = /obj/item/weapon/card/id/medical economic_modifier = 4 access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist) minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 99482457cc..7055aa7cb3 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -9,7 +9,7 @@ spawn_positions = 1 supervisors = "the captain" selection_color = "#AD6BAD" - idtype = /obj/item/weapon/card/id/silver + idtype = /obj/item/weapon/card/id/science/head req_admin_notify = 1 economic_modifier = 15 access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, @@ -51,6 +51,7 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#633D63" + idtype = /obj/item/weapon/card/id/science economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) @@ -81,6 +82,7 @@ spawn_positions = 2 supervisors = "the research director" selection_color = "#633D63" + idtype = /obj/item/weapon/card/id/science economic_modifier = 7 access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics) minimal_access = list(access_research, access_xenobiology, access_hydroponics, access_tox_storage) @@ -111,6 +113,7 @@ spawn_positions = 2 supervisors = "research director" selection_color = "#633D63" + idtype = /obj/item/weapon/card/id/science economic_modifier = 5 access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 6320a475ce..04adecc322 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -9,7 +9,7 @@ spawn_positions = 1 supervisors = "the captain" selection_color = "#8E2929" - idtype = /obj/item/weapon/card/id/silver + idtype = /obj/item/weapon/card/id/security/head req_admin_notify = 1 economic_modifier = 10 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, @@ -56,6 +56,7 @@ spawn_positions = 1 supervisors = "the head of security" selection_color = "#601C1C" + idtype = /obj/item/weapon/card/id/security economic_modifier = 5 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks) @@ -93,6 +94,7 @@ spawn_positions = 2 supervisors = "the head of security" selection_color = "#601C1C" + idtype = /obj/item/weapon/card/id/security alt_titles = list("Forensic Technician","Investigator") access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks) minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks) @@ -135,6 +137,7 @@ spawn_positions = 4 supervisors = "the head of security" selection_color = "#601C1C" + idtype = /obj/item/weapon/card/id/security alt_titles = list("Junior Officer") economic_modifier = 4 access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 6d1a2eaa3d..3f49e3c6ab 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -117,6 +117,9 @@ var/icon/front var/icon/side + var/primary_color = rgb(0,0,0) // Obtained by eyedroppering the stripe in the middle of the card + var/secondary_color = rgb(0,0,0) // Likewise for the oval in the top-left corner + //alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system var/assignment = null //can be alt title or the actual job var/rank = null //actual job @@ -262,3 +265,88 @@ /obj/item/weapon/card/id/centcom/ERT/New() ..() access |= get_all_station_access() + +// Department-flavor IDs +/obj/item/weapon/card/id/medical + name = "identification card" + desc = "A card issued to station medical staff." + icon_state = "med" + 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) + +/obj/item/weapon/card/id/security + name = "identification card" + desc = "A card issued to station security staff." + icon_state = "sec" + primary_color = rgb(189,47,0) + secondary_color = rgb(223,127,95) + +/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) + +/obj/item/weapon/card/id/engineering + name = "identification card" + desc = "A card issued to station engineering staff." + icon_state = "eng" + primary_color = rgb(189,94,0) + secondary_color = rgb(223,159,95) + +/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) + +/obj/item/weapon/card/id/science + name = "identification card" + desc = "A card issued to station science staff." + icon_state = "sci" + 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) + +/obj/item/weapon/card/id/cargo + name = "identification card" + desc = "A card issued to station cargo staff." + icon_state = "car" + 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 = "carGold" + primary_color = rgb(142,94,0) + secondary_color = rgb(255,223,127) + +/obj/item/weapon/card/id/civilian + name = "identification card" + desc = "A card issued to station civilian staff." + icon_state = "civ" + primary_color = rgb(0,94,142) + secondary_color = rgb(95,159,191) + +/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) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 81cee4552a..c5e4e92721 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -2,6 +2,7 @@ name = "wallet" desc = "It can hold a few small and personal things." storage_slots = 10 + icon = 'icons/obj/wallet.dmi' icon_state = "wallet" w_class = 2 can_hold = list( @@ -45,23 +46,59 @@ update_icon() /obj/item/weapon/storage/wallet/update_icon() - if(front_id) switch(front_id.icon_state) - if("id") - icon_state = "walletid" + if("id") //The plain assistant ID + var/icon/new_wallet = new/icon("icon" = initial(icon), "icon_state" = initial(icon_state)) + var/icon/id_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_id") + new_wallet.Blend(id_overlay, ICON_OVERLAY) + del id_overlay + icon = new_wallet return - if("silver") - icon_state = "walletid_silver" - return - if("gold") - icon_state = "walletid_gold" - return - if("centcom") - icon_state = "walletid_centcom" - return - icon_state = "wallet" + if("silver") //HoP's ID has a special overlay. + var/icon/new_wallet = new/icon("icon" = initial(icon), "icon_state" = initial(icon_state)) + var/icon/id_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_idsilver") + new_wallet.Blend(id_overlay, ICON_OVERLAY) + del id_overlay + icon = new_wallet + if("gold") //Captain's ID has a special overlay. + var/icon/new_wallet = new/icon("icon" = initial(icon), "icon_state" = initial(icon_state)) + var/icon/id_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_idgold") + new_wallet.Blend(id_overlay, ICON_OVERLAY) + del id_overlay + icon = new_wallet + if("centcom") //Centcom ID has a special overlay. + var/icon/new_wallet = new/icon("icon" = initial(icon), "icon_state" = initial(icon_state)) + var/icon/id_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_idcentcom") + new_wallet.Blend(id_overlay, ICON_OVERLAY) + del id_overlay + icon = new_wallet + else //Doesn't match a special overlay type. + if(front_id.primary_color && front_id.secondary_color) //Colored ID with stripe and oval colors (pri/sec). + var/icon/new_wallet = new/icon("icon" = initial(icon), "icon_state" = initial(icon_state)) + var/icon/id_icon = new/icon("icon" = initial(icon), "icon_state" = "wallet_id") + var/icon/pri_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_idprimary") + var/icon/sec_overlay = new/icon("icon" = initial(icon), "icon_state" = "wallet_idsecondary") + pri_overlay.Blend(front_id.primary_color, ICON_ADD) + sec_overlay.Blend(front_id.secondary_color, ICON_ADD) + + new_wallet.Blend(id_icon, ICON_OVERLAY) + del id_icon + new_wallet.Blend(pri_overlay, ICON_OVERLAY) + del pri_overlay + new_wallet.Blend(sec_overlay, ICON_OVERLAY) + del sec_overlay + + icon = new_wallet + return + + else //Dunno what to do. Resort to plain assistant ID. + icon_state = initial(icon_state) + "id" + return + else + icon = initial(icon) + icon_state = initial(icon_state) /obj/item/weapon/storage/wallet/GetID() return front_id @@ -73,7 +110,6 @@ else return ..() - /obj/item/weapon/storage/wallet/random/New() ..() var/amount = rand(50, 100) + rand(50, 100) // Triangular distribution from 100 to 200 @@ -85,4 +121,22 @@ while(amount >= i) amount -= i SC.adjust_worth(i, 0) - SC.update_icon() \ No newline at end of file + SC.update_icon() + +/obj/item/weapon/storage/wallet/grey + icon_state = "greywallet" + +/obj/item/weapon/storage/wallet/green + icon_state = "greenwallet" + +/obj/item/weapon/storage/wallet/purple + icon_state = "purplewallet" + +/obj/item/weapon/storage/wallet/red + icon_state = "redwallet" + +/obj/item/weapon/storage/wallet/blue + icon_state = "bluewallet" + +/obj/item/weapon/storage/wallet/white + icon_state = "whitewallet" diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index a90373d219..dd8d66b0c5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -29,9 +29,33 @@ path = /obj/item/clothing/accessory/armband/science /datum/gear/accessory/wallet - display_name = "wallet" + display_name = "wallet, orange" path = /obj/item/weapon/storage/wallet/random +/datum/gear/accessory/wallet_grey + display_name = "wallet, grey" + path = /obj/item/weapon/storage/wallet/grey + +/datum/gear/accessory/wallet_green + display_name = "wallet, green" + path = /obj/item/weapon/storage/wallet/green + +/datum/gear/accessory/wallet_purple + display_name = "wallet, purple" + path = /obj/item/weapon/storage/wallet/purple + +/datum/gear/accessory/wallet_red + display_name = "wallet, red" + path = /obj/item/weapon/storage/wallet/red + +/datum/gear/accessory/wallet_blue + display_name = "wallet, blue" + path = /obj/item/weapon/storage/wallet/blue + +/datum/gear/accessory/wallet_white + display_name = "wallet, white" + path = /obj/item/weapon/storage/wallet/white + /datum/gear/accessory/holster display_name = "holster, armpit" path = /obj/item/clothing/accessory/holster/armpit diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 75d2b5ebf4..2ed467d9f5 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index b9190b3f65..be5e694f22 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/wallet.dmi b/icons/obj/wallet.dmi new file mode 100644 index 0000000000..0525de5d76 Binary files /dev/null and b/icons/obj/wallet.dmi differ