diff --git a/modular_skyrat/modules/GAGS/greyscale_configs.dm b/modular_skyrat/modules/GAGS/greyscale_configs.dm index 9ee547d060e..40d3eb75ed8 100644 --- a/modular_skyrat/modules/GAGS/greyscale_configs.dm +++ b/modular_skyrat/modules/GAGS/greyscale_configs.dm @@ -165,6 +165,28 @@ /datum/greyscale_config/standalone_hood/worn/oldvox icon_file = 'modular_skyrat/modules/GAGS/icons/head/head_oldvox.dmi' +// CATEAR HEADPHONES + +/datum/greyscale_config/catear_headphone + name = "Cat-ear Headphones" + icon_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone.json' + +/datum/greyscale_config/catear_headphone/worn + name = "Cat-ear Headphones (Worn)" + icon_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn.json' + +/datum/greyscale_config/catear_headphone_inhand_left + name = "Cat-ear Headphones (Inhand Left)" + icon_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json' + +/datum/greyscale_config/catear_headphone_inhand_right + name = "Cat-ear Headphones (Inhand Right)" + icon_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi' + json_config = 'modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json' + /* * MASKS */ diff --git a/modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi b/modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi new file mode 100644 index 00000000000..5b052b3b6e3 Binary files /dev/null and b/modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi differ diff --git a/modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi b/modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi new file mode 100644 index 00000000000..9c560a96768 Binary files /dev/null and b/modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi differ diff --git a/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone.json b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone.json new file mode 100644 index 00000000000..b93f28735a4 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone.json @@ -0,0 +1,58 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn.json b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn.json new file mode 100644 index 00000000000..21dddc567c1 --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn.json @@ -0,0 +1,71 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_off", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ], + "catear_headphone_tail": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_off", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_tail_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_tail_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json new file mode 100644 index 00000000000..30fa217c40d --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json @@ -0,0 +1,31 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catear_headphones_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_left_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catear_headphones_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_left_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ] +} diff --git a/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json new file mode 100644 index 00000000000..e0381aa521f --- /dev/null +++ b/modular_skyrat/modules/GAGS/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json @@ -0,0 +1,31 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catear_headphones_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_right_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catear_headphones_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_right_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ] +} diff --git a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_items.dm b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_items.dm index 0366c340146..6455bba4255 100644 --- a/modular_skyrat/modules/customization/modules/clothing/~donator/donator_items.dm +++ b/modular_skyrat/modules/customization/modules/clothing/~donator/donator_items.dm @@ -221,3 +221,47 @@ . = ..() . += span_notice("Etched underneath the handle is the following message:\n") . += span_smallnoticeital("\"I told you I would find a way to make it all easier.\" - A.H.") + +/obj/item/instrument/piano_synth/headphones/catear_headphone + name = "Cat-Ear Headphones" + desc = "Merch of their Electric Guitarist Demi Galgan from the Singularity Shredders. It's heavily customizable and even comes with a holographic tail!" + icon_state = "catear_headphone" + worn_icon = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi' + lefthand_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi' + righthand_file = 'modular_skyrat/modules/GAGS/icons/head/catear_headphone_inhand.dmi' + inhand_icon_state = "catear_headphone" + slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD | ITEM_SLOT_NECK + var/catTailToggled = FALSE + instrument_range = 1 + greyscale_colors = "#FFFFFF#FFFFFF" + greyscale_config = /datum/greyscale_config/catear_headphone + greyscale_config_worn = /datum/greyscale_config/catear_headphone/worn + greyscale_config_inhand_left = /datum/greyscale_config/catear_headphone_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/catear_headphone_inhand_right + flags_1 = IS_PLAYER_COLORABLE_1 + + +/obj/item/instrument/piano_synth/headphones/catear_headphone/Initialize(mapload) + . = ..() + AddElement(/datum/element/gags_recolorable) + update_icon(UPDATE_OVERLAYS) + +/obj/item/instrument/piano_synth/headphones/catear_headphone/worn_overlays(mutable_appearance/standing, isinhands, icon_file) + . = ..() + if(!isinhands) + . += emissive_appearance('modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi', "catearphones_[song?.playing ? "on" : "off"]_emissive", src, alpha = src.alpha) + if(catTailToggled) + . += emissive_appearance('modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi', "catearphones_tail_on_emissive", src, alpha = src.alpha) + icon_state = "catear_headphone_tail[song?.playing ? "_on" : null]" + else + icon_state = "catear_headphone[song?.playing ? "_on" : null]" + +/obj/item/instrument/piano_synth/headphones/catear_headphone/AltClick(mob/user) + . = ..() + catTailToggled = !catTailToggled + user.update_worn_head() + update_icon(UPDATE_OVERLAYS) + +/obj/item/instrument/piano_synth/headphones/catear_headphone/update_overlays() + . = ..() + . += emissive_appearance('modular_skyrat/modules/GAGS/icons/head/catear_headphone.dmi', "catearphones_obj_lights_emissive", src, alpha = src.alpha) diff --git a/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm b/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm index e02a25d1b0d..d900accaaee 100644 --- a/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm +++ b/modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm @@ -724,3 +724,8 @@ name = "Nobility Dresscoat" item_path = /obj/item/clothing/suit/toggle/labcoat/medical/vic_dresscoat_donator ckeywhitelist = list("nikotheguydude") + +/datum/loadout_item/head/catear_headphone + name = "Cat-Ear Headphones" + item_path = /obj/item/instrument/piano_synth/headphones/catear_headphone + ckeywhitelist = list("dtfe")