From 29ff6fc46466951cb95cac122cbf9c4297857b6a Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Wed, 17 Jun 2020 02:23:17 +0300 Subject: [PATCH] Updating ID Icons (#12535) * Mid-process * ID updates --- code/game/objects/items/cards_ids.dm | 55 ++++++++++++++++++++++----- icons/obj/card.dmi | Bin 5937 -> 15291 bytes 2 files changed, 46 insertions(+), 9 deletions(-) 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 a3b0d19df4d1719b796b80c528a3997faf144408..13a0725b05653393a1b8f68b6cf6a691f4a6face 100644 GIT binary patch literal 15291 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�e}O^D!-Yt9%^Et-Z=<2&}%d=&g|@zH=EKhw7vo`E<7BzTR@; zJ!{ZKHF0$!TvMyVKjOuwRBTg z%{E%?!$stKfya)$!;DanYo~}aSheiM?BB%fsAnnouW?Ag@(ZE3NK<7c&J*4>u;>_K zVL~ykB0l5|%=rVeNg=fqr2LH1LQo)Co#J<`TENTGII&@g7fUm6`BhyEuxF6puJ(vY zYB1PwIm;JJBNQ=JbYp%8dotPTX8Krgz%d#^+!I z*H6(K9puaJZOA|Wej&v5G4Aj?_O?fK%VA-#CB|xWu}Muj-}f7%f|kHom(`U)ny~hA z`p&5ty8%R+_tldC(?B@vFJre?wjF47PL$-A)~ z(Q$O<9#t7L-mQ*JbIaNW0Y? zU=3^>L|mL>k}wJ={cf@OsEYip(T0A*od#A8_uY0Gi5xv_K^=iFBOu@QSs^#8Mp;;} zmZ(Rtc?S>GtBFW4BbzvNcE_cNKE@j|Z6N)4y}ON^t}UsA0^14RH^<74uQv$ll09=4 zcTxijmwEp}$YP}|=+Zhzi>+hz&L&Y%DMsnSlj9UYMsxUIFQoe$DBB11D+l zRARzEx{BGLpm1|gKHUQ<+EoPEl^8S*ym^peu+>K{d#{j^3cfZG)nwo}Ye*BDq|G=Y0aqRfYJa`d z*Mq6LFuif(T|O?H=Tl?*`M3AbmUpoHXt)BQP)p||S{tcl2Tp08IS(6J6XIo{{y zlAlQAB!A+PVS-^*b->G*wffBOq=z(dm^&#r1u|zTF78LrrWpJ6@U-5EORm2|O91+Z z!Y_LXzk?Cv_Ik89jz?vgqvRq*?8Gygk4y*+pQYQBK%?WNtJorlO2;?<>J`+P4urpp*nUX?N3Qp&*8{ffH(bQ~M@CKIQBa&|xq->)m<3Z$f zi5xa=9QQ(M@{gPTrMTw|%^aa!QT;9;j`s{sn1Yu5&{i54^> z5Y?d_ZRAD`z@T-VY@D0SzrAC!MOMaNy?Q!Dj$Av@rFr^YYT6a0a?R@Gu`W`$uhaFF zw1lZjZpR;Wc}o?eV4Cv;`>BoiE3f3Fysd#mk;d1B2N8-N!Sx{@uciYmb|*_?_Rctz zLQwU{Ej~ci{iH)@rMD~JM!+k5MA*cOsbvoi&}WQ$?2-r6(@ow*76 z9ri&iV42U#%BsMi!We&|9c1uQ%Vh4(bJvg2$(6*d#wn=tZEue6nIg#UQs%(jS zRbdnO+b5|tg{2sL96j5g-KGR)1p@9OcHrCoLw!q`0C8>=Uh zns?)x7i%!&A_6~z;7z&e)u@%AK9qIuW;Z?{A}gtqKeHVchz^Buxf-$wz~#@bhURptvS8W>NBq;%i?u`C z)iE$jpijBa?*OhQXaY3o04@dwQ4a;TE``}Tzp$A*cSiBUKgGvm0-ciHpgyUM7)}?A zC!rS!3jOgz(g6j&X5zU!`E$+ezPZm4vcYY+10tUNgqmmA?+5(k%ZNbs`IR-wa{cfI z@=p^ufpJ~s8eZlTGkPg^Sx0!#kIAZ)wbfM?=|5Cq=gQ^@sAZY=1(>)bS57Q{M*?4< z(cAdtzy-6F^~YGY?JP$}1{RWoFDCx$`kgg2M0UwKFQoh|34AFR NP?pz_tCY0}{vWCqdCLF* literal 5937 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 VQ-4n+@gF$AK-W~KTFWW&zX0Fb!WRGl