From 0d454cff77cf8dc446d0b6c52ddb6214c22aa155 Mon Sep 17 00:00:00 2001
From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com>
Date: Thu, 9 May 2024 12:33:26 -0700
Subject: [PATCH] [MIRROR] Fluff Licenses! (#8365)
Co-authored-by: Killian <49700375+KillianKirilenko@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
---
.../objects/items/weapons/id cards/cards.dm | 108 +++++++++++++++++-
.../loadout/loadout_general_vr.dm | 7 +-
icons/obj/card_fluff.dmi | Bin 0 -> 1175 bytes
3 files changed, 113 insertions(+), 2 deletions(-)
create mode 100644 icons/obj/card_fluff.dmi
diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index c02213078b..7b038025b6 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -161,4 +161,110 @@
user.visible_message("\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.")
burnt_out = TRUE
- return 1
\ No newline at end of file
+ return 1
+
+/// FLUFF PERMIT
+
+/obj/item/weapon/card_fluff
+ name = "fluff card"
+ desc = "A tiny plaque of plastic. Purely decorative?"
+ description_fluff = "This permit was not issued by any branch of NanoTrasen, and as such it is not formally recognized at any NanoTrasen-operated installations. The bearer is not - under any circumstances - entitled to ownership of any items or allowed to perform any acts that would normally be restricted or illegal for their current position, regardless of what they or this permit may claim."
+ icon = 'icons/obj/card_fluff.dmi'
+ w_class = ITEMSIZE_TINY
+ slot_flags = SLOT_EARS
+
+ var/list/initial_sprite_stack = list("")
+ var/base_icon = 'icons/obj/card_fluff.dmi'
+ var/list/sprite_stack = list("")
+
+ drop_sound = 'sound/items/drop/card.ogg'
+ pickup_sound = 'sound/items/pickup/card.ogg'
+
+/obj/item/weapon/card_fluff/proc/reset_icon()
+ sprite_stack = list("")
+ update_icon()
+
+/obj/item/weapon/card_fluff/update_icon()
+ if(!sprite_stack || !istype(sprite_stack) || sprite_stack == list(""))
+ icon = base_icon
+ icon_state = initial(icon_state)
+
+ var/icon/I = null
+ for(var/iconstate in sprite_stack)
+ if(!iconstate)
+ iconstate = icon_state
+ if(I)
+ var/icon/IC = new(base_icon, iconstate)
+ I.Blend(IC, ICON_OVERLAY)
+ else
+ I = new/icon(base_icon, iconstate)
+ if(I)
+ icon = I
+
+/obj/item/weapon/card_fluff/attack_self()
+
+ var/choice = tgui_input_list(usr, "What element would you like to customize?", "Customize Card", list("Band","Stamp","Reset"))
+ if(!choice) return
+
+ if(choice == "Band")
+ var/bandchoice = tgui_input_list(usr, "Select colour", "Band colour", list("red","orange","green","dark green","medical blue","dark blue","purple","tan","pink","gold","white","black"))
+ if(!bandchoice) return
+
+ if(bandchoice == "red")
+ sprite_stack.Add("bar-red")
+ else if(bandchoice == "orange")
+ sprite_stack.Add("bar-orange")
+ else if(bandchoice == "green")
+ sprite_stack.Add("bar-green")
+ else if(bandchoice == "dark green")
+ sprite_stack.Add("bar-darkgreen")
+ else if(bandchoice == "medical blue")
+ sprite_stack.Add("bar-medblue")
+ else if(bandchoice == "dark blue")
+ sprite_stack.Add("bar-blue")
+ else if(bandchoice == "purple")
+ sprite_stack.Add("bar-purple")
+ else if(bandchoice == "ran")
+ sprite_stack.Add("bar-tan")
+ else if(bandchoice == "pink")
+ sprite_stack.Add("bar-pink")
+ else if(bandchoice == "gold")
+ sprite_stack.Add("bar-gold")
+ else if(bandchoice == "white")
+ sprite_stack.Add("bar-white")
+ else if(bandchoice == "black")
+ sprite_stack.Add("bar-black")
+
+ update_icon()
+ return
+ else if(choice == "Stamp")
+ var/stampchoice = tgui_input_list(usr, "Select image", "Stamp image", list("ship","cross","big ears","shield","circle-cross","target","smile","frown","peace","exclamation"))
+ if(!stampchoice) return
+
+ if(stampchoice == "ship")
+ sprite_stack.Add("stamp-starship")
+ else if(stampchoice == "cross")
+ sprite_stack.Add("stamp-cross")
+ else if(stampchoice == "big ears")
+ sprite_stack.Add("stamp-bigears") //get 'em outta the caption, wiseguy!!
+ else if(stampchoice == "shield")
+ sprite_stack.Add("stamp-shield")
+ else if(stampchoice == "circle-cross")
+ sprite_stack.Add("stamp-circlecross")
+ else if(stampchoice == "target")
+ sprite_stack.Add("stamp-target")
+ else if(stampchoice == "smile")
+ sprite_stack.Add("stamp-smile")
+ else if(stampchoice == "frown")
+ sprite_stack.Add("stamp-frown")
+ else if(stampchoice == "peace")
+ sprite_stack.Add("stamp-peace")
+ else if(stampchoice == "exclamation")
+ sprite_stack.Add("stamp-exclaim")
+
+ update_icon()
+ return
+ else if(choice == "Reset")
+ reset_icon()
+ return
+ return
diff --git a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm
index 9ff65b848d..1eb2e49830 100644
--- a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm
@@ -100,4 +100,9 @@
/datum/gear/egy_game
display_name = "EGY playing cards"
description = "A deck of cards for playing EGY! Be the first to lose all cards!"
- path = /obj/item/weapon/deck/egy
\ No newline at end of file
+ path = /obj/item/weapon/deck/egy
+
+/datum/gear/fluff_permit
+ display_name = "Customizable Permit"
+ description = "A customizable permit you can use for... just about anything! Be sure to customize the name and description. It is meant to represent generic driver's or pilot's licenses, and similar fluff items. It includes an irremovable disclaimer and may be freely confiscated or revoked at the discretion of Security and/or Command if you attempt to abuse it!"
+ path = /obj/item/weapon/card_fluff
diff --git a/icons/obj/card_fluff.dmi b/icons/obj/card_fluff.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..93c2282db6b2baad9437b01eb493a11136e50ca0
GIT binary patch
literal 1175
zcmeAS@N?(olHy`uVBq!ia0vp^2Y`412Q!e&{WdutNVNy}gt#6!aKOdIB`Ygy^5n^D
z*RBN$pFe*-Iy$;mTjg*Lt8%8SlCIor6P-(LHvc;q{;yy#Tcqo9#!@>}#pOV&Mr;=-*Wx`=I0N0$^O5r
z`2Vsp&{7o@6$1kUdwcs^w{HFa|6hOYbWNb$j3q&S!3+-1ZlnR(3{@c!B`&GO$wiq3
zC7Jno3=9=>rcT+L#cU|h^7?Wx$L=zZH(N5BdJ6^jH~U3-cYi(ZHU0Es_vg&zj~XFKXLehJoH
z5?J#5GUJ&S>hsvmW~iU)`5kp(RfV1LG3)g!j#NCzmRee=o!V
z5i;gH7Xld=m^OL3IEGZrc{}@c&?^UlmPn5#ahD_3N=k<`1@8a<$>+J@jL+n|Eh>2$
zzbF5^ny_p0-h|x5<<1<6EpzPHG?)H9R#Lrpom8;X_ddt^SO}%n5DVh1aw@xPt>)mv
z`B$9d@Q;b@oQpJg4r_4rc*=eB=iGbw=Ifu={lC<(ue*Ny(>u;-3@?R?!Vj#o)(^Ov
z@R8wfoxO*AJG0ES$=ohx%qRbDFIljS!F|2M7UPW77yNppcsIPSC@L>!W?WO%X!{_F
zG5qM8U7Uxe+!5XI`s()s|Gvww{x9(-Z^u36vb_i73ifb^@?H3Ko{@d|zv~)`EdowJ
z*8>U5NgAr*`9EszSJqCCdr)Fw7rX7%LSO#LucQ5!uXUfScUMy3Yr5s`p2v};$GObp
z52Rj@JW$0fwSGc1tIYEAes|*xufHs9^u6&$u0U?RbzJ?g_f9agJLJy^ES#_GwBMnn
zuJg+4`hrr^fXTiEc6;{8tvac;L*nk8o+~NBF@5>@$Fs703)=p%D>3|%?_zjSufnw8
zf8kli1N*rc{)IApSkKh(e-`tC`cTC;6V?cnd4zFThrCz&(EmH-Ox>qvbB`pnzPGDh
z{%ZR6y`R~cw)`pi@g;o0t@;3%7ZsPEl2!Ur?ec=Zxpc4gW%0H#l!{x}g{ecl4jr
z46vX9g?$lEw#y6KBa<&5USmFgzO?C0mc4JUUk~$LEwtw1e>b2dx2Hi2%#URFvR