From bc4d75fcb75a4a26745f4a40022d5d9bcee1776b Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Wed, 8 Oct 2025 14:29:06 -0700 Subject: [PATCH] [MIRROR] Protean updates [could use code review] (#11793) Co-authored-by: Asher 49 Co-authored-by: C.L. --- .../species/station/protean/protean_blob.dm | 25 ++-- .../species/station/protean/protean_powers.dm | 107 +++++++++++++----- .../station/protean/protean_species.dm | 15 +-- .../dullahan/v1/Dullahanprotean64x64.dmi | Bin 11828 -> 14841 bytes icons/mob/robot/dullahan/v1/dullahansigns.dmi | Bin 428 -> 576 bytes 5 files changed, 101 insertions(+), 46 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm index e1564ee35d..dccc05e0d6 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_blob.dm @@ -48,17 +48,17 @@ player_msg = "In this form, your health will regenerate as long as you have metal in you." - can_buckle = 1 - buckle_lying = 1 + can_buckle = TRUE + buckle_lying = TRUE mount_offset_x = 0 mount_offset_y = 0 - has_hands = 1 - shock_resist = 1 - nameset = 1 + has_hands = TRUE + shock_resist = TRUE + nameset = TRUE holder_type = /obj/item/holder/protoblob - var/hiding = 0 - vore_icons = 1 - vore_active = 1 + var/hiding = FALSE + vore_icons = TRUE + vore_active = TRUE plane = ABOVE_MOB_PLANE //Necessary for overlay based icons @@ -791,6 +791,15 @@ I.layer = MOB_LAYER add_overlay(I) qdel(I) + + I = image(icon, "[S.dullahan_overlays[7]][resting? "-rest" : (vore_fullness? "-[vore_fullness]" : null)]", pixel_x = -16) + I.color = S.dullahan_overlays[S.dullahan_overlays[7]] + I.appearance_flags |= (RESET_COLOR|PIXEL_SCALE) + I.plane = MOB_PLANE + I.layer = MOB_LAYER + add_overlay(I) + qdel(I) + //You know technically I could just put all the icons into the 128x64.dmi file and off-set them to fit.. if(S.blob_appearance in wide_icons) icon = 'icons/mob/species/protean/protean64x32.dmi' diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm index 933bb4d7ef..7a4cc57ca9 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_powers.dm @@ -410,7 +410,7 @@ "panther" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "panther", pixel_x = -16), "robodrgn" = image(icon = 'icons/mob/species/protean/protean128x64.dmi', icon_state = "robodrgn", pixel_x = -48), "Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small"), - "dullahan" = image(icon = 'icons/mob/robot/dullahan/v1/dullahanicon.dmi', icon_state = "proticon") + "Dullahan" = image(icon = 'icons/mob/robot/dullahan/v1/dullahanicon.dmi', icon_state = "proticon") //CHOMPEnable End ) var/blobstyle = show_radial_menu(protie, protie, icon_choices, require_near = TRUE, tooltips = FALSE) @@ -532,8 +532,8 @@ S.dragon_overlays[6] = choice S.dragon_overlays[S.dragon_overlays[6]] = new_color S.blob_appearance = "dragon" - if("dullahan") //START OF DULLAHAN PORT. - var/list/options = list("Metalshell","Eyes","Decals","Import","Export") + if("Dullahan") //START OF DULLAHAN PORT. + var/list/options = list("Metalshell","Head","Eyes","Lights","Clothes","Import","Export") for(var/option in options) LAZYSET(options, option, image('icons/mob/robot/dullahan/v1/dullahansigns.dmi', option)) var/choice = show_radial_menu(protie, protie, options, radius = 60) @@ -549,19 +549,29 @@ var/list/dullahaneyes_styles = list( "dullahaneyes" ) - var/list/dullahandecals_styles = list( - "dullahandecals", - "dullahandecals1", - "dullahandecals2", - "dullahandecals3", - "dullahandecals4", - "dullahandecals5", - "emptydecals" + var/list/dullahanlights_styles = list( + "dullahanlightsempty", + "dullahanlights", + "dullahanwings", + "dullahanlights2", + "dullahanwings2", + "dullahanwings3" + ) + var/list/dullahanhead_styles = list( + "dullahanhead", + "dullahanhead2" + ) + var/list/dullahanclothes_styles = list( + "dullahanclothesempty", + "dullahanclothes", + "dullahanclothes2", + "dullahanengibreastplate" ) var/dmetal - var/ddecals + var/dlights var/deyes - var/ddecalscolor + var/dlightscolor + var/dclothescolor var/deyescolor var/dmetalcolor switch(choice) @@ -594,30 +604,57 @@ choice = show_radial_menu(protie, protie, options, radius = 90) if(!choice || QDELETED(protie) || protie.incapacitated()) return 0 - var/new_color = tgui_color_picker(protie, "Pick eye color:","Eye Color", S.dullahan_overlays[4]) + var/new_color = tgui_color_picker(protie, "Pick eye color:","Eye Color", S.dullahan_overlays[2]) if(!new_color) return 0 - S.dullahan_overlays[4] = choice - S.dullahan_overlays[S.dullahan_overlays[4]] = new_color - if("Decals") - options = dullahandecals_styles + S.dullahan_overlays[2] = choice + S.dullahan_overlays[S.dullahan_overlays[2]] = new_color + if("Lights") + options = dullahanlights_styles for(var/option in options) var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16) LAZYSET(options, option, I) choice = show_radial_menu(protie, protie, options, radius = 90) if(!choice || QDELETED(protie) || protie.incapacitated()) return 0 - var/new_color = tgui_color_picker(protie, "Pick decal color:","Decal Color", S.dullahan_overlays[5]) + var/new_color = tgui_color_picker(protie, "Pick light color:","Lights Color", S.dullahan_overlays[5]) if(!new_color) return 0 S.dullahan_overlays[5] = choice S.dullahan_overlays[S.dullahan_overlays[5]] = new_color + if("Clothes") + options = dullahanclothes_styles + for(var/option in options) + var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16) + LAZYSET(options, option, I) + choice = show_radial_menu(protie, protie, options, radius = 90) + if(!choice || QDELETED(protie) || protie.incapacitated()) + return 0 + var/new_color ="#FFFFFF" + if (choice == "dullahanclothesempty" || choice == "dullahanengibreastplate" || choice == "dullahanclothes2" || choice =="dullahanclothes") + // clothes empty and breastplate have only white as a color + new_color = "#FFFFFF" + else + new_color = tgui_color_picker(protie, "Pick clothes color:","Clothes Color", S.dullahan_overlays[7]) + if(!new_color) + return 0 + S.dullahan_overlays[7] = choice //clothes overlay is 7 + S.dullahan_overlays[S.dullahan_overlays[7]] = new_color + if("Head") + options = dullahanhead_styles + for(var/option in options) + var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16) + LAZYSET(options, option, I) + choice = show_radial_menu(protie, protie, options, radius = 90) + if(!choice || QDELETED(protie) || protie.incapacitated()) + return 0 + S.dullahan_overlays[4] = choice //head overlay is 2 if("Import") var/dinput_style dinput_style = sanitizeSafe(tgui_input_text(protie,"Paste the style string you exported with Export Style.", "Style loading","", 120, encode = FALSE), 128) if(dinput_style) var/list/dinput_style_list = splittext(dinput_style, ";") - if((LAZYLEN(dinput_style_list) == 6) && (dinput_style_list[1] in dullahanmetal_styles) && (dinput_style_list[3] in dullahandecals_styles) && (dinput_style_list[5] in dullahaneyes_styles)) + if((LAZYLEN(dinput_style_list) == 7) && (dinput_style_list[1] in dullahanmetal_styles) && (dinput_style_list[3] in dullahanlights_styles) && (dinput_style_list[5] in dullahaneyes_styles) && (dinput_style_list[7] in dullahanmetal_styles)) try if(dinput_style_list[1] in dullahanmetal_styles) S.dullahan_overlays[3] = dinput_style_list[1] @@ -630,27 +667,35 @@ catch dmetal = dinput_style_list[1] try - if(dinput_style_list[3] in dullahandecals_styles) + if(dinput_style_list[3] in dullahanlights_styles) S.dullahan_overlays[5] = dinput_style_list[3] if(rgb2num(dinput_style_list[4])) - S.dullahan_overlays[S.dullahan_overlays[5]] = dinput_style_list[4] // decals color + S.dullahan_overlays[S.dullahan_overlays[5]] = dinput_style_list[4] // lights color catch - ddecals = dinput_style_list[3] + dlights = dinput_style_list[3] try if(dinput_style_list[5] in dullahaneyes_styles) - S.dullahan_overlays[4] = dinput_style_list[5] + S.dullahan_overlays[2] = dinput_style_list[5] if(rgb2num(dinput_style_list[6])) - S.dullahan_overlays[S.dullahan_overlays[4]] = dinput_style_list[6] //eyes color + S.dullahan_overlays[S.dullahan_overlays[2]] = dinput_style_list[6] //eyes color catch - ddecals = dinput_style_list[5] + dlights = dinput_style_list[5] + try + if(dinput_style_list[7] in dullahanclothes_styles) + S.dullahan_overlays[7] = dinput_style_list[7] + if(rgb2num(dinput_style_list[7])) + S.dullahan_overlays[S.dullahan_overlays[7]] = dinput_style_list[7] //clothes color + catch + dlights = dinput_style_list[5] if("Export") dmetal = S.dullahan_overlays[3] - ddecals = S.dullahan_overlays[5] - deyes = S.dullahan_overlays[4] + dlights = S.dullahan_overlays[5] + deyes = S.dullahan_overlays[2] dmetalcolor = S.dullahan_overlays[S.dullahan_overlays[3]] - ddecalscolor = S.dullahan_overlays[S.dullahan_overlays[5]] - deyescolor = S.dullahan_overlays[S.dullahan_overlays[4]] - var/output_style = jointext(list(dmetal,dmetalcolor,ddecals,ddecalscolor,deyes,deyescolor), ";") + dlightscolor = S.dullahan_overlays[S.dullahan_overlays[5]] + dclothescolor = S.dullahan_overlays[S.dullahan_overlays[7]] + deyescolor = S.dullahan_overlays[S.dullahan_overlays[2]] + var/output_style = jointext(list(dmetal,dmetalcolor,dlights,dlightscolor,deyes,deyescolor,dclothescolor), ";") to_chat(protie, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style")) S.blob_appearance = "dullahan" //END OF DULLAHAN PORT. if("Primary") diff --git a/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm index d07c25ac3f..1096acc534 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean/protean_species.dm @@ -128,13 +128,14 @@ "dragon_eyesNormal" = "#FFFFFF" ) var/list/dullahan_overlays = list( - "dullahanbody" = "#FFFFFF", - "dullahanhead" = "#FFFFFF", - "dullahanmetal" = "#FFFFFF", - "dullahaneyes" = "#FFFFFF", - "dullahandecals" = "#FFFFFF", - "dullahanextended" = "#FFFFFF" - // loads the icons from the DMI file in that order on spawn. they are overlay 1-6. + "dullahanbody" = "#FFFFFF", // body 1 + "dullahanhead" = "#FFFFFF", // head 4 + "dullahanmetal" = "#FFFFFF", // metal 3 + "dullahaneyes" = "#FFFFFF", // eyes 2 + "dullahanlightsempty" = "#FFFFFF", // lights 5 + "dullahanextended" = "#FFFFFF", // breastplate part only on 6, do not use for anything else + "dullahanclothesempty" = "#FFFFFF" // clothes 7 + // loads the icons from the DMI file in that order on spawn. they are overlay 1-6. specifically it uses those names in the DMI file. ) var/pseudodead = 0 diff --git a/icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi b/icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi index 882003b1f2b96a43c3a57d8b3ce81a7a2fe8f91e..6dce0800752f44d4e37f05fc154f7aa03ab87b9f 100644 GIT binary patch literal 14841 zcma)j2UJr{*KP<+njpO>u^_!yMI?aIq*~}5rFW#a1Q3)iB1Kw2q(kVvB!GZ`^j<@e zA}xeo0=d!e{r3JA-~J>ll! zhn3X{35whX-LbIs6cbfYkbeqd;isj&&&@35lUdCW^Wo4y?hDO1{C+`*$t_Tx8 zJrgD-md7$+E>0d0`Dr=#Ok0{}iyP*@TZXVB9N0RZ@0 z1wXK~!H)oe#|zDu0J*g(YkXPT@0GsCQ>(YH-R)dG>|C4y0H5^Sq_)`h+ce>WJ1@ok zJf&uxt1!z}InzG+C;}^Pj?b)FTgN+0hE*c=VTDq*>!FYo$g}n7^)-j4z6sRqA!+rE zm|k6jv-2cQE_ng(gg8-+2OlD5EiCyf7Q@A6o~b@~ei80fC7!LoHkd~?`i%rU;1a5( zptBa_v6LCYk-;X&)MrF5ouV>f9uY8X?x<~3Y)B|BeT$s*u12sLqW;sTZebPG`3X&~d)Hp8==`Xwm9y*qVJ}JBFEhG#kR48EWdk)xW*Ic z&X;&QT9_4s5g9kXd*;@>{O-ah$FoN2*j9TdKjJ6P54Jdb;dCGh5cXHzkg zJPH8Z2B36Z_Fz~Vj`JrPT-#8BS(U`i4QJ@RT-Z(fGgcnW#Inc1K)0%2I)r+lj%)JVu zy0RMRY$XZv;{{&NOCwKgE>7PENn+wa(2jzMTCT9MmIuBg>bK42jSYuJ+Ob2rH#Z58kn*{X2{lr z?svwGVYGL=`?Ci{`DR{$f*RuRtF1%-UcNZn9e`gXY-!%}J~^(pJFgrWWU|zdA z(D5~vvs!&J4%KCadW;G}H{2ZiexlS8toC(2cy{PJ_3=qZ>%5tUPtw`>1>)l3Q-V1d z7<6$wvCIrbP&Urn^7}KglTVRDD)*`_2nszfPhFxBb4_fbLp8XjldHRN;Ck@p&hGZk z&i1j=2{k>#)TLG(x~ZcaqUgi832xqsT>>jUUK9XR1sny=O2Ld`1h3)80dU!wAXMlG z=_gky-Rg$CKD=c3jG%lQ7rA#4nms57gLJe7DiZiZFc-Tnd?%nybjZ92)=G=H@mubP zq!$akh8DJUMxEk&rQxMzyYfUwmv=3gs=vWM{j$5npeTKrk=F?CG(P{>mX(a&U26&U zV)g)U8#Un!_FCOfM1IUZ9}oQwfA0cKLx(g5VeLDDgbsSvl`#i0TSxCJPp=AKR7I!q zKD=VgXEbKSCwimA$M3Dm%YLe0*vo4?-qNvpGdTzx6iZ*VNt=#JY%)}>w=B3$ZS@D{ z6k5c)wwPuzVJ_pvL!-VuV!nRR3e*0m*u+YCP=a2*zD7>>#i%9QDDnAVW{vx8SBKWC zTQXPG=Xad^;4AKsc5AJ%cgjm873+g$Cgj#v0j?ay@)D5UPby8u!3DLV1nWU{8}52!-lJ7Fc2Zel4c5eF*g-h5>l< zezWu0SNNEXrV3I9bd$TiV=`2};w1EIbC+&lk=_9i-Y-RFv?wi0*NM%^czCrc)utx< zqJtTnpWl*Ppf{)fY8953V!0_N5n`rQY_W?quz_u!T?C+3LV z>z2RT7LnZ`%I^-t3a$?W-Dn2xb}RH@{@m0^l;#=vxzq<24< zDM(UHUv8d_5wl!~74{wGn~XaOp9#L5?9(Y)UtX?r*~2Ku>f3O8tj72^Svm~Dy|0xJ zY_VrudtS<`Y+s8ihY!SEvwKGHX>UEs5^Wf>~yBQB1pQ z6b>UCOFCWW8>XDbKVInGKCmgX>h5N^ZJ28h?+9|^%4|MbJHx&GGPxBt_-;dBU|WKm zy6JFusZfR>>eQX%J)L&-v%stT`UH6OE!mOIlb~$s1Z!y2W@1Z$HS6Ot+ChkD-FZ$} zu(&mg?S^#ZgWEr2%cg9Bxhk-P5^u1c6EnidH#Y}^LS58*rsl@;H zC>Nyujw{dhDXw9le0sRJw2uZmrv8aR_KlF+rK>DM&6lhzpb{=ZkgTl<@T$9=Q2Mn2 ziOMdK&bG>InaF}?@FTOU!Y=HU zs$6wXXeSY^lo=D4&s>=uXKsPhb;kVy&8#j30C@&TWANcc&X+Xk?cB0xWwF8teX?cI zRt1eAB>uf}6M1xiJXv+;lP9xrDdN9C(stb$@0D(85VU#)kt{BCWORzqoQMZp^d-Nj z+S5jAo+gClQ&9jKcYLA-*!tMpmb4S;3xTR(?2iHe0SOS%hJ;HQs zZ2Ca9FD@p~V7NdCV`*e7yMR4H?c{#JU$ysKk(PvmDYE8F(t-rOB4)A7L{`#K)U(+I zO00Hl-3k7ckTfxDQd>%)q*rRnKO!8aI~TYhLpbSvah@u>O;c~7o2NBOuRq$Y{4sc5 z)U=UDG~z|Pey3yajBINdB@xuRix1}5d)UQ5PGlOMy@{YcsUU|}PRMrL2O{L~qb}W{P67)$?p9tQD13vbCletVYQDn$> z(->Tiixj&WkEU_H zC$Lx9qFo{l?8ZOZZDW4G?`2{$ycM1r7gbq*?P-*HS3+a=+q8DspH}5+O`_ICw%E>r zz;%`o8@B$Cd@J0e*&nRlC}fQAB^V|t3`3sV|MU}l&XgAgbdDDO^`d6E;bB`i$CIRD zik>3gF(WFC%FV|)3qV7TbWg^EYfAyIm<1o%7#k`)2>!`=V5FhZF0RD<Q5~>HKmLXHx&EqrVriUtj$*H~m-fIllk$a)YqD|{N z&b3ntC5XGK)1b4}!02k6xEyW##v_K)KZt?r9!!GZrdO)}=y1Qz@G6&7D4%GS?}bDc zq$-mVdz?mfe=(BMb|$DF6E~3%tOb%NMehG|J(&SRJw*I^HX1X!kIa7i{<95`d3Ngve3iVRPHpH)MOm9@&OkS`5@ zN^y0xJ2*_01IwOz5_EW_^yvj;A8SY=%XEM7h?1t(>@`+uSZr@r!wae=DmV70M_+9g zU#gPUa}Yk=nY@X6;71~x;DJ|ar$A(b8ATV3e1S?ab)R-oy?@~=@gMjy0rI~=iv3%6 ze^G%%HkmW44~lLrh6SEvRO1m8VGv!ne}S?EHd6Xvz6KpHhm~BWu9z^LF86`QQ&5N! zU>qzE7kIgSfwubdXdjV z(jbDwjC3k8QtQh$#LXYO!G=?a#92f&Fpi0CqrxNkPwkWa)9wR|ZV+yST*g3M&h4t9 zs`iZNMLIR>%4@IS{p&Iz`3Gd*9)QHVy0?L=x9SfZWrOM0L%U8>OtP8@z1JG$CJF4l z*goZLJbX3zdWjc)b(cEMi-Gwpq%!-XxZ+@TBRhqj+rKEgoXPV$c9EG+JRdW{mp6s> z_iXio8^0=yFeHZ*VWXCf{$erDzEEU-xOn6P@~XUC3A5v$AC+z>TTE0}TVJ-mU5`g8 z-Bkab%CsvZzG?fcF91Do52koi-HsScxVKZM7cMt9y0;@__N>4C2>~h$Y~V9f4y`>9 z18Bio^=}foX?4^g0(c}SsEM1e{lm)7SfDn8aLVBN{H58rwD<3UtnWP1CVWqmCv~-8yaxqG%@F&8WxO)B`m@23Swg3B|U|8Fdg`IYY zy7lx^FV;a<&OYu^{B%61FMn`F=}Cl@kBS`lbXkq}pv-`v@Uidm+r8CgslclSh^=AQ zC-r!aK`9iy0rUQGlO-!QEu47lvF*ydMER1Sk7}OEr}g2SyA)3rTDkMuKoa~}yYj?; z*?Tj`OOBp{Q@8lAJ1z(zyiV$mjtvbbuwZKD7$=%$N|cE!Vi)&%JTpz)cTlh?|9bMC z1{42aP7!I0NnF2o8%kh)?p@cs)!R^s&u7F!{|->W%|Fq}{{$<1Iay6AEiLWwyDBl-IbMfat`YGp!M>u_9KJ;-$}6*-TNN=n*8utSgB zK6M7>*I5mvpWs6RV_H0q0}nY*imFUp!JZBx*FB&cG|6%lEQiKZ1SWrw5M*2TUl8Sp zgHr^Yt-|boqG3c&lVyAjY_euQOX9e+OqG7h)j{^D=l26-30Bt=@TAR+l(O2aKC&3` zqa(+JSgAFOXlA(~dq-J4)p-py5W{zk?Rey0bZrl^Pj_w5WP#zeuuun#Uxo^YtYI$K z)xz?hAKd-ppJ;+Utp7-E#ScVD0I*~-flHC`obvEY@0V%ScCr6Zio~-aVqE#Y>ek-z zu<5=`k>AkN(UdC_cBS~trVORBf@;oGo9WO4_wosw5n^^t0$R?_WA3u=jMq0gI+urw zPHsE3_!$l%t}0-52<;QSZ@2GJP2yI&E6q+R?1R zRRf)>w=6e1=@FU!n^G`g;t6#1VL{X(8TZ`7kw#e*=TD?(0H-?kuHFI5LD4RO8G_L? ztYHg2t%@3sM^@JLHfhr2EB^daS`-+3qfO!=y^KWbGI)nSxW;0b}?d)#NuW~k- zPx?HeI1c;$zIWQ%st+KMd;9K%#yZJ^vfk zGK(1P3k&|2GdVN_25Nx3>c^f>pGV1lbLKpkxs+z@8ZFJn3>-5Q|(| zQgA&^>iMA2dl7izd9l#a`WBs8PGS5-R^z3)1_)HqLn*`W5AP^CGt$ku#m-(7QuOmk zhX#FF9_!h|r)D3-Lia|By?Dc%yUS zw2d}yBL0!APmO|$xw!|cu3V?k>u^4gxC;9bp0`5&MK_|kO>9!>hCobfk2|*jjFY!+ z+G{E>IdjD?42Xi!=bOry7XDR(fpwrH;XFkViKTw zNeeu?YtMMmaY`LOxnNtDb5A61#=Mv;3^X0*vltOy%Hbt|XdfY!tw?IUuJ0k3*u{%< z_KKJmcPv?GeO;!|4c(?L54OW%uFCTZpXA>fcToLQy=YHAu?mBeriZx%&`UMDmKB}E zSyF{o-;+eC)9Mm37?rJhC;Tk?rLztGW-K&yc`>lN;4)f<- zOT&Eg#vJ#u7~glX+v>*JorGg6tjm)eE=l#!oDXgPd$ik$ecf_+u(~TYEAegNd40xN z_c{5tMtyF>Z@1H@M^gKPO7gwbBp=7yU`^*~z3q<;TFFD0mflOP&Zob>;>Ip`B05Zk z1{=;ti)pplTr`l&!|BlJJi5KT@@6v8=ADaHA$}Vd!zkBg7t{n9Hz_1Ze_O<_O^4_TZbQ16d{`wc0G2;?e~c}FoU3v zR3xN94AEMhp>0t9SEm(?Anh|>UYE#(f}DHv(y_dnEx5`noyU^Alx!2DizD&BxQo59 zyVS+3Kf)`6eiTLcU^3E!wH_gEj;(__vYt`1zv|eaX5Uzj+Pdlhd17?ZgK&zM#eR+x z@t}6z1teBD=}JDI%mqzn;Ah1P1cJlcMp>85v3%5Tp2q6a%y#piu9rmsk=gxqCqAj0WE=OQJWPY43+D%pq7kKf%qAHCKY zv0=VA_$Uy_PCxq}V(EVrsV@+3?yVpzPZH=n#fRKmFa3MzWn_7HUY5_b$OZ>X`b%vE zYKpVyleWC{e9fge<)%dPHEL~CDL%N%74*uAo#n%>fjX-jS1of^4^o;Scvm$O`sTJK z6MN&TkF4E7#CrwCyRkZC8)d*pnIR_5(6)=|5%V^IB=XCFBu!&8tpdp{%~-fus!@3wge+wA}v4 ze0duHplt~n8cqJVF1YZ5m??8T2?)5g@~oD7e_=p#aOCRX%Jspa>Nkqr_pUF2t>{w~ zC48RTRp=>05uZXG)FXK7%qzWo>Ei2J#7Dh(Q&Y}(L4v+t0-=d^l-vwr5i>o9uiql3 z2fe+$=3#R-FBb;cxRBd6-q&k0S}%&HAuNr796@M4u*{wzotk2{*RiR@A1LE zr^e*d-&z|AeC*ob?Y*&&-hF&_g`W4EmTKM-9kMC=29)!g2+JZpF(JpN;bf zKI48ZJXNykeD}gOQg_$pM(^_<#-g_tm-ihX?B9T|Z(c0)d0Krkxd4?Zn7HL+mjK%? za?|FAk5;7Md2sZa+Q;C_s~@XV@3{Fx3=jHKa!dSGB5Wq_4K}R_k-HqKgz|Teh5D3jY0?sM@#v zg+SMzTphLhJUj43Hh`$|D;l32G9|TL<1Js7ZOp5iththGhJ$dCWc7Im?o!Lg*_H&h zrc|=WMW%%jodeDfSR)2x^^_#bkdbPcd3p+4jh6Ov<)th`M=NG-{S${ToK2DgLcYs# zTT?|^eB6K3&-A$=XcSD@o8OygTjgH#b!?TxwYG#x!g;DMXzx(nEUh2EMkQoIJStN` zz01^-u->uRtmQ+#d9R3W(DJTOvDki85p2*#@f2NccXwIbPiVhYhbtVPYG3)abh%6` z%tvB@)h!cBA>r1PC#?d3xEa6tl2%1i@i;aM0d3=#SzSLS>jk$MSJK}7 z$>O7(yVo{!0wtVi&l0=7`#$$g=hSOcV@mS&gDYfNX3txguV9d?tC?Zw1sq4g0uG4EvOJ4YLoO=_I;wgFX@@fyEt3OEbvgUwhY1=SX=CNi zVIX?qqbhr~MhGfG*GRo1=Ovcs&GhNzUexJ%pBeG>sPwc%j*>QhN8xnP$p4hQXL-8s z?`E9i9^hoP(HH#M@0(0unMFBj`T0rrHkvW|php>kvR=cOi2R>&sH?|TgtCtW{(&4D zPg^^ZT@FFp7n~@cuhAflHFk00Q&xJ2c<*9_*U62WO}O*~Z?4G2ld6UFSEJCatdk<= z?doff`Y2iSNno4yLv9JY7|uq@>aM1GQSA$oa{b75ttuhu?(rN>f_1jiyM!@IvIV^| zo+Jb0w+R?(Ya=UZ${5Gp{zBk|aZgary;H<^T>Qls* z8JqtFbN#Q#9vGf|yI0%${cS{n8j@F?1?+Y~E#b;A^gXW6oC)4~?eZbE;)N%)hfdg( zWK$a1)611cE3hR&+;C7^xpWaOb0Z(=BkFFFg>t{OsKO4@c(NZ|#hdWmy3HtCIFXsm zr=$relctq=vYh=f?1PvN@La9#8jnw26VNzdG7<6KrQgg~ojwrRet};n8VKVyEJykK zUTfW7rZvXCk=|bcCG^-z$4{CYPRbo@T1^|5&o+q?-b)Y3+}IzKn)5S?zb5G0TjF2# z6Y()vB<~Kb2|zR1xwgBSRW@Dy)e%fL2PR0!(AJq*)j*mZX0FH}dU0DlE0aj3uQ$oR zh?T?_;qlT;rTy-w2$9f^QL2W9gmkNTkr9-*J!a*l$NqC7fWk6cWr zNjOK{iRN8YLc3S?$xCKv@E$c=c+r}sG#$Zm-s)EGSg7m%j)L_$-Cn+n(UHtl(y6%f zW?FxJ^Y!%DPQu_7`)#3jjWc~-sG}8S!=T+C)NMMUG(peQM~J#C0NH-CUTj8RxMe9V z)tT6`Hk<+~rvUlw@*nlP&5q=q9tC~Vl|(M9P6MnkqXt)J0w=F#fB}U3hWHPMgcHDO zp)U5eX0;k*2=KHlVd8HeimSB6S+BnpK56VD|qiQ@^Zi3WeD+JvsXiv;?Sj4C&~?@ z$=ULOT#g;VKye;g?EtLccdIO+*PpShd-IrN2xqG$ z=krHjf*31MpW%gHl1dR9PkJT!PZ-?&$aOOlhqYx*? z^8EGDeRGB9j3JDl9hNp3OJ;X|%_tQ|bB^yk-CqNJe;5SoNTs|kZ_*riW?(n2SR0l*OrJ818*6osQdFi$#&@JIlf%P{GvA+$Q-*)#c| z;$91(da)LB@^BQT4kRE^3CTru=c9lv>gP)^fqd*6`=MvQ;KeJg-jU4aWgBmtt1Yy2`Bnh_M31MYp1AQGV;zV|wM1)V)h;6FbD^2%{1$Z%rk=Sw zlN-!5%4*hWaANk@ex=C|`yZ*}e-bV_U|ybiAG84ifGjV5&{N*NI9nKu2qAa_wn-wY zCL&yc@>nZ0&J(j`!t=~HA;qV#WG`K^DQR-f9+Fj>v zi%B?V(IQO|IUM_02B$wbXJBNt+`w4!49WY9$@CrLbdDcsN?6fJ=Gg?S`78l?O9C#< zj>1Z0{Ftbr%KqJ;W(ql%9{%Qf%THEEcTtJsc7E3UuS&RWdp1>6Q#|I^9JM7QWRRXutVlh|U+)L1$WJnCzuP+vX)wPd0630JnMuTS zuhxu;M~7>M<;RcyJ`%7XTd^mx;D_B0%P@3jZQ zBvRD5Mlp`$ZBFX6!yvE4+kt)`e5T zKE>+DauF{@H^#{06wN2IWn$db%U#LtE5aCIcu>&hC%3zgiH{PX+33TTJ>QDq`sjm* zGVH0$;X*c-q&l8>N`6V#iVE7AGiza(U5~N3r!Y0fm#Mj$BfOj1f8TtnLdz6UF&?1$ z`@0a}s0Q{9ICq44$P{dw_`6;u?Ja7jUSmo1*O=9yhvBioOWzgmY18d`6_|a_9azIl zoTRq%&tAeAOLy5x%fZ3b%kFQ^2ayB$GycPGGxXRrPIe%tGHFrLT(}`liyyg-AJWq3 z9B&2*!u;xWRn}0XjCHAGXr|H5(p}%Z#q%UMkx8>aq$>{WjhJ_Z+Bqv@9kQW4WBHgjLB$ObknU@f zSx1cjw(bANSq;0q@p@(auC6MQgn?@ElLA7z(MN4tx|cw*Ut%70b22~*+2oAiU69n~SIG7y)XaVHhydDf^Z_g-a3B8n`2H{bAN$_oMok_2Y*o&eKS>u55w?}U+0;UPVe~~eK+-=q-X_7e{+yD-9BCbUFrR7i&lsaVk z;OFRfe)8G5hmM6*vsF;L0&Q8BEUecTN{VXtbUjZyny}>(#rdFPz&$^inqG^db$e=7-T|$tA4BI{lqtZ-?%hKB9Vl{Y@&I;5Wc%D-?HmhJ9&m zZW^<&I%6TT9{cjm$Srvi=fRNO4Y9psGsuC?px7!$EleH#{z^;i28exMm?mxOe32$4 zIpIrhCy~l}2O6OlN`t_`e;@-^>Ea)WRT7mHcyEVUFni8xs0~M6zK@VQ@^nOGl2i*6 z$O8olAZ7TS9nkngo5C@d^x)aI@?9+_M;#BIGb*h6nmwX6D+w7!9NiIsK@rJk$)W@o zc=Y_HRpD(!mNXkrK0#EybE_xdv>W~QDxRM(ko31r9KuIM)NCa$E|bJj|*ML|Ekv$ZuNVy8Brbq$&{FWFua4@_|ZNFG2;$ zWgZ`5@gxH}ahx_ND(sR8^^BGvNPvC+!fRf7srAcD6ckCxUpSeQD1h`}dAacU_Lp#O zm)9yV@C|+1q53V@JVfPD z>mw<_Ov!?{&sOzQYRV?>TP~N~V3hBa_DO69<Z~>o2t2v?opXoSWE>nso>A|PTOvL!h{0if zQ7r)f3mAB7dDyLxZE-bh3kW`=AM3n0y!a(8=ft$3*=lmib&?h3%>~${M+Pp@)3X+` znX4e9)RIFQeUgK+0Y?uvtk(8%3jU{8#HZUIA==O80hiM&VF>#1u#2ckic6M)GU(RR z@!x4@7TgfVtT^TF`_9my!SLr(!jVRdIi>JBJ6|abPYuknF?m`Ppdx7}+V0f$+!F9r`i9Ck`~y71{ThZ3|&o z?t=S-J2?e#=+ibi_q^O@3)%s3DsSH>{YPubL z!kwYoDk+OCo)VC<#tozT8~IrgA#Q{zX?rjTtFrtk=c0zWD$=J$j&_0*i-xcq2w`}* zKYnf?!=Z7k4twvNXu4$H5ple6Za*ecm!=}%uySgLV9O+kuTBrB1A$laz^~&a8dD3T zEc-&QP_^E-1zyuh=Kjw-prljzdydXPg zH9W0XLudoYK1en;Q?i^spCt^sYDSB?y5J6M0;!CJw*4(l>d{R?4+s_2&iI7A$qSs3 zyOd)Yp^ZW_FNd~8#}oo@unJoCSwbh=OyZitN4#%ezz^QeXG!C%$F(P*t<*bSz8Fl- zDzFz8RMagOJkTVr`L$tGYac&i)lqH&UwwJL20oNk!x)urQ4Q5I4mZ;eH#4W?B6lV* zB(}y;wx*FO24;Z$viZgZK#aqUezhB7TkZi#%XLPRY+3(m@AjwtEc{>XTj__ZZ^Cj< zODB&=@IKsO_;l4!_Tt6U(Z7vM*Vz`W)+X;3O^zt(N80Mg4!*!1Zv_yF!xgKA6vg?w zZFsKqvJU?AL}cW})A6Qjfv8C+$+iEDV*m3}z5G9TSKtN7p7&n8D|QngE#OPotnc%2 z*2w20dSU!x

OZ+}I(7_^|P9jB2RURC-f-dxt6R;lYZ~=75b#nED=~^QG!Rv@(sC4i=OTi;jPqWYYSxcuv zg7bWM@KXlilQP+#nh6@CIwCgTP0;oKe#w!w_L#il%P|WKOyN54f5S?3xljYyow{4++Mp3%0o*7lo2#zXe zO~udG#1VeJqg{-nVAGS9mGt%V()bCF!t^^}#I`8pu4?|yw@9n6K#;WwRsRdD*Onil zxL{WuymK(RINKl+~hS1bco46#3}|MbBu_^$xVjDP0pSL^fEG6E`^|M`UfyQcY4X*&dB9!OO;VWOtR$%5a!-Gcx@gYMhGl0H~wAtM+=QIn0Be+*bz_I7( zoaXqf*PkSjqj%T%#jMQ@kcG|U2RBlgkgRdBYO??>l-?H`JbSvcOk`YADFEq_`+yH9 zorda<3hd>?+);8~nT)Idwpi%F91b|J^7S{7zuru@#q_cCH|4`p!+n?Q`ee4QU}bZYJ_CD42^S zW!6#*td?T>7{5lemnlbui;RFEL?Vo#bp~m15W6s9Ws4ZICSq|mBl)TPG zH=DAthxiP*a?~_qXm>N{e$PC21~{nNsQKdg%o!s8_c^9xt?bBh50M8~Bgf~itBt>3 zJU2Y+`HnBAd|?cQ5aYMetMt_~Hy_~(!lLjzNg)y~{LX$nvX(#Rd?PE2RH6^qIOnmJ%&!YtZs(%Fc^sf{Aa^c`o{OM*LK+p@+ zq}SP~9i7IR^nDJlQlKZB!jL=wW&091Vz|&ngihNlYu9XdP4Qud3$*(ne<(7welwZ$QuFQU67dHKa`mgTNKIpNb2g~TuO82KGrl%b#c>P(^ zVY`m2ghPy(0@v*!#dHl2uiSXr7r4Dck zZvpg6>a898c1iD9=1Ju(1!RU)Hbd2+l{)#PJjl<1evW8@T=!1F7xI;Oj5S{K=nXV zhQ5-l>;I6c+$2kvO` zbL3j-@%H7?#E%rkf4$F~aaZm)09Jr(P21##n+@8BTJD7Y<=MT}nz&WJwT-TCmEb4hMBcGovEBK>=#Qu%9;=~)2D?5}&Kkl*MnH5yX zK*VXtLo(Qa6lvKhVKl1N;Ayfiq3O6l07%F!HfQBJt^~c2pd8Z2_B=^i`S;M4+u=ZD W>z})-re@v$$W#?IpTZT)L;e>e;>dOY literal 11828 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 diff --git a/icons/mob/robot/dullahan/v1/dullahansigns.dmi b/icons/mob/robot/dullahan/v1/dullahansigns.dmi index a8497e57655d6ca74e7e172ffab9531dbcd59cfc..c6056d6e11c58afd01e9af41cf5156c76442c3ef 100644 GIT binary patch delta 441 zcmV;q0Y?6;1Hc537cgJ~0{{R3pZ1@t00009P)t-sz`(!&00960|Bay(CIA2c0d!JM zQvg8b*k%9#0Hl#heSZ+8EGa*wvLKNNg+8DVAnZElocxjuB7EVInwWx1k+OoTp9?rj z0NA8+`Q&N=ApigYHAzH4R7i>KlTD6;Fbsv01w9u>=wcGd-aArq8WxQuXHTVY%1QVu zv@kR4Y2U`cr-z;BS*f>`HlwcRV5(}Z=OAF8JskiNYq$X0`+opYDVt@$SV3YlQ~*p; zfssgi2UDt`&l#5<93}^w>Y!-iW~$o5R*-23KaP6_R-J;6{+s47v@h%M0-oa2?t%yL z2+ZNuvA#pAhg$6;+&cN*yU^*akG=WWzHFV6B|1>?il8MqZt_QUP~F8~UlYm=je z2_VMFf!q(>#c&eKooY(#d2)~gx?YSplvEvMPo4lI(~ZBH9e9V@b&jn5=l00001 zbW%=J06^y0W&i*Hh>=Hqf8bN5tl;YB0`@fkV$(-$vAR-IUOn9G&m;~ff?6pP=Ya(h%W*}+mx{?}3K*1Vb zwmSm5hTyNGY5NTG!#aEtkep$js<`Pu^4YsEPvpFXbiM&*j=m)dI81$lp)Ce1iMA?t qfIQk(!=VM!UG