Removes the inherent ties from most civilian outfits with a single-color tie baked into them. Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
@@ -543,6 +543,16 @@
|
||||
name = "Open Vape High"
|
||||
json_config = 'code/datums/greyscale/json_configs/vape_open_high.json'
|
||||
|
||||
/datum/greyscale_config/ties
|
||||
name = "Ties"
|
||||
icon_file = 'icons/obj/clothing/neck.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/ties.json'
|
||||
|
||||
/datum/greyscale_config/ties_worn
|
||||
name = "Worn Ties"
|
||||
icon_file = 'icons/mob/clothing/neck.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/ties_worn.json'
|
||||
|
||||
/datum/greyscale_config/heck_suit
|
||||
name = "H.E.C.K. Suit"
|
||||
icon_file = 'icons/obj/clothing/suits.dmi'
|
||||
|
||||
18
code/datums/greyscale/json_configs/ties.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"tie_greyscale_tied": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "tie_greyscale_tied",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
],
|
||||
"tie_greyscale_untied": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "tie_greyscale_untied",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
18
code/datums/greyscale/json_configs/ties_worn.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"tie_greyscale_tied": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "tie_greyscale_tied",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
],
|
||||
"tie_greyscale_untied": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "tie_greyscale_untied",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -67,6 +67,7 @@
|
||||
items = list(
|
||||
/obj/item/clothing/accessory/waistcoat,
|
||||
/obj/item/clothing/under/suit/black,
|
||||
/obj/item/clothing/neck/tie/black,
|
||||
/obj/item/clothing/head/that,
|
||||
)
|
||||
|
||||
|
||||
@@ -549,6 +549,7 @@
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/hitman/PopulateContents()
|
||||
new /obj/item/clothing/under/suit/black(src)
|
||||
new /obj/item/clothing/neck/tie/red/hitman(src)
|
||||
new /obj/item/clothing/accessory/waistcoat(src)
|
||||
new /obj/item/clothing/suit/toggle/lawyer/black(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/obj/item/storage/briefcase/sniperbundle/PopulateContents()
|
||||
..() // in case you need any paperwork done after your rampage
|
||||
new /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate(src)
|
||||
new /obj/item/clothing/neck/tie/red(src)
|
||||
new /obj/item/clothing/neck/tie/red/hitman(src)
|
||||
new /obj/item/clothing/under/syndicate/sniper(src)
|
||||
new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src)
|
||||
new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src)
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/clothing/mask/gas/clown_hat(src)
|
||||
new /obj/item/clothing/under/suit/black_really(src)
|
||||
new /obj/item/clothing/neck/tie/red/hitman(src)
|
||||
|
||||
if(KIT_SCREWED)
|
||||
new /obj/item/sbeacondrop/bomb(src)
|
||||
@@ -140,6 +141,7 @@
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/clothing/mask/gas/clown_hat(src)
|
||||
new /obj/item/clothing/under/suit/black_really(src)
|
||||
new /obj/item/clothing/neck/tie/red/hitman(src)
|
||||
|
||||
if(KIT_NUKEOPS_METAGAME)
|
||||
new /obj/item/mod/control/pre_equipped/nuclear(src) // 8 tc
|
||||
|
||||
@@ -85,10 +85,12 @@
|
||||
new /obj/item/clothing/under/rank/civilian/lawyer/black(src)
|
||||
new /obj/item/clothing/under/rank/civilian/lawyer/red(src)
|
||||
new /obj/item/clothing/under/rank/civilian/lawyer/bluesuit(src)
|
||||
new /obj/item/clothing/neck/tie/blue(src)
|
||||
new /obj/item/clothing/suit/toggle/lawyer(src)
|
||||
new /obj/item/clothing/under/rank/civilian/lawyer/purpsuit(src)
|
||||
new /obj/item/clothing/suit/toggle/lawyer/purple(src)
|
||||
new /obj/item/clothing/under/suit/black(src)
|
||||
new /obj/item/clothing/neck/tie/black(src)
|
||||
new /obj/item/clothing/suit/toggle/lawyer/black(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
..()
|
||||
new /obj/item/clothing/under/suit/black(src)
|
||||
new /obj/item/clothing/under/suit/black/skirt(src)
|
||||
new /obj/item/clothing/neck/tie/black(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
new /obj/item/storage/backpack/medic(src)
|
||||
new /obj/item/radio/headset/headset_srvmed(src)
|
||||
|
||||
@@ -727,6 +727,7 @@
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/observer = L
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), ITEM_SLOT_ICLOTHING)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/neck/tie/black/tied(observer), ITEM_SLOT_NECK)
|
||||
observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), ITEM_SLOT_FEET)
|
||||
L.Unconscious(100)
|
||||
sleep(5)
|
||||
|
||||
@@ -359,6 +359,7 @@
|
||||
/datum/outfit/butler
|
||||
name = "Butler"
|
||||
uniform = /obj/item/clothing/under/suit/black_really
|
||||
neck = /obj/item/clothing/neck/tie/red/tied
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
head = /obj/item/clothing/head/bowler
|
||||
glasses = /obj/item/clothing/glasses/monocle
|
||||
|
||||
@@ -18,35 +18,148 @@
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "maskblood")
|
||||
|
||||
/obj/item/clothing/neck/tie
|
||||
name = "tie"
|
||||
desc = "A neosilk clip-on tie."
|
||||
name = "slick tie"
|
||||
desc = "A neosilk tie."
|
||||
icon = 'icons/obj/clothing/neck.dmi'
|
||||
icon_state = "bluetie"
|
||||
icon_state = "tie_greyscale_tied"
|
||||
inhand_icon_state = "" //no inhands
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
custom_price = PAYCHECK_CREW
|
||||
greyscale_config = /datum/greyscale_config/ties
|
||||
greyscale_config_worn = /datum/greyscale_config/ties_worn
|
||||
greyscale_colors = "#4d4e4e"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
/// All ties start untied unless otherwise specified
|
||||
var/is_tied = FALSE
|
||||
/// How long it takes to tie the tie
|
||||
var/tie_timer = 4 SECONDS
|
||||
/// Is this tie a clip-on, meaning it does not have an untied state?
|
||||
var/clip_on = FALSE
|
||||
|
||||
/obj/item/clothing/neck/tie/Initialize(mapload)
|
||||
. = ..()
|
||||
if(clip_on)
|
||||
return
|
||||
update_appearance(UPDATE_ICON)
|
||||
register_context()
|
||||
|
||||
/obj/item/clothing/neck/tie/examine(mob/user)
|
||||
. = ..()
|
||||
if(clip_on)
|
||||
. += span_notice("Looking closely, you can see that it's actually a cleverly disguised clip-on.")
|
||||
else if(!is_tied)
|
||||
. += span_notice("The tie can be tied with Alt-Click.")
|
||||
else
|
||||
. += span_notice("The tie can be untied with Alt-Click.")
|
||||
|
||||
/obj/item/clothing/neck/tie/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(clip_on)
|
||||
return
|
||||
to_chat(user, span_notice("You concentrate as you begin [is_tied ? "untying" : "tying"] [src]..."))
|
||||
var/tie_timer_actual = tie_timer
|
||||
// Mirrors give you a boost to your tying speed. I realize this stacks and I think that's hilarious.
|
||||
for(var/obj/structure/mirror/reflection in view(2, user))
|
||||
tie_timer_actual /= 1.25
|
||||
// Heads of staff are experts at tying their ties.
|
||||
if(user.mind?.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND)
|
||||
tie_timer_actual /= 2
|
||||
// Tie/Untie our tie
|
||||
if(!do_after(user, tie_timer_actual))
|
||||
to_chat(user, span_notice("Your fingers fumble away from [src] as your concentration breaks."))
|
||||
return
|
||||
// Clumsy & Dumb people have trouble tying their ties.
|
||||
if((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50))
|
||||
to_chat(user, span_notice("You just can't seem to get a proper grip on [src]!"))
|
||||
return
|
||||
// Success!
|
||||
is_tied = !is_tied
|
||||
user.visible_message(
|
||||
span_notice("[user] adjusts [user.p_their()] tie[HAS_TRAIT(user, TRAIT_BALD) ? "" : " and runs a hand across [user.p_their()] head"]."),
|
||||
span_notice("You successfully [is_tied ? "tied" : "untied"] [src]!"),
|
||||
)
|
||||
update_appearance(UPDATE_ICON)
|
||||
user.update_clothing(ITEM_SLOT_NECK)
|
||||
|
||||
/obj/item/clothing/neck/tie/update_icon()
|
||||
. = ..()
|
||||
// Normal strip & equip delay, along with 2 second self equip since you need to squeeze your head through the hole.
|
||||
if(is_tied)
|
||||
icon_state = "tie_greyscale_tied"
|
||||
strip_delay = 4 SECONDS
|
||||
equip_delay_other = 4 SECONDS
|
||||
equip_delay_self = 2 SECONDS
|
||||
else // Extremely quick strip delay, it's practically a ribbon draped around your neck
|
||||
icon_state = "tie_greyscale_untied"
|
||||
strip_delay = 1 SECONDS
|
||||
equip_delay_other = 1 SECONDS
|
||||
equip_delay_self = 0
|
||||
|
||||
/obj/item/clothing/neck/tie/add_context(atom/source, list/context, obj/item/held_item, mob/user)
|
||||
. = ..()
|
||||
if(clip_on)
|
||||
return
|
||||
if(is_tied)
|
||||
context[SCREENTIP_CONTEXT_ALT_LMB] = "Untie"
|
||||
else
|
||||
context[SCREENTIP_CONTEXT_ALT_LMB] = "Tie"
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
|
||||
/obj/item/clothing/neck/tie/blue
|
||||
name = "blue tie"
|
||||
icon_state = "bluetie"
|
||||
icon_state = "tie_greyscale_untied"
|
||||
greyscale_colors = "#5275b6ff"
|
||||
|
||||
/obj/item/clothing/neck/tie/red
|
||||
name = "red tie"
|
||||
icon_state = "redtie"
|
||||
icon_state = "tie_greyscale_untied"
|
||||
greyscale_colors = "#c23838ff"
|
||||
|
||||
/obj/item/clothing/neck/tie/red/tied
|
||||
is_tied = TRUE
|
||||
|
||||
/obj/item/clothing/neck/tie/red/hitman
|
||||
desc = "This is a $47,000 custom-tailored Référence Du Tueur À Gages tie. The clot is from neosilkworms raised at a tie microfarm in Cookwell, from a secret pattern passed down by monk tailors since the twenty-first century!"
|
||||
icon_state = "tie_greyscale_untied"
|
||||
tie_timer = 1 SECONDS // You're a professional.
|
||||
|
||||
/obj/item/clothing/neck/tie/red/hitman/tied
|
||||
is_tied = TRUE
|
||||
|
||||
/obj/item/clothing/neck/tie/black
|
||||
name = "black tie"
|
||||
icon_state = "blacktie"
|
||||
icon_state = "tie_greyscale_untied"
|
||||
greyscale_colors = "#151516ff"
|
||||
|
||||
/obj/item/clothing/neck/tie/black/tied
|
||||
is_tied = TRUE
|
||||
|
||||
/obj/item/clothing/neck/tie/horrible
|
||||
name = "horrible tie"
|
||||
desc = "A neosilk clip-on tie. This one is disgusting."
|
||||
desc = "A neosilk tie. This one is disgusting."
|
||||
icon_state = "horribletie"
|
||||
clip_on = TRUE
|
||||
greyscale_config = null
|
||||
greyscale_config_worn = null
|
||||
greyscale_colors = null
|
||||
|
||||
/obj/item/clothing/neck/tie/disco
|
||||
name = "horrific necktie"
|
||||
icon_state = "eldritch_tie"
|
||||
desc = "The necktie is adorned with a garish pattern. It's disturbingly vivid. Somehow you feel as if it would be wrong to ever take it off. It's your friend now. You will betray it if you change it for some boring scarf."
|
||||
clip_on = TRUE
|
||||
greyscale_config = null
|
||||
greyscale_config_worn = null
|
||||
greyscale_colors = null
|
||||
|
||||
/obj/item/clothing/neck/tie/detective
|
||||
name = "loose tie"
|
||||
desc = "A loosely tied necktie, a perfect accessory for the over-worked detective."
|
||||
icon_state = "detective"
|
||||
clip_on = TRUE
|
||||
greyscale_config = null
|
||||
greyscale_config_worn = null
|
||||
greyscale_colors = null
|
||||
|
||||
/obj/item/clothing/neck/maid
|
||||
name = "maid neck cover"
|
||||
@@ -244,8 +357,3 @@
|
||||
/obj/item/clothing/neck/beads/Initialize(mapload)
|
||||
. = ..()
|
||||
color = color = pick("#ff0077","#d400ff","#2600ff","#00ccff","#00ff2a","#e5ff00","#ffae00","#ff0000", "#ffffff")
|
||||
|
||||
/obj/item/clothing/neck/tie/disco
|
||||
name = "horrific necktie"
|
||||
icon_state = "eldritch_tie"
|
||||
desc = "The necktie is adorned with a garish pattern. It's disturbingly vivid. Somehow you feel as if it would be wrong to ever take it off. It's your friend now. You will betray it if you change it for some boring scarf."
|
||||
|
||||
@@ -241,6 +241,7 @@
|
||||
id = /obj/item/card/id/advanced/chameleon/black
|
||||
id_trim = /datum/id_trim/reaper_assassin
|
||||
uniform = /obj/item/clothing/under/suit/black
|
||||
neck = /obj/item/clothing/neck/tie/red/hitman/tied
|
||||
belt = /obj/item/modular_computer/tablet/pda/heads
|
||||
ears = /obj/item/radio/headset
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
@@ -399,6 +400,7 @@
|
||||
id = /obj/item/card/id/advanced
|
||||
id_trim = /datum/id_trim/mobster
|
||||
uniform = /obj/item/clothing/under/suit/black_really
|
||||
neck = /obj/item/clothing/neck/tie/red/tied
|
||||
ears = /obj/item/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
|
||||
/obj/item/clothing/under/rank/civilian/lawyer/bluesuit
|
||||
name = "blue suit"
|
||||
desc = "A classy suit and tie."
|
||||
desc = "A classy suit."
|
||||
icon_state = "bluesuit"
|
||||
inhand_icon_state = "b_suit"
|
||||
can_adjust = TRUE
|
||||
@@ -210,7 +210,7 @@
|
||||
|
||||
/obj/item/clothing/under/rank/civilian/lawyer/bluesuit/skirt
|
||||
name = "blue suitskirt"
|
||||
desc = "A classy suitskirt and tie."
|
||||
desc = "A classy suitskirt."
|
||||
icon_state = "bluesuit_skirt"
|
||||
inhand_icon_state = "b_suit"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
|
||||
@@ -58,13 +58,13 @@
|
||||
|
||||
/obj/item/clothing/under/suit/black_really
|
||||
name = "executive suit"
|
||||
desc = "A formal black suit and red tie, intended for the station's finest."
|
||||
desc = "A formal black suit, intended for the station's finest."
|
||||
icon_state = "really_black_suit"
|
||||
inhand_icon_state = "really_black_suit"
|
||||
|
||||
/obj/item/clothing/under/suit/black_really/skirt
|
||||
name = "executive suitskirt"
|
||||
desc = "A formal black suitskirt and red tie, intended for the station's finest."
|
||||
desc = "A formal black suitskirt, intended for the station's finest."
|
||||
icon_state = "really_black_suit_skirt"
|
||||
inhand_icon_state = "really_black_suit_skirt"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
/obj/item/clothing/under/suit/tan
|
||||
name = "tan suit"
|
||||
desc = "A tan suit with a yellow tie. Smart, but casual."
|
||||
desc = "A tan suit. Smart, but casual."
|
||||
icon_state = "tan_suit"
|
||||
inhand_icon_state = "tan_suit"
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
belt = /obj/item/modular_computer/tablet/pda/lawyer
|
||||
ears = /obj/item/radio/headset/headset_srvsec
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
neck = /obj/item/clothing/neck/tie/red/tied
|
||||
l_pocket = /obj/item/laser_pointer
|
||||
r_pocket = /obj/item/clothing/accessory/lawyers_badge
|
||||
l_hand = /obj/item/storage/briefcase/lawyer
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
ears = /obj/item/radio/headset/headset_srvmed
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_hand = /obj/item/clipboard
|
||||
|
||||
neck = /obj/item/clothing/neck/tie/black/tied
|
||||
backpack = /obj/item/storage/backpack/medic
|
||||
satchel = /obj/item/storage/backpack/satchel/med
|
||||
duffelbag = /obj/item/storage/backpack/duffelbag/med
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
name = "Mafia Psychologist"
|
||||
|
||||
uniform = /obj/item/clothing/under/suit/black
|
||||
neck = /obj/item/clothing/neck/tie/black/tied
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
|
||||
/datum/outfit/mafia/chaplain
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
/obj/item/clothing/head/beret = 1,
|
||||
/obj/item/clothing/accessory/waistcoat = 1,
|
||||
/obj/item/clothing/under/suit/black = 1,
|
||||
/obj/item/clothing/neck/tie = 3,
|
||||
/obj/item/clothing/head/that = 1,
|
||||
/obj/item/clothing/under/costume/kilt = 1,
|
||||
/obj/item/clothing/head/beret = 3,
|
||||
|
||||
@@ -44,9 +44,7 @@
|
||||
/obj/item/clothing/neck/stripedredscarf = 3,
|
||||
/obj/item/clothing/neck/stripedbluescarf = 3,
|
||||
/obj/item/clothing/neck/stripedgreenscarf = 3,
|
||||
/obj/item/clothing/neck/tie/blue = 3,
|
||||
/obj/item/clothing/neck/tie/red = 3,
|
||||
/obj/item/clothing/neck/tie/black = 3,
|
||||
/obj/item/clothing/neck/tie = 6,
|
||||
/obj/item/clothing/neck/tie/horrible = 3,
|
||||
/obj/item/clothing/accessory/pride = 15,
|
||||
/obj/item/storage/belt/fannypack = 3,
|
||||
|
||||
@@ -390,6 +390,7 @@
|
||||
/obj/item/clothing/suit/toggle/lawyer/purple = 1,
|
||||
/obj/item/clothing/under/suit/black = 1,
|
||||
/obj/item/clothing/under/suit/black/skirt = 1,
|
||||
/obj/item/clothing/neck/tie = 3,
|
||||
/obj/item/clothing/suit/toggle/lawyer/black = 1,
|
||||
/obj/item/clothing/under/rank/civilian/lawyer/beige = 1,
|
||||
/obj/item/clothing/under/rank/civilian/lawyer/beige/skirt = 1,
|
||||
|
||||
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |