Accessory Flipping, Wallets, Lanyards, contractor worn ID icons, ID layer switching, custom loadout names and descriptions, manbeast, hiiyah (#7087)

Asymmetrical accessories can now be flipped! This is done through the attack_self proc (i.e., activating it in your active hand), or a right-click menu if the item already has an attack_self behaviour.
This affects:

    Stethoscopes
    All medals
    All badges
    Armbands
    Holsters
    Machete Holster
    Scarves
    TCFL ribbons
    Shoulder capes
    Sleeve patches
    Bandoliers
    Political pins
This commit is contained in:
Mwahahahaha
2019-10-18 14:04:29 -07:00
committed by Erki
parent 431a435322
commit ac9c1769ae
40 changed files with 863 additions and 127 deletions

View File

@@ -151,3 +151,60 @@ Reagents adjustment
else
. = valid_reagents[metadata]
I.reagents.add_reagent(., I.reagents.get_free_space())
/*
Custom Name
*/
var/datum/gear_tweak/custom_name/gear_tweak_free_name = new()
/datum/gear_tweak/custom_name
var/list/valid_custom_names
/datum/gear_tweak/custom_name/New(var/list/valid_custom_names)
src.valid_custom_names = valid_custom_names
..()
/datum/gear_tweak/custom_name/get_contents(var/metadata)
return "Name: [metadata]"
/datum/gear_tweak/custom_name/get_default()
return ""
/datum/gear_tweak/custom_name/get_metadata(var/user, var/metadata)
if(valid_custom_names)
return input(user, "Choose an item name.", "Character Preference", metadata) as null|anything in valid_custom_names
return sanitize(input(user, "Choose the item's name. Leave it blank to use the default name.", "Item Name", metadata) as text|null, MAX_LNAME_LEN, extra = 0)
/datum/gear_tweak/custom_name/tweak_item(var/obj/item/I, var/metadata)
if(!metadata)
return I.name
I.name = metadata
/*
Custom Description
*/
var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
/datum/gear_tweak/custom_desc
var/list/valid_custom_desc
/datum/gear_tweak/custom_desc/New(var/list/valid_custom_desc)
src.valid_custom_desc = valid_custom_desc
..()
/datum/gear_tweak/custom_desc/get_contents(var/metadata)
return "Description: [metadata]"
/datum/gear_tweak/custom_desc/get_default()
return ""
/datum/gear_tweak/custom_desc/get_metadata(var/user, var/metadata)
if(valid_custom_desc)
return input(user, "Choose an item description.", "Character Preference", metadata) as null|anything in valid_custom_desc
return sanitize(input(user, "Choose the item's description. Leave it blank to use the default description.", "Item Description", metadata) as message|null, extra = 0)
/datum/gear_tweak/custom_desc/tweak_item(var/obj/item/I, var/metadata)
if(!metadata)
return I.desc
I.desc = metadata

View File

@@ -156,7 +156,19 @@ var/list/gear_datums = list()
style = "style='color: #FF8000;'"
. += "<tr style='vertical-align:top'><td width=25%><a href='?src=\ref[src];toggle_gear=[G.display_name]'><font [style]>[G.display_name]</font></a></td>"
. += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
. += "<td><font size=2><i>[G.description]</i></font></td></tr>"
. += "<td><font size=2><i>[G.description]</i><br>"
if(G.allowed_roles)
. += "</font><font size = 1>("
var/role_count = 0
for(var/role in G.allowed_roles)
. += "[role]"
role_count++
if(role_count == G.allowed_roles.len)
. += ")"
break
else
. += ", "
. += "</font></td></tr>"
if(ticked)
. += "<tr><td colspan=3>"
for(var/datum/gear_tweak/tweak in G.gear_tweaks)
@@ -230,6 +242,7 @@ var/list/gear_datums = list()
if(!description)
var/obj/O = path
description = initial(O.desc)
gear_tweaks = list(gear_tweak_free_name, gear_tweak_free_desc)
/datum/gear_data
var/path

View File

@@ -10,7 +10,7 @@
/datum/gear/accessory/suspenders/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/waistcoat
display_name = "waistcoat"
@@ -18,7 +18,7 @@
/datum/gear/accessory/waistcoat/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/armband
@@ -80,7 +80,7 @@
/datum/gear/accessory/bowtie/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/brown_vest
display_name = "webbing, engineering"
@@ -104,31 +104,35 @@
/datum/gear/accessory/brown_pouches
display_name = "drop pouches, engineering"
path = /obj/item/clothing/accessory/storage/brown_pouches
path = /obj/item/clothing/accessory/storage/pouches/brown
allowed_roles = list("Station Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice")
/datum/gear/accessory/black_pouches
display_name = "drop pouches, security"
path = /obj/item/clothing/accessory/storage/black_pouches
path = /obj/item/clothing/accessory/storage/pouches/black
allowed_roles = list("Security Officer","Head of Security", "Warden", "Security Cadet", "Detective", "Forensic Technician")
/datum/gear/accessory/white_pouches
display_name = "drop pouches, medical"
path = /obj/item/clothing/accessory/storage/white_pouches
path = /obj/item/clothing/accessory/storage/pouches/white
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Pharmacist","Psychiatrist", "Paramedic", "Medical Resident")
/datum/gear/accessory/pouches
display_name = "drop pouches, simple"
path = /obj/item/clothing/accessory/storage/pouches
path = /obj/item/clothing/accessory/storage/pouches/colour
cost = 2
/datum/gear/accessory/pouches/New()
..()
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/sweater
display_name = "sweater"
path = /obj/item/clothing/accessory/sweater
/datum/gear/accessory/sweater/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/dressshirt
display_name = "dress shirt"
@@ -136,7 +140,7 @@
/datum/gear/accessory/dressshirt/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/dressshirt_r
display_name = "dress shirt, rolled up"
@@ -144,7 +148,7 @@
/datum/gear/accessory/dressshirt_r/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/longsleeve
display_name = "long-sleeved shirt"
@@ -152,7 +156,7 @@
/datum/gear/accessory/longsleeve/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/longsleeve_s
display_name = "long-sleeved shirt, striped"
@@ -171,7 +175,7 @@
/datum/gear/accessory/tshirt/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/scarf
display_name = "scarf selection"
@@ -183,7 +187,7 @@
scarfs["plain scarf"] = /obj/item/clothing/accessory/scarf
scarfs["zebra scarf"] = /obj/item/clothing/accessory/scarf/zebra
gear_tweaks += new/datum/gear_tweak/path(scarfs)
gear_tweaks += list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/chaps
display_name = "chaps, brown"
@@ -192,3 +196,54 @@
/datum/gear/accessory/chaps/black
display_name = "chaps, black"
path = /obj/item/clothing/accessory/chaps/black
/datum/gear/accessory/dogtags
display_name = "dogtags"
path = /obj/item/clothing/accessory/dogtags
/datum/gear/accessory/holobadge
display_name = "badge, holo"
path = /obj/item/clothing/accessory/badge/holo
allowed_roles = list("Security Officer","Head of Security", "Warden", "Security Cadet")
/datum/gear/accessory/holobadge/New()
..()
var/holobadges = list()
holobadges["holobadge"] = /obj/item/clothing/accessory/badge/holo
holobadges["holobadge cord"] = /obj/item/clothing/accessory/badge/holo/cord
gear_tweaks += new/datum/gear_tweak/path(holobadges)
/datum/gear/accessory/wardenbadge
display_name = "badge, warden"
path = /obj/item/clothing/accessory/badge/warden
allowed_roles = list("Warden")
/datum/gear/accessory/hosbadge
display_name = "badge, HoS"
path = /obj/item/clothing/accessory/badge/hos
allowed_roles = list("Head of Security")
/datum/gear/accessory/detbadge
display_name = "badge, detective"
path = /obj/item/clothing/accessory/badge/dia
allowed_roles = list("Detective")
/datum/gear/accessory/idbadge
display_name = "badge, identification"
path = /obj/item/clothing/accessory/badge/idbadge
/datum/gear/accessory/nt_idbadge
display_name = "badge, NanoTrasen ID"
path = /obj/item/clothing/accessory/badge/idbadge/nt
/datum/gear/accessory/electronic_idbadge
display_name = "badge, electronic"
path = /obj/item/clothing/accessory/badge/idbadge/intel
/datum/gear/accessory/sleeve_patch
display_name = "shoulder sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch
/datum/gear/accessory/sleeve_patch/New()
..()
gear_tweaks += gear_tweak_free_color_choice

View File

@@ -50,4 +50,29 @@
display_name = "zeng-hu black uniform"
path = /obj/item/clothing/under/rank/zeng/alt
slot = slot_wear_suit
faction = "Zeng-Hu Pharmaceuticals"
faction = "Zeng-Hu Pharmaceuticals"
/datum/gear/faction/necro_patch
display_name = "necropolis sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch/necro
slot = slot_tie
faction = "Necropolis Industries"
/datum/gear/faction/necrosec_patch
display_name = "necropolis security sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch/necrosec
slot = slot_tie
faction = "Necropolis Industries"
allowed_roles = list("Security Officer","Forensic Technician","Warden")
/datum/gear/faction/erisec_patch
display_name = "EPMC sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch/erisec
slot = slot_tie
faction = "Eridani Private Military Contractors"
/datum/gear/faction/idrissec_patch
display_name = "idris security sleeve patch"
path = /obj/item/clothing/accessory/sleevepatch/idrissec
faction = "Idris Incorporated"
allowed_roles = list("Security Officer","Detective")

View File

@@ -130,7 +130,7 @@
/datum/gear/towel/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/checkers
display_name = "checkers game kit"

View File

@@ -32,7 +32,7 @@
/datum/gear/gloves/evening/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/gloves/ring
display_name = "ring"

View File

@@ -104,7 +104,7 @@
/datum/gear/head/hairflower/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/head/pin
display_name = "pin selection"
@@ -197,7 +197,7 @@
/datum/gear/head/headbando/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/head/beanie
display_name = "beanie"
@@ -205,7 +205,7 @@
/datum/gear/head/beanie/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/head/loose_beanie
display_name = "loose beanie"
@@ -213,7 +213,7 @@
/datum/gear/head/loose_beanie/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/head/iacberet

View File

@@ -78,7 +78,7 @@
/datum/gear/shoes/heels/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/shoes/tongs
display_name = "flip flops"
@@ -86,7 +86,7 @@
/datum/gear/shoes/tongs/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/shoes/hitops
display_name = "high-top selection"

View File

@@ -50,7 +50,7 @@
/datum/gear/suit/hoodie/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/labcoat
display_name = "labcoat"
@@ -58,7 +58,7 @@
/datum/gear/suit/labcoat/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/overalls
display_name = "overalls"
@@ -67,7 +67,7 @@
/datum/gear/suit/overalls/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/surgeryapron
display_name = "surgical apron"
@@ -107,7 +107,7 @@
/datum/gear/suit/suitjacket/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
@@ -264,7 +264,7 @@
/datum/gear/suit/miscellaneous/peacoat/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/varsity
display_name = "varsity jacket selection"
@@ -309,4 +309,4 @@
/datum/gear/suit/cardigan/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice

View File

@@ -141,7 +141,7 @@
/datum/gear/uniform/customdress/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/uniform/uniform_hop
display_name = "uniform, HoP dress"
@@ -221,7 +221,7 @@
/datum/gear/uniform/miscellaneous/kimono/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/uniform/miscellaneous/greensuit
display_name = "green formal uniform"

View File

@@ -31,9 +31,33 @@
path = /obj/item/device/paicard
/datum/gear/utility/wallet
display_name = "wallet"
display_name = "wallet, orange"
path = /obj/item/weapon/storage/wallet
/datum/gear/utility/wallet_colourable
display_name = "wallet, colourable"
path = /obj/item/weapon/storage/wallet/colourable
/datum/gear/utility/wallet_colourable/New()
..()
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/utility/wallet_purse
display_name = "wallet, purse"
path = /obj/item/weapon/storage/wallet/purse
/datum/gear/utility/wallet_purse/New()
..()
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/utility/lanyard
display_name = "lanyard"
path = /obj/item/weapon/storage/wallet/lanyard
/datum/gear/utility/lanyard/New()
..()
gear_tweaks += gear_tweak_free_color_choice
/*
/datum/gear/utility/cheaptablet
display_name = "cheap tablet computer"

View File

@@ -6,7 +6,7 @@
/datum/gear/uniform/offworlder/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/uniform/offworlder/dress
display_name = "CR dress"
@@ -24,7 +24,7 @@
/datum/gear/eyes/glasses/offworlder/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/offworlder
display_name = "legbrace"
@@ -34,7 +34,7 @@
/datum/gear/accessory/offworlder/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/offworlder/venter
display_name = "venter assembly"
@@ -70,7 +70,7 @@
/datum/gear/mask/offworlder/overmask/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/mask/offworlder/overmask/veil
display_name = "starveil"
@@ -88,7 +88,7 @@
/datum/gear/gloves/offworlder/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/offworlder_rig
display_name = "exo-stellar skeleton"

View File

@@ -47,7 +47,7 @@
/datum/gear/uniform/unathi/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/autakh_engineering
display_name = "engineering grasper"

View File

@@ -28,7 +28,7 @@
/datum/gear/mask/vaurca_expression/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/mask/vaurca_expression/skrell
display_name = "skrell expression mask"
@@ -42,7 +42,7 @@
/datum/gear/head/shaper/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/cape
display_name = "tunnel cloak"
@@ -76,7 +76,7 @@
/datum/gear/uniform/vaurca/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/vaurca
display_name = "shaper robes"
@@ -88,7 +88,7 @@
/datum/gear/suit/vaurca/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/shoes/vaurca
display_name = "vaurca shoes"
@@ -98,7 +98,7 @@
/datum/gear/shoes/vaurca/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/suit/vaurca_shroud
display_name = "vaurcan shroud"
@@ -127,4 +127,4 @@
/datum/gear/suit/vaurca_mantle/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
gear_tweaks += gear_tweak_free_color_choice