Adds IDs and Wallets

Adds variants of ID cards for each department and head, and adds several new colors of wallet. The wallets self-color the little ID in the corner based on the ID inserted so they always show the right picture of the ID, without needing to sprite each ID. Some are snowflaked, notably Gold and Centcom, but the rest are generated on the fly based on colors on the ID.
This commit is contained in:
Arokha Sieyes
2016-06-08 19:29:47 -04:00
parent 48ed49ad39
commit 74a1b59a39
12 changed files with 208 additions and 20 deletions
+9
View File
@@ -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)
+1
View File
@@ -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")
+3 -1
View File
@@ -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)
+5 -1
View File
@@ -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)
+4 -1
View File
@@ -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.
+4 -1
View File
@@ -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)
@@ -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)
@@ -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()
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"
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB