diff --git a/code/modules/clothing/rogueclothes/hats.dm b/code/modules/clothing/rogueclothes/hats.dm index 884fc458490..393dfde7a84 100644 --- a/code/modules/clothing/rogueclothes/hats.dm +++ b/code/modules/clothing/rogueclothes/hats.dm @@ -552,10 +552,12 @@ /obj/item/clothing/head/roguetown/helmet/heavy/knight name = "knight's helmet" + desc = "A noble knight's helm in the current style popular with nobility. Add a feather to show the colors of your family or allegiance." icon_state = "knight" item_state = "knight" adjustable = CAN_CADJUST emote_environment = 3 + flags_inv = HIDEEARS|HIDEFACE|HIDEHAIR block2add = FOV_RIGHT|FOV_LEFT smeltresult = /obj/item/ingot/steel @@ -572,6 +574,7 @@ flags_inv = HIDEEARS flags_cover = null emote_environment = 0 + update_icon() if(ishuman(user)) var/mob/living/carbon/H = user H.update_inv_head() @@ -579,12 +582,54 @@ else if(adjustable == CADJUSTED) ResetAdjust(user) emote_environment = 3 + update_icon() if(user) if(ishuman(user)) var/mob/living/carbon/H = user H.update_inv_head() user.update_fov_angles() +/obj/item/clothing/head/roguetown/helmet/heavy/knight/attackby(obj/item/W, mob/living/user, params) + ..() + if(istype(W, /obj/item/natural/feather) && !detail_tag) + var/list/colors = list( + "Swan White"="#ffffff", + "Lavender"="#865c9c", + "Royal Purple"="#5E4687", + "Wine Rouge"="#752B55", + "Sow's skin"="#CE929F", + "Knight's Red"="#933030", + "Madroot Red"="#AD4545", + "Marigold Orange"="#E2A844", + "Politely, Yuck"="#685542", + "Astrata's Yellow"="#FFFD8D", + "Bog Green"="#375B48", + "Seafoam Green"="#49938B", + "Woad Blue"="#395480", + "Cornflower Blue"="#749EE8", + "Blacksteel Grey"="#404040",) + qdel(W) + user.visible_message(span_warning("[user] adds [W] to [src].")) + + var/mob/living/carbon/human/L = loc + var/choice = input(L, "Choose a color.", "Knight's Plume") as anything in colors + var/playerchoice = colors[choice] + detail_color = playerchoice + detail_tag = "_detail" + update_icon() + if(loc == user && ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_head() + +/obj/item/clothing/head/roguetown/helmet/heavy/knight/update_icon() + cut_overlays() + if(get_detail_tag()) + var/mutable_appearance/pic = mutable_appearance(icon(icon, "[icon_state][detail_tag]")) + pic.appearance_flags = RESET_COLOR + if(get_detail_color()) + pic.color = get_detail_color() + add_overlay(pic) + /obj/item/clothing/head/roguetown/helmet/heavy/bucket name = "bucket helmet" icon_state = "topfhelm" @@ -632,7 +677,7 @@ /obj/item/clothing/head/roguetown/helmet/heavy/pigface name = "pigface bascinet" - desc = "A steel bascinet helmet with a pigface visor protecting the head, ears, nose, mouth, and eyes." + desc = "A steel bascinet helmet with a pigface visor protecting the head, ears, nose, mouth, and eyes. Add a feather to show the colors of your family or allegiance." icon_state = "hounskull" item_state = "hounskull" adjustable = CAN_CADJUST @@ -651,18 +696,63 @@ body_parts_covered = HEAD|EARS|HAIR flags_inv = HIDEEARS flags_cover = null + emote_environment = 0 + update_icon() if(ishuman(user)) var/mob/living/carbon/H = user H.update_inv_head() block2add = null else if(adjustable == CADJUSTED) ResetAdjust(user) + emote_environment = 3 + update_icon() if(user) if(ishuman(user)) var/mob/living/carbon/H = user H.update_inv_head() user.update_fov_angles() +/obj/item/clothing/head/roguetown/helmet/heavy/pigface/attackby(obj/item/W, mob/living/user, params) + ..() + if(istype(W, /obj/item/natural/feather) && !detail_tag) + var/list/colors = list( + "Swan White"="#ffffff", + "Lavender"="#865c9c", + "Royal Purple"="#5E4687", + "Wine Rouge"="#752B55", + "Sow's skin"="#CE929F", + "Knight's Red"="#933030", + "Madroot Red"="#AD4545", + "Marigold Orange"="#E2A844", + "Politely, Yuck"="#685542", + "Astrata's Yellow"="#FFFD8D", + "Bog Green"="#375B48", + "Seafoam Green"="#49938B", + "Woad Blue"="#395480", + "Cornflower Blue"="#749EE8", + "Blacksteel Grey"="#404040",) + qdel(W) + user.visible_message(span_warning("[user] adds [W] to [src].")) + + var/mob/living/carbon/human/L = loc + var/choice = input(L, "Choose a color.", "Bascinet plume") as anything in colors + var/playerchoice = colors[choice] + detail_color = playerchoice + detail_tag = "_detail" + update_icon() + if(loc == user && ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_head() + +/obj/item/clothing/head/roguetown/helmet/heavy/pigface/update_icon() + cut_overlays() + if(get_detail_tag()) + var/mutable_appearance/pic = mutable_appearance(icon(icon, "[icon_state][detail_tag]")) + pic.appearance_flags = RESET_COLOR + if(get_detail_color()) + pic.color = get_detail_color() + add_overlay(pic) + /obj/item/clothing/head/roguetown/helmet/bascinet name = "bascinet" desc = "A steel bascinet helmet without a visor protecting the the head and ears." diff --git a/code/modules/clothing/rogueclothes/pants.dm b/code/modules/clothing/rogueclothes/pants.dm index d5781ac86ef..ec083f2f209 100644 --- a/code/modules/clothing/rogueclothes/pants.dm +++ b/code/modules/clothing/rogueclothes/pants.dm @@ -199,7 +199,37 @@ detail_tag = "_detail" armor = list("blunt" = 15, "slash" = 15, "stab" = 15, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) prevent_crits = list(BCLASS_BLUNT) - colorgrenz = TRUE + var/picked = FALSE + +/obj/item/clothing/under/roguetown/grenzelpants/attack_right(mob/user) + ..() + if(!picked) + var/list/colors = list( + "Swan White"="#ffffff", + "Lavender"="#865c9c", + "Royal Purple"="#5E4687", + "Wine Rouge"="#752B55", + "Sow's skin"="#CE929F", + "Knight's Red"="#933030", + "Madroot Red"="#AD4545", + "Marigold Orange"="#E2A844", + "Politely, Yuck"="#685542", + "Astrata's Yellow"="#FFFD8D", + "Bog Green"="#375B48", + "Seafoam Green"="#49938B", + "Woad Blue"="#395480", + "Cornflower Blue"="#749EE8", + "Blacksteel Grey"="#404040",) + + var/choice = input(user, "Choose a color.", "Grenzelhoft colors") as anything in colors + var/playerchoice = colors[choice] + picked = TRUE + detail_color = playerchoice + detail_tag = "_detail" + update_icon() + if(loc == user && ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_pants() /obj/item/clothing/under/roguetown/grenzelpants/update_icon() cut_overlays() diff --git a/code/modules/clothing/rogueclothes/shirts.dm b/code/modules/clothing/rogueclothes/shirts.dm index b9e8743b580..275c472112f 100644 --- a/code/modules/clothing/rogueclothes/shirts.dm +++ b/code/modules/clothing/rogueclothes/shirts.dm @@ -301,35 +301,37 @@ r_sleeve_status = SLEEVE_NORMAL l_sleeve_status = SLEEVE_NORMAL var/picked = FALSE - colorgrenz = TRUE -/obj/item/clothing/suit/roguetown/shirt/grenzelhoft/attack_right() +/obj/item/clothing/suit/roguetown/shirt/grenzelhoft/attack_right(mob/user) ..() if(!picked) var/list/colors = list( - "PURPLE"="#865c9c", - "RED"="#933030", - "BROWN"="#685542", - "GREEN"="#79763f", - "BLUE"="#395480", - "YELLOW"="#b5b004", - "TEAL"="#249589", - "WHITE"="#ffffff", - "ORANGE"="#b86f0c", - "MAJENTA"="#962e5c") - - var/mob/living/carbon/human/L = loc - var/choice = input(L, "Choose a color.", "GRENZELHOFTIAN COLORPLEX") as anything in colors + "Swan White"="#ffffff", + "Lavender"="#865c9c", + "Royal Purple"="#5E4687", + "Wine Rouge"="#752B55", + "Sow's skin"="#CE929F", + "Knight's Red"="#933030", + "Madroot Red"="#AD4545", + "Marigold Orange"="#E2A844", + "Politely, Yuck"="#685542", + "Astrata's Yellow"="#FFFD8D", + "Bog Green"="#375B48", + "Seafoam Green"="#49938B", + "Woad Blue"="#395480", + "Cornflower Blue"="#749EE8", + "Blacksteel Grey"="#404040",) + + var/choice = input(user, "Choose a color.", "Grenzelhoft colors") as anything in colors var/playerchoice = colors[choice] picked = TRUE detail_color = playerchoice + detail_tag = "_detail" update_icon() - for(var/obj/item/clothing/V in L.get_equipped_items(FALSE)) - testing("clothes to color are [V]") - if(V.colorgrenz) - V.detail_color = playerchoice - V.update_icon() - L.regenerate_icons() + if(loc == user && ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_shirt() + diff --git a/icons/roguetown/clothing/head.dmi b/icons/roguetown/clothing/head.dmi index 1960ec108f4..081a8fe6d0a 100644 Binary files a/icons/roguetown/clothing/head.dmi and b/icons/roguetown/clothing/head.dmi differ diff --git a/icons/roguetown/clothing/onmob/head.dmi b/icons/roguetown/clothing/onmob/head.dmi index 2c1b9dfd13a..1a55cbaa6cb 100644 Binary files a/icons/roguetown/clothing/onmob/head.dmi and b/icons/roguetown/clothing/onmob/head.dmi differ