diff --git a/aurorastation.dme b/aurorastation.dme index d376584688a..10d252d782d 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1407,6 +1407,7 @@ #include "code\modules\clothing\gloves\miscellaneous.dm" #include "code\modules\clothing\gloves\stungloves.dm" #include "code\modules\clothing\gloves\xeno\tajara.dm" +#include "code\modules\clothing\gloves\xeno\unathi.dm" #include "code\modules\clothing\head\bandanas.dm" #include "code\modules\clothing\head\berets.dm" #include "code\modules\clothing\head\collectable.dm" @@ -1424,6 +1425,7 @@ #include "code\modules\clothing\masks\miscellaneous.dm" #include "code\modules\clothing\masks\voice.dm" #include "code\modules\clothing\masks\xeno\tajara.dm" +#include "code\modules\clothing\masks\xeno\unathi.dm" #include "code\modules\clothing\rings\material.dm" #include "code\modules\clothing\rings\rings.dm" #include "code\modules\clothing\sets\acting_captain.dm" @@ -1467,7 +1469,6 @@ #include "code\modules\clothing\spacesuits\void\misc.dm" #include "code\modules\clothing\spacesuits\void\station.dm" #include "code\modules\clothing\spacesuits\void\void.dm" -#include "code\modules\clothing\suits\alien.dm" #include "code\modules\clothing\suits\armor.dm" #include "code\modules\clothing\suits\bio.dm" #include "code\modules\clothing\suits\hoodies.dm" @@ -1480,6 +1481,8 @@ #include "code\modules\clothing\suits\utility.dm" #include "code\modules\clothing\suits\wiz_robe.dm" #include "code\modules\clothing\suits\xeno\tajara.dm" +#include "code\modules\clothing\suits\xeno\unathi.dm" +#include "code\modules\clothing\suits\xeno\vaurca.dm" #include "code\modules\clothing\under\color.dm" #include "code\modules\clothing\under\miscellaneous.dm" #include "code\modules\clothing\under\shorts.dm" @@ -1508,6 +1511,7 @@ #include "code\modules\clothing\under\xenos\vaurca.dm" #include "code\modules\clothing\wrists\watches.dm" #include "code\modules\clothing\wrists\wrists.dm" +#include "code\modules\clothing\wrists\xeno\unathi.dm" #include "code\modules\cooking\trays.dm" #include "code\modules\cooking\machinery\gibber.dm" #include "code\modules\cooking\machinery\icecream.dm" diff --git a/code/modules/client/preference_setup/loadout/_defines.dm b/code/modules/client/preference_setup/loadout/_defines.dm index 3d02a32ec09..75e69e22a1c 100644 --- a/code/modules/client/preference_setup/loadout/_defines.dm +++ b/code/modules/client/preference_setup/loadout/_defines.dm @@ -1,5 +1,6 @@ #define GEAR_NO_SELECTION 0 #define GEAR_HAS_COLOR_SELECTION 1 -#define GEAR_HAS_NAME_SELECTION 2 -#define GEAR_HAS_DESC_SELECTION 4 -#define GEAR_HAS_COLOR_ROTATION_SELECTION 8 \ No newline at end of file +#define GEAR_HAS_ADDITIONAL_COLOR_SELECTION 2 +#define GEAR_HAS_NAME_SELECTION 4 +#define GEAR_HAS_DESC_SELECTION 8 +#define GEAR_HAS_COLOR_ROTATION_SELECTION 16 \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/gear_tweaks.dm b/code/modules/client/preference_setup/loadout/gear_tweaks.dm index 17d22fd7f5e..d3244841fa1 100644 --- a/code/modules/client/preference_setup/loadout/gear_tweaks.dm +++ b/code/modules/client/preference_setup/loadout/gear_tweaks.dm @@ -46,6 +46,22 @@ Color adjustment return I.color = sanitize_hexcolor(metadata, I.color) +/* + Additional Color adjustment +*/ + +var/datum/gear_tweak/color/additional/gear_tweak_additional_color = new() + +/datum/gear_tweak/color/additional/get_contents(var/metadata) + return "Additional Color: " + +/datum/gear_tweak/color/additional/tweak_item(var/obj/item/I, var/metadata) + if(valid_colors && !(metadata in valid_colors)) + return + if(I.vars["additional_color"]) // set var/additional_color = COLOR_GREY on item + I.vars["additional_color"] = metadata + I.update_icon() + /* Color Rotation adjustment */ diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index 1e2f86a874a..28f5e13e40c 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -294,6 +294,8 @@ var/list/gear_datums = list() description = initial(O.desc) if(flags & GEAR_HAS_COLOR_SELECTION) gear_tweaks += list(gear_tweak_free_color_choice) + if(flags & GEAR_HAS_ADDITIONAL_COLOR_SELECTION) + gear_tweaks += list(gear_tweak_additional_color) if(flags & GEAR_HAS_NAME_SELECTION) gear_tweaks += list(gear_tweak_free_name) if(flags & GEAR_HAS_DESC_SELECTION) diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm index dc6fcc2f8cd..011c152b578 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm @@ -1,5 +1,7 @@ /datum/gear/suit/unathi_mantle display_name = "hide mantle selection" + description = "A selection of hide mantles, one for each of the desert, forest, and mountainous \ + regions of Moghes. The forest mantle from the coveted Tul is exclusively for nobility these days." path = /obj/item/clothing/accessory/poncho/unathimantle cost = 1 whitelisted = list(SPECIES_UNATHI) @@ -59,7 +61,7 @@ /datum/gear/gloves/unathi_handwraps display_name = "cloth handwraps" - path = /obj/item/clothing/gloves/handwraps + path = /obj/item/clothing/gloves/unathi cost = 1 whitelisted = list(SPECIES_UNATHI) sort_category = "Xenowear - Unathi" @@ -72,9 +74,15 @@ sort_category = "Xenowear - Unathi" flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION +/datum/gear/uniform/unathi/himation + display_name = "himation cloak" + path = /obj/item/clothing/under/unathi/himation + cost = 1 + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION + /datum/gear/head/sinta_ronin display_name = "straw hat" - path = /obj/item/clothing/head/sinta_ronin + path = /obj/item/clothing/head/unathi whitelisted = list(SPECIES_UNATHI) sort_category = "Xenowear - Unathi" @@ -156,6 +164,7 @@ path = /obj/item/clothing/under/unathi/zazali whitelisted = list(SPECIES_UNATHI) sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION /datum/gear/uniform/unathi/huytai display_name = "huytai outfit" @@ -170,26 +179,27 @@ sort_category = "Xenowear - Unathi" /datum/gear/suit/unathi/wrapping_head - display_name = "thakh shaman head wrappings" - description = "Head wrappings with a breath mask. Only very traditional Th'akh Shamans would wear these." - path = /obj/item/clothing/mask/gas/wrapping + display_name = "Thakhist head wrappings" + path = /obj/item/clothing/mask/gas/unathi cost = 1 whitelisted = list(SPECIES_UNATHI) + allowed_roles = list("Chaplain", "Roboticist") sort_category = "Xenowear - Unathi" flags = GEAR_HAS_DESC_SELECTION /datum/gear/suit/unathi/wrapping_body - display_name = "thakh shaman body wrappings" - description = "Closed body wrappings. Only very traditional Th'akh Shamans would wear these." - path = /obj/item/clothing/suit/unathi/mantle/wrapping + display_name = "Thakhist body wrappings" + path = /obj/item/clothing/suit/unathi/wrapping cost = 1 whitelisted = list(SPECIES_UNATHI) + allowed_roles = list("Chaplain", "Roboticist") sort_category = "Xenowear - Unathi" flags = GEAR_HAS_DESC_SELECTION /datum/gear/augment/autakh display_name = "soul anchor" - description = "A rune inscribed mirror or piece of glass placed behind the eyes. Believed to be the 'Window to the Soul' and house the concentrated spirit of an individual." + description = "A rune inscribed mirror or piece of glass placed behind the eyes. Believed to \ + be the 'Window to the Soul' and house the concentrated spirit of an individual." path = /obj/item/organ/internal/anchor cost = 1 whitelisted = list(SPECIES_UNATHI) @@ -197,17 +207,20 @@ /datum/gear/augment/autakh/calf_override display_name = "calf overdrive" - description = "An Aut'akh augment that allows the user to run at high speeds without the cost of stamina, causes damage to the lower body when used." + description = "An Aut'akh augment that allows the user to run at high speeds without the cost \ + of stamina, causes damage to the lower body when used." path = /obj/item/organ/internal/augment/calf_override /datum/gear/augment/autakh/protein_valve display_name = "protein breakdown valve" - description = "An aut'akh valve on the chest that releases a dangerous chemical into the stomach, forcing rapid digestion for immediate adrenal stimulation. Causes long-term damage." + description = "An aut'akh valve on the chest that releases a dangerous chemical into the \ + stomach, forcing rapid digestion for immediate adrenal stimulation. Causes long-term damage." path = /obj/item/organ/internal/augment/protein_valve /datum/gear/augment/autakh/venomous_rest display_name = "venomous rest implant" - description = "An aut'akh compartment connected to the blood system that administers a traditional Unathi healing agent." + description = "An aut'akh compartment connected to the blood system that administers a \ + traditional Unathi healing agent." path = /obj/item/organ/internal/augment/venomous_rest /datum/gear/augment/autakh/eyes @@ -226,4 +239,60 @@ display_name = "shaman staff" path = /obj/item/cane/shaman sort_category = "Xenowear - Unathi" - whitelisted = list(SPECIES_UNATHI) \ No newline at end of file + whitelisted = list(SPECIES_UNATHI) + +/datum/gear/suit/maxtlatl + display_name = "Thakhist maxtlatl" + path = /obj/item/clothing/accessory/poncho/maxtlatl + cost = 1 + whitelisted = list(SPECIES_UNATHI) + allowed_roles = list("Chaplain") + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_DESC_SELECTION + +/datum/gear/wrists/maxtlatl + display_name = "Thakhist wristguards" + path = /obj/item/clothing/wrists/unathi/maxtlatl + whitelisted = list(SPECIES_UNATHI) + allowed_roles = list("Chaplain") + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_DESC_SELECTION + +/datum/gear/head/maxtlatl + display_name = "Thakhist headgear" + path = /obj/item/clothing/head/unathi/maxtlatl + whitelisted = list(SPECIES_UNATHI) + allowed_roles = list("Chaplain") + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_DESC_SELECTION + +/datum/gear/suit/rockstone + display_name = "rockstone cape" + path = /obj/item/clothing/accessory/poncho/rockstone + cost = 1 + whitelisted = list(SPECIES_UNATHI) + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ADDITIONAL_COLOR_SELECTION + +/datum/gear/wrists/noble_bracers + display_name = "jeweled bracers" + path = /obj/item/clothing/wrists/unathi/jeweled + whitelisted = list(SPECIES_UNATHI) + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION + +/datum/gear/suit/sash + display_name = "gyazo belt" + path = /obj/item/clothing/accessory/unathi + cost = 1 + whitelisted = list(SPECIES_UNATHI) + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION + +/datum/gear/suit/noble_vest + display_name = "jokfar vest" + path = /obj/item/clothing/suit/unathi/jokfar + cost = 1 + whitelisted = list(SPECIES_UNATHI) + sort_category = "Xenowear - Unathi" + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION \ No newline at end of file diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index d6d4e167d59..b958d1a7785 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -252,7 +252,8 @@ BLIND // can't see anything /obj/item/clothing/glasses/safety/goggles/wasteland name = "wasteland goggles" - desc = "A pair of old goggles common in the Wasteland. A few denizens unfortunate enough to not keep this protection on them after the nukes dropped no longer have the ability to see." + desc = "A pair of old goggles common in the Wasteland. A few denizens unfortunate enough to not \ + keep this protection on them after the nukes dropped no longer have the ability to see." icon = 'icons/obj/unathi_items.dmi' icon_state = "wasteland_goggles" item_state = "wasteland_goggles" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index dd9ba53f028..dd3cb60c696 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -375,18 +375,6 @@ var/mob/M = src.loc M.update_inv_gloves() -/obj/item/clothing/gloves/handwraps - name = "cloth handwraps" - desc = "A roll of treated cloth used for wrapping clawed hands. Its growing popularity among unathi can be attributed to the cheap nature of its production and the utility it may provide in a pinch." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "handwrap" - item_state = "handwrap" - contained_sprite = TRUE - species_restricted = null - slot_flags = SLOT_GLOVES|SLOT_WRISTS - drop_sound = 'sound/items/drop/cloth.ogg' - pickup_sound = 'sound/items/pickup/cloth.ogg' - /obj/item/clothing/gloves/black/forensic name = "forensic gloves" desc = "Specially made gloves for investigative personnel. The luminescent threads woven into the material stand out under scrutiny." diff --git a/code/modules/clothing/gloves/xeno/unathi.dm b/code/modules/clothing/gloves/xeno/unathi.dm new file mode 100644 index 00000000000..73010559ca7 --- /dev/null +++ b/code/modules/clothing/gloves/xeno/unathi.dm @@ -0,0 +1,11 @@ +/obj/item/clothing/gloves/unathi + name = "cloth handwraps" + desc = "A roll of treated cloth used for wrapping clawed hands. Its growing popularity among unathi can be attributed to the cheap nature of its production and the utility it may provide in a pinch." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "handwrap" + item_state = "handwrap" + contained_sprite = TRUE + species_restricted = null + slot_flags = SLOT_GLOVES|SLOT_WRISTS + drop_sound = 'sound/items/drop/cloth.ogg' + pickup_sound = 'sound/items/pickup/cloth.ogg' \ No newline at end of file diff --git a/code/modules/clothing/head/xenos/unathi.dm b/code/modules/clothing/head/xenos/unathi.dm index 6de145836b5..63efa3a678a 100644 --- a/code/modules/clothing/head/xenos/unathi.dm +++ b/code/modules/clothing/head/xenos/unathi.dm @@ -1,7 +1,26 @@ -/obj/item/clothing/head/sinta_ronin +/obj/item/clothing/head/unathi name = "straw hat" desc = "A simple straw hat, completely protecting the head from harsh sun and heavy rain." icon = 'icons/obj/unathi_items.dmi' icon_state = "ronin_hat" item_state = "ronin_hat" - contained_sprite = TRUE \ No newline at end of file + contained_sprite = TRUE + +/obj/item/clothing/head/unathi/maxtlatl + name = "Th'akhist headgear" + desc = "A traditional garment worn by Th'akh shamans. Popular adornments include dried and pressed grass; \ + alternatively, colorful feathers from talented hunters are sometimes used." + desc_fluff = "The headgear of the Th'akhist ensemble has a special component to it. Besides the emulated \ + frills made with straw or feathers, the authentic Unathite skull is from the bones of the previous owner, the \ + deceased shaman that came before. Other cultures see it as barbaric; Unathi believe that this enables shamans \ + to call upon their predecessors' wisdom as spirits to empower them." + icon_state = "maxtlatl-head" + item_state = "maxtlatl-head" + +/obj/item/clothing/head/unathi/maxtlatl/worn_overlays(icon_file, slot) + . = ..() + if(slot == slot_head) + var/mutable_appearance/M = mutable_appearance(icon_file, "[item_state]_translate") + M.appearance_flags = RESET_COLOR|RESET_ALPHA + M.pixel_y = 12 + . += M \ No newline at end of file diff --git a/code/modules/clothing/masks/xeno/unathi.dm b/code/modules/clothing/masks/xeno/unathi.dm new file mode 100644 index 00000000000..09bef00a772 --- /dev/null +++ b/code/modules/clothing/masks/xeno/unathi.dm @@ -0,0 +1,10 @@ +/obj/item/clothing/mask/gas/unathi + name = "Th'akhist head wrappings" + desc = "A bunch of stitched together bandages on a fibreglass breath mask that also contains openings for the \ + eyes. Looks tailored for a Unathi." + desc_fluff = "This is considered humble Sinta wear for Th'akh shamans— most Unathi don't wear these, barring Aut'akh." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "thakh_mask" + item_state = "thakh_mask" + species_restricted = list(BODYTYPE_UNATHI) + contained_sprite = TRUE \ No newline at end of file diff --git a/code/modules/clothing/suits/xeno/unathi.dm b/code/modules/clothing/suits/xeno/unathi.dm new file mode 100644 index 00000000000..663e50d7d0d --- /dev/null +++ b/code/modules/clothing/suits/xeno/unathi.dm @@ -0,0 +1,47 @@ +/obj/item/clothing/suit/unathi + name = "abstract suit" + icon = 'icons/obj/unathi_items.dmi' + contained_sprite = TRUE + +/obj/item/clothing/suit/unathi/robe + name = "roughspun robes" + desc = "A traditional Unathi garment." + icon_state = "roughspun_robe" + item_state = "roughspun_robe" + +/obj/item/clothing/suit/unathi/robe/beige + color = "#DBC684" + +/obj/item/clothing/suit/unathi/robe/kilt + name = "wasteland kilt" + desc = "A long tunic made of old material that acts as a kilt for the poorest of Unathi, who aren't afraid to let \ + the sand and sun strike their scales." + icon_state = "wasteland_kilt" + item_state = "wasteland_kilt" + +/obj/item/clothing/suit/unathi/robe/robe_coat + name = "tzirzi robes" + desc = "A casual garment native to Moghes typically worn by Unathi." + icon_state = "robe_coat" + item_state = "robe_coat" + +/obj/item/clothing/suit/unathi/jokfar + name = "jokfar vest" + desc = "The nobility favor this vest for its glamor, but although it isn't a garment to get in the way, it is \ + not ideal for physical labor." + icon_state = "jokfar" + item_state = "jokfar" + build_from_parts = TRUE + worn_overlay = "trim" + +/obj/item/clothing/suit/unathi/wrapping + name = "Th'akhist body wrappings" + desc = "A bunch of stitched together clothing with bandages covering them. Looks tailored for a Unathi." + desc_fluff = "This is considered humble Sinta wear for Th'akh shamans— most Unathi don't wear these, barring Aut'akh." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "thakh_wrappings" //special thanks to Araskael + item_state = "thakh_wrappings" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + flags_inv = HIDEJUMPSUIT|HIDETAIL + species_restricted = list(BODYTYPE_UNATHI) + contained_sprite = TRUE \ No newline at end of file diff --git a/code/modules/clothing/suits/alien.dm b/code/modules/clothing/suits/xeno/vaurca.dm similarity index 64% rename from code/modules/clothing/suits/alien.dm rename to code/modules/clothing/suits/xeno/vaurca.dm index 4f86054200b..9ba75a1ccfd 100644 --- a/code/modules/clothing/suits/alien.dm +++ b/code/modules/clothing/suits/xeno/vaurca.dm @@ -1,34 +1,3 @@ -//Unathi clothing. - -/obj/item/clothing/suit/unathi/robe - name = "roughspun robes" - desc = "A traditional Unathi garment." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "roughspun_robe" - item_state = "roughspun_robe" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS - contained_sprite = TRUE - -/obj/item/clothing/suit/unathi/robe/beige - color = "#DBC684" - -/obj/item/clothing/suit/unathi/robe/kilt - name = "wasteland kilt" - desc = "A long tunic made of old material that acts as a kilt for the poorest of Unathi, who aren't afraid to let the sand and sun strike their scales." - icon_state = "wasteland_kilt" - item_state = "wasteland_kilt" - -/obj/item/clothing/suit/unathi/robe/robe_coat //I was at a loss for names under-the-hood. - name = "tzirzi robes" - desc = "A casual garment native to Moghes typically worn by Unathi." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "robe_coat" - item_state = "robe_coat" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS - contained_sprite = 1 - -//Vaurca clothing - /obj/item/clothing/suit/vaurca name = "hive cloak" desc = "A fashionable robe tailored for nonhuman proportions, this one is red and golden." diff --git a/code/modules/clothing/under/accessories/xeno/unathi.dm b/code/modules/clothing/under/accessories/xeno/unathi.dm index c29b84aa7ea..a692d83df05 100644 --- a/code/modules/clothing/under/accessories/xeno/unathi.dm +++ b/code/modules/clothing/under/accessories/xeno/unathi.dm @@ -1,6 +1,7 @@ /obj/item/clothing/accessory/sinta_hood name = "clan hood" - desc = "A hood worn commonly by unathi away from home. No better way of both representing your clan to foreigners and keeping the sun out of your eyes in style!" + desc = "A hood worn commonly by unathi away from home. No better way of both representing your clan to \ + foreigners and keeping the sun out of your eyes in style!" icon = 'icons/obj/unathi_items.dmi' icon_state = "sinta_hood" item_state = "sinta_hood_up" @@ -32,4 +33,105 @@ to_chat(usr, SPAN_NOTICE("You flip \the [src] down.")) update_worn_icon() update_clothing_icon() - update_icon() \ No newline at end of file + update_icon() + +/obj/item/clothing/accessory/unathi + name = "gyazo belt" + desc = "A simple belt fashioned from cloth, the gyazo belt is an adornment that can be paired with practically \ + any Unathite outfit and is a staple for any Sinta. Fashionable and comes in a variety of colors!" + icon = 'icons/obj/unathi_items.dmi' + icon_state = "sash" + item_state = "sash" + contained_sprite = TRUE + +/obj/item/clothing/accessory/poncho/maxtlatl + name = "Th'akhist maxtlatl" + desc = "A traditional garment worn by Th'akh shamans. Popular adornments include dried and pressed grass and \ + flowers, in addition to colorful stones placed into and hanging off of the mantle." + desc_fluff = "The term \" maxtlatl\" was given by humanity upon seeing this due to its resemblance to ancient \ + human cultures. However, it is more appropriately called a zlukti, or 'spirit garb'. Each adornment, whether \ + feathers, stones, or metals, is made by another shaman who has passed away: the more colorful the attire, the \ + older it is." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "maxtlatl" + item_state = "maxtlatl" + icon_override = null + contained_sprite = TRUE + +/obj/item/clothing/accessory/poncho/unathimantle + name = "desert hide mantle" + desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. This one is a popular \ + trophy among Wastelanders: someone's been hunting!" + desc_fluff = "With the expansion of the Touched Lands, the normal beasts that prowl and stalk the dunes have \ + proliferated at unprecedented rates. Those stranded outside of the greenery of the Izweski take up arms to cull \ + the herdes of klazd, and their skins make valuable mantles to protect wearers from the sun." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "mantle-unathi" + item_state = "mantle-unathi" + icon_override = null + contained_sprite = TRUE + build_from_parts = TRUE + worn_overlay = "desert" + +/obj/item/clothing/accessory/poncho/unathimantle/forest + name = "forest hide mantle" + desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. These are seen exclusively \ + by warriors, nobles, and those with credits to spare." + desc_fluff = "After the Contact War, the prized horns of the tul quickly vanished from the market. Nobles and \ + wealthy guildsmen were swift to monopolize and purchase all the remaining cloaks; a peasant seen with one of \ + these is likely enough a death sentence." + worn_overlay = "forest" + +/obj/item/clothing/accessory/poncho/unathimantle/mountain + name = "mountain hide mantle" + desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. Mountainous arbek, massive \ + snakes longer than a bus, have a long enough hide for multiple mantles." + desc_fluff = "Hunting an arbek is no easy task. Brave Zo'saa looking to prove themselves in battle and be \ + promoted to Saa rarely understand the gravity of these trials. Serpents large enough to swallow Unathi whole, \ + they can live up to half a millenia- should enough foolish adventurers try to slay it, that is." + worn_overlay = "mountain" + +/obj/item/clothing/accessory/poncho/rockstone + name = "rockstone cape" + desc = "A cape seen exclusively on nobility. The chain is adorned with precious, multi-color stones, hence its name." + desc_fluff = "A simple drape over the shoulder is done easily; the distinguishing part between the commoners and \ + nobility is the sheer elegance of the rockstone cape. Vibrant stones adorn the heavy collar, and the cape itself \ + is embroidered with gold." + icon = 'icons/obj/unathi_items.dmi' + icon_state = "rockstone" + item_state = "rockstone" + icon_override = null + contained_sprite = TRUE + var/additional_color = COLOR_GRAY + +/obj/item/clothing/accessory/poncho/rockstone/update_icon() + cut_overlays() + var/image/gem = image(icon, null, "rockstone_gem") + gem.appearance_flags = RESET_COLOR + gem.color = additional_color + add_overlay(gem) + var/image/chain = image(icon, null, "rockstone_chain") + chain.appearance_flags = RESET_COLOR + add_overlay(chain) + +/obj/item/clothing/accessory/poncho/rockstone/worn_overlays(icon_file, slot) + . = ..() + if(slot == slot_wear_suit) + var/image/gem = image(icon_file, null, "rockstone_un_gem") + gem.appearance_flags = RESET_COLOR + gem.color = additional_color + . += gem + var/image/chain = image(icon_file, null, "rockstone_un_chain") + chain.appearance_flags = RESET_COLOR + . += chain + +/obj/item/clothing/accessory/poncho/rockstone/get_mob_overlay(force) + var/image/base = ..() + var/image/gem = image(icon, null, "rockstone_un_gem") + gem.appearance_flags = RESET_COLOR + gem.color = additional_color + base.add_overlay(gem) + var/image/chain = image(icon, null, "rockstone_un_chain") + chain.appearance_flags = RESET_COLOR + base.add_overlay(chain) + return base \ No newline at end of file diff --git a/code/modules/clothing/under/xenos/unathi.dm b/code/modules/clothing/under/xenos/unathi.dm index 87fd2010ea1..7f1c186b812 100644 --- a/code/modules/clothing/under/xenos/unathi.dm +++ b/code/modules/clothing/under/xenos/unathi.dm @@ -1,6 +1,7 @@ /obj/item/clothing/under/unathi name = "sinta tunic" - desc = "A tunic common on both Moghes and Ouerea, it's simple and easy to manufacture design makes it universally favorable." + desc = "A tunic common on both Moghes and Ouerea. It's simple and easily-manufactured design makes it \ + universally favorable." icon = 'icons/obj/unathi_items.dmi' icon_state = "tunic" item_state = "tunic" @@ -18,25 +19,49 @@ /obj/item/clothing/under/unathi/sashes name = "gy'zao sashes" gender = PLURAL - desc = "An androgynous set of sashes worn by Unathi when they want to bask under the sun. Not appropriate to wear outside of that." + desc = "An androgynous set of sashes worn by Unathi when they want to bask under the sun. Not appropriate \ + to wear outside of that." icon_state = "gyzao" item_state = "gyzao" /obj/item/clothing/under/unathi/mogazali name = "mogazali attire" - desc = "A traditional Moghean uniform worn by men of high status whether merchants, priests, or nobility." + desc = "A traditional Moghean uniform worn by men of high status, whether merchants, priests, or nobility." icon_state = "mogazali" item_state = "mogazali" /obj/item/clothing/under/unathi/zazali name = "zazali garb" - desc = "An old fashioned, extremely striking garb for a Unathi man with pointy shoulders. It's typically worn by those in the warrior caste... Or those with something to prove." + desc = "An old fashioned, extremely striking garb for a Unathi man with pointy shoulders. It's typically \ + worn by those in the warrior caste or those with something to prove." icon_state = "zazali" item_state = "zazali" + var/additional_color = COLOR_GRAY // The default color. + +/obj/item/clothing/under/unathi/zazali/update_icon() + cut_overlays() + var/image/top = image(icon, null, "zazali_top") + top.appearance_flags = RESET_COLOR + top.color = additional_color + add_overlay(top) + var/image/belt = image(icon, null, "zazali_belt") + belt.appearance_flags = RESET_COLOR + add_overlay(belt) + +/obj/item/clothing/under/unathi/zazali/worn_overlays(icon_file, slot) + . = ..() + if(slot == slot_w_uniform) + var/image/top = image(icon_file, null, "zazali_un_top") + top.appearance_flags = RESET_COLOR + top.color = additional_color + . += top + var/image/belt = image(icon_file, null, "zazali_un_belt") + belt.appearance_flags = RESET_COLOR + . += belt /obj/item/clothing/under/unathi/huytai name = "huytai outfit" - desc = "Typically worn by Unathi women who engage in a trade. Popular with fisherwomen and others." + desc = "Typically worn by Unathi women who engage in a trade. Popular with fisherwomen especially!" icon_state = "huytai" item_state = "huytai" @@ -46,48 +71,35 @@ icon_state = "zozo" item_state = "zozo" -/obj/item/clothing/suit/unathi/mantle/wrapping - name = "unathi wrappings" - desc = "Stitched together clothing with bandages covering them, looks tailored for an unathi." - desc_fluff = "The old-fashioned choice of Sinta wear for Th'akh shamans— most modern Sinta do not wear these." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "thakh_wrappings" //special thanks to Araskael - item_state = "thakh_wrappings" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - flags_inv = HIDEJUMPSUIT|HIDETAIL - species_restricted = list(BODYTYPE_UNATHI) - contained_sprite = TRUE +/obj/item/clothing/under/unathi/himation + name = "himation cloak" + desc = "The himation is a staple of Unathi fashion. Whether a commoner in practical clothes or a noble looking \ + for leisure wear, the himation has remained stylish for centuries." + desc_fluff = "The himation while unwrapped is usually a three meter around cloth. Unathi start by putting the \ + front around their waist, bring it over their right shoulder, and then form a sash-like loop by bringing it over \ + their right again. A belt ties it off and drapes a skirt down over their thighs to complete the look. Fashionable \ + for simple noble wear (the cloth can be embroidered), and practical for labor!" + icon_state = "himation" + item_state = "himation" + var/additional_color = COLOR_GRAY -/obj/item/clothing/mask/gas/wrapping - name = "unathi head wrappings" - desc = "A bunch of stitched together bandages on a fibreglass breath mask that also contains openings for the eyes. Looks tailored for a Unathi." - desc_fluff = "This is a very traditional Sinta wear for Th'akh shamans, most modern Sinta do not wear these." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "thakh_mask" //special thanks to Araskael - item_state = "thakh_mask" - species_restricted = list(BODYTYPE_UNATHI) - contained_sprite = TRUE +/obj/item/clothing/under/unathi/himation/update_icon() + cut_overlays() + var/image/skirt = image(icon, null, "himation_skirt") + skirt.appearance_flags = RESET_COLOR + skirt.color = additional_color + add_overlay(skirt) + var/image/belt = image(icon, null, "himation_belt") + belt.appearance_flags = RESET_COLOR + add_overlay(belt) -/obj/item/clothing/accessory/poncho/unathimantle - name = "desert hide mantle" - desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. This one is a popular trophy among Wastelanders: someone's been hunting!" - desc_fluff = "With the expansion of the Touched Lands, the normal beasts that prowl and stalk the dunes have proliferated at unprecedented rates. Those stranded outside of the greenery of the Izweski take up arms to cull the herdes of klazd, and their skins make valuable mantles to protect wearers from the sun." - icon = 'icons/obj/unathi_items.dmi' - icon_state = "mantle-unathi" - item_state = "mantle-unathi" - icon_override = null - contained_sprite = TRUE - build_from_parts = TRUE - worn_overlay = "desert" - -/obj/item/clothing/accessory/poncho/unathimantle/forest - name = "forest hide mantle" - desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. These are seen exclusively by warriors, nobles, and those with credits to spare." - desc_fluff = "After the Contact War, the prized horns of the tul quickly vanished from the market. Nobles and wealthy guildsmen were swift to monopolize and purchase all the remaining cloaks; a peasant seen with one of these is likely enough a death sentence." - worn_overlay = "forest" - -/obj/item/clothing/accessory/poncho/unathimantle/mountain - name = "mountain hide mantle" - desc = "The cured hide and skin of a large beast, tapered off with a colorful collar. Mountainous arbek, massive snakes longer than a bus, have a long enough hide for multiple mantles." - desc_fluff = "Hunting an arbek is no easy task. Brave Zo'saa looking to prove themselves in battle and be promoted to Saa rarely understand the gravity of these trials. Serpents large enough to swallow unathi whole, they can live up to half a millenia— should enough foolish adventurers try to slay it, that is." - worn_overlay = "mountain" +/obj/item/clothing/under/unathi/himation/worn_overlays(icon_file, slot) + . = ..() + if(slot == slot_w_uniform) + var/image/skirt = image(icon_file, null, "himation_un_skirt") + skirt.appearance_flags = RESET_COLOR + skirt.color = additional_color + . += skirt + var/image/belt = image(icon_file, null, "himation_un_belt") + belt.appearance_flags = RESET_COLOR + . += belt \ No newline at end of file diff --git a/code/modules/clothing/wrists/xeno/unathi.dm b/code/modules/clothing/wrists/xeno/unathi.dm new file mode 100644 index 00000000000..a61d86e7077 --- /dev/null +++ b/code/modules/clothing/wrists/xeno/unathi.dm @@ -0,0 +1,26 @@ +/obj/item/clothing/wrists/unathi + name = "unathi wristwear" + desc = "The default wrists." + icon = 'icons/obj/unathi_items.dmi' + contained_sprite = TRUE + +/obj/item/clothing/wrists/unathi/jeweled + name = "jeweled bracers" + desc = "A pair of flashy bracers for a stylish Sinta, whether a noble or a noble's envoy." + icon_state = "bracers" + item_state = "bracers" + gender = PLURAL + build_from_parts = TRUE + worn_overlay = "trim" + +/obj/item/clothing/wrists/unathi/maxtlatl + name = "Th'akhist wristguards" + desc = "A traditional garment worn by Th'akh shamans. Popular adornments include dried and pressed grass and \ + feathers, as well as precious metals and colorful stones in the cuff itself." + desc_fluff = "Wristguards as a part of the maxtatl did not become prevalent until much later in Th'akh \ + tradition. As time passed and garb was passed down from shaman to shaman, attire became cluttered with \ + adornments. Bracers were designed as a method of adding more charms to remember previous shamans that \ + predate the latest to pass away." + icon_state = "maxtlatl-wrists" + item_state = "maxtlatl-wrists" + gender = PLURAL \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index be491704fcc..722cdf0dbc0 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -249,7 +249,7 @@ There are several things that need to be remembered: //Overlays for the worn overlay so you can overlay while you overlay //eg: ammo counters, primed grenade flashing, etc. //"icon_file" is used automatically for inhands etc. to make sure it gets the correct inhand file -/obj/item/proc/worn_overlays(icon_file, var/contained_flag = "") +/obj/item/proc/worn_overlays(icon_file, slot, var/contained_flag = "") . = list() if(build_from_parts) var/mutable_appearance/M = mutable_appearance(icon_file, "[item_state][contained_flag]_[worn_overlay]") @@ -571,6 +571,11 @@ There are several things that need to be remembered: var/image/standing = image(icon = under_icon, icon_state = under_state) standing.color = w_uniform.color + + var/image/worn_overlays = w_uniform.worn_overlays(under_icon, slot_w_uniform, w_uniform.contained_sprite ? WORN_UNDER : null) + if(worn_overlays) + standing.overlays.Add(worn_overlays) + var/list/ovr //apply blood overlay @@ -765,7 +770,7 @@ There are several things that need to be remembered: if(l_ear.color) result_layer.color = l_ear.color - var/image/worn_overlays = l_ear.worn_overlays(t_icon, l_ear.contained_sprite ? WORN_LEAR : null) + var/image/worn_overlays = l_ear.worn_overlays(t_icon, slot_l_ear, l_ear.contained_sprite ? WORN_LEAR : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -808,7 +813,7 @@ There are several things that need to be remembered: if(r_ear.color) result_layer.color = r_ear.color - var/image/worn_overlays = r_ear.worn_overlays(t_icon, r_ear.contained_sprite ? WORN_REAR : null) + var/image/worn_overlays = r_ear.worn_overlays(t_icon, slot_r_ear, r_ear.contained_sprite ? WORN_REAR : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -849,7 +854,7 @@ There are several things that need to be remembered: if(shoes.color) result_layer.color = shoes.color - var/image/worn_overlays = shoes.worn_overlays(t_icon, shoes.contained_sprite ? WORN_SHOES : null) + var/image/worn_overlays = shoes.worn_overlays(t_icon, slot_shoes, shoes.contained_sprite ? WORN_SHOES : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -942,7 +947,7 @@ There are several things that need to be remembered: standing.color = head.color standing.appearance_flags = RESET_ALPHA - var/image/worn_overlays = head.worn_overlays(t_icon, head.contained_sprite ? WORN_HEAD : null) + var/image/worn_overlays = head.worn_overlays(t_icon, slot_head, head.contained_sprite ? WORN_HEAD : null) if(worn_overlays) standing.overlays.Add(worn_overlays) @@ -998,7 +1003,7 @@ There are several things that need to be remembered: result_layer.color = belt.color result_layer.appearance_flags = RESET_ALPHA - var/image/worn_overlays = belt.worn_overlays(t_icon, belt.contained_sprite ? WORN_BELT : null) + var/image/worn_overlays = belt.worn_overlays(t_icon, slot_belt, belt.contained_sprite ? WORN_BELT : null) if(worn_overlays) result_layer.add_overlay(worn_overlays) @@ -1064,7 +1069,7 @@ There are several things that need to be remembered: result_layer.color = wear_suit.color result_layer.appearance_flags = RESET_ALPHA - var/image/worn_overlays = wear_suit.worn_overlays(t_icon, wear_suit.contained_sprite ? WORN_SUIT : null) + var/image/worn_overlays = wear_suit.worn_overlays(t_icon, slot_wear_suit, wear_suit.contained_sprite ? WORN_SUIT : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -1307,7 +1312,7 @@ There are several things that need to be remembered: if(l_hand.color) result_layer.color = l_hand.color - var/image/worn_overlays = l_hand.worn_overlays(t_icon, l_hand.contained_sprite ? WORN_LHAND : null) + var/image/worn_overlays = l_hand.worn_overlays(t_icon, slot_l_hand, l_hand.contained_sprite ? WORN_LHAND : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -1357,7 +1362,7 @@ There are several things that need to be remembered: if(r_hand.color) result_layer.color = r_hand.color - var/image/worn_overlays = r_hand.worn_overlays(t_icon, r_hand.contained_sprite ? WORN_RHAND : null) + var/image/worn_overlays = r_hand.worn_overlays(t_icon, slot_r_hand, r_hand.contained_sprite ? WORN_RHAND : null) if(worn_overlays) result_layer.overlays.Add(worn_overlays) @@ -1375,25 +1380,19 @@ There are several things that need to be remembered: if(check_draw_wrists()) //determine icon state to use var/t_state = wrists.item_state || wrists.icon_state - + var/icon/t_icon var/image/result_layer if(wrists.contained_sprite) wrists.auto_adapt_species(src) + t_icon = wrists.icon t_state = "[UNDERSCORE_OR_NULL(wrists.icon_species_tag)][wrists.item_state][WORN_WRISTS]" result_layer = image(wrists.icon_override || wrists.icon, t_state) - - if(wrists.color) - result_layer.color = wrists.color - - result_layer.appearance_flags = RESET_ALPHA - overlays_raw[WRISTS_LAYER] = result_layer else if(wrists.item_state_slots && wrists.item_state_slots[slot_wrists_str]) t_state = wrists.item_state_slots[slot_wrists_str] //determine icon to use - var/icon/t_icon if(wrists.item_icons && (slot_wrists_str in wrists.item_icons)) t_icon = wrists.item_icons[slot_wrists_str] else if(wrists.icon_override) @@ -1404,15 +1403,15 @@ There are several things that need to be remembered: result_layer = image(t_icon, t_state) - if(wrists.color) - result_layer.color = wrists.color + if(wrists.color) + result_layer.color = wrists.color - var/image/worn_overlays = wrists.worn_overlays(t_icon, wrists.contained_sprite ? WORN_WRISTS : null) - if(worn_overlays) - result_layer.overlays.Add(worn_overlays) + var/image/worn_overlays = wrists.worn_overlays(t_icon, slot_wrists, wrists.contained_sprite ? WORN_WRISTS : null) + if(worn_overlays) + result_layer.overlays.Add(worn_overlays) - result_layer.appearance_flags = RESET_ALPHA - overlays_raw[WRISTS_LAYER] = result_layer + result_layer.appearance_flags = RESET_ALPHA + overlays_raw[WRISTS_LAYER] = result_layer if(update_icons) update_icon() diff --git a/html/changelogs/changelog.yml b/html/changelogs/changelog.yml deleted file mode 100644 index 01d4ede0c9d..00000000000 --- a/html/changelogs/changelog.yml +++ /dev/null @@ -1,2 +0,0 @@ -author: Haydizzle -changes: [] diff --git a/html/changelogs/unathi_clothes_one_changelog.yml b/html/changelogs/unathi_clothes_one_changelog.yml new file mode 100644 index 00000000000..687cc38f1e4 --- /dev/null +++ b/html/changelogs/unathi_clothes_one_changelog.yml @@ -0,0 +1,6 @@ +author: Geeves, Haydizzle +changes: +- rscadd: "Adds support for dual-colored items." +- rscadd: "Adds unathi clothes: the Th'akh maxtlatl outfit, himation cloak, jokfar vest, gyazo belt, jeweled bracers, and rockstone cape." +- tweak: "Tweaks the sprite for the zazali garb." +- rscadd: "Makes the zazali garb dual-colored." \ No newline at end of file diff --git a/icons/obj/unathi_items.dmi b/icons/obj/unathi_items.dmi index 355d4c4fa77..adaad24fef0 100644 Binary files a/icons/obj/unathi_items.dmi and b/icons/obj/unathi_items.dmi differ