From daac3037835aba088c5c346e9e9d09d5e9402648 Mon Sep 17 00:00:00 2001 From: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com> Date: Mon, 20 May 2024 01:04:16 +0200 Subject: [PATCH] Admin access configurator (#28107) * Port spritework and initial prototypes by @Arimah Co-authored-by: Alice 'Arimah' Heurlin <30327355+arimah@users.noreply.github.com> * Make Admin PDA's spawn with a universal ID card * Add universal access configurator to aghost satchel of holding * Add Admin suffixes to adminonly items: AdminPDA, UniversalIDCard, AccessConfiguratorUniversal * Admin jobicon --------- Co-authored-by: Alice 'Arimah' Heurlin <30327355+arimah@users.noreply.github.com> --- .../Fills/Backpacks/StarterGear/satchel.yml | 3 +- .../Entities/Objects/Devices/pda.yml | 3 +- .../Objects/Misc/identification_cards.yml | 27 ++++++++ .../Objects/Tools/access_configurator.yml | 58 ++++++++++++++++ Resources/Prototypes/StatusEffects/job.yml | 7 ++ .../Interface/Misc/job_icons.rsi/Admin.png | Bin 0 -> 159 bytes .../Interface/Misc/job_icons.rsi/meta.json | 5 +- .../Objects/Misc/id_cards.rsi/admin.png | Bin 0 -> 1328 bytes .../Misc/id_cards.rsi/green-inhand-left.png | Bin 0 -> 1239 bytes .../Misc/id_cards.rsi/green-inhand-right.png | Bin 0 -> 1260 bytes .../Objects/Misc/id_cards.rsi/idadmin.png | Bin 0 -> 1039 bytes .../Objects/Misc/id_cards.rsi/meta.json | 16 ++++- .../equipped-BELT.png | Bin 0 -> 1038 bytes .../icon.png | Bin 0 -> 4288 bytes .../inhand-left.png | Bin 0 -> 1327 bytes .../inhand-right.png | Bin 0 -> 1362 bytes .../meta.json | 62 ++++++++++++++++++ 17 files changed, 177 insertions(+), 4 deletions(-) create mode 100644 Resources/Textures/Interface/Misc/job_icons.rsi/Admin.png create mode 100644 Resources/Textures/Objects/Misc/id_cards.rsi/admin.png create mode 100644 Resources/Textures/Objects/Misc/id_cards.rsi/green-inhand-left.png create mode 100644 Resources/Textures/Objects/Misc/id_cards.rsi/green-inhand-right.png create mode 100644 Resources/Textures/Objects/Misc/id_cards.rsi/idadmin.png create mode 100644 Resources/Textures/Objects/Tools/universal_access_configurator.rsi/equipped-BELT.png create mode 100644 Resources/Textures/Objects/Tools/universal_access_configurator.rsi/icon.png create mode 100644 Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-left.png create mode 100644 Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-right.png create mode 100644 Resources/Textures/Objects/Tools/universal_access_configurator.rsi/meta.json diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml index 140b1c2968..fe41168829 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml @@ -214,7 +214,7 @@ - id: BoxSurvival - id: Bible - id: RubberStampChaplain - + - type: entity noSpawn: true parent: ClothingBackpackSatchel @@ -296,4 +296,5 @@ contents: - id: GasAnalyzer - id: trayScanner + - id: AccessConfiguratorUniversal - type: Unremoveable diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index 472d0ecbe1..b76ca6a14a 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -658,10 +658,11 @@ parent: CentcomPDA id: AdminPDA name: Admin PDA + suffix: Admin description: If you are not an admin please return this PDA to the nearest admin. components: - type: Pda - id: PassengerIDCard + id: UniversalIDCard - type: HealthAnalyzer scanDelay: 0 - type: CartridgeLoader diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 3de1afe8b8..98ae7df9b3 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -840,3 +840,30 @@ layers: - state: default - state: idseniorofficer + +- type: entity + parent: IDCardStandard + id: UniversalIDCard + name: universal ID card + suffix: Admin + description: An ID card that gives you access beyond your wildest dreams. + components: + - type: Sprite + sprite: Objects/Misc/id_cards.rsi + layers: + - state: admin + - state: idadmin + - type: Clothing + sprite: Objects/Misc/id_cards.rsi + - type: Item + heldPrefix: green + - type: IdCard + jobTitle: Universal + jobIcon: JobIconAdmin + - type: Access + groups: + - AllAccess + tags: + - CentralCommand + - NuclearOperative + - SyndicateAgent diff --git a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml index d63e1f0aa9..3c5bc93b42 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/access_configurator.yml @@ -73,3 +73,61 @@ - type: ContainerContainer containers: AccessOverrider-privilegedId: !type:ContainerSlot + +- type: entity + parent: AccessConfigurator + id: AccessConfiguratorUniversal + name: universal access configurator + suffix: Admin + description: A modified access configurator used only by the mythical Administrator. + components: + - type: Sprite + sprite: Objects/Tools/universal_access_configurator.rsi + - type: Clothing + sprite: Objects/Tools/universal_access_configurator.rsi + - type: AccessOverrider + accessLevels: + - Armory + - Atmospherics + - Bar + - Brig + - Detective + - Captain + - Cargo + - Chapel + - Chemistry + - ChiefEngineer + - ChiefMedicalOfficer + - Command + - Engineering + - External + - HeadOfPersonnel + - HeadOfSecurity + - Hydroponics + - Janitor + - Kitchen + - Lawyer + - Maintenance + - Medical + - Quartermaster + - Research + - ResearchDirector + - Salvage + - Security + - Service + - Theatre + - CentralCommand + - NuclearOperative + - SyndicateAgent + privilegedIdSlot: + name: id-card-console-privileged-id + ejectSound: /Audio/Machines/id_swipe.ogg + insertSound: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg + ejectOnBreak: true + swap: false + whitelist: + components: + - IdCard + denialSound: + path: /Audio/Machines/custom_deny.ogg + doAfter: 0.5 diff --git a/Resources/Prototypes/StatusEffects/job.yml b/Resources/Prototypes/StatusEffects/job.yml index aec3f5e69d..6275f0bc07 100644 --- a/Resources/Prototypes/StatusEffects/job.yml +++ b/Resources/Prototypes/StatusEffects/job.yml @@ -375,3 +375,10 @@ icon: sprite: /Textures/Interface/Misc/job_icons.rsi state: Visitor + +- type: statusIcon + parent: JobIcon + id: JobIconAdmin + icon: + sprite: /Textures/Interface/Misc/job_icons.rsi + state: Admin diff --git a/Resources/Textures/Interface/Misc/job_icons.rsi/Admin.png b/Resources/Textures/Interface/Misc/job_icons.rsi/Admin.png new file mode 100644 index 0000000000000000000000000000000000000000..38a76df8d8e49ee190d4be0cd3a9b9cf25fda3af GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9F5he4R}c>anMpkSb< zi(`mHcybB@Q<(G2{|ZvFf9(FZOk`C#sib`3L+)i&kxD&#TY>-f+#M~RPOJyH9Fua~ zHt{5|8Z_i_dC0gj?&4Hn^|>L_uHzQKsH~XJ#L%Q5@$iM(3@4!B44$rjF6*2UngA?L BD?9)I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Misc/job_icons.rsi/meta.json b/Resources/Textures/Interface/Misc/job_icons.rsi/meta.json index 745cc43b84..fff9f78288 100644 --- a/Resources/Textures/Interface/Misc/job_icons.rsi/meta.json +++ b/Resources/Textures/Interface/Misc/job_icons.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/e71d6c4fba5a51f99b81c295dcaec4fc2f58fb19/icons/mob/screen1.dmi | Brigmedic icon made by PuroSlavKing (Github) | Zombie icon made by RamZ | Zookeper by netwy (discort) | Rev and Head Rev icon taken from https://tgstation13.org/wiki/HUD and edited by coolmankid12345 (Discord) | Mindshield icon taken from https://github.com/tgstation/tgstation/blob/master/icons/mob/huds/hud.dmi", + "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/e71d6c4fba5a51f99b81c295dcaec4fc2f58fb19/icons/mob/screen1.dmi | Brigmedic icon made by PuroSlavKing (Github) | Zombie icon made by RamZ | Zookeper by netwy (discort) | Rev and Head Rev icon taken from https://tgstation13.org/wiki/HUD and edited by coolmankid12345 (Discord) | Mindshield icon taken from https://github.com/tgstation/tgstation/blob/master/icons/mob/huds/hud.dmi | Admin recolored from MedicalIntern by TsjipTsjip", "size": { "x": 8, @@ -185,6 +185,9 @@ }, { "name": "InitialInfected" + }, + { + "name": "Admin" } ] } diff --git a/Resources/Textures/Objects/Misc/id_cards.rsi/admin.png b/Resources/Textures/Objects/Misc/id_cards.rsi/admin.png new file mode 100644 index 0000000000000000000000000000000000000000..99ca993b0b85b09d9969d9855d1275ca6dafd4ad GIT binary patch literal 1328 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y2=9ZF3nBND}m`vLFhHYsTY(KatnYqyQCInmZhe+73JqDfW2&$iPJ5XZaB?@ z>P^Az76Y7m^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5<7_%>Bo}z_`TI#WAGf zR??sU|LqSuFsZdMvMuJ5C_S)(Ibs8sR%e4omY6_~!lUzh&5u|zr0fjYX?``Q{@Tv3 z_Gbho^bUs!F*!f5&u?Jty78P>+~CT>)d$%st}adNV`ybi-l*7+XgRx2B&^V>??=sN z&6k-BY<2f4j~-a3#FkcnyM)uH_~*-mKQC-yVw3;%-Dt`DLWa%hvt$@9Gqs-MSCR4-aw4pSit8nJU3M3q`T8E$M?BhV0e?_}Mq zgSR~!Rk*jmt3D9$@A8yQ0uF2n?h}|CrU?r(S;#i5eW5D;XV)j59C6L9ipl}PS63%5 oTAZ-O)9h74AbXDnI|GXZ!=;k#%sKo|vq5E;r>mdKI;Vst0CRB2b^rhX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/id_cards.rsi/green-inhand-left.png b/Resources/Textures/Objects/Misc/id_cards.rsi/green-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..958c3ba056d251b31db9408266ca99eebfd99f67 GIT binary patch literal 1239 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`Vd-k-W@=$z;Ob&(Xz1$ZWMJ&%=;~r=YUyZU zY+>LG)9aF-T$-DjR|3gTk1g7 zhxJd6ebEh@yhtg?Jd(Hn>v0kB*A4NIP_AmFB(q z=Ds^h>y_f!FXU>?U-Pv@P~h3WaJNgHX9VKrJh22Ds&Lc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`;o@pwY-(&~;Ob&(Xz1$ZXl&u;=H%>Zv4~Pj*wm=R%;iu*SQ+p9GS<5!{+A=UOCV09yhE&{o zb9-a7n~&QIqB8T7iO&=cm=DOT2SG5|!N*)2La&2+nV4#D{QI&qr5xMJ}r=^}UeV z{rJYNch#qLv*$nBq!A^#=grz%?^BJlb5z!+*Il1~_v>=`RNFZgwa?=j=K5K^xPE*& z=j)08I%ZA_-|74!XO(*GvP>=U`^+T*vO4G4*DtM={r>aYmC38`vXtI>{_{b-a>`Dh zW}W8WANW69eqMCtsU@0Q(6|q@7^K|9q#Tr2R6Fc=A#}mwR(Z>VJ1^z0DX)&)^PWTX zx~yrr{hZ3p{iolq`8fAzwv6no6W$D#-}fFo{%>`r-mx-0-O3fV*2gcFGao31n*Hy3 bSOX(N&1&5Zd$xRi4HEQp^>bP0l+XkK=S8pB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Misc/id_cards.rsi/idadmin.png b/Resources/Textures/Objects/Misc/id_cards.rsi/idadmin.png new file mode 100644 index 0000000000000000000000000000000000000000..3705c6bf4e9b445def9e3edb31cff9f8376821a6 GIT binary patch literal 1039 zcmaJ=PfXKL9Imp!f?$jX14hlWL`B2;XKZC_sAF39@?@e1KnKofl)M&!9RjmRsD8WU;lIWjr-_gL(C3-HZaEhIVWn-f5z}fm# zL917^xK1aof>BQ-0w%;N@XRI46+MaG*A>a!-)3pB55X0QK1iylOoKFXAc!)M`X|~WV&cnle|0(PiR&B`Up^K`HMjE#;;D@rsv;$R)oB~2i%_>fp z5k_tq*&sbDfWbM#(oxO5ypLBDF=x40wKSNMC7LKOhM|ii(Rex<8;)}sIm+{yY?6GSaFhv~ZKFA99mzxxN)ln?#nOW2`_u>mU>CA6Yco=Q7e(uff&Z z=MrnnWl1uu-`Kwz-P|JX@uw}@l10n-&?0Vkh^-$#_%u$g#ClFn7QD};-MziU`>~@J zZy)J=a=fp)wb_w9yOr9Yg@J1)Zav%9cdI}6>!~k^dmEr5xIT3A#d7TK%FK@W@j@q) zkT~UcgnD@`aw%I4XBhsWE+p-uAACTqjuR-1OMm{Ho|dUILwwuUWvS@LSrUX+0c zPl`7$9t06Q2r8aDD0tdU5J42@&4UcolNUu_y0#Os;z#oS@%#P0?|t9*u2mN1ClbdJ z9LG(ROL~>fbMb%ZARF&H8{2F;N(&8IBP+CR2AIp)WEq39Yp&udHto*F7M|g_G3eAA zv|*fAE#mTKjNv2KXKap}nT>qYTEi49<5kDg;OD2$AaHCAF3N^z_<7uPO5Fh0x(juy zyJlr=IC}=nL@E<-F*QNtu6v;xX|SiOvUPkcK+uEGH4W|t)i5d`PXY{NK9#gYgn**( zC@m`rIt?TdNrK2eC5h6itfczecDv2DQ#=V)1(eNZ zV+~14GDI@$c+`xNUN|{W&~a!5j!zxpfmqR8CM~K#7U}L4Tz@F*h5a4$&d4;=OqPDje23J{GDtB(1<=gVM{?sQm@aoN5_&H$rV^I zLR{G23OzVt-4ic|ZOb;p#>XD(_JFnZ&$){?*pt{S>$!ULcIVB*iRWOP%av}KN3Q<3 zSDHWmcsvBB_wn{k_O|}8D|ffI;kN@PzF&B^|I6hUhciz;o!W^X@P8Zc ZCPeP#*YWqSUgxJ`R=KdCKRCOz`3nx|HO>G4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/icon.png b/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0331deab754b6f4258d1a00fe2ad00a5b36ccf GIT binary patch literal 4288 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 I_KZ644^FkPO#lD@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-left.png b/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe2029ac5214e3af56350eaf4185ff07a8432b1 GIT binary patch literal 1327 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`WME=uVP@iD;OgvRXz1!@VQOUTV(MyQY~*Tb z>}X;P)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GS0+(7&=6~8(DLLt!|C+7K&K4#_$$>K)5^>?wi(ewb6Mucbe0b}-FVWFX zcmJHdyZN^H&n4pX|FbU%f8O1`?Z*!zPy5Li7F$$S_P-E(Q5y4U(o!``Yco|A>ped< zzxy+5_O|PiC*zRdxYeq| zeBlvB2lrTUgV`0#VMjN`-CXWs&TjIRZ4KAe&{}!#XK~LP-etaJ=g8`d;<$ePy+!{r srZ;?(%|q?YW^p~RMRG?%|D*T@Mh52{{S7NClJY?^p00i_>zopr0Opa*FaQ7m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-right.png b/Resources/Textures/Objects/Tools/universal_access_configurator.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..17951b140769ae30e37a9251f00d176269daaa54 GIT binary patch literal 1362 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`Wb9~aXlCJP;OgvRXz1$ZWMN_EYU*li>0;>O z=45OR)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GSzoW<*ucQRc+AtqF{I+w zn_CZ90vG+6w#v)%@s0WC!!8+jbC~X26L6RtoZpZLlTBML^BHaaxo?-nmGabe zPR{*(>;IS5Udy&$J~yD@+P7sp^R|iygbL)GdVRR!WkkvUDV!6mSkL*FA1T>)UzP6~ zuS+b$mb1S+`Tp&(KPQ;LV6|Pj%JPPiWc$~SmaW&^RqpiKF+So*Sk4h)k)b;IuU_sQ zn`^2Pj<_T0YK?JdLmu_@xK=7PZ2CIQzNOkey7 zzfu>^{6T>Q$<^4HUCcXdURL_f{<-G=^}md2XKi{vy%IQk^7k2;qhD{o4~{s;xBESR zfySc9pHTY?YN&h`~EJmwc*D5?8|DWY-YRR$E=n9{KWkCk4t$MeA;$aXW8tEeg+$MBzKuC b*u!nWFd==mchLLfO&|$RS3j3^P6