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 0000000000..93c2282db6 Binary files /dev/null and b/icons/obj/card_fluff.dmi differ