diff --git a/code/__DEFINES/dye_keys.dm b/code/__DEFINES/dye_keys.dm index f785ccee09f..aba886e487b 100644 --- a/code/__DEFINES/dye_keys.dm +++ b/code/__DEFINES/dye_keys.dm @@ -13,6 +13,7 @@ #define DYE_REGISTRY_SYNDICATE_HELMET "syndicate_helmet" #define DYE_REGISTRY_VOID_SUIT "void_suit" #define DYE_REGISTRY_VOID_HELMET "void_helmet" +#define DYE_REGISTRY_HEADSCARF "headscarf" #define DYE_RED "red" #define DYE_ORANGE "orange" diff --git a/code/_globalvars/lists/dye_registry.dm b/code/_globalvars/lists/dye_registry.dm index 6112ae20e86..3b16237d0c8 100644 --- a/code/_globalvars/lists/dye_registry.dm +++ b/code/_globalvars/lists/dye_registry.dm @@ -99,8 +99,21 @@ GLOBAL_LIST_INIT(dye_registry, list( DYE_ORANGE = /obj/item/clothing/head/beanie/orange, DYE_CMO = /obj/item/clothing/head/beanie/cyan, DYE_BLUE = /obj/item/clothing/head/beanie/cyan, - - + ), + DYE_REGISTRY_HEADSCARF = list( + DYE_BLACK = /obj/item/clothing/head/headscarf/black, + DYE_WHITE = /obj/item/clothing/head/headscarf, + DYE_RED = /obj/item/clothing/head/headscarf/red, + DYE_GREEN = /obj/item/clothing/head/headscarf/green, + DYE_CAPTAIN = /obj/item/clothing/head/headscarf/darkblue, + DYE_NTREP = /obj/item/clothing/head/headscarf/darkblue, + DYE_PURPLE = /obj/item/clothing/head/headscarf/purple, + DYE_RD = /obj/item/clothing/head/headscarf/purple, + DYE_YELLOW = /obj/item/clothing/head/headscarf/yellow, + DYE_CE = /obj/item/clothing/head/headscarf/orange, + DYE_ORANGE = /obj/item/clothing/head/headscarf/orange, + DYE_CMO = /obj/item/clothing/head/headscarf/cyan, + DYE_BLUE = /obj/item/clothing/head/headscarf/cyan, ), DYE_REGISTRY_SHOES = list( DYE_RED = /obj/item/clothing/shoes/red, diff --git a/code/game/machinery/vendors/generic_vendors.dm b/code/game/machinery/vendors/generic_vendors.dm index 6fab8e16d1d..61f6014df19 100644 --- a/code/game/machinery/vendors/generic_vendors.dm +++ b/code/game/machinery/vendors/generic_vendors.dm @@ -194,6 +194,7 @@ /obj/item/clothing/head/soft/solgov = 10, /obj/item/clothing/head/beret = 10, /obj/item/clothing/head/beret/black = 10, + /obj/item/clothing/head/headscarf = 10, /obj/item/clothing/head/hairflower = 10, /obj/item/clothing/head/mailman = 1, /obj/item/clothing/head/soft/rainbow = 1) @@ -211,6 +212,7 @@ /obj/item/clothing/head/soft/solgov = 20, /obj/item/clothing/head/beret = 20, /obj/item/clothing/head/beret/black = 20, + /obj/item/clothing/head/headscarf = 20, /obj/item/clothing/head/hairflower = 20, /obj/item/clothing/head/mailman = 60, /obj/item/clothing/head/soft/rainbow = 40, diff --git a/code/game/objects/items/dyeing.dm b/code/game/objects/items/dyeing.dm index ee3c840bedb..101e4d0f8e2 100644 --- a/code/game/objects/items/dyeing.dm +++ b/code/game/objects/items/dyeing.dm @@ -58,3 +58,10 @@ if(.) var/obj/item/target_type = . color = initial(target_type.color) + +/obj/item/clothing/head/headscarf/dye_item(dye_color, dye_key_override) + . = ..() + if(.) + var/obj/item/target_type = . + color = initial(target_type.color) + worn_icon_state = worn_as + "_dyeable" diff --git a/code/modules/clothing/head/headscarf.dm b/code/modules/clothing/head/headscarf.dm new file mode 100644 index 00000000000..e4d9fa52908 --- /dev/null +++ b/code/modules/clothing/head/headscarf.dm @@ -0,0 +1,85 @@ +/obj/item/clothing/head/headscarf + name = "white headscarf" + desc = "A stylish headscarf that can be worn several ways. You can rewrap it inhand." + icon_state = "headscarf_dyeable" + worn_icon_state = "hijab_dyeable" + var/worn_as = "hijab" + flags = BLOCKHAIR + icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi' + sprite_sheets = list( + "Drask" = 'icons/mob/clothing/species/drask/head.dmi', + "Grey" = 'icons/mob/clothing/species/grey/head.dmi', + "Kidan" = 'icons/mob/clothing/species/kidan/head.dmi', + "Nian" = 'icons/mob/clothing/species/nian/head.dmi', + "Skrell" = 'icons/mob/clothing/species/skrell/head.dmi', + "Tajaran" = 'icons/mob/clothing/species/tajaran/head.dmi', + "Vox" = 'icons/mob/clothing/species/vox/head.dmi', + "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/head.dmi' + ) + dyeable = TRUE + dyeing_key = DYE_REGISTRY_HEADSCARF + +/obj/item/clothing/head/headscarf/activate_self(mob/user) + if(..()) + return ITEM_INTERACT_COMPLETE + if(!ishuman(user)) + return + var/list/variant_names = list("hijab", "dastar", "twisted") + var/list/image/variant_icons = list() + for(var/each_name in variant_names) + var/icon_name = each_name == "hijab" ? "[each_name]_dyeable" : "turban_[each_name]_dyeable" + var/image/each_image = image(icon = 'icons/obj/clothing/hats.dmi', icon_state = icon_name) + each_image.color = color + variant_icons[each_name] = each_image + var/mob/living/carbon/human/H = user + var/choice = show_radial_menu(H, src, variant_icons, null, 40, CALLBACK(src, PROC_REF(radial_check), H), TRUE) + if(!choice || !radial_check(H)) + return + + var/picked_type = choice + worn_icon_state = picked_type == "hijab" ? "[picked_type]_dyeable" : "turban_[picked_type]_dyeable" + worn_as = picked_type == "hijab" ? picked_type : "turban_[picked_type]" + if(picked_type == "hijab") + icon_monitor = 'icons/mob/clothing/species/machine/monitor/hood.dmi' + else + icon_monitor = 'icons/mob/clothing/species/machine/monitor/hat.dmi' + update_icon() + + return ITEM_INTERACT_COMPLETE + +/obj/item/clothing/head/headscarf/proc/radial_check(mob/living/carbon/human/user) + if(!src || !user.is_in_hands(src) || user.incapacitated()) + return FALSE + return TRUE + +/obj/item/clothing/head/headscarf/black + name = "black headscarf" + color = "#4A4A4B" //Grey but it looks black + +/obj/item/clothing/head/headscarf/red + name = "red headscarf" + color = "#D91414" //Red + +/obj/item/clothing/head/headscarf/green + name = "green headscarf" + color = "#5C9E54" //Green + +/obj/item/clothing/head/headscarf/darkblue + name = "dark blue headscarf" + color = "#1E85BC" //Blue + +/obj/item/clothing/head/headscarf/purple + name = "purple headscarf" + color = "#9557C5" //purple + +/obj/item/clothing/head/headscarf/yellow + name = "yellow headscarf" + color = "#ffd814" //Yellow + +/obj/item/clothing/head/headscarf/orange + name = "orange headscarf" + color = "#e97901" //orange + +/obj/item/clothing/head/headscarf/cyan + name = "cyan headscarf" + color = "#70dbff" //Cyan (Or close to it) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 2e9ddc002d3..874c1f1e25e 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -39,7 +39,7 @@ /obj/item/clothing/mask/facehugger/item_interaction(mob/living/user, obj/item/used, list/modifiers) if(!attack_obj(src, user, modifiers)) return used.attack_obj__legacy__attackchain(src, user, modifiers) - + return ITEM_INTERACT_COMPLETE /obj/item/clothing/mask/facehugger/attack_hand(mob/user) @@ -51,7 +51,7 @@ /obj/item/clothing/mask/facehugger/interact_with_atom(atom/target, mob/living/user, list/modifiers) if(!ishuman(target)) return ..() - + user.drop_item_to_ground(src) Attach(target) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 63388deafa8..052c8fd2e0a 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/species/drask/head.dmi b/icons/mob/clothing/species/drask/head.dmi index 484291f1ddd..265538d2bd4 100644 Binary files a/icons/mob/clothing/species/drask/head.dmi and b/icons/mob/clothing/species/drask/head.dmi differ diff --git a/icons/mob/clothing/species/grey/head.dmi b/icons/mob/clothing/species/grey/head.dmi index a22accdb76d..863f9c083e2 100644 Binary files a/icons/mob/clothing/species/grey/head.dmi and b/icons/mob/clothing/species/grey/head.dmi differ diff --git a/icons/mob/clothing/species/kidan/head.dmi b/icons/mob/clothing/species/kidan/head.dmi index bf8005bfc7e..b4981e54768 100644 Binary files a/icons/mob/clothing/species/kidan/head.dmi and b/icons/mob/clothing/species/kidan/head.dmi differ diff --git a/icons/mob/clothing/species/machine/monitor/hat.dmi b/icons/mob/clothing/species/machine/monitor/hat.dmi index f51ce0c03a8..7f295bbc0cd 100644 Binary files a/icons/mob/clothing/species/machine/monitor/hat.dmi and b/icons/mob/clothing/species/machine/monitor/hat.dmi differ diff --git a/icons/mob/clothing/species/machine/monitor/hood.dmi b/icons/mob/clothing/species/machine/monitor/hood.dmi index 5eca46266ee..e96062f9507 100644 Binary files a/icons/mob/clothing/species/machine/monitor/hood.dmi and b/icons/mob/clothing/species/machine/monitor/hood.dmi differ diff --git a/icons/mob/clothing/species/nian/head.dmi b/icons/mob/clothing/species/nian/head.dmi index 8ebe9f59bd4..6d183b6ffac 100644 Binary files a/icons/mob/clothing/species/nian/head.dmi and b/icons/mob/clothing/species/nian/head.dmi differ diff --git a/icons/mob/clothing/species/skrell/head.dmi b/icons/mob/clothing/species/skrell/head.dmi index 7b1a7047d0a..9a97aa6605f 100644 Binary files a/icons/mob/clothing/species/skrell/head.dmi and b/icons/mob/clothing/species/skrell/head.dmi differ diff --git a/icons/mob/clothing/species/tajaran/head.dmi b/icons/mob/clothing/species/tajaran/head.dmi index 1bd82b26013..a7efb8a9adf 100644 Binary files a/icons/mob/clothing/species/tajaran/head.dmi and b/icons/mob/clothing/species/tajaran/head.dmi differ diff --git a/icons/mob/clothing/species/vox/head.dmi b/icons/mob/clothing/species/vox/head.dmi index 1cc3c6238a4..e18e278b303 100644 Binary files a/icons/mob/clothing/species/vox/head.dmi and b/icons/mob/clothing/species/vox/head.dmi differ diff --git a/icons/mob/clothing/species/vulpkanin/head.dmi b/icons/mob/clothing/species/vulpkanin/head.dmi index cff9d1b3f7b..7a4a5cc9387 100644 Binary files a/icons/mob/clothing/species/vulpkanin/head.dmi and b/icons/mob/clothing/species/vulpkanin/head.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 7d21aec7b7f..c1247c78c55 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/paradise.dme b/paradise.dme index bddbcdc8037..195da2b7679 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2103,6 +2103,7 @@ #include "code\modules\clothing\head\beret.dm" #include "code\modules\clothing\head\collectable.dm" #include "code\modules\clothing\head\hardhat.dm" +#include "code\modules\clothing\head\headscarf.dm" #include "code\modules\clothing\head\helmet.dm" #include "code\modules\clothing\head\job_hats.dm" #include "code\modules\clothing\head\misc_hats.dm"