XB0r*%Fi*~;e17S2rp zeRqmR2fa#4C7*Y>@x-EWICK28kbnSX891(Ma2Oeo^cd+5vwVBCXcS@OO#m7M1v|%L zSzUQ(HxJP~{dxDo?%iJ>4w2v@--*cNYUg$dLkFlh8Jt(NohIf_|6yl{@m=VqA2{E8 zv;0lP!g^e*)}Do^Ko#0X8fx2bk^yze?KEhf={Ml%dUB8XZj{Te_3V=We7DlYBDg8H z!=JCN`aXPBFilzH?on9d<Fg?QE6*bKHg8L g^ho;0!d)4AsOr}ZQ245_JMbp+bQ^!e1Q#7GG&f ^P|I{I1VFdubm|vTaxf?T=>bRQk5i{uA)KkOiRB zg6c8+V&MDw nIyVHSJiq!!GuT+n$D@R_$A2PWNn^Q;EjYhlY zYt&!*e<5DiQu$CH5)#s)#K+^{;Go7u#TZ)4XhmiJ=2D^v91aJWL+I^{UXpO{5dK4h zgWv*~2sG)LNR*v4JfUDMq?s#HB0{V@d*WaMyyNmSjdzvxrq`CPkGdMoVmbP5k O7$4k%*xosQFBTN5=sPHsfUQjDQmDRg{7aJx6EzeARRrs333$CI~^2w ze8;uHSiBPq9g$`G4?5>(bS1IxOh*wlIlT9$Z;5{ql1JwJ; _1%{0v7pA)5h$#K;WV701rOPc{--$nOH??@dfXc0fIuJ*kmp`Mo5u04#o?Zw zjBR*4KJ&0n7%0)T*;) }6d &cw`YfBW|Bs{{)}n!9=^2M%qsjJYq| zRlVXZ<_7@EuOruzJUcskUG=C_>0wC cu*#_pmLy^V!}{$I#gAa{F498w}tD(0g=Rpz|36s@ l$WXb<>27sM|b<3U0AYJpaBGcT{ ze!V((EfBz#pd+WMIuHZq)UBc*kv%~t>;c9>UYH7q|GF5jBVuP~SBzkXCA!N V? ID4{kbM;}If4#Wz z@ntE#@kF#J6-D1nbt@60SMbwbNF=0lUM_HZHu>l%FuuU *3+yCBaloV`F35+jN8O@g+~Ut_>cV0?FsF zM4n+dZf0h1#zrIf&1FM2UH08z{^;mv^Oaa9xUVl8@pwB<7`*o9PvG?v`{^A8+H&vc z6%P7_tPrZt`BZ=!J5b4k@=!>irepbadf3xR(oYp+HcDWd#&6&&7TeL(23Io5#Wj(9 z&OMa01y`iv5L0DRLsssbJGE*A97aDTJ)IqBuS4Q_)f6{50;^xVcp(S5N?G6S`t$XC z^;8*G#J+I==%M$c&KpzGyw{Qq^-Tw=$EjUK-gO@w1X!nbpPijei06ha4B*-s=SZY8 zd^CpL^*sWblhoCf@ 0feiF9m&2ZyDlB^!+rHj6E(rz|0X{zY=~{A*k1eD*x1YoIa#eb8iEIC0?_YTgar z_jq(<#Pw(66FS_(TDVGXu|`S|x?3nRpevQ@*})onj(X@yf=raqgbb>%@XDpkf%%ST zy1~?QfQ=#M`P7vC1ROl%dkth{Vp332(pMuvzwurfe4Z!NOVM+m_)Gu&t&jePKg%^v zdSE;-zjOrrzkCAzi{~xH4LKSPcf}0dorNN=D+MQ`g^H<*HQI!{cA(T)Gdi>IFwMzd z60{KoEP1Ddh{}$;Oe8%4t;5|j*XTGNLb{3*KIZ<{6hB)b@?_Qhk*6OJ;iT~&zb?^6 zd}JZ011)1;J>UIB^ML%0V$4APQzveXbHe=r*&Pa-$Ci{xP-=5)4y$R_g9*hjgW5? zpDM)%4q=MAHHBdq|60+O{6HQ&1LLQeaO4>n9!Hm`?ET0Ojl!dZes^U?|6YV_p!EQu tA3Geg`amgj|IHRgRQ<&N@rWV`Y2J0X$o8VBi}INT40TO(%5S+w{X47*E4Tmv diff --git a/icons/obj/weapons_vr.dmi b/icons/obj/weapons_vr.dmi index 96ecf1e99eab86414612b4965bb1222c79530761..55169bf280134726ca22c3c467b36d2623fbb25a 100644 GIT binary patch literal 3887 zcmYjU2{hF4xBtx;OvoC>7D)&pMKKvmBU>R$wy|%~VC+j_P`1f7Sxd&>E|hibW6zR^ z?7Oy+T?*4!-t^u%@4a*GcRBZd?mhQ=@A-Vs_Zx3ypnaB!p9uhfv${G+W7>-SH=qo( zxf|i|fwpvnnp*fHUHqJU-7)^|-d+F@oRgl?!Wu2lqDB5DEi+wCnv~%->jlHK>Jf@0Gi#!rl5u^+OpMF-0J*l3z^ zXsA2%DZ_9EygBarAV|*5b=}0q;nTt=%0*XkhPl6b229@G2$^EbK;<6cGCCz+?p+H> z<}-7X&$m_5Eh+Y*s-s-VXLMcnPj|*1 zmC{9Om RE*Avx0SV +qX%7f^Y4Fw&4|l1H^Y %)(L`j+|OkALH!jV(*^0kFW9Fj=O5j+Vkc;RrXnUQG<-p{J)-SeUAnwRNwI zp=PszyaUIOW0uPE$8Xf49M&+-!erO5i wze4A z y}ut-?9PFEku}YO;H9U9yGZRpTxK`Er~`PnA1k%mdW-!I z3JgrJkp()wORuyKS0 6tsc8cd8Qjs>p>#hWx6z76RX3OMNdG_mEYKg#!Qk0L4ZWQ8v#9^EjviBEox?+Sn5 z1ct-mmpth%)- zc5r|~0;1~r#j)EYszJtL4XU0{-Y<$ZDKV&?dTaBd+tgroByDZYW2Q%{39t?OW2Uuz zt7wzCsJvW1!&hGlOD04h*2KQCcI(ZJ#3UpzSt3QU0Y^E~yrid^b)8kEjA)7&SLyHG z%t6x9wqXdWd_qdkpu=7s$ihJkN=)#m=v8pP8+i^*tnTXS!Xv474GoiNwSU0EQDNK0 z&nt@pL@J?3Zgm8F$+0@GqM`y>p!;N?xTHki)zx+RfLhC`VP_}I&B9=zj1;jF5LtTd zt@O%)CJNd13fV@THB}WBkqOz^{YozeAhk0rxL*8&fYj%|d@lz49GkLe3sq!ch<5e_ z--o1(3^!O+R(aHymX}4A6+(D$^ce%X5Bd24;3a(fsf#ZsP4gblIX*Go(TcfH@nF4` zU1Jig6S!MmUVh)iB)UjHvkR@{G=RU9KjmONb3i>tySQAsE6(*>QPHAw%4ymj5MTlY z!UwVa;1(h1vkn*wO XulpnSvv|IGBw32X0uDmG5|*%)_{FgBg}=H zdsUA8bihiF11ekjGKUSYx2(E-8^(Z1&F>Jo1$kyI%z*vR1#Eh;Qkotl3X-Qn?sGT? z(AnQjh?Y=i;-E3UNRDK@AN$sh(e=f(Yk+vjhoKFGsU;szoQpij5hrpHR60Qcj5_5d zp$s7499DC&i;u~+o%QohRhH{l(PHQrk2 =TXWP5}uAQ~=0Zt3Yqou5ognO43Rz9Kk=itBz zgJEasw(nYh=HLh}S_;SYl7~CPH(>t2hIX>!Zj+zn@ecu*xVZevpC|_y1PuCpaDbas zPJ@!5la$27{%1q*QOrog=L$t~}u$y43N)yOA^F(iITx6oJ(J%{Ved`F)SHr?5^7{4i#O zY+abPr>wxCq4y6k=~16gB=Sg`zkTkj>Elx^L+cbmSefx@Tqo%st5P}?PXvJ@ftJ8c zE1-k2M;@J-(FOSh)Qr=(%0nw{k(INYDJN@=|NY2UD v^ zqJxVPzdQwcIIyD+3x^46?<}V8xu`8JY#`S2IT!v^JKmR`Jv%3P@_K|L=xM>&A5R5p zyda-6*h@7qLXkN#g6!uR*_thsQ^CKCyS-@!GN;F^e>(=GB)mld4Hy!TiiN6wX9tz$ z6oP|`DRO9P3!$ueB4=BSyJMkVBP|oM8+%bZ4*DxCEjhB9!+!l5+Z&}+d~#tr<6(E| zMRd_e24MAoQdQ7od6nbV!MvYt!DzKppV*aGWBU!Ba~b0&qXpX6Y6uwsaofY`Pm$j{ zako2~!L^>58=}DuWaf%Ri!^_N#&(>ufzj;Aa4c(ejN-r&JL0H_Csu9YHSxI4mVMWC zPBuZ99*Z$GlHz0u{d%f{AFzGHM5UwKU5fFlc0Or7s#{{ODQL>hXFKoaY1Tjo)D?Zt zqwRmH-b;uR*_YMle!2HC99?Q?rYI&_VBYiT@ymQsjS!n`$5iz#=G;g7&s1(@JYV9d zqs2(@;(AyWW-cJ@_R5|jWj((c9Uk&yP0A~R@~d$!HYP>^k&$r?m Jq5Y#{QSwvpHY%qiU$cy2eD!eI8^7w8!3xmPyS )e=(LvPhF7!lNm3ciR5jF}6$vvX zRQR??%TdE)WHLBebrZ52UwbdNuPQ9I8H7BwsHe8d6oY_dwG$Y&^X8m$D9hdV$86V) zl8LRik1-RmoufYg{6lUHIUu<^6l|sbj%EavK0?TOEjDT(Q@Z1<=zEC!!k!_qe=*y& z71I-uD82?%y`0$BOsM4#`X`MCmXqk(?m}rzqNq``nyot(C9IB47MbFb90&%kE+aA9 z`*hC8`>YzS3}u1}GN^yt5)=i}Z$t8Y;{eknF*U*LGpw< V=-0C=2@kUI*)Fc3s*=@g6Ihx}SK!6vA%uV55wZ7s-_S&1mePvI(r5Oq87 z=D} 2zrV@h;f=*2J_jxn=fI`j9Q-sB`!e|lJw#`CEANy&W-+6~g!c89^kyA@4y>W= z8)!N$-zL0?O?0fwu>b%IL`g(JRCt{2U2RMgX&(QLR4Gs>w9r ZI C-g*yVF-UM7v8R1TxJIyPHy4b=kMpI*8)`S0elz=E!g?< z*l(j@6qni;kJY~qgd>*tc4T~1;oJ#_7!RNrh9L~YP*P@SDHsYD$u$~c _0XQU-ZrzT=gS>66d4VPb zSS_hq5AYURwI6c8*xRaF%k92|t(?Ut MOCGN~;;3yr;B?8AH>sfdDyXM*L4@RbKNWO4P
~p0bK->$IvM)76HNufdM5=teu~@YLZnqm}&YZ!(zyJWC zudfdb!=S&vU-HbQvLDu+#G~Q80DwosdlA;1RLs8AShWB&O;c{SJ7Hgce?PWt*&_L@ zXeDtt;{&mU9?t%EZ@8ASf4KgOgr1VoFp5f&_;5yz5HlT(fq?-q3?pH7QX{#C!+Aki zcQT$Pxu>KB2om7VojY*5-SMiYv$Ip`d;tKS55?AXM;r+~9L@{4s^@V17cpTLdP>~r znLA%f*ladpFc=7c_` {YW@Is$C#|Ma=dsj-F+L!C;90W?2^F #J0KO+A*iZ71aKr++CgVIF57pGvgr=q@T)A>ZF!_K6svscofx8^(g+Q;@qqw*j zdc9uMbu=LWkVI;7d%)XPf_wmoMxzLYLI{OIqOPO*u$0L7sG#S&a)+kq^?K2z9}p-& zawv)tp(#MDbT9X~QK`}o#5^Dxjf%dGsK_`jHb`_XRsg>=b0pUtDyn4|hT;ZZN(W|j zb# DbR&0g`WCt@g800IiS@WT60BA|J>y0klRwkVOJ$k$fOa z1kft^Ko$tF+|AqVc2rbUVDsk9C@U+&rcIk9e{dw$zNQ7xI{AQx1;_^S0gVcfE#w0l z6d;?(2Q(%?wvi8LNPzzS{*00@mwnX>aPi_rGBq_tEEWsSpFjWFak GY zf)eB_VP8;Ggw19n+)H`@M8(CVgMIt<5u?$F^73+=J$n|>XcUu^lNcTzmYsaL?F$Y| zIdS3y0b)U_SFc``m4HAXK#m?gils=9Q+Orp3vPs^ijQ9jfk1#*tyVmI_z>Z6IH5XF zihMck3l>1C`1s`z2n5KkUAq7Py}iBY?Chj~#X4DTC}Cf4aIRGG@u|R-yrH2Xc)ebj z&1MP!T3cHc358e6zA8O{yZOq>%7mL&3aRYZ?r{)q;kLPRQte+V9sihM59sRZ0ucLN zgp}Wm;M{&_Xb8Q%y%`~YIs2~rPAd6#?H&hl-FH&S tqNLAnD}<$p>O)vzf{S`RUkCMP%~+R34F> zPN)DB%d)7oIb oH%}5vV5c^fY<9K7K;TYlL iN65 zxj6&^0gR50iuQ!Du>je&ZM!N&IC`pu6csK`y|d#{eAaSGl6 nyP^mCVh}As7t8=ksNq2z)O9r1OMj8)2{4ORQEata?4FDk@M~ zPyma?0?Vsc(ACrc0Cd~7!Sd=AEEWsQ1qG<8s6g3<4X|3RX|);4p`^r2J$dpNJ9qAc z(P+$Q!+hfSaq5S`5XL4-Fg8&Fec?M`F8@h%K2mys*Xt!4H*SQ lx*e8;> z?JxiYg8-3-6E%tOS<5NPVxGnJt) !+ueOfM&v6QSeu>kq``1m_9=4Q)W-^G;a)_f=Zwr4+zwwNfJ^ zBk=qEU|AM3Za0iGGbsH2d%V@%4f^xXVE{nizKyrKyHWV;8H_VCm~p$ovMd6DfFxsp zmB1IFzP>)b-!}m$Edp2ae|+h|)Z`?de|dRD`^yGqS*=#e>-7>s2 Xiem};>#w44HNEZtt5CHgF%O7Bl4OQS%vWvEW4|dm3*nJoG z8V`~(8;$2*UM6q<_7mZ+sama8YIJlIKA#VMzaKuI4?dp{K>$-zQwUO2d>?mQN%A?A zl$fcKl2|NHU}|x{l3uWd_vPddFWsel9`}l#AoX 6M7zvp+<{Xd=} zfO>>bZB&F@*mJIh+H SoMVgLXD M07*qoM6N<$f`sqPqyPW_ diff --git a/vorestation.dme b/vorestation.dme index d8f2911a7d..45784e1b86 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1335,6 +1335,7 @@ #include "code\game\objects\random\maintenance.dm" #include "code\game\objects\random\mapping.dm" #include "code\game\objects\random\misc.dm" +#include "code\game\objects\random\misc_vr.dm" #include "code\game\objects\random\mob.dm" #include "code\game\objects\random\mob_vr.dm" #include "code\game\objects\random\spacesuits.dm" From 41b9c802a79c76bb9308e339140f3694ae278b94 Mon Sep 17 00:00:00 2001 From: lbnesquik Date: Thu, 11 Jun 2020 04:24:36 +0200 Subject: [PATCH 06/51] Actually put two in the crate. --- code/datums/supplypacks/misc_vr.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm index ebe7fd44c7..94f23fb61c 100644 --- a/code/datums/supplypacks/misc_vr.dm +++ b/code/datums/supplypacks/misc_vr.dm @@ -99,7 +99,7 @@ /datum/supply_pack/randomised/misc/explorer_shield name = "Explorer shield" - num_contained = 1 + num_contained = 2 contains = list( /obj/item/weapon/shield/riot/explorer, /obj/item/weapon/shield/riot/explorer/purple From d3e5e2beb138c7eeffde2803b132571ae5fe8267 Mon Sep 17 00:00:00 2001 From: SweetBlueSylveon Date: Thu, 11 Jun 2020 21:30:39 -0700 Subject: [PATCH 07/51] HONK Adds clowns. Lots and lots of clowns --- .../subtypes/vore/mobs_monsters/clowns/Big.dm | 44 ++++++++ .../vore/mobs_monsters/clowns/Clowns.dm | 38 +++++++ .../vore/mobs_monsters/clowns/Normal.dm | 77 ++++++++++++++ .../subtypes/vore/mobs_monsters/clowns/bus.dm | 7 ++ .../vore/mobs_monsters/clowns/busclowns.dm | 76 ++++++++++++++ .../vore/mobs_monsters/clowns/c_shift.dm | 95 ++++++++++++++++++ icons/mob/mobs_monsters/TGClowns.dmi | Bin 0 -> 78808 bytes icons/mob/mobs_monsters/giantclowns.dmi | Bin 0 -> 28810 bytes icons/mob/mobs_monsters/hands.dmi | Bin 0 -> 49976 bytes icons/mob/mobs_monsters/newclowns.dmi | Bin 0 -> 60721 bytes vorestation.dme | 6 ++ 11 files changed, 343 insertions(+) create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm create mode 100644 icons/mob/mobs_monsters/TGClowns.dmi create mode 100644 icons/mob/mobs_monsters/giantclowns.dmi create mode 100644 icons/mob/mobs_monsters/hands.dmi create mode 100644 icons/mob/mobs_monsters/newclowns.dmi diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm new file mode 100644 index 0000000000..91a611f022 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm @@ -0,0 +1,44 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big + tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk + faction = "clown" + + maxHealth = 200 + health = 200 + see_in_dark = 8 + + melee_damage_lower = 15 + melee_damage_upper = 35 + attack_armor_pen = 5 + attack_sharp = FALSE + attack_edge = FALSE + melee_attack_delay = 1 SECOND + attacktext = list("mauled") + + ai_holder_type = /datum/ai_holder/simple_mob/melee/clowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + +/mob/living/simple_mob/mobs_monsters/clowns/big + min_oxy = 0 + max_oxy = 500 + min_tox = 0 + max_tox = 500 + min_co2 = 0 + max_co2 = 500 + min_n2 = 0 + max_n2 = 500 + minbodytemp = 0 + maxbodytemp = 700 + +/datum/ai_holder/simple_mob/melee/clowns + can_breakthrough = TRUE + violent_breakthrough = FALSE + hostile = TRUE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm new file mode 100644 index 0000000000..bee3df8b3f --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm @@ -0,0 +1,38 @@ +/mob/living/simple_mob/mobs_monsters/clowns/ + tt_desc = "E Homo sapiens corydon" //this is a clown + faction = "clown" + + maxHealth = 100 + health = 100 + see_in_dark = 8 + + melee_damage_lower = 5 + melee_damage_upper = 30 + + ai_holder_type = /datum/ai_holder/simple_mob/melee/clowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 + maxbodytemp = 700 + + +/datum/ai_holder/simple_mob/melee/clowns + can_breakthrough = FALSE + violent_breakthrough = FALSE + hostile = FALSE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm new file mode 100644 index 0000000000..2f4c0290bb --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm @@ -0,0 +1,77 @@ +/mob/living/simple_mob/mobs_monsters/clowns/normal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm new file mode 100644 index 0000000000..cdd14ceaf0 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm @@ -0,0 +1,7 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + tt_desc = "E Homo sapiens corydon xenos" //this is a redspace clown + faction = "clown" + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/New() + ..() + verbs += /mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm new file mode 100644 index 0000000000..a719a2152e --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm @@ -0,0 +1,76 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/anormal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm new file mode 100644 index 0000000000..5c37f269d7 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm @@ -0,0 +1,95 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + var/ability_flags = 0 //Flags for active abilities + +// Phase shifting procs (and related procs) +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift() + var/turf/T = get_turf(src) + if(!T.CanPass(src,T) || loc != T) + to_chat(src,"You can't use that here!") + return FALSE + + forceMove(T) + var/original_canmove = canmove + SetStunned(0) + SetWeakened(0) + if(buckled) + buckled.unbuckle_mob() + if(pulledby) + pulledby.stop_pulling() + stop_pulling() + canmove = FALSE + + //Shifting in + if(ability_flags & AB_PHASE_SHIFTED) + ability_flags &= ~AB_PHASE_SHIFTED + mouse_opacity = 2 + name = real_name + + + overlays.Cut() + alpha = initial(alpha) + invisibility = initial(invisibility) + see_invisible = initial(see_invisible) + incorporeal_move = initial(incorporeal_move) + density = initial(density) + force_max_speed = initial(force_max_speed) + + //Cosmetics mostly + flick("tp_in",src) + custom_emote(1,"phases in!") + sleep(5) //The duration of the TP animation + canmove = original_canmove + + // Do this after the potential vore, so we get the belly + update_icon() + + //Affect nearby lights + + + for(var/obj/machinery/light/L in machines) + if(L.z != z || get_dist(src,L) > 10) + continue + + L.flicker(10) + + //Shifting out + else + ability_flags |= AB_PHASE_SHIFTED + mouse_opacity = 0 + custom_emote(1,"phases out!") + real_name = name + name = "Something" + + overlays.Cut() + flick("tp_out",src) + sleep(5) + invisibility = INVISIBILITY_LEVEL_TWO + see_invisible = INVISIBILITY_LEVEL_TWO + update_icon() + alpha = 127 + + canmove = original_canmove + incorporeal_move = TRUE + density = FALSE + force_max_speed = TRUE + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/UnarmedAttack() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope. + + . = ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/can_fall() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope! + + return ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/zMove(direction) + if(ability_flags & AB_PHASE_SHIFTED) + var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + if(destination) + forceMove(destination) + return TRUE + + return ..() \ No newline at end of file diff --git a/icons/mob/mobs_monsters/TGClowns.dmi b/icons/mob/mobs_monsters/TGClowns.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5805861b61a03ac4f0b0f70103e8544ae9e7be90 GIT binary patch literal 78808 zcmcG$^+Qxq*EW2H4k_szB&18a8x)ZeknZjV$pJ*VOFAW_Tj>;$?rxA4siEOL-1qam z-}eu^KMVu2&pEUA+I!Wtu0^ EXncn>}UvY^JNAFSQWOPoHNNuh;c@X6||RYdLY= zAAZE_@1zc2TbX-#rz>-xlC{HEL-7w|LN`#eW@jXjGiIBDqIFP^3GMii- zBub3FmhWj4`fG5OW`$z#A=^@l7ldN`W?}rk{#n{7>`hAfUhek0bPApzsFO@;id;OL z$@a#T=Uw4$qEm584CgR!#GzHC*2iE!B1M`LOm&s^rHTXpRVUBV44;8+ZMM7*%Bp{y zrsP%}6L*8_Qlo6`e#N}Zx~4$nHx_ffZYR0nYNckWU65OF+e^ulEY4`2G-+= !z zRC~MS@?yi({$o8g%jvJZ&u4R`)*lZa8MoHKhko4U>DS&}o%|ilgfUcZ)XBxK<@Ci` zBmPElN97 VTrHr`H2N2$j?8MG<`*?U* zc)~C51V;O5V-H6%(*%#X>$s0+TSq@a^J;4FD6m6&)|~{vH&f&ZHGRnc{j=u{ksjdu zH1MDC!A@k{|Gl!O=Gp(7A=wquGx>ylp)Zh?nE!n7Ze$@^?rGK_+I^(FV1cpwt>DiP z;o}54kC)+}(6{aR?z(b4FluypQKo`5>sH>3q7?zhQCN4#axI^)v1 zcZHXR;eH!>tU^Aax%CthV?r1QYh}q?v^s}H=9vuewN+Pt`d_n5Y_sGpJNKlwZ>37M zHG`XQz$KF;e!`&U?O$oTI?6Sdb@bDBhRS)wNz1y-@u}2NayH&8XuUfu&1>>7>cd|1 z+}|0xXM(``afZ-b&ZPyf6n6DlWpz4K5aR#Z_WwOfI2-)CinbAY3OiG(bu!@fI9#Es z_FZqa0pe10hX;yj 7A!Pvi9xw@A&?G;eA(F|-E&QALjWMuo!d(c6@zU~daufo zUPY|j2-QN5WmY#6-|HtA;wj+nAQrZCtUiyC^4BDC=J3~5y-GROlT&*UB*NC_WP(#7 z{W$VPJfXkJsz>$Gf9c^5@-Ma{$jhK7nRE(0jNtpMS??hq=2IJ84qz~sQoxobC|H00 zpw%w2{#;Q|=Y|tMo3s5Sr)vA3a&Ehp%5OPb-ns_$(l1(g%e-lYtW(~jW_mtvKtt dwLm|O(qg*AiTlvAmxi)>~;w_4ObRBW<`$6%s zH-s+nF~g@8q80`lk#XlNyhAWDL(aa@%jYzPob^&|rTjrkDi}L07cd%aQticoQLoD% z<-!N5Oc#iLd=*p^9yho9_%Y+@q%-i+`98x16c?MdyfZwCJQ#i-dH@JkNNChff>|U@ z&h7QX>t7v7{}_{E|F} TZaI x**>_~c=o$R zIHat}*RRAQFKBFXg50P|E#m-7^V$1D{2dfD;M(%Xvbu~XrO&%2kI(sQ`Hpc+vL8%N z;8cMB$y@uc@BpV(H@(|MX`r`J#Tzd-^&soXBB2vVxL87g+CkfO1$-!V0@`Uf6ksHu z4{k4tmb`tH&!|!xFw{B?SsndrQ1D$b2JZ+pX%U8DB&d#?p>e0eTt-Esem if6LSq)dfu|Jhe!a@mHnK5l;UqDyTxghT&k6qpL1tN2f5_ zm+|8f*f@2F>`TwqA%uzUK$rL_Z*h1`cMmo7=Sz~KxZa|-J g86%1s zse8Vv*UFI}_|ok!(T0`OOGz!)4X7gdxlL<)uIAFIe7G`|>WdY*kyo{ClF16V*5f^O z#+d4AxgW+PXiCLI{(A2VN)SK`ds$OB!K8lhw{J%EO+DndX@OMU%vZ%K8Z?QxIS7Jm zWh*Ahnj >^U!Vg%Qkl4!R-6PM_2xUFD?U7;Bkgp7uDl1q@D-Aek1j6fw zmhq9uM4}CWWT&>l7}-tV&i-8mlFrrmv`kUeV`;Tuu-~BU?Y-g7MEgxrm$bDVjpVjk zVBfXCLM(CmIu~z*>puo43<=l$u2ky;?hXO$=8=IrY~h2c$yY8DFGmuPRCH2Ywt|=W zBk#Tgg_W-11PCXMIj>wc@TX1p2OgYC!l7)L%WWw0+YQatw0PCC*nSXPtZ)KJw=w?3 z|T?F6QJy{p2S$}&;H1hMKOV4dL!7K>8uDUy1t~)9P z7eKR1%~2E~T05US=sJ9($OzhuPX=e|&n6sPe21P~&u&gNLRhrNn1fA0+cG4kjjcsu zdi=wt@7v(>kLsn;lYCR_&|L!Lp1FZKDY-Wr>x?hEAL1Vz%oKGQ{h&gvw1sG9v50iD z{uPYjP#xlm5i#=X*M$W+c5{vBgy@L{GydU3l83qOU$0em7ah}o#17jO6CmephDB|i zkEY$e@5YcM8t_j85R#6HV>l^Q91A^Ef?od0MX>5-JTdTp6GHh3t%z6>oVE-un%F8s z_F3wPBN_>QZ^(ZqABUg!J8QueEy^M4JTeE>_pwLTMJqm+&U-HGb3*PI%_}QEd7l>5 z6?J(NXM#<8@jgt|bCrqO(_k7=?`m-(D;ZSWMK%g>=_L9FkzzR#B;1a?zdeg9A5Ns$ z{XxZtI5zEjaS$!|`{9KZX$kJH#Daz+|KQ7&zP-uds}@S?_8~tRi8PKf%E(nby>AQV z>Z5nw202sqZ^!-TJ>73*iwN|?3;y1Rm)bqQ9{J%2xf+F;n|r9<0Z7RjguUehioJ?4 zGPTp&ZVJoGpt1gIOa2rM?NVw$=sX{`mzzt@sy?%|P>&6qd7y^nf|8f*l4yEk+Ng0r z^XKRw=v^aaOU~ixLW!(|$l(W2qgO36R*UMx>*(SoV)2!pO>BqPiW6y_;4{s?d@dQW z!GJNx_l9sPZMDuamJVs8Qa_lhjK#@gm@MjqzG0D `ms|jfy;u4t6Lxr zv@!z^h-f5rQb!!1sx7@})aP^K_%o7K=0k3pcQe5xP+6U6fMY=@4pf(&Sm&vgP#^NH z)^EAj`~T_v)GC#^zt>qar5XQZQOQ&e5sLrZl?gtaqJ5rNw5Nx3VdPSG6&m|U9HRWB zSw$TdA`Zu=EW5XH&wEC>f;WX6bI)GYktwqXW!gqP2qQSE*+vz-)yb!n$gMaOAf@#P z#iaK)vBqg;Ro&s4f?Z4&D<__8_G9wI2dgpr)G^cmcj2r_&7JO-mzecgTZ>Fs-}sq{ zFB;>!_r*=@b|#&&$Pm^#sLB%tRMXpyrBIaI-9aH)elE4&0VCGBI3k;EE61jnJ2?|K zXKw^72m9mu??z#?vFHM)Utlvi$`}hCg&n#J49hVNEUW#3y6qccyIv%XBdj`E@91e7 z3=f U6$X@+q#Y(HNy}LT;-kU6b z;~CJQQtwEpr^JBGrbRt$Xoh@(7)BGip!`^JZ?l1lORFF%YW<7Ew46PVNAPFn4{>_e zKMzSmh8>}LdaJ=K5BEwyJ{bP%<5+|moWWM%WrpJ6kq17U0ryl=i|GHFD8b`JlKj5` zZyPQhY j37wixlBI(?1n_GWSn=_3NZVjG{Vffq W-$AjYY7{5{?94N9}(FezSPhm&?Y4K9UCNRsIRf4 zibd5%V3@785Ickhw=R+{__EoT^TYpsRA>CYOK$cUXhGqA+`oEkhzVGUx;(Rvy(7Fx z)r)?!qm;Y1V9WL*sO9!Hq{z0auh5l2C17Cswa-?Sl_-se@9piqt@BhH6!fJ9U@(AN zz|gwpBrqe#Zjpo(vrua`#X%$`2kVY@H>M@lS+SdZwT>h!P>)vRC6FG!P<3(iFt$#a zk9K-rgN|1p$9h}vVx`}lHc*pcdc!(nP?`)oOY&V0^*&`9iT1yMuN~g gcza-Hb-4^(mkQ<2phMGXH^ zk>CDnh{66&i9I=2`FU}j+VEhv(~yX@D `(5`1KH@=$kW@SePM3&?aM`apEnlRI S%TWCEg=2k-;>V?)QTg=y?rJ!_+49?_IXIUgULi)905c#8HSCR}(w3 z8n6lmo-30aVlms2kz|NzT{FU=Rw 3GH07)cG;*1!PGY?ufgRN0$l}JV6%_)B^;cg) zo}(zl wrWWlsbRDRvCwd;nx9iJE^Qjf!bwMz>fZbX|@s9)QaKyOY zYywCEdMn2aduoa{J%Y^9y~&ZwBSw+Fm2Qnx8t84Jeu1eJdT44py Qmfm>I_oT3Wk$%QOxcD5Yax1oGamLdQ3Q*DzZULpfDmrjS&Qf%}F9s zP3XRx${oahRiw1{51VS1@2xu!na{R*$!GjKp`<1Ubj0c=sZGjet9bQU6q<9peg5=d z@Gw4GkGGdN_|+VYFTQoV)Hmr8kNCgJ^@zz5VKMWm2E$re(Qq5RlIK7MmMj()!iqCK zxKmXQ^9Xk6t^MdtqR72wqB>6r`YoTX>wP JNhLlH3AXI*h($aeIa z;( K_3!HgI8`W97496cS4SC6ts)_uc1pjO4k zls>d$D}GY|_1^6oGeobG1zn1|o^cBQLP5#5K+4GUJ{?vSu}F$L6Z7P~D6R(HPGsD( zRDGeueIW=Mj%v@*0?9>E!gPcTq4So|P}MKlF#-O^?uv|GqGm=j8NWN%s<%_X&bAE` z9+ yd=*|>%+MfC6$t4DpS86 zF{hiSVVp)_o$ilCrkxdCAt_}eauW@|#PI)=AqNKlJtY8>2ms~aJE&q1d0Hf7k`#Vm z8UqZF?j56;WX^`>YuxRkv%x3Xoen*@J0sX;_CDYnD w+h `2WbDQHZbN%h#@=(bRNi=XTO^`Jx*D{G)?Bcnk|K4(xEuG z%dH|OY#jm*{W);2lh4BInZ{JNklcegTLj^c2SYmnFDo+QK7 dyjPp- 6QQYbo9)TKQ9UjEkwv0{e9yeN5Ku0DO4&5inem@`3iX@wV z*kn#TMin%1sq(8pe4ti*g|XqQX6QqfCw9J*6sp3{-WJW1?EnudiT+XpRvjL0J8ey* zy{!6jUn3Vm9kG2x?FKTfZRi1=Iy&%zItZ4saPhjMk-}R0x@dpq*8&GUqEYUkj?#JB z#6w=4Zb)|a*FsKFeI1W)W%$M3LMkV#`C0VuIS_!my>17i-?B`lmidA!&J;~h+D@)i zp6fm0$uorC1VzOK#SB<-8UOgm=IWce5c80Gi^7ANJO#5RxLi3Xh W65kOI4{f~7>K<4&h;RM~##{of9tcf$c|-6x&bbTdpuLD^gH zxMwjeJyAW((YJFi!Ofl=YUp+ Nb9hdG+7$n1HP2ixC%W@u z9?gRw+x-=C3mr+&{*JzLDWs-h#2F^awrA*mZakWF$o&cS1D* zvkQ!!vC8jl8m*jBLWMI5!{RACKM)HkUHsG>ryFzrM*O#O?M!U!8hwHxHMmV_3T^iD zIaydm(E^ylcBSaU)<<62E!+X@{>4<*9d~#W{x|w&A}+$84vvGJCSz4}n$R=Hr^? zKD?k}ntGUZyhY@*_Xj-N8?irrq=lr7pPtG&?bsevgP6D1eWN(Q8GD}udU!^-_qzTG zHFnbvr*FlG{f@0~Gm*}dLr*3aw!N&6Tqy2FaNg@re{%jOES_{&=mG6GVSh>_*7=BA zS*T=cW+UO(f1(0I6eG!DYs!h_g!_vJOv{xZ@J9h|${u&s>)$6uqpb-2N6KUl?S%AO zuD`XAX@@fEhPPjU!K8YA!qD}pGF?k65rgv1dg>}+Uu;W<_%06Mf4vOd+}aZXT|(~j z M2b8q7{*LJV~82|Aj0W6q+muDB=tP#9` S7|+)zgOp5?E^hi52d0(y@jdGGTbH~${@ zKNxJMj>~FmlUQ4KzaF=qT1^R0|12qTq9h8$WemE!cgUcSg-r3dR;aY=9-g6=bi`v5 zYUjonk^Yp|V`7dGQi|4eXUwpuB>bIm=Z=(w50SyY4-35~V7AkeG#z9|+dY+^l}%_D ziigW162f2|w#4KYDrA_way(l>5(XaI`WkQQ=ylS;2mF;-6NCg+<-A__Wd9Z}5MDJiw`+QVzwB$i(B5*NanLZJ(7;R5ma2LE*!i?_Ewssnod_N#^}KkFN|7JGW1a z5b9zupv*{0-Xh;ofL4R|=)hM#qmZ0PCfgZ4qdaSe%foqTqOue >Ed}92se~mVtVJ*y6tz4&Uv(Ct@C(MzQncG;<0mMdbMA|Mt;{P*#@@IiQ|| zFaQ3AQ48kZJ#+Zz$r?C#xHR+3#HSf{mm3LF>hHRboZ>9o4D|Gx(5(+ =0>M3JQCy=Dnfq^xsmo3^KyxB7VD9nV zH+ZLXj<@UzBD2WcH?{w;voJe_*Mk_=`oxT^TjzYqh`Ih%nG8d_n!++yH1~(}~Pj zEtQ53jaQprUh$J1r{b=JZ>S^(jwt&scRm8OhosKtw31jbZ~3B185J!E0l^Q6-4X $b@m -4j0l3CoVmP7{E{$;7Sni-rW*qs~;mUPOAWFAS#12v=ER3b7{Ec _uOI=Fs@pIp$d|~z-WE1Zm-o6E3;Rq0mQKZzIWcmi#d889P2itF* zY`VQ3ZwwDd|1}j@$xkc<$pu*T?t~wAz*6x2zHbltTt(mWlZ;Txb$!6(RA Xfs9m&U=)71rG1f9pxhCgA}dm&^6N_@uBB%cSNRp>ZYN+!B;fb1 z)dF3zYHt2#lrGQ%?l1kOTzwgqX!r+mMGlL!Z-faNox2o75|u5EO4&OLQxqD)Usf4v z{w%MyAFDj&n>@6aP$gp(ZE=O9$Eu@-rAI&?!6Y%J;5wBfZ=+uv0EYbkjl`|a+h5-I zb8!0XdqlB%;auQfa91~jvPBDStF|ZWe#OD5zUc|P>2t+}S3J8?WX{H%%hs0@AAFp2 zPtpN0>|xbki8aXeWsYgA@_b$hJ`OqF@lA<5GoF8+-_x;O<#iq1|8MlTEoOA}q2>F- zXL7X<^K?$94YL4{>U*C90z%Krzwe;~`ByJ8pr5B+RBs4Ic^kcWQ-mg!49wYW+#gW# z Vxk7i>eQ3@jXo@L}4T~$4*Es1PqtP+SHE@O_SaXaORV&?5j0`n8DN#Hgh zp;Q0hrgX@Z6VSrr`8JiO^>Vl=GbTiEbpp3xa}Wc4Ur&xk=efB!OOO?@fOkzljsF&y z5sMhLNXq>Nait<$ae{OeQ?RZisefCau+ON)*nepfHsaWE%&oh^s <4u3m~XhZNk@g8)o-(TkW1kBc_vgKrt4!6riRD=asg7;a)_1~?YRXw zoWeXyj_aVU_)x!k`30P%#gm`C;mxF4M;-!bC*JWM_kNNap)|xI0D=r&i=sgap$e-s zue6qC4&?j}acg-s-@onwCFOlkZ)|M5MwzT-24Fpy-93nzvX-;zLs`JiE;(sgN`ai{ zWg+gxFcL5x(ZPz_H~Q;OXdlnFXe5L?e8x#znlzf%OxmM_IKC0 zr;7xEI4HpHHp^!MOa3I25yi&ui{4R?Pkh;5*u$p@LomM1B@SK0*<@ZPdN%#c*w}AF z7WY=o_R5G7(!1(7>ewe3`8$Rp{ %G)W@HQ_VgQ;44Ni}vTK$M2(&NU zNL!TbNr53NWCuo#lHie*Z 2K zfG9 6F9|jkiKaENe5cq@9BdIF~I7`U)Z%H LBDo-sMnE>fdj^o3!lzG$ `4AOQZ9rkdS+sSJ`yh)?e|* z?dhoC3(dUvUF82fl zweFIuuKGsXd|qHD;o>>?U@%c?9SIu@uTk3^$Q$dN@BlE|hh@gaYpHJRgY*D?7%^vs z7uhSZAqnu3eQxf&roe3%t6KmqLT9 kAFN1(F5016Ks0Zy98J2Qf-?H-lXD;nyfPmGc67`eA~4ouItM6q(s Xz7(Pl z<56EnU5q~;!*bYQwH8rnZSkM4#RLr9*6k?Z#2mMf5{tk{OY+{u2Q75Mqw4%R=)O1E z(NWA>o}`{PNQZCpLFk*5eV@WHKaHmA7bCWrL(+DualS-Nr<_0COclCe4$^Zs5yR0& z!clsqyRcSjO3c}i66J`!fM(TPQy9?MK7qaCy3xvSr=R0})W5s16dn|W0AQ7t*z8-; z?e6b)zh@~z*xQrbiEGsE6QeE=qh(^MnfI9uv}8vG)S=?oN#S)_$TI$wt*?w0p8<0n z;?&Q#1YPBB4#j+k3JgEWdS1%OLVCs4lBgWwS9a$WooMfuO%Q-p|28y=%jecVS<=lT ziUdL1OZjD2){gKDeRBTW*NBu7N8Gj7L;Qyty z@;i_PIz=zT61^O>NaqVH$0cGfHo7e8+b?Jwt`^I_Xz>tM !-&xnK=3upQ_!n&y zn|hIi?Co9cTpIL$3L3Dw9|{j5XNU~(ctlQq-;ci&dYl)a@WVR$o>f~uBkVpMSzwwM zO&y&PsNNc0E!cV`3|8SbI51OkO|=fG|M-re-zr$R%n2vxe&D;+eK2o7*~5s33fj?y z$pr$`qlq!2Cm*E_D6sHiA^WxqBo|#)Nwj!~_qXYMG~>%NyUrVutu3AOgAZ2m!f)-) zBTeK^q>W{9vo0eV!}XB%rqk5Y9Tk*n-&Zo=rysEq{1?Vjy4Bu&n*|BGeC24ES~@C< znSqY`Pg%##qeXkJYr<^W#%Ov!_Z6r^zVXy|dn^Do`U_r!=JtVnaWHtmMW8{mD%H=K z2%I*|77N5n_&m&Kw1>j*_eVc_c%n?5aWKBF S{6M=)<$Trn~nq zBvQ^D{+x*?iYbHX$D|Mg1}288QzcN`OvYL2q}C~7V_~AUPM5jA-}}iG+s*#3%zu%+ z_J1H0_&LV$_Pw!ijw=F7VAMf^kUA8`ihu;H-W8c_$;S|&pAHjl8UI9x_TNtKRp&!d z*X5(e*w7_<%d BYMda%VLFx=hAFl;iRhjwJfrYf)t58*eNUZ*Erw3O!#yjFJ0G$ ztV1ST|82AR(5t$#y!_@7i9h&kEr`wSZp;&L26J{5b?KZoY0AFaw4 }*z z!iQGvm89Uoo49$epCvFo8Q3Em=}gi&oGkqXSo>FGi140WLAwoq;3Q_VnxhH=_ 5j2jdUvv^ty`A zAdGW7!9%!)E19UASFc%YS`DVk^{KpjJnx}j9h@=32C!jxhZ=gy {y0N6Yzd<6&dR~zQbK1+}O$R zL!=h#)$h#c=ub8DM+a|HeP*<|%tyd0k~ML5bv>Pfx#Q3hO%P2Qj9`fJoo7{x`pJ+W zIo1b=zasbv?783J;7S2Z?w;ZGk ^P@+6X`W8>O2O3?65F3d6D9_Lzm9L5P~Wb!?cVAe5rkn#k>N%1JpaNv z)$F*>)@Pny4dOC|TqG|&9=27u%K4P0%0bvB{~ru)Nru@rD<7<9w&f$Drf<`_Qb>nb za^gLHUlEWPlcNA)Ih`L;&E}z4r kb67G;oP?= z?}T8&Cm@lDX;q>^;3%oRMig!uFy|}|jGbSp6VNy9r>hc3od0CciKhzFLju3k2_nFx z>yNQ9P`o9fNNo5Fz+2IhihdVXq}=Y?=owMbs(A^YyvYu=^7+ J7>u3K0 uV!vA*9e3PF zkV#}LHni@T`sg5UH~QNv;q`cdobb76Kz-7HSj!YfIsxsxp~n`Q(p~rQt;hDaOV?ae ze_(A1=TsHz{;Rd+xCja($Vu>0_NDQtn2=DF4puoPAEbd^j?vzZChXj%LK{5peoR zm%)qpp35m+LG9w7xhOT>+lgMtfLD+Gb&AtI04s?gxGqU$T!@o!Lo(80kY_)J{n#K; zAiiUFtwu~Ub}a*j%SV?1HsAQxzTmUacc{?fX}`M&OR?0UiHFiswM)?zPCUq5D}>AK z%@-3uY8K86nGgz__|U$u1jNM#zDeY96oy|p*B|u8sDO!L<820+PK(BPTDrBg*? F zOKI8P;e@>VY?Qo3tdnECNlv~wLsVS$t#Dnu<_hD4I`jS>-RTCjT-V(P(eob^2v7MA zP8#Nk+b=#=ube>*I9B44_hyaBk*2`I&wKq3Wci0dsTGl|>iOYQmGuzt&b`!-Zg!Nh z z#QPBs%JJJ+dd)do$UjTiCVn0nX2WVnGD?qY`P=W7I<3c>;GB`YN25}!a4`oOJ4*5- zVLg%?do1)BD)uuRET)=sd{!S$kT2#?2F}+LqrU-Q5Qy!S`<{#7NIIK&z-cg_KHD7` zm(H!^tWy5A^j|@>`}8D9E{NfAg4Dxj6f1#I)|hPc{#p@W=15VVD1&Q{xxlAjU2_ri z#R2|e&qr1IAH@gnVFO~EB)f)$dxG@mUl!Udzo##?`n8z*_W;!u&FSAKC)dR 6-R2e)p6>;|+c|eEq#-9FTA9w=a<6 zXx&+&7Mg@-uU?9{(=&95`z_uErSFTHUy