diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 9117df8e6b..58d907e14b 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -83,7 +83,7 @@ /obj/item/card/emag/bluespace name = "bluespace cryptographic sequencer" desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." - color = rgb(40, 130, 255) + icon_state = "emag_bs" prox_check = FALSE /obj/item/card/emag/attack() @@ -166,6 +166,7 @@ slot_flags = ITEM_SLOT_ID armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF + var/id_type_name = "identification card" var/mining_points = 0 //For redeeming at mining equipment vendors var/list/access = list() var/registered_name = null // The name registered_name on the card @@ -174,6 +175,8 @@ var/bank_support = ID_FREE_BANK_ACCOUNT var/datum/bank_account/registered_account var/obj/machinery/paystand/my_store + var/uses_overlays = TRUE + var/icon/cached_flat_icon /obj/item/card/id/Initialize(mapload) . = ..() @@ -362,20 +365,38 @@ /obj/item/card/id/RemoveID() return src -/* -Usage: -update_label() - Sets the id name to whatever registered_name and assignment is +/obj/item/card/id/update_overlays() + . = ..() + if(!uses_overlays) + return + cached_flat_icon = null + var/job = assignment ? ckey(GetJobName()) : null + if(registered_name == "Captain") + job = "captain" + if(registered_name && registered_name != "Captain") + . += mutable_appearance(icon, "assigned") + if(job) + . += mutable_appearance(icon, "id[job]") + +/obj/item/card/id/proc/get_cached_flat_icon() + if(!cached_flat_icon) + cached_flat_icon = getFlatIcon(src) + return cached_flat_icon + + +/obj/item/card/id/get_examine_string(mob/user, thats = FALSE) + if(uses_overlays) + return "[icon2html(get_cached_flat_icon(), user)] [thats? "That's ":""][get_examine_name(user)]" //displays all overlays in chat + return ..() -update_label("John Doe", "Clowny") - Properly formats the name and occupation and sets the id name to the arguments -*/ /obj/item/card/id/proc/update_label(newname, newjob) if(newname || newjob) name = "[(!newname) ? "identification card" : "[newname]'s ID Card"][(!newjob) ? "" : " ([newjob])"]" + update_icon() return name = "[(!registered_name) ? "identification card" : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" + update_icon() /obj/item/card/id/silver name = "silver identification card" @@ -388,6 +409,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/silver/reaper name = "Thirteen's ID Card (Reaper)" access = list(ACCESS_MAINT_TUNNELS) + icon_state = "reaper" assignment = "Reaper" registered_name = "Thirteen" @@ -539,7 +561,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/ert name = "\improper CentCom ID" desc = "An ERT ID card." - icon_state = "centcom" + icon_state = "ert_commander" registered_name = "Emergency Response Team Commander" assignment = "Emergency Response Team Commander" @@ -548,6 +570,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Security + icon_state = "ert_security" registered_name = "Security Response Officer" assignment = "Security Response Officer" @@ -556,6 +579,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Engineer + icon_state = "ert_engineer" registered_name = "Engineer Response Officer" assignment = "Engineer Response Officer" @@ -564,6 +588,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Medical + icon_state = "ert_medical" registered_name = "Medical Response Officer" assignment = "Medical Response Officer" @@ -572,6 +597,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/chaplain + icon_state = "ert_chaplain" registered_name = "Religious Response Officer" assignment = "Religious Response Officer" @@ -624,40 +650,49 @@ update_label("John Doe", "Clowny") . += "Your sentence is up! You're free!" /obj/item/card/id/prisoner/one + icon_state = "prisoner_001" name = "Prisoner #13-001" registered_name = "Prisoner #13-001" /obj/item/card/id/prisoner/two + icon_state = "prisoner_002" name = "Prisoner #13-002" registered_name = "Prisoner #13-002" /obj/item/card/id/prisoner/three + icon_state = "prisoner_003" name = "Prisoner #13-003" registered_name = "Prisoner #13-003" /obj/item/card/id/prisoner/four + icon_state = "prisoner_004" name = "Prisoner #13-004" registered_name = "Prisoner #13-004" /obj/item/card/id/prisoner/five + icon_state = "prisoner_005" name = "Prisoner #13-005" registered_name = "Prisoner #13-005" /obj/item/card/id/prisoner/six + icon_state = "prisoner_006" name = "Prisoner #13-006" registered_name = "Prisoner #13-006" /obj/item/card/id/prisoner/seven + icon_state = "prisoner_007" name = "Prisoner #13-007" registered_name = "Prisoner #13-007" /obj/item/card/id/mining name = "mining ID" + icon_state = "retro" access = list(ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) /obj/item/card/id/away name = "a perfectly generic identification card" desc = "A perfectly generic identification card. Looks like it could use some flavor." + icon_state = "retro" access = list(ACCESS_AWAY_GENERAL) /obj/item/card/id/away/hotel @@ -700,6 +735,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/departmental_budget name = "departmental card (FUCK)" desc = "Provides access to the departmental budget." + icon_state = "budgetcard" var/department_ID = ACCOUNT_CIV var/department_name = ACCOUNT_CIV_NAME @@ -712,6 +748,7 @@ update_label("John Doe", "Clowny") B.bank_cards += src name = "departmental card ([department_name])" desc = "Provides access to the [department_name]." + icon_state = "[lowertext(department_ID)]_budget" SSeconomy.dep_cards += src /obj/item/card/id/departmental_budget/Destroy() diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index a3b0d19df4..13a0725b05 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ