/obj/item/clothing/neck name = "necklace" icon = 'icons/obj/clothing/neck.dmi' body_parts_covered = NECK slot_flags = ITEM_SLOT_NECK strip_delay = 40 equip_delay_other = 40 /obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "maskblood", color = blood_DNA_to_color(), blend_mode = blood_DNA_to_blend()) /obj/item/clothing/neck/tie name = "tie" desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bluetie" item_state = "" //no inhands w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/neck/tie/blue name = "blue tie" icon_state = "bluetie" /obj/item/clothing/neck/tie/red name = "red tie" icon_state = "redtie" /obj/item/clothing/neck/tie/black name = "black tie" icon_state = "blacktie" /obj/item/clothing/neck/tie/horrible name = "horrible tie" desc = "A neosilk clip-on tie. This one is disgusting." icon_state = "horribletie" /obj/item/clothing/neck/stethoscope name = "stethoscope" desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." icon_state = "stethoscope" /obj/item/clothing/neck/stethoscope/suicide_act(mob/living/carbon/user) user.visible_message("[user] puts \the [src] to [user.p_their()] chest! It looks like [user.p_they()] wont hear much!") return OXYLOSS /obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user) if(ishuman(M) && isliving(user)) if(user.a_intent == INTENT_HELP) var/body_part = parse_zone(user.zone_selected) var/heart_strength = "no" var/lung_strength = "no" var/obj/item/organ/heart/heart = M.getorganslot(ORGAN_SLOT_HEART) var/obj/item/organ/lungs/lungs = M.getorganslot(ORGAN_SLOT_LUNGS) if (!do_mob(user,M,60)) // Stethoscope should take a moment to listen return // FAIL if(!(M.stat == DEAD || (HAS_TRAIT(M, TRAIT_FAKEDEATH)) || (HAS_TRAIT(M, TRAIT_NOPULSE)))) if(heart && istype(heart)) heart_strength = "an unstable" if(heart.beating) heart_strength = "a healthy" if(lungs && istype(lungs)) lung_strength = "strained" if(!(M.failed_last_breath || M.losebreath)) lung_strength = "healthy" if(M.stat == DEAD && heart && world.time - M.timeofdeath < DEFIB_TIME_LIMIT * 10) heart_strength = "a faint, fluttery" var/diagnosis = (body_part == BODY_ZONE_CHEST ? "You hear [heart_strength] pulse and [lung_strength] respiration." : "You faintly hear [heart_strength] pulse.") user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [M]'s [body_part]. [diagnosis]") return return ..(M,user) /////////// //SCARVES// /////////// /obj/item/clothing/neck/scarf //Default white color, same functionality as beanies. name = "white scarf" icon_state = "scarf" desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." dog_fashion = /datum/dog_fashion/head /obj/item/clothing/neck/scarf/black name = "black scarf" icon_state = "scarf" color = "#4A4A4B" //Grey but it looks black /obj/item/clothing/neck/scarf/pink name = "pink scarf" icon_state = "scarf" color = "#F699CD" //Pink /obj/item/clothing/neck/scarf/red name = "red scarf" icon_state = "scarf" color = "#D91414" //Red /obj/item/clothing/neck/scarf/green name = "green scarf" icon_state = "scarf" color = "#5C9E54" //Green /obj/item/clothing/neck/scarf/darkblue name = "dark blue scarf" icon_state = "scarf" color = "#1E85BC" //Blue /obj/item/clothing/neck/scarf/purple name = "purple scarf" icon_state = "scarf" color = "#9557C5" //Purple /obj/item/clothing/neck/scarf/yellow name = "yellow scarf" icon_state = "scarf" color = "#E0C14F" //Yellow /obj/item/clothing/neck/scarf/orange name = "orange scarf" icon_state = "scarf" color = "#C67A4B" //Orange /obj/item/clothing/neck/scarf/cyan name = "cyan scarf" icon_state = "scarf" color = "#54A3CE" //Cyan //Striped scarves get their own icons /obj/item/clothing/neck/scarf/zebra name = "zebra scarf" icon_state = "zebrascarf" /obj/item/clothing/neck/scarf/christmas name = "christmas scarf" icon_state = "christmasscarf" //The three following scarves don't have the scarf subtype //This is because Ian can equip anything from that subtype //However, these 3 don't have corgi versions of their sprites /obj/item/clothing/neck/stripedredscarf name = "striped red scarf" icon_state = "stripedredscarf" /obj/item/clothing/neck/stripedgreenscarf name = "striped green scarf" icon_state = "stripedgreenscarf" /obj/item/clothing/neck/stripedbluescarf name = "striped blue scarf" icon_state = "stripedbluescarf" /////////// //COLLARS// /////////// /obj/item/clothing/neck/petcollar name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule. It seems to be made out of a polychromic material." icon_state = "petcollar" pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar var/poly_states = 1 var/poly_colors = list("#00BBBB") var/tagname = null var/treat_path = /obj/item/reagent_containers/food/snacks/cookie /obj/item/clothing/neck/petcollar/Initialize(mapload) . = ..() if(treat_path) new treat_path(src) /obj/item/clothing/neck/petcollar/ComponentInitialize() . = ..() if(!poly_states) return AddElement(/datum/element/polychromic, poly_colors, poly_states) /obj/item/clothing/neck/petcollar/attack_self(mob/user) tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN) name = "[initial(name)] - [tagname]" /obj/item/clothing/neck/petcollar/ribbon name = "ribbon pet collar" icon_state = "ribboncollar" poly_states = 2 poly_colors = list("#454545", "#292929") /obj/item/clothing/neck/petcollar/leather name = "leather pet collar" icon_state = "leathercollar" poly_states = 2 poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/choker desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." name = "choker" icon_state = "choker" poly_colors = list("#222222") /obj/item/clothing/neck/petcollar/locked name = "locked collar" desc = "A collar that has a small lock on it to keep it from being removed." pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked treat_path = /obj/item/key/collar var/lock = FALSE /obj/item/clothing/neck/petcollar/locked/attackby(obj/item/K, mob/user, params) if(istype(K, /obj/item/key/collar)) if(lock != FALSE) to_chat(user, "With a click the collar unlocks!") lock = FALSE else to_chat(user, "With a click the collar locks!") lock = TRUE return /obj/item/clothing/neck/petcollar/locked/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK) && lock != FALSE) to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") return ..() /obj/item/clothing/neck/petcollar/locked/ribbon name = "ribbon pet collar" icon_state = "ribboncollar" poly_states = 2 poly_colors = list("#454545", "#292929") /obj/item/clothing/neck/petcollar/locked/leather name = "leather pet collar" icon_state = "leathercollar" poly_states = 2 poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/locked/choker name = "choker" desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." icon_state = "choker" poly_colors = list("#222222") /obj/item/clothing/neck/necklace/cowbell name = "cowbell collar" desc = "Who would wear this? Take this off, you aren't a cow, you're just an awful degenerate." icon = 'icons/obj/clothing/neck.dmi' icon_state = "cowbell" /obj/item/key/collar name = "Collar Key" desc = "A key for a tiny lock on a collar or bag." /obj/item/clothing/neck/maid name = "polychromic maid collar" desc = "A collar that goes with the polychromic maid outfit." icon_state = "maid_neck" /obj/item/clothing/neck/maid/ComponentInitialize() . = ..() AddElement(/datum/element/polychromic, list("#333333", "#FFFFFF"), 2) ////////////// //DOPE BLING// ////////////// /obj/item/clothing/neck/necklace/dope name = "gold necklace" desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" /obj/item/clothing/neck/necklace/dope/merchant desc = "Don't ask how it works, the proof is in the holochips!" /// scales the amount received in case an admin wants to emulate taxes/fees. var/profit_scaling = 1 /// toggles between sell (TRUE) and get price post-fees (FALSE) var/selling = FALSE /obj/item/clothing/neck/necklace/dope/merchant/attack_self(mob/user) . = ..() selling = !selling to_chat(user, "[src] has been set to [selling ? "'Sell'" : "'Get Price'"] mode.") /obj/item/clothing/neck/necklace/dope/merchant/afterattack(obj/item/I, mob/user, proximity) . = ..() if(!proximity) return var/datum/export_report/ex = export_item_and_contents(I, allowed_categories = (ALL), dry_run=TRUE) var/price = 0 for(var/x in ex.total_amount) price += ex.total_value[x] if(price) var/true_price = round(price*profit_scaling) to_chat(user, "[selling ? "Sold" : "Getting the price of"] [I], value: [true_price] credits[I.contents.len ? " (exportable contents included)" : ""].[profit_scaling < 1 && selling ? "[round(price-true_price)] credit\s taken as processing fee\s." : ""]") if(selling) new /obj/item/holochip(get_turf(user),true_price) for(var/i in ex.exported_atoms_ref) var/atom/movable/AM = i if(QDELETED(AM)) continue qdel(AM) else to_chat(user, "There is no export value for [I] or any items within it.") ////////////////////////////////// //VERY SUPER BADASS NECKERCHIEFS// ////////////////////////////////// /obj/item/clothing/neck/neckerchief icon = 'icons/obj/clothing/masks.dmi' //In order to reuse the bandana sprite w_class = WEIGHT_CLASS_TINY var/sourceBandanaType /obj/item/clothing/neck/neckerchief/worn_overlays(isinhands) . = ..() if(!isinhands) var/mutable_appearance/realOverlay = mutable_appearance('icons/mob/clothing/mask.dmi', icon_state) realOverlay.pixel_y = -3 . += realOverlay /obj/item/clothing/neck/neckerchief/AltClick(mob/user) . = ..() if(iscarbon(user)) var/mob/living/carbon/C = user if(C.get_item_by_slot(ITEM_SLOT_NECK) == src) to_chat(user, "You can't untie [src] while wearing it!") return if(user.is_holding(src)) var/obj/item/clothing/mask/bandana/newBand = new sourceBandanaType(user) var/currentHandIndex = user.get_held_index_of_item(src) var/oldName = src.name qdel(src) user.put_in_hand(newBand, currentHandIndex) user.visible_message("You untie [oldName] back into a [newBand.name]", "[user] unties [oldName] back into a [newBand.name]") else to_chat(user, "You must be holding [src] in order to untie it!")