Skip to content

Commit

Permalink
Fluff Licenses! (#6434)
Browse files Browse the repository at this point in the history
## About The Pull Request

A little five minute idea I had whilst in the process of getting dinner
out of the oven: customizable fluff permits! This PR adds a new
Customizable Permit to loadouts. Set the name and description to
whatever you want! Card that says you're High Princess of the Candy
Kingdom? Go ahead. Monster●●●●er license? Sure. Union membership card?
Why not. Or you can use it for like, EMS or Pilot's licenses too, I
guess.

But don't try to be clever! It includes an **irremovable disclaimer**
that it was not issued by NT, is not binding, and does not need to be
honoured by security/command. If you try to use this to say you're
allowed to openly carry a lethal firearm on green alert as a botanist,
_expect to get in trouble._

![image](https://github.com/VOREStation/VOREStation/assets/49700375/550a281f-f10a-455a-855a-ec4b5cec9e61)

You can even use it in-hand to customize the colour of the band and the
icon on the card (or reset it to its base appearance);

![image](https://github.com/VOREStation/VOREStation/assets/49700375/96b162b2-e0b3-4411-9a87-752bc60f094c)

![image](https://github.com/VOREStation/VOREStation/assets/49700375/406bd179-5b17-4e52-b1df-6951345de046)

![image](https://github.com/VOREStation/VOREStation/assets/49700375/49bba25a-a0e6-4df2-bf60-02bbdbd12420)

It cannot be used for any purposes that regular IDs or cards can, it
merely shares the same rough aesthetic. It has its own distinct
proportions to help seperate it from standard IDs and permits as well.

## Why It's Good For The Game

It's an RP tool that you can use for a wide variety of purposes, be they
lighthearted or serious. Easily show you're a member of the Cargo
Technician's Union, that you have EMS training even if you're usually in
Science or Security, or that you're a qualified pilot, without having to
rely on people reading your hard-to-access employment records!

## Changelog

:cl:
add: Added customizable fluff licenses to loadouts
/:cl:
  • Loading branch information
KillianKirilenko authored May 10, 2024
1 parent 8e095fc commit d6fbdfa
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 0 deletions.
111 changes: 111 additions & 0 deletions code/game/objects/items/id_cards/cards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,114 @@
desc = "This card contains coordinates to the fabled Clown Planet. Handle with care."
function = "teleporter"
data = "Clown Land"


/// FLUFF PERMIT

/obj/item/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'
item_state = "card-id"
item_state_slots = list(
SLOT_ID_WORN_ID = "id"
)
w_class = WEIGHT_CLASS_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/card_fluff/proc/reset_icon()
sprite_stack = list("")
update_icon()

/obj/item/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/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
5 changes: 5 additions & 0 deletions code/modules/loadout/loadout_general.dm
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,8 @@
var/obj/item/storage/box/fluff/swimsuit/swimsuit_type = swimsuit
swimsuits[initial(swimsuit_type.name)] = swimsuit_type
tweaks += new/datum/loadout_tweak/path(tim_sort(swimsuits, GLOBAL_PROC_REF(cmp_text_asc)))

/datum/loadout_entry/customizable_permit
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/card_fluff
Binary file added icons/obj/card_fluff.dmi
Binary file not shown.

0 comments on commit d6fbdfa

Please sign in to comment.