From b14080cff4557a0d0bed1e47641cc6ed7074ece9 Mon Sep 17 00:00:00 2001 From: Biofreak1987 Date: Sat, 7 May 2016 15:12:15 +0200 Subject: [PATCH] Add nod07b --- OpenRA.sln | 2 + mods/cnc/maps/nod07b/map.bin | Bin 0 -> 20497 bytes mods/cnc/maps/nod07b/map.png | Bin 0 -> 39144 bytes mods/cnc/maps/nod07b/map.yaml | 956 +++++++++++++++++++++++++++++ mods/cnc/maps/nod07b/nod07b-AI.lua | 193 ++++++ mods/cnc/maps/nod07b/nod07b.lua | 265 ++++++++ mods/cnc/maps/nod07b/rules.yaml | 127 ++++ mods/cnc/missions.yaml | 1 + 8 files changed, 1544 insertions(+) create mode 100644 mods/cnc/maps/nod07b/map.bin create mode 100644 mods/cnc/maps/nod07b/map.png create mode 100644 mods/cnc/maps/nod07b/map.yaml create mode 100644 mods/cnc/maps/nod07b/nod07b-AI.lua create mode 100644 mods/cnc/maps/nod07b/nod07b.lua create mode 100644 mods/cnc/maps/nod07b/rules.yaml diff --git a/OpenRA.sln b/OpenRA.sln index 6e52afbaf6..0c5f771be1 100644 --- a/OpenRA.sln +++ b/OpenRA.sln @@ -46,6 +46,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tiberian Dawn Lua scripts", mods\cnc\maps\nod06c\nod06c.lua = mods\cnc\maps\nod06c\nod06c.lua mods\cnc\maps\nod07a\nod07a-AI.lua = mods\cnc\maps\nod07a\nod07a-AI.lua mods\cnc\maps\nod07a\nod07a.lua = mods\cnc\maps\nod07a\nod07a.lua + mods\cnc\maps\nod07a\nod07a-AI.lua = mods\cnc\maps\nod07b\nod07b-AI.lua + mods\cnc\maps\nod07a\nod07a.lua = mods\cnc\maps\nod07b\nod07b.lua mods\cnc\maps\funpark01\scj01ea.lua = mods\cnc\maps\funpark01\scj01ea.lua mods\cnc\maps\shellmap\shellmap.lua = mods\cnc\maps\shellmap\shellmap.lua EndProjectSection diff --git a/mods/cnc/maps/nod07b/map.bin b/mods/cnc/maps/nod07b/map.bin new file mode 100644 index 0000000000000000000000000000000000000000..062be90c6a29a7fd9469fdd296ccb3eb3725d50e GIT binary patch literal 20497 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 literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod07b/map.png b/mods/cnc/maps/nod07b/map.png new file mode 100644 index 0000000000000000000000000000000000000000..a08b442bcce939f36c97e53ceed46b5961cdacce GIT binary patch literal 39144 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

^XJ1Nbr-hUVc2xw)}u)se;sxJSxhD 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≶SEn46t6fN(Att16Cw;_Ep$U;^7RV z_geq)CG!qvugQfrrmW?c*)V9X`>`cRz$M2E8C>L={zi!RWJ4z!dC1G@HnI|zN;)w{ zq-X#|vmhC&jL&VPPG*X1)cBb|3&zE!qBkPIfc@;<9zg_1K{JE!B_BbkD4Garp|0Df!4(e&ru8oBH!R+?JDC zZOhbBj(Ca~sm?a>)M>Lp9T@_y76yRUbzg^x;K-_kz+Sbs z0@>L@$(o^@Z#nG+4da6cKD0c7FI%d7(X8<+G>)qP2y3gJ(uEac#)W3}l#7)zq0j57116D>|yCdq0&VM=PnuY&4N zt7h=u68kBA8};i_X~$OKAA_H)c9W})B<#gT)hJZEgHQUP;wNyl5?j7CEClcBZw4!NZH) z1Yp<^=WmGvuLlhuA!|Wn(NL)*)>@qvEfA>(_K>=aOOL~Yv(BR$)d+SD%Xi>ScN@_F z$ZkZp-`FW|X_(V`>21;2Izuuwe%TMFGhk)RO&39~G#wxIv2Vt@t_P8!TZql2V|(3S z4KU#-e|+(-BY<@!6;o)c-=>>AX02YjVh}YMoz}e;(!l#k^JeCr?he z#_*;KnuCLF*~QIoGS%>@^b0E|=Yz4jMVt_&vvqwL?jY zCS;=`U9Ef7?^CnYrlk#9%Zfd=-IR-v_w5i|noCCX)op?j;S8A@&YU>e&BYQ%xkr)_ zjJ7Wd<$2kry%tuO;tz*^j0s_%6P~~3aKbr=BfaH#@prj;~t7SB=I< zhN!#Gx0#$6Le!NUWV-R-yp=s9lAmL-R0Q+zlLU1Rs7%&7?jW?EowO`ITtVIe8h7eD$4G&g0y zi0^KMZQjPc!;i)czGv?oM6&Xj{p3&T^tz#S32AI1&HMB|KK9o7LD$82u zr+E-v=|bJTgTHwHzsPUEy<*tY;+&TeK*dpv7`bX3Jjyd=c0Z)XdA7pti9LamKdN)W zq@p^Xs8z`u+QI}T=RW{Wnaf0iuem`vxFT!Zf`TQ`bEls#X^}QZ2L-D8hYP`}E*db2 zM$pHkRhP{L4fjuY%!o!<$A$Gj{ELpP|Im?3SSJ}h>v?ZKBQ<^1Ni)hv@e)h& zeoa#{;YKWYG#8j32b2r|zi3K8etm(|QwyLk1J$3Y&8=Q^67zpSq(o;(>fnX@BFGgazu05r=Cg*?3%9*eQXQ>*P{xV0%x~Oe<9+ zd_<*cs9MEe=HBmrz?lm2zz2pIxH@5s!=%`&UmU4ayYk#DIk}-zs_j;QRAe&Oo$tG- zAXtn3QlvT7=tw6C1YpOOp}c!r&+RYCJ*xEGP*A+M$|~;2J|S{9jDE4Oi>N0nhiqa7 z_+iR^ow4Sb77uhRwdzQEfrZfGbco{CeheW&9+jhMbQ6&@5pt?qgu;}i`ip@w9y(=X zgjnPq;*A(G8TY%ZkhqTJm2CivZVHFmEUc;6wm&Oz$wrK%axscvUSHzQ)c;XWJQj=k9DiDug6zyW_PyK@VN_Dd`$q`v#{T!`E*`gY+S`1 zKCbbhVlwA~ZxDwrwhP)_YJ0z&(YfY6KX+lO4@}UGk^A z?Z)r`0mB1n72SM5kX8@l+_kOSrF=@{ucEHq`^SswA^)j`{)D1XiqR%7km9j27USeK>h7k>>08?Z$xXXGE8~+@ICCsK&n2VqOAJ<|}qs9*rm-kIo8JWWj(GQ$F6N zU)BBx8MHuVE%7;klAK!hD>2Oai7F#tH}QPP1TEF9zZj`KG5mQB`Z#m#C?j9JeR?=> znu?|b__O#}8}W?6E-eDibMM*S$%rx0^}WF<a(uXr>A|14t8Rx2U`}cV>>mCQ z+aknM#FF`vnR)-Bf7QpTc|sh!f4i?wWm^-~fj2m6G_zT;Nhn$s!U%Daq5NE9bk+S~ ztj-@HG(TsO+$v;d442IOQ{w$ohDaTqsf}=w#;_OZyP_FIcv`0FnF@~MQy>2f6%eJ{ z(IR(G%b6tVes%*7nc$Vs@p@OdUC}3o<$Yx-jLVj{hAwY8c2tv4z&7 z-hWR<(2n^>u^r;Q7R#*!-5M9!R6VYuT~`0?j95P_o&qv4A+Zk4*g_q2r?nr(psx{* zs6R0r@|vPN35|Lw+YU?9zji-O?@7>IU%V%~iy>7M@#;uLH`WAxUh;D^2wR=VEn`Eb zIcW!y*Y~zA7kT$z+~HRbJ-GR!SWad|iR zwZWXAai1r(3mRid7(@zjo4|7tkvVqvBw*7l`i7^xE?X;)Eh`W6&U+L)x_0qNFv{wY z$9$H`x&ddCI!gICJy`6w)vIpxSge~@55xQGLmZgt4?X45cLWFJ+c(a3cpsv1vs?c7 z)6v@#?y!|+6MV7*6s1?lRMa=MWaT9VcCF+do$x@3YYiyc-+@i*kqFM3%Y8YaF z8S*6kT;ZHq0)!Mbe|tJyG<_&4j;>-#%<_XaFpH1#jfX9Y`n^oHGi6E%a)Hv4Zp_>p zx7{ZEXBEwqQ3yL?k1+1|o6KBod~djia5(kF#XvhQcM2%K6ktbjdPztb*XR>fv&LXO z7hX|Jk6>`SG`pwUhJNwNRYdN327x9OqO2w#}@UOvi^tWl?A;@la zhgonyJ%$_sXcLlYBEaZ`YC(5gXG@-EqTPfoAKpay?Z}=}3!?aaZfLxJ=I+?Qj=pF| z9kU8iJFE1FvdN~ce;%^2hTBLI*>^SK*n`!f;*<5WV(=`wE~tQvIS86j6(QK8)v&3y z)7bd*Mm?>+v*OhEvymx5H*GXD=j=$IdU@D%>yhrEBiydL_V!?HR@&+xdDBTDCwTA; zEG-9wRx6AfYcTSW2$OX1bomjJ_H=&y>C_~Le@2{wa#fKV=^&x0`cn9+RfwH0MCj0) z1d(J#D|uJzDu+Ef7qK^T@x(kAn+zo6Oo`y{Kw(RuM<0@CVht>B-6nD0E^>&4=8p^p z*p7FvGVeiDFDX_HAtdQr zW2#Ys>6Y)Ax4m@0_`fnE(QcPi&>eLSXhnEQaKT2KX#^&k!3X;Y-vFRVTlzyll;Aucl7yppJu3o6pzaB9%ETaVl3YiNZHjIb5Wcs^f?-K*|35VXEy@UG zjKo}hor~q2KBtzN-awIwl|PH>lSqM}FyrAacMo4`zlUyy>Rpj^($HjV>m*DEik64c zrfkT;Ds?W#uZPjNGvpYIAp4<1%S~p!XbN+k!|al058|GX;{D3T7ft-}5H+5aJV?MwAeIItwR)-2469seSIG_jKmo zt}OunU#?7`P*=OvOIP1O^ zsK(x*!mIIbpawVX9}u&0#Y?etJA991F7)O4AE1+>999Bwk}2i3=&_N1f7Vt8b&hzdUh@W(dI$Sk14WA}Lt0 zYwW=a(tUG$cx_5q3;pFA#&QCIHG20)O7sEZT&$`*<2+2Mi&b!gqRC*@u^>xw#&~|KAwA`?l>CauyT);!+H^L*gVkZbMyge z^#`Cn-N1`dmbSkyy*$JFA0QHbyeNBya5^*6FACwey`s2b-+07f6#s#N7nv*1062jH zGn;^E-kT25S|uFD?0D}FL&>)Bb^E3q@4n@IT#Nbzsff>;qLy*jywNYJcs8PzSV0b! z8uNK){o=SUizv?h8*4e@XuvgHlr%wW^oE-OX?UgIxC@5<^qOaPx0T|Iz#7AQ*HLo;`FTjr#c0P-(U2Z#N4Wv$4PY6s3 zo%aifr3|~$P0_(=e?@V*+eo7}sPV0+>`nS`Io>mr$ZM*V3L=E#*3bLuv9h8=5Aw0D zVMXt!1_}$kGezWWBXZk}@OXPHepf3ojOL8}Yl(!-Na8ijix@uyDV4zLhYBMA6=_J` z#>Tjg@N(bxpZ*2K4?gd5&VLDdA8C8MsyTzuVeL?0NfxPX=MJ)~p+B6*+no1WzU|z} zZ@kdHHM+*+ikTrU($1}0aVPd|Cp)x3dq`yxX=8@zzxE!16Efr(iKb?UVR|zC{BXml zO>Ai~G*!UK>bS+BS^5k?R#@}OF>CZms>cNqrv)G0QVwk}WIyU1(U__}CkPBv43vqT z(u%&8eKBJAjd(_e_3&q&uZ+0=yFssh=J5d$vRM%^izGSf4-?rhc4>Tq3hi7_XP)@9pV`~c4r=Hmvvj) zIZIl2&Izh;f-D0UhkVrg0*DSG3<61}lM$>%Y43DEh~ws!XMemi>oPU090F-Sa}Amm zoeZdk4^%Ojv%QHlcDir4b)YC+fMtO1oqexZOa5SAC+H0P(|nX`8;96rJP$4w2ceqDNPK z`BcNq>O|y@1PUY%qH#HT#sS!lFhae<6OuFx#8eTm+c&F;$BYz)L3UlH&1FjeM#0a& z=PV2n>qGOljp|*g8$IDNd0#IF)JU@qq8tcz#~TU$mhMC`lN)~_5~BwT8lGlkG9pD> zIB=^(c=ddLPNW5Qc1ywBaW-mo$B}||)Q&bBn(ngqWH2X#l?WPS*11AoB_ON;73%?! zHhli`B>yEVT0L=XRkE9fJLL7i}Dupmk3P zYMxK8AhGj{1fJ$k1et%~oWPd;@3^l9bs*ucBOj%7xJ}0>;m7>rOb}!Fb3Dcy(zLT) zEi@r6uAchl0KE%Mf%k+{h?{EjfkH95Md{aJx0DbWpGvFdLxv_JPp}vy@-sPnDKE#w&IcO8V-@Np9TYyS(8>B?s zQIq2@qW9Gw4Ge^i`|^M7wBAY-1H*PB7?~es`08VNn2N{~I6lw1r+6eJ&l6U73EBAN z6i^bhtC4b!aO?otNIH?9IaC}xk;H3yigTD&Te#7%wb3`@AiwEcjp$Z1#oz-=JBO1OG3$V`-XOLa19vk5#nidnuEOs{ z%=ba2#hF{WHnxV9)Uy?SZ!#y)RpKQbqA+t};IIEP?0lpwG?7v4g##rSvka->0Wx}% z7@iQ8eLjQ?mKny{$WW+IIKyFg0VOG1c$W}~C*b*f`MrnZqt*9rJhKtsf5H@1t;NnV z@@@7bd?`L5Tu`@sN9&Iud5@-s!sVSA5FGQ^9t{F)Hb*7$kQ6SX6T2|o)$A=Mg{&RX zhA+qN&a-5rXWv>XjLWQ-h6-ut4+&r_S}SwmF>h6m=tk}>D?FCPwyV@>>TN^0mxtJ> z=t5CmooocjUyy(79MkcQH-=WBQCsd*dg0LIRss1l#glm9-3$%II?XYMpl2_ADbHMQ zWlwna2?!PY*U>v~OIT+?C*w42;$}0QFWElR5x!nCeX=ZtlqUPXi#29J}q1s(}+)Sf{BR#Px)D)RgA2~d4Wc5J!IH0h}c7jjy zkyo#==2N|MO)r;;+!CS^DvCh*Gxbc~HfF57FH*LbWr&c){xi_;46L-5pDl8D_AY)1 zI)rJmP({h*yJJi>gEkjNKD$xj@-0oPu~@$k7oDt2NOYFTPiJ1jKq$OO2(}G}LE!;+ zpZ~UfBYxCykx$)rIufnPM&Kw@-CYgSa*M;IFA_UGzRx9>(&M9xv*cisahI_?koSWoLcf7b6Nmc%FBa6U^k3P)w6@%Fn`mEwxmTFg>k z74=*ZNM&*<9*H&-cS%~$8GES&r~IK`Uf@$(i;@)_>Wm|4_<=xGXB@UF-nxc=4Fg7} zD+Dn$UPAkf{b2+Pgi}+q$1XplyYk7eVOS%}7MILj2e|+`{PkJmZ^M}zX(c*oLudax zVQK7J>i;*{KTeTX5O8E-pzPSCr|pqEsr3aceJ0R&9PwT8tz2xJ(4nI9Z4kKOmyovtJ>u+C|`<$`0S7LMG)NzoakpwyoxCvh>hm*w; zd*wSHNHkYT3tmX(K9>=E>%3s{KrAMm_{D&t6UMI|BrU6T^9tq|nd2EB_v#+G?zz(sw0&M$B!lJ~;uHovsIFF;sL0NV-s%@`9grv=8uatkGE zkE{#M`^ULdBA&Y`|A(rxU~2>G+I50EEfk8oOL2E-i@O(>;O9&%1G)ALpJ<@mh)HOnN|D~d-S!% zAx7#Ydrf(~ONTB{fi=$Tu6G{>!J>Nx7e$gP4)*P+7G0Kn76HBtQCoaD;BNR!$~<-R zZOkg@{&Tm_=ji+9CrZEJe}?Xi8};#)brS!4(7*q!B&H`4tmjZ}R$wNQW#Lt~DNFKK zw#L|bBo@`oy6g~99Vrx&KPb8v3f|t3P?>GNA(G*DnZd|7cj)p(72gyuh2E^8=0sCE zAO=;TR*zdfHqFa@pr1oRdp&`<5|e4Dc&8pcXjN)y_130T$}ev#t(t2-A%QqPwdRZ?-7%nV<7NJt_VFl zS18T*WgmutuwCB9a+dA7Ln!_WNjwxk`Qe&jN%26gil^gaK?t?vH;t90|Nmk$iVOLfICVZLv&~6-^<7 z^kBN(<&gMzzwV~q2Xce8@BX}#5HtBGDk7~VxE7C5fJJ3dOp?PmSY_pq<6;#q9Y4tJ z-Y-(?~Tb)3c#IrnQYRNxylZXf<;;h7Q2{JX44EwLHEeq!^lBd1bR@KP!U%8 zK;=zXLe%M~`EU+gB=hrc21#*Df2sF$w1U?rs-7fteQ>;qR)$2YXY?nUB#A@-BlLSM z$M0&3Z2kyG(lZMywxsw`>^ZBSlX@sW=L#ma7HTrxh2#2f1qgUAYIu53hps8(Q=Y&o zh1irT9mCBxZa~Kf6T$B{>H`_Ti#TRMRI>Oks6r99MI28f^Ps;tGEpJyR)|_rwb$*< zS{~uXQVvNzQ0%r8-rUIqz*vqVXNSxLCIMt(bj;fH72)ywqZHIl^DaLFi%m(3=J-sX z_#`@%H#%H7wA^EtjCFruPc%-a$b1kOj>+AXGlP9-5vd1iQ3Wj{P7L@uJY@rXR3z;M z-9@B{S3@WkLsxOvW4`RvFuHKSHHvh-F>m&$Wua#ckF^Ho(qy{^pfE+8JoIToL{m2AqsoSnif}lYALPwGPOt@W6{0OYmi!sBIgdi6kx)Ta&~cY{%qjU2KKsnuU<|6_G6RIq|j|S8O)y)%yoi|I>ZecXr>gG zug(Yc51+)g&+GX5BET9;Zs3;D2#^Uo@q_X6AcjsV3n3=|eZ>+}(GBTQ+ z0D`nZH4c#Y>9>dcBR9Y?G;M7wAv>%BUBbnV^(0dt0V~kvD#o2k%N-3di*m4A4G`w{ z>bdFoSYZGl9;uL5v6@}Dd5%??KIqbu@vz-o1pMfD#u1=9v{c|&Q&z20bYzz#|09;W zu%J*RYn^(#pZkZP$w0Alnk@*#{q(k(QD-8I6ZVV14o85cCG&HG80Cagrguo#FgLUQ zg)ejeu8`nrbns`4*pVjOM<d|tc7tY))>0(vKh?Dy@+VQi0wq`Fdq+^ z6AsjDa{(_FGnR|wh1bGu{lM=Ft{wOL(F(*5%p2EjD59P&&x&zZMlt@1%wUB{c;2%I z&wH*lhc!~z{DqVf@7D)IDHs1pj3xA#wOPfMCIg;4ZZ{ugx6o-n9nu}Yj;89JasNyqgfrV}rtbUT4N z+80myz}&m5t~LQlyO}x2p?>W&c!s*la~wZud;UuVdstZ)5XKLvLYy@R82Q?B5WkFK z?Th_rynH!*&hKyn-e>ubr&Q1FblcH~2FDiz0U7heE$7(rTca9K63e9~8=ljC!};^x zW$vO5ecYl`+fd6Vf}i%ovcrRW`Pm>K8{vo z4neXouJ$`I4XHz5ZdLi_aCuu5#dxpKIvXSHP7`BT^^nc_+NUtjjpswpNa|&(zsAvQ zA~F@KVF@N{{#`G*Pq{wB|7d-SGqUG7)yyf#X-Q9;<+-h}e#PgK=|x%a#e5!Ks)J!r zzVbs~e3u%7>O5tXaz{HO;nX&RC`cAsKr-@a8|YT;N&5|Yz@3dcc12XX)8?nOkkuV3 zal$qL1@0N?F%k@}#XqYtQAIsD274sa!9-ONySjWu)-m@ud3q%?*NI^oDpd9a*c0E@ z>#?@8j!Dx>0=s&EZtJyghly3Q%=)3Hq-3`afxS-Z99h)X9RWo+Mp%K4B}#tYiLm|H zzSTdv=JfYn%iQ&~e1Od;c5LqEAMzZB$-?0IeJ23Caug*7OCjjY&bMg)giVTu-`1wP z^Awe}C`gSx-dd5%_Tu@M)>;Olrtz=pApR3y;gcktk!ySO6HnqCJ+BR(2%b3zqgr>* zon>D!L>kNolmzL8ieV}<67Sxfp?~05R7GlI5O?I;3^tX0s^>3%D}RnWma#k`h7np8_9R15(5qZ*Zqr0x|a;`-<;K*6ezrb zFK7Uugx2Gn(4@jK6Zq9Z)I7;(xhcsff}rw%E%uTQrFi!|U@T>T*bIAjhv%%FAZ1Ep zA5Kz_(X1SMav=)u8{W;)Mao*hmuFm}=yd;r7b@E!sKF4#ss0Y)9a3IWnf4*_diV`s4v=b> zuI4Fyt#WI3YZS*VK&feheq~s+4EL!ZelnF8h1foExArMDeY^&wEFig-l>opUa#kC% zhq7lLpj-O&?H*&!(N%65UclQHvO}v)B9sX~LuXO+^NzP`t){&!lUs9uPd%rT>uqVH z&!*P+as5A7jmvx_vu)jq4uxbpErcy-WEA;8Y;W{+g6T1h2Yc^KqzjRtTbxjW z=C|_i#CgC@7Irf}BX=@8R1cX@C?+|0#_UxW6hYzyufztybns50fdMP&vc|qVj_Wqd zx2gY@+S$i6x$m8j>i8Kq{>w-AhxNg@O`agz0etFjn&U`yom~2UPo<4)zWx0FzGDib6ivfnG^ zX^h@=df)+W0uR;t09}jNh?=2L@vo~v&T&hw00MN=CFKty%P8d$T-h#`^XOT2jYJ2$ z2f+-AGVg=!JLe)U-W&|SS$#YGE^kzc$jg+u>l|Xdhg9o|AV$9G%mB!a4m>QU7`$_Z zl)96Ngtt@9OWIC}@F>g$1}~l*()o@R;zcTGkGl>14bi5#&cIcNQh(R2t|zs?XZoLObVmX#dfMT1wJnxk?xi{0Q zYx0q)-ocU45M=z;eAy@A3`xs1h$SNE2ZQP9Ms-LKvIC?$S zpm$yQ)U&S0zXoEmXJZOm=9HL4ci6MWkDDr%GA+dXaW|PQ=w1*i6t2S@G<8Hhuo4l& zj{lqQ_LuYRFTo*l9<{;vMs>)!ERKy!LcoCcL;Dmi?)He~TtTlO_a`FUr{;t4A)2Vv z^vmy{$>tfZWq@)#swqFO2}kT|yPhyy_(UUUOp2L&gaBP+1rR1554c?_(F+`t&^A8a z5k_s9%B#8e=8$rzkFnP@6{!`?uVa^OivWLZgZINITnc&Gsxe?Lk-&ErlPF6b_#2$3 zgZx^an$ubb>w3ZJlg2_9vu~qdvV&s3VqH*RVHKp%yOqAO<_`SdJ|-wsZZ6DL8dV|! z)@egX?;&~8KivZC%FK1*JSL?g?^YqYhzEe?3Q2Vs8@9^hh+`AG|Eq!ge2|3$j#T^; z&m!o?fgUcXeV)s4L=p17PARc2QW&5L@Sck--Lg0f{BYE#x$rOyXWum0=cPT>)ev0; zUWq(1o%a^|?ch3!P%VW~?mc?%{50!oMUa5=iqyy&Au@m2rG!&D?x!V}1EAhN$V;>@ za7wB!zu0f}GHwNuIrCjaaxnX(usK zA|np{BmmyjF+H+T;pRt!CY1o({U#@D8^Mb#;saA1F?$r|9mU#r$5pM%5X5m+R5&lM%!f(@c(>Mvzjt?wz)-JsCydISDq zhNXghh!Q)@8@o`cvr-4I;{s%hVoEH5!#hk&W!l;Q3DK-0;y!kWm&SxwX;T?E^AtrmdZVaq{pZ>AkLL$o{#4f|EIT$?XUCh&;K+NX5IZ9qn7suASmXNRQe15ZfxgN zp$-C-*&h6qm$9Dhlgt1`cVyWM^>G|*#-9uGWTY~B$>#XklAAnyX~k+3 zw+1>O3lVmHangTEDX2MHqkyz_DoP7~0-bcclMmSA651pvoIJ1ayWoc0{cvb5Fe}zs z)Fk~*U*6GXU_ndz=54*laLZe~tx;X^;$GqdWGx)$0QH9FDkXk?gZ5YGd&jCl`rgH- zGcJM{K{Uu?H}70#;sRflx4uKA3Ko>|`XQ<*V-iaFU@7?d7`?4=6ja%NKl;Ky>8H+j zsE%A6yj)0GL5l7xF4|#a#`)MSc(rg(T1b6LBj1EH=-vfUH6ALNn`c(&FB3R&zN!0X zQbE;z@f)6OfOQyK7p1oA+@cxMxe4@(S1G0bT2z3^4bDU7%d5r`N>#t1;Sc=5(dXXJ zITs&(Xz#8O?dJIJ(Ujiy%Qbhx5V%s@L8*x?hKf=W5jB;)Hv$085>qs*2+7-p&$C&K zom7Xwy)#&xlij>v_kMsxeY4_Dkf5s9(R^huA?6Kb>UQPvD`eA5xYX}{2s@km2JRSL z*`!h0Mdh4)b~`PvaTDnrymhJixT^C$?7Z+B-*+ylnq&s`_-rzW9V&&frOe1%@8O70 z0_&pPZ`I1oajd>EqE!J^yZ8~iXmOa)zq*K>+taRNHWB9cSVYpnYw-AAotB>PQqLg~ zP4lS6LLV_N3W+;tzRk;*Vjp@fB(afo<7+MaBBc+!`H)D0BWdDdD8!f>TAXUK5ll-Q zMDkCN-+>&joC4a!d=b<*372*PBx716)4fAv(~%)ZoO0mxh!8~Ebpi)%Xz0Hj`k}A3 zFA_`)Kq%Y)thLwNj!om;+y<&mvg=sTfXO-PF@s-Feq{e!S0%g##J$@q zY=u9-tzP_eL~-4}i7lqVkYrJxs3}HH%7BjYN6){GP)5I3z1tiNkVYRB$Jw2u^^36~ zlexj^6GjrM75yWPx~G0L>Y35mTvFv75Ey3pqbCVQGvW*5MJ1`GaA zX!Ah$zCk{g^7+R)9`mon+!d3W8P*{^%mfGIFvnN;6Anxcpj27NRn9tY&0w{nKjPt!7;90xi3Ox&vOk(4j}p!+Sp>jUjVON|cnG(erM7dmLK}n%ZeNQ^ zRsFUb3E?#Sp+&{K7aqpt(iJJ`^jJa zp5zccoWP76Fjo8;A!A#91n84I$k71E9=dwo6?Py^u?mDT+D6a@rl4K_DTZILs_W)Vb0 zZNOqrFUqW}Q$MAMCZ35PC#$XVb0I%p6?rkbwh@0+L0PLO{xsuyd&vlc<5uJiTkCpB zk5+#FdS?qESYA@Hu5L0}vyHl4bFEv7r{AnO;3_w{5pbO3uDQ)$j-Qy#xDL40meBkoSgXHg1aNxIQmL_& z>+i+f99+45a}11e#r@Jy;MR*TXOv2SPTrH18&fb8*tbYyPN4)p)$TM&Gwf;_L5ksU1p%z0<$aC@S}vnchLi0C6jpRn zorA6`QKmI0Tcr?=q@Jb>wXE(AmBUoBbsYg>%mN>*=ov?ln2w3nmJCjrzh+s(OJ^JR zV^=e~dR0zR+ma(u@(Ih!b*>D|v{i~7YeY;P@kq;f>H`Z%xQE{M4Uj-|wVCj1lR$=cF-pv% zDbw+%X(gS`iH`obh%@0e7%4w9ZY`sv`#F&lC~^rnYLhhSY3OAdmJDc`JMTG!kchl> z7QjXK$R6l+nr2*aqpwhaSwz_3S*4cq{$_3xGxA1(q7@F@yjeM2vl-(f2wGp>9(975 zQ*{?szc~McKM2GW&tzARKVm!O&<5j9=c)H2y~>+HyBc+f2n0-T2w0C$m&hYLic7L? zre#Tbcf|Gc7qZM>CM1dkx2Q)7qQT^^_-b16KN5=O(oNnJHzD|an!-5#YS1u}SZ)Y0 zG-99zZ__XxZ*OmNS8w{9zCUp%)VdO8%S4gc#9SjorJE=uqgXKJxVWeRY5d_Q*41Ui zjAu`s>%|>z8`fxMIH?rsTzFEs*i_}cbcm+k z`|l;FER`kFbp(dpHNkUVsxe)}lXm(+(t-5Ww!6r1?)K8xUz)M$*YTdC`M7Dh40N=0 z4}i%G{L>>F#R{MqZvpwf9X&-6#v8NPeS@ian^9XDn{mGu_O9@MAErYgbHvBB#@X*)NWy4&z z|FWj``+LI8dP?R6Pw^PU+RZV>xajh7I1(DI0&Pl(UzKI@SDp-@P8v>F9$ zY>MayOBMW)Oze!KIFxX<wC4%TXaUU2z-x-TP z=OD^^;EVp|He*0|ex}7Bf5nh`bJ32DjqAgSLSzO?7~`(>@aF}Z9~}jD-U@Q+IblWC z3VPCIY%Rr@)2d+a|~&^q{h zP>g_plP32OF@4$E{F#o_-tE0x|qZA`n!PKR?ApT zS-FyQOL-IbRt`l{)f)=PCHd!7*LF2KSZSKC7x&;!k|Ivt^7+I!!X&b7Da-Mhu5O zgx!zIq$(85mZf<29BJ!}?8#R0%E${I_|*&s_z8=WoTjxU(0$LbOG78F4vC3tsN@CDfpoxLsYqfNI?H&DUs>*sq8*Xn7*1YIa4uNYgg|k^d_Gog`ig|9$_sY zW6q#}&OW;^N11kg!@K7j{-KBr**w@s`cSR;0CmZ#DunSVpTKd;?s7dh#|J1H5d>C^0zW?|zlY$~ zi*{6~5C$~q>F|0f(5;Lcb?WO3(hrgNxn-1>mL-=w8HF5S)lypPI$IN4jI^xdRw@#u zMYxLvI%EwViILaror&v5dCmeJzv5B5(;Ln_wMg^p%;l>M+Sf+} zEh>5|h;-$Ia<42dWB|Dj;_>IGZlQrUfe%RkNSYg|YLx8`rX^a8xj%8t9K^X4;VU6w zllGR7jA*cfvv1`U zeJ%r9Z6;{m*Wy{gX|lj^p#IZz0p87; zMaygVkBd(F&yyJXH?8LSzrI*N0&GflnGN`dJtt+hhvhZv{ffSHIIggu2b*Olry)%6 z06#J9u^0%EUKu7~B4=BN^PL>m^hlJCrdz%3?9&(ya~;-L>a4^{QPXE2rr(w0X~=zc z3M=_>K>u*^aLxRmfBmPi?ge8oA{BxMcFf4RO)eH+I)*iizBK_{ZRzFJCkGlAkjw~W z{t(n;Oh_rn^4i~fXhTM)QfeSdm-i^yR>YoeBbEuGlgjwjUcf8VeXB*8yRc4eK*%ja z8Ed`?SZ5Fl4XLXgP3AFf-#J69xqV8hDXNpBQB!AgbV`{p8T^^g2px#Vv{V;?p${(% z%TzyG1q&L$e7DJ<9uTY`P*qsaE0*XL%(RDt6fH|KR9=7021(_&$6aD`mLZUK1R*DR zc(G=r6jI3*IY@sX3tCF5gl8(aryDYLbY)#q?UMhezX+?H4eKH__~G|-BxCsBrAcAdi7Lo z0eQGyS>EUDb(BPv0p98J7q+_x6tIv+{whX_>9V8Y?mmhe@{*37eG#O3hu_RGZ!=D*&% z8bClf{+~x%J9c1vZ8L5qfkwSFPH-nUiBsD^FAKusk1vV19E z7A}z3asp*F3z~e~oF?9YZWuduW^g0g3_#P4kCX43eQSP{==$A^&=lh(x8&lg9n$BPpGxwG(mJO@3HR_n%rwbw!%_0eqh#Cb|j z&5vx@m7`1akH1>Rpw;1dw!mg}d&PlObNf)nX9Yw*-ByQtvknIUl(B(dPEVmFf+xj& zuFO-X#Nx>cLYzrOokA~cbu>dIw>A#HlLF#y{DeiY*nTcS3SOXCpm$_g?-=;eqhcf^ zWzMB}Z+RQf+o!Q_cB;qTQgIfD9&8;gIy0jfe?AJlopjA+eyxzt$Qt#TBm0}B3>pA? zdV~#&KlP7%$la=vP&phIK6*&cx{^iR3IGjk5&v-!cF#fIWsnTODCSu#%c(uBa(?-D z_}1X;(`k=*%}$}M27(XQiISvj5D_zoG-b=F!Mrly$l5R?{-$0n|JSx6-M3mJMB!_Z zNXvDThT)8wPx_>3-$F*K1*{kg8gmrsPh3#{S~D3wko^;0asAsrHv zwq618<3g|5Emj#mjQ2r>PS>+$btK!lH^`Vrf;+VvPW;t+RvQ4zNNa>p1oQH2Gc1;E zIk|@>=DCKBG+!lRR#Nh)Y+;f4^ux8| z)$xnzzxJoEK^>d8<}@JcZiR_iA7i48_?_dO0$x6_l3>O{lyaANV*(y;eWysk_@O)v z$PV(3WqaBb*3U?1cL!QzUlWNoI-yL@#nhZbtG2(i9#oaEG(8>$wky5V|s6Z}sOJpRli%p@1#m z!fuu6k+b(1Z{C1tk#Nc1qQ^WD0dH7720k__s>cBfuryCr`r7v1f^U z`F{vcftYTK`8^yD*Jwg#DdUQl{$?6DlCMW0YSRRzI+en4is$bO5@i=t$odbLX4s;F zx2X4DB5UdPf6~?nGwRMbs3!1%i$a{c)Cmy?%0s@~pj7av4ZJ=`FO&5Vk>FYG+z(JS znV6@EzVSlgmP2zab0pvJv4->kC(ft&67>uiF-g*~HCQzl7eVK(Jl`;?Kp9!;@P!2U zbudGh2re{BoHyFJ_Tl2gdQydmeVrYe2j1{eHr8sEwu(SXFyZuIM`p(p<^Ou|UaO*} znOeI)I8+iImw0{vgP=w8itpa4@tm1QVh@zw%&^{}00xM)H%|TK2!W|cXOD>f5`$sGk$Sx{_!bt9_>FxnII0L+|!8zWhjZSF1VEzeyY8>HO zVH#39I?#=}ItP<{;F^7+o)J0Rc3c~|&77u)MqM!IxzCX6j(DWHa_f@MQ2FFR`Jk-q z1j^H6H8X4gVzBt;Y3R2FCpxyi4!j_-k0|xnMW3&Mfri)!vJKarDQB!U4^*64yVg$z`&tML;{HZXOpa3j=;F zM(Y*^C@w{lWIm;zR)cszC!P3p!ZdOlDl|5eEiMP#fymhbm&|fpxJPiN_j93lbfNGz z3P8v`c7qr+hNN2Sokh;x_+)8_kRU>BP;amt00*84Db*-~U1oDCCnQ1)3Q7ap7?_3hto zitngk1l-zspxC{Vj>)plH2GqyXAx6rTu4LnmJerkoaz8W$--Bx^-N zKDnPoI~kZ*368fd`TdGwQLiAyo$h+X0T;(YxV~I(px7}9{lQxS3t)t}X9esk!fbR+ zvXb59-u#VaonBfl?8-hmLsg|r-1_BII(+IAf@DD=JeFlKzo(%$2;N4#xBN$w)8RX{ zqJ{eQw0lz`g#kQ}6Mn~~mR{;}G+w=?B!_S42vJDw^h)asK9+(^t*}{mr~ceJqJt!+ z<*m1sG^nNO=*msSZ_sP(9L#rH+?=FU1IkGg_8SF`k`odG#8Rfeq@tjAw@hNVSq22w zM?A4HT@^CrE=<3(Ao&i@E_TLa(&Sf}63S1Fsps8YSG)?%rHKYgbCmz;W!f*pqG$gw z!}p8Wn_s3|+@EhTQ@QE+w1mogAMdY!926^(fyE_s3N}B|o82G2Xu@&mF zj99fq#l>NnLQA=$1GlgBy3C)i_0E)d67++2aP+n9l|S&w63QLi$jY%=v=m~{W76G^ zAJVtfD+)Zm9>y}^#1SJ-$VGw14_;4x`EwPsmh|U09i4#k$Jt~%Esb|d9IqeA`L6=2HPrCMSW&vk>sUk<*Y;TL!U6N!8y+5 zmeO?J6GN{!HCZZ6ZTIUpNvLCgoMfUGO8uga9DQH3;S0qUk3_Z?{}Y*9G=z_A+*tqEVv1k z<#|ne7&X+0%?1w8pwSJY_ve&--1jh+yZy z=OXztTbB?6=lb`YOMw!fFcbn`ab53kdRAA3gZbdz-;$G`k!Qf?$kX3h1}HmUQoe>zk(8sG9g}pbniGcv#UH4KRRbb$j9WTxjb|NkhwQMl0I6(rA7zrar)uv%WmqD~e^iHMhz6QOxXMZDa(NZ|OGul@h zM)_T8u-#B*j=k4az9M2zA2@h--&BsK2ZV1CK$%cVp_MERLrg&cXSLjD%-_ykC3eE@ zmjFvm_!DDsj0ic5@p-ve4!hUH01t*7CMQ3`D7()Oy|FpG|8cdMKo5o~cLcx~E>>F-S2t0J3poyR(y4Yz8!4`xSSvw`s%Ay`}_aqU3#TmdOP2BC4p^03P$xH7v z=@~mJ#c{d~!;kGWG;i3O5$!&sT zX9RbR&+X_%pgFZO6wZ4E(mR_HCZ#s$Vm-5fKbu)=TTSp%umZohh>ohpG#1}zfPLdt zv#QrTL)cwTY|7Q#^MEsO2FxKlw<&C8N{49u?(LfA#mz?r&xi2ehc^lx+7^zgS0?cn z3|YkS3|Wh}?-T4p=JoHYWa6R}FG!ljE&gO-2X?%_f7xRk`p5bozu^ST&&&e~bJym4ciS-5bbL-YUSH!48t3-jJVs^Z;z*Pr3enJ)$FpR7PsGor~ODw zBQSQ&+ln#ETD10Wy-tK#rz;##SwbE-W@`ga7sR@BCm4VI_ZUehw$<{LL@eY&*JzW8 z)95GCGpwk7O#T9JNhhl?{q{WJS|RPypufrTDnmM?3$zd03cTWGey?w_PRwm=_4BRq z0|IB05=$lu^2~07_T2a%-6FurMPWl*W%={5Ao=f~^ESuv3fU0aR<+mVcZ*ugtOwr* z@k;&A5YQ1Pl*79uyky58_G8^{R212H>bhgzR8$U9bx#6|+csX68w9yUTO!T`{k6IE zZ}^vuU==CI0@zbvGD;F36l5cPN$1x^0^qk``4getT*5gN0vtUJA|2w==B@9NjebXaq_sD*1Y0q0WUcQFab|KSODxwLp?(+8#Jn&1d1onz!ar_Dv`P{C znw^lZNpIQ@={wHNqj1y{g%>fb-vpf6EzfU6l4megCB; z{6Vk?o~it+^4M{$B}G>RsKS$m9^$YheJ|n7E~K3(^9hGOp3~+dt%*zaX@!$peij6O z3E21^TR{tU8hy=msR4a(vvv_MUiY)u2`O#4y!o+Xx|cVag3nW?CcQ{rhE7Oa`fMQD1H?&Dp*1zU}s!JjDZVfEa)`GrMx;N)*N zsi5G@cUN<{^TwUh%9(*~>1qfWl2*hrSkceIihs;u2^v~N#5cx87IQHmcmD_zub^X% zA>SQ8Tg$@F7yDqEil99jd6YU`6}J3l92ToX0t=mlGLC9Glfzxk#)s_(+7>yuhEMI7KDIo+InR*j1iHfW@ly zgnj!khIYZ$%5opivZ=KTj3bWwE42M5(X}W?rGbbLuC&-pZk`->W-9WhVrI#$fYM%} z!c_}I61%kBCQQx~pCgT^mtR*k_={{ltV*eCrE6#`ndGZN6dP1f$Z|IuPSNvgm`53C zax4?Zt)tQA<&|}AF~K@ms@KhDUg>Ke2mRV@L3#{m8&l{QBpYNiY7I z|7*MYj&_ejI;m;TrD*|+sCiCbJc-U%wwdX1LwrJil@Y>6^=T74eujuG} z4kMi*=tdaAtp3Nv-$cmcTdu?N z_na%>@jotOSpHk@@4(`a|0YlZQ*B(Uz()X^S2jaQy29X!ClcW_Z3@@A{FQ^o0hShD zAGxiUR?UukhYly(*}9>vf?!2zc2K?pZYtMOx2F$Q4yx2>oy0rMd3OWYS$^*u!PC^8 zXEH)9?hXM%Zw+R7tv@ch68cwZ@W*nL{FYJiqeiekxB5^Er$eYCHdHx-Jk1yDa|TQb zf@bX}1RMOnS2SlVx$vUlC7^DrvI?Ng^!hL1EMN)Bz#M=HLY-%Zr6we`G)5j929ykj zFE56Io3Z_Ag&Pmi_naPTmP>~rzEYArPqDjAl~O|jfW7cj*`J95GM?UU*Dl{`5rqxhu4AMKrNIZ#VSCKf1}Bstg$^!~~*nHQ*hHF^Qs)`~b>_t00KEB?PW zM~oKQ_|*BUC7QRENYE{tVwD)``8he(L#2L{yMr4=*+oM+GXbd)BpB8_da;^II|iUI zll>_Sbo_mpRR($B8sv2%!GRPFR%|n1xuRhRzE}$=l(3~-x2%v1JB)q@G%4R4rxpd( zpn%1-P;4w#FIHm{MB8e*6A-VwrGzqFP}Yw;oW=)!e`Mon?S-G*f1-(WP+9HYeTKy# z!B4{g?SUL(=NSwlH98x6psw`q5`*hkmUn~9#$GOY!_$)PfQ$!v8wvD@a-Ng$Bz^=EVXcrK z!rT~qQvnP{kv-?tjq3gl<*Xoo8bTeH5C!Dj9J2B+{=DOd#GBH}(;r`TieQqK76@??$c)Z8&zSgJjk26sLGpNbsf94{0T*psbRYDE>0Ox0Ux@}kUV~ZtpZE65@rb->%4seIP|R~-YmTW~8GwCp z;$S8;AkPK;_tO=arR(v1Hs6R(7+dmDal}XvIJJ6DNeeBDnt@=~_^VSa>e!bJ@seFe z(iG9T!Y%u;8S#CSaQ9$7wMS8L+1e5RBNpO&&*0(jNsj;Y2zIy-O*x*CB~j6iQP;d? z_2O^+itylv;aPMMWzd$sj)7o^J8l~~^EZpiOS?Z1bY)UJ99R#aq_S-gSjQ?T%LdQ5 zSQb#mts?0W2KlESJ+AP%34jA6OtYh|O4f*TOlOd1X%lb(OZc5pU}U=nhmEyLi^h5dKx>I z>;-~&Ra`(*GSGmvS*6a!b?-w&=ak2%|IV71qsR9{yWMhh>0JCmc}}%6#Q8tr;`Zw1FiDr}CVfsZZ%h+iC;EXKtUou6G7jXAEq)~%{0JXGV55@B0H zyktQwxWkPv&MALOTTwc>^_+a3P@129EMBSQL_&)o21+H@9%aV6>6Fv#fJ@4OVfCW6 z`Q~9!*|?|CtCAq%j9-(QQq%aqjr5#XP~ErDMG4N91T`^O@yl$*nBk*ipbmuJNIYWA zYh-~=S(2uvPm(W`_p1*7-Ujx+fs!+w;xeBAB1J_)(@fda0EDCokX<%$)@t8Zp-PjX zWf{<%$gFK4`LkJ5#0|OgDz)y*u^rPX6I>=y3>^L_5TQgQz7J>u0o*hmRZfE5zTwn-R@(07{365wWBpl$%=-5FGhJVEfNJ*t zYwEh=+3cclB1+XPrB%B%s^}1V23-_2QZ0%qNocKzSt~U=?Ae$}?NLNZs|cmFgI1_j zQG4&5sxRL^<^A{m-uK@7-t)WXx#vFTJn(T{g@ zYI%@d#q`VyhrKX{*T33y(WqO0L-k>#r*WnVBgDD~)VcbtjFhOn(tWzpst!isrThgQ zIr35Pwy6F=lS3Ow{|(liSHmGJcq?fH`~0Gj+^cW zCO@f4Qt<m(C3?n*gjCz56uTGf9+Mfdp&*YO%z4BK>F(7uS6%>>xh@H=x1 z5Z^WA7C)oW*|F4*2e!d11CX(lA7Uj6 z&CtV^^~5ZRD%w1{i3Ja+x?E^XSa&*WM5ulD(*KZ=#_yg}J~7A_w`L!Bivuh)3>d!T zuA(CmTE|c&5N^woZp$9763xFPVI0Kroq#I`UUM^GosspqkTMd$)O0?3v4*C4aioq$ z%AP(~p0zp-*yb00nPI?UbZ_!jTk0pdj@LLZ#h`^->S+pnCC2p<^NHh|>8W4h|Bg7j zbIdf*aLs8llA-zU~h3goBM%c6^ z>U^;wV1G?dj9D{X%BsM@Bs(cbOTEm`rDC&qcI7ae;nh*3s)dx^VFHhYU_I zKleETmm#keX3(?kR8SmN6mRtK6 zD$JLi187gmP&;X)jbU{P#REU^rZvq$@u7|y(1jnGp?92Nnm@N@&)4Gn3w*n(0dxLA zIofk-v+9d`5uSrRt!hs}D6chzg$;GEmeN=+upxj%$=B0$vC&Nj%Gb9(6();H*33s^In1Y!aA7D29;7W=pn=H z)%k?A7%DtO@E1Cz>lP$jL8%l)Q%SR=)ZQmcDdn5-wWF_ZR2g(@t9*2Ap^^^;B$chs z>a{zG=@O(N3+ag3D*-JrT8wXw&mB|L-H=QWTT`^lIen^95DlNcpwkShmO-+p-qf<{IA1l3xN@TdOtvuBQf6*v38GbHl{XD#GXd9mBOw z!Y(_9s|*CxFuA$xF6VM?kQQJE`gi5i3?)6_$i!@uw^IMFz>A|%6xy1?+CG%jM|}?& zPoZn4=>{>1k3LKE5EkN{x~0XH_kO_TUQ+x;!2CNqRLf6M*^ia89W6H_ z{D@uNfI9;eOGUG>{R5dFOwYihgbt3=<5*(f7PE8w*VOIz0b=Xr!3Ec@)(zZ9+jRZk}#K*nK4agIPylJ7TK z^(KfSx4B#3JKeS>{xLxSBI5LAC+!q0Y~@Q|5dKL|=vAOIQ~}rVAUGwV*4-UIM08fu z^y#?(SwS1s2(iWsb`cAh$fSj1o^F!u253-vM&6FPo!g~8GBP37l zceJO7-#sxSAIe87{g;V`Pluy~^3oSjqmX1{v8#d4syra?O|4K???2eRUn}6{L$IX% z`b<3lE`Y|xHR%Ge5GajD>`$HkD(8$lMoB$1|`0hCG{b&he9o5`_R5= z|8sAMAFbQ^f9Ab;Uj32(X~grxr5kO_K*VQ?vDogBmo>aTT$0IqxMS{4vA(N}@=&H5 zD6meTI5oG9$=dbY+_91#t`EvSGl;hbArOKeUdUxcg)QbjWKGi8H5ZdX@@y6+l2quy z2th2V(WC# z%FgkIz{|kDzAYDWCBL6CHgW`$aU!e_8R6$6hWa;7Yde3Wn{Dfkir3k(M3>SM7CM3y zjb*XP?BfJ*)`K4_xq(I`WA|S>Wi%$ot8LgG5B;&F$RsgfEu{bt3v3jc@iW49U+5*Q zA_N}78_%p-84VMN`SuG}O1f7W$I@#z{F#zqCT_DABMj3^PO1o04*yN&@?r77U!-O2Z9Ybh3d@i@$`KBRCaie_v`V_c_9*I03$nK z*L@x(CSA~^zcdOhN{fncPWs{ADbjLWdFYZ5wLamQl74K-Tzt~^4SFixC^Yee$}pPC z;-4x?l=D8ZO>u3;ZsnBc>gB2D=IqDDyOO0amruKcMpHD^O~M!JjmQ@AWFiYC_z31K zo%x`&RrOp;R~^u)&(`}Zt&0Y6&ZWTlhZ0TiQ|>|z#co)nQXRj&H=PD}1@}Wzu-?R< zMZ8qoQbHTQNUeFPYUKb8D}Pg4kU=YAw4?`S*QG{`Gg-&$AUHYx8r;8$F?@oUFN(HEm5jDx=Z_RRtYtm4- zrW!N)S|=ja>2%|ObXv6Rqvgfrf>jJtJ znNgTb@)6j~b~gGhqeo;-A}#;){;B=T1?KfRX@VOUZ*Te&Vx5!;3`fA z_e>?fJW#0qm<}F9wtmlLQlS` zuQrJ07by8n^6@@R_B&0crfS|x8QrTp2!g~MT{&ckS6S6@Bc)CBfRxE;-1;}~(zxrg zH@7QyzB{^gjtbu>3?0OW0pPcj8EW(6;o{+4tuOIUex&n`KvH2aqb~l#iPL;NJBvb> zdhIdfAk^E%u=r^r-+E%=6V2-s0kIJ8ED5E2)DmHXbn(~*7zcdUF&Y(Hr7uPWnr#2= zH8s9(4lZ+h9F#YrOpqB#Z;CR}MfC&{5idjVQ&emf6Jnpp@Qf0{J9MeCQ7{+a=TB2< zncBJaa;PYI2r-owam?FYU9gddRHZyWQKemB;ijJP4 zN*ROv&{hK$B%qUCj&VAOvuyFD`d}k=>(zTU-@h65&G6@jGH>Q6H^Q z1A7F2X)GsNH4MRXmziR$C6uN9vZK8=MJJ(V`gprXpBsU*w^MON7>kGiRPaN7Du^oW zzfo}X@*DyzrgC*>Zb1}ZLBHo)wQ|r z@uhUo#yauoeD7lRuGgt!cc|f2x>HfRgQWPM?!=sua`6<;=Ofy+E~f6&X)~Y}o>=7z zna>5=mCWjFSH6AhJ?7fwDh=kTTsCiMmF;nfZmZe%_1v=)r4Of+UeU)kjk0B*|C?4< zNZ6#tE--lNg( r(b}{6|G5wnt)2RTW>{lL<3pj_DS8ufDc@fJXpinq!yBdAkAwdMeW7q? literal 0 HcmV?d00001 diff --git a/mods/cnc/maps/nod07b/map.yaml b/mods/cnc/maps/nod07b/map.yaml new file mode 100644 index 0000000000..e0aa0c5c63 --- /dev/null +++ b/mods/cnc/maps/nod07b/map.yaml @@ -0,0 +1,956 @@ +MapFormat: 11 + +RequiresMod: cnc + +Title: Sick And Dying (b) + +Author: Westwood Studios + +Tileset: DESERT + +MapSize: 64,64 + +Bounds: 5,5,54,54 + +Visibility: MissionSelector + +Categories: Campaign + +LockPreview: True + +Players: + PlayerReference@GDI: + Name: GDI + Faction: gdi + Color: F5D378 + Allies: Civilians + Enemies: Nod + PlayerReference@Neutral: + Name: Neutral + OwnsWorld: True + NonCombatant: True + Faction: gdi + PlayerReference@Civilians: + Name: Civilians + NonCombatant: True + Faction: gdi + Allies: GDI + Enemies: Nod + PlayerReference@Nod: + Name: Nod + Faction: nod + AllowBots: False + Playable: True + Required: True + LockFaction: True + LockColor: True + Color: FE1100 + LockSpawn: True + LockTeam: True + Enemies: GDI, Civilians + +Actors: + Actor0: brik + Location: 49,49 + Owner: GDI + Actor1: brik + Location: 48,49 + Owner: GDI + Actor2: brik + Location: 47,49 + Owner: GDI + Actor3: brik + Location: 46,49 + Owner: GDI + Actor4: brik + Location: 45,49 + Owner: GDI + Actor5: brik + Location: 44,49 + Owner: GDI + Actor6: brik + Location: 43,49 + Owner: GDI + Actor7: brik + Location: 42,49 + Owner: GDI + Actor8: brik + Location: 41,49 + Owner: GDI + Actor9: brik + Location: 49,48 + Owner: GDI + Actor10: brik + Location: 41,48 + Owner: GDI + Actor11: brik + Location: 58,47 + Owner: GDI + Actor12: brik + Location: 57,47 + Owner: GDI + Actor13: brik + Location: 56,47 + Owner: GDI + Actor14: brik + Location: 55,47 + Owner: GDI + Actor15: brik + Location: 54,47 + Owner: GDI + Actor16: brik + Location: 49,47 + Owner: GDI + Actor17: brik + Location: 48,47 + Owner: GDI + Actor18: brik + Location: 42,47 + Owner: GDI + Actor19: brik + Location: 41,47 + Owner: GDI + Actor20: brik + Location: 58,46 + Owner: GDI + Actor21: brik + Location: 55,46 + Owner: GDI + Actor22: brik + Location: 54,46 + Owner: GDI + Actor23: brik + Location: 49,46 + Owner: GDI + Actor24: brik + Location: 48,46 + Owner: GDI + Actor25: brik + Location: 42,46 + Owner: GDI + Actor26: brik + Location: 41,46 + Owner: GDI + Actor27: brik + Location: 58,45 + Owner: GDI + Actor28: brik + Location: 58,44 + Owner: GDI + Actor29: brik + Location: 58,43 + Owner: GDI + Actor30: brik + Location: 58,42 + Owner: GDI + Actor31: brik + Location: 42,42 + Owner: GDI + Actor32: brik + Location: 41,42 + Owner: GDI + Actor33: brik + Location: 58,41 + Owner: GDI + Actor34: brik + Location: 42,41 + Owner: GDI + Actor35: brik + Location: 41,41 + Owner: GDI + Actor36: brik + Location: 58,40 + Owner: GDI + Actor37: brik + Location: 41,40 + Owner: GDI + Actor38: brik + Location: 58,39 + Owner: GDI + Actor39: brik + Location: 41,39 + Owner: GDI + Actor40: brik + Location: 58,38 + Owner: GDI + Actor41: brik + Location: 41,38 + Owner: GDI + Actor42: brik + Location: 58,37 + Owner: GDI + Actor43: brik + Location: 41,37 + Owner: GDI + Actor44: brik + Location: 58,36 + Owner: GDI + Actor45: brik + Location: 48,36 + Owner: GDI + Actor46: brik + Location: 47,36 + Owner: GDI + Actor47: brik + Location: 44,36 + Owner: GDI + Actor48: brik + Location: 43,36 + Owner: GDI + Actor49: brik + Location: 41,36 + Owner: GDI + Actor50: brik + Location: 58,35 + Owner: GDI + Actor51: brik + Location: 57,35 + Owner: GDI + Actor52: brik + Location: 56,35 + Owner: GDI + Actor53: brik + Location: 55,35 + Owner: GDI + Actor54: brik + Location: 54,35 + Owner: GDI + Actor55: brik + Location: 53,35 + Owner: GDI + Actor56: brik + Location: 52,35 + Owner: GDI + Actor57: brik + Location: 51,35 + Owner: GDI + Actor58: brik + Location: 50,35 + Owner: GDI + Actor59: brik + Location: 49,35 + Owner: GDI + Actor60: brik + Location: 48,35 + Owner: GDI + Actor61: brik + Location: 47,35 + Owner: GDI + Actor62: brik + Location: 44,35 + Owner: GDI + Actor63: brik + Location: 43,35 + Owner: GDI + Actor64: brik + Location: 42,35 + Owner: GDI + Actor65: brik + Location: 41,35 + Owner: GDI + Actor66: cycl + Location: 53,21 + Owner: Civilians + Actor67: cycl + Location: 52,21 + Owner: Civilians + Actor68: cycl + Location: 51,21 + Owner: Civilians + Actor69: cycl + Location: 50,21 + Owner: Civilians + Actor70: cycl + Location: 49,21 + Owner: Civilians + Actor71: cycl + Location: 48,21 + Owner: Civilians + Actor72: cycl + Location: 47,21 + Owner: Civilians + Actor73: cycl + Location: 53,20 + Owner: Civilians + Actor74: cycl + Location: 51,20 + Owner: Civilians + Actor75: cycl + Location: 49,20 + Owner: Civilians + Actor76: cycl + Location: 47,20 + Owner: Civilians + Actor77: cycl + Location: 47,19 + Owner: Civilians + Actor78: cycl + Location: 53,18 + Owner: Civilians + Actor79: cycl + Location: 51,18 + Owner: Civilians + Actor80: cycl + Location: 49,18 + Owner: Civilians + Actor81: cycl + Location: 47,18 + Owner: Civilians + Actor82: cycl + Location: 53,17 + Owner: Civilians + Actor83: cycl + Location: 52,17 + Owner: Civilians + Actor84: cycl + Location: 51,17 + Owner: Civilians + Actor85: cycl + Location: 50,17 + Owner: Civilians + Actor86: cycl + Location: 49,17 + Owner: Civilians + Actor87: cycl + Location: 48,17 + Owner: Civilians + Actor88: cycl + Location: 47,17 + Owner: Civilians + Actor89: t18 + Location: 47,33 + Owner: Neutral + Actor90: t08 + Location: 44,34 + Owner: Neutral + Actor91: t08 + Location: 45,54 + Owner: Neutral + Actor92: t08 + Location: 32,54 + Owner: Neutral + Actor93: t18 + Location: 30,53 + Owner: Neutral + Actor94: t18 + Location: 17,51 + Owner: Neutral + Actor95: t08 + Location: 45,30 + Owner: Neutral + Actor96: t08 + Location: 41,28 + Owner: Neutral + Actor97: t18 + Location: 39,27 + Owner: Neutral + Actor98: t18 + Location: 40,22 + Owner: Neutral + Actor99: t18 + Location: 49,47 + Owner: Neutral + Actor100: t18 + Location: 37,41 + Owner: Neutral + Actor101: t18 + Location: 8,49 + Owner: Neutral + Actor102: t18 + Location: 23,37 + Owner: Neutral + Actor103: t08 + Location: 11,20 + Owner: Neutral + Actor104: t08 + Location: 9,28 + Owner: Neutral + Actor105: t08 + Location: 8,36 + Owner: Neutral + Actor106: t08 + Location: 24,28 + Owner: Neutral + Actor107: t08 + Location: 27,26 + Owner: Neutral + Actor108: t08 + Location: 23,27 + Owner: Neutral + Actor109: t08 + Location: 26,16 + Owner: Neutral + Actor110: t08 + Location: 20,18 + Owner: Neutral + Actor111: t08 + Location: 33,10 + Owner: Neutral + Actor112: t08 + Location: 37,17 + Owner: Neutral + Actor113: rock1 + Location: 37,15 + Owner: Neutral + Actor114: t18 + Location: 54,30 + Owner: Neutral + Actor115: t18 + Location: 57,27 + Owner: Neutral + Actor116: t08 + Location: 55,27 + Owner: Neutral + Actor117: t18 + Location: 48,25 + Owner: Neutral + Actor134: v24 + Location: 30,5 + Owner: Civilians + Health: 22 + Actor135: v27 + Location: 43,25 + Owner: Civilians + Health: 99 + Actor136: v24 + Location: 41,24 + Owner: Civilians + Health: 99 + Actor137: v24 + Location: 43,26 + Owner: Civilians + Health: 99 + Actor138: v27 + Location: 42,27 + Owner: Civilians + Health: 99 + Actor139: v27 + Location: 41,27 + Owner: Civilians + Health: 99 + Actor140: v27 + Location: 40,27 + Owner: Civilians + Health: 99 + Actor141: v27 + Location: 39,25 + Owner: Civilians + Health: 99 + Actor142: v26 + Location: 36,23 + Owner: Civilians + Health: 99 + Actor143: v25 + Location: 40,20 + Owner: Civilians + Health: 99 + Actor144: v21 + Location: 47,24 + Owner: Civilians + Health: 99 + Actor145: v20 + Location: 42,29 + Owner: Civilians + Health: 99 + Actor146: v22 + Location: 45,28 + Owner: Civilians + Health: 99 + Actor147: v23 + Location: 40,23 + Owner: Civilians + Health: 99 + Actor148: v26 + Location: 47,27 + Owner: Civilians + Health: 99 + Actor149: v28 + Location: 47,23 + Owner: Civilians + Health: 99 + Actor150: v28 + Location: 48,23 + Owner: Civilians + Health: 99 + Actor151: v28 + Location: 49,23 + Owner: Civilians + Health: 99 + Actor152: v29 + Location: 52,23 + Owner: Civilians + Health: 99 + Actor153: v30 + Location: 50,25 + Owner: Civilians + Health: 99 + Actor154: v31 + Location: 56,23 + Owner: Civilians + Health: 99 + Actor155: v32 + Location: 55,24 + Owner: Civilians + Health: 99 + Actor156: v33 + Location: 57,25 + Owner: Civilians + Health: 99 + Actor157: v34 + Location: 58,26 + Owner: Civilians + Health: 99 + Actor158: v35 + Location: 57,27 + Owner: Civilians + Health: 99 + Actor159: v36 + Location: 56,26 + Owner: Civilians + Health: 99 + Actor160: v29 + Location: 49,27 + Owner: Civilians + Health: 99 + Actor161: v29 + Location: 50,27 + Owner: Civilians + Health: 99 + Actor162: arco + Location: 45,20 + Owner: Civilians + Health: 98 + Actor163: v19 + Location: 48,18 + Owner: Neutral + Health: 99 + Actor164: v19 + Location: 52,18 + Owner: Neutral + Health: 99 + Actor165: v19 + Location: 50,20 + Owner: Neutral + Health: 99 + Actor166: v19 + Location: 50,18 + Owner: Neutral + Health: 99 + Actor167: v19 + Location: 48,20 + Owner: Neutral + Health: 99 + Actor168: v19 + Location: 52,20 + Owner: Neutral + Health: 99 + Actor169: v30 + Location: 43,23 + Owner: Civilians + Health: 99 + Actor171: hosp + Location: 55,28 + Owner: Civilians + Actor172: mtnk + Location: 51,40 + Owner: GDI + Actor173: jeep + Location: 17,31 + Owner: GDI + Facing: 224 + Actor174: mtnk + Location: 21,36 + Owner: GDI + Facing: 224 + Actor175: mtnk + Location: 42,52 + Owner: GDI + Facing: 160 + Actor176: jeep + Location: 14,26 + Owner: GDI + Facing: 32 + Actor177: mtnk + Location: 50,47 + Owner: GDI + Facing: 96 + Actor188: mtnk + Location: 51,53 + Owner: GDI + Facing: 160 + Actor189: mtnk + Location: 24,26 + Owner: GDI + Facing: 224 + Actor190: mtnk + Location: 29,36 + Owner: GDI + Facing: 128 + Actor191: mtnk + Location: 27,36 + Owner: GDI + Facing: 128 + Actor192: jeep + Location: 8,38 + Owner: GDI + Health: 97 + Actor193: jeep + Location: 8,29 + Owner: GDI + Actor195: e2 + Location: 56,42 + Owner: GDI + SubCell: 4 + Actor196: e2 + Location: 57,42 + Owner: GDI + SubCell: 0 + Actor197: e2 + Location: 57,46 + Owner: GDI + SubCell: 1 + Actor198: e2 + Location: 51,35 + Owner: GDI + SubCell: 4 + Actor199: e2 + Location: 43,40 + Owner: GDI + SubCell: 1 + Actor200: e1 + Location: 42,40 + Owner: GDI + SubCell: 0 + Actor201: e1 + Location: 44,39 + Owner: GDI + SubCell: 4 + Actor202: e1 + Location: 56,46 + Owner: GDI + SubCell: 1 + Actor203: e1 + Location: 43,41 + Owner: GDI + SubCell: 2 + Actor204: e2 + Location: 24,56 + Owner: GDI + SubCell: 3 + Actor205: e2 + Location: 24,57 + Owner: GDI + SubCell: 1 + Actor206: e1 + Location: 14,48 + Owner: GDI + SubCell: 0 + Actor207: e1 + Location: 14,48 + Owner: GDI + SubCell: 2 + Actor208: e1 + Location: 15,48 + Owner: GDI + SubCell: 3 + Actor209: e3 + Location: 10,28 + Owner: GDI + SubCell: 3 + Actor210: e3 + Location: 5,31 + Owner: GDI + SubCell: 2 + Actor211: e3 + Location: 13,40 + Owner: GDI + Health: 83 + Facing: 224 + SubCell: 4 + Actor212: e3 + Location: 13,42 + Owner: GDI + Facing: 192 + SubCell: 4 + Actor213: e2 + Location: 11,37 + Owner: GDI + SubCell: 4 + Actor214: e2 + Location: 7,30 + Owner: GDI + SubCell: 2 + Actor221: c1 + Location: 35,24 + Owner: Civilians + Health: 19 + SubCell: 0 + Actor222: c2 + Location: 40,24 + Owner: Civilians + Facing: 160 + SubCell: 2 + Actor223: c3 + Location: 36,25 + Owner: Civilians + Facing: 224 + SubCell: 2 + Actor224: c4 + Location: 41,26 + Owner: Civilians + Facing: 64 + SubCell: 3 + Actor225: c5 + Location: 44,25 + Owner: Civilians + SubCell: 1 + Actor226: c6 + Location: 42,28 + Owner: Civilians + Facing: 64 + SubCell: 2 + Actor227: c7 + Location: 38,26 + Owner: Civilians + Health: 19 + Facing: 224 + SubCell: 0 + Actor228: c8 + Location: 40,26 + Owner: Civilians + Facing: 32 + SubCell: 3 + Actor229: c9 + Location: 36,22 + Owner: Civilians + Facing: 64 + SubCell: 2 + Actor230: c1 + Location: 44,24 + Owner: Civilians + Health: 19 + Facing: 64 + SubCell: 2 + Actor231: c2 + Location: 36,26 + Owner: Civilians + Facing: 64 + SubCell: 1 + Actor232: c3 + Location: 51,26 + Owner: Civilians + Facing: 128 + SubCell: 2 + Actor233: c4 + Location: 55,23 + Owner: Civilians + Facing: 32 + SubCell: 3 + Actor234: c5 + Location: 57,26 + Owner: Civilians + Facing: 160 + SubCell: 1 + Actor235: c6 + Location: 48,26 + Owner: Civilians + Facing: 64 + SubCell: 3 + Actor236: c7 + Location: 42,22 + Owner: Civilians + Facing: 160 + SubCell: 2 + Actor237: c8 + Location: 46,30 + Owner: Civilians + Health: 19 + Facing: 128 + SubCell: 1 + Actor238: c9 + Location: 39,29 + Owner: Civilians + Health: 19 + SubCell: 3 + Actor239: e2 + Location: 13,40 + Owner: GDI + SubCell: 4 + Actor240: e2 + Location: 9,37 + Owner: GDI + Health: 87 + SubCell: 4 + Actor241: e2 + Location: 13,39 + Owner: GDI + SubCell: 3 + Actor242: e2 + Location: 15,55 + Owner: GDI + SubCell: 1 + Actor243: e2 + Location: 16,55 + Owner: GDI + SubCell: 0 + Actor244: e1 + Location: 13,53 + Owner: GDI + SubCell: 0 + Actor245: e1 + Location: 14,54 + Owner: GDI + SubCell: 1 + Actor246: e1 + Location: 15,53 + Owner: GDI + SubCell: 1 + Actor247: e2 + Location: 30,29 + Owner: GDI + SubCell: 4 + Actor248: e2 + Location: 29,27 + Owner: GDI + SubCell: 3 + waypoint27: waypoint + Location: 32,32 + Owner: Neutral + waypoint26: waypoint + Location: 5,5 + Owner: Neutral + waypoint15: waypoint + Location: 57,52 + Owner: Neutral + waypoint14: waypoint + Location: 6,16 + Owner: Neutral + waypoint13: waypoint + Location: 28,28 + Owner: Neutral + waypoint12: waypoint + Location: 34,35 + Owner: Neutral + waypoint11: waypoint + Location: 8,43 + Owner: Neutral + waypoint10: waypoint + Location: 15,56 + Owner: Neutral + waypoint9: waypoint + Location: 26,54 + Owner: Neutral + waypoint8: waypoint + Location: 16,21 + Owner: Neutral + waypoint7: waypoint + Location: 6,22 + Owner: Neutral + waypoint6: waypoint + Location: 6,30 + Owner: Neutral + waypoint5: waypoint + Location: 11,30 + Owner: Neutral + waypoint4: waypoint + Location: 20,35 + Owner: Neutral + waypoint3: waypoint + Location: 29,48 + Owner: Neutral + waypoint2: waypoint + Location: 36,48 + Owner: Neutral + waypoint1: waypoint + Location: 36,45 + Owner: Neutral + waypoint0: waypoint + Location: 46,43 + Owner: Neutral + GDIBuilding1: gtwr + Location: 40,42 + Owner: GDI + GDIBuilding2: gtwr + Location: 49,50 + Owner: GDI + GDIBuilding3: gtwr + Location: 54,48 + Owner: GDI + GDIBuilding4: nuke + Location: 57,29 + Owner: GDI + GDIBuilding5: gtwr + Location: 40,46 + Owner: GDI + GDIBuilding6: silo + Location: 44,45 + Owner: GDI + GDIBuilding7: silo + Location: 46,45 + Owner: GDI + GDIBuilding8: silo + Location: 46,47 + Owner: GDI + GDIBuilding9: silo + Location: 44,47 + Owner: GDI + GDICYard: fact + Location: 55,43 + Owner: GDI + GDIHarvester: harv + Location: 46,38 + Owner: GDI + GDIHQ: hq + Location: 42,36 + Owner: GDI + GDINuke1: nuke + Location: 52,36 + Owner: GDI + GDINuke2: nuke + Location: 54,36 + Owner: GDI + GDINuke3: nuke + Location: 56,36 + Owner: GDI + GDIProc: proc + Location: 49,36 + Owner: GDI + FreeActor: False + GDIPyle: pyle + Location: 52,39 + Owner: GDI + GDIWeap: weap + Location: 55,38 + Owner: GDI + ReinforcementsBikesRally: waypoint + Owner: Neutral + Location: 8,11 + ReinforcementsBuggyRally: waypoint + Owner: Neutral + Location: 12,11 + ReinforcementsGDISpawn: waypoint + Owner: Neutral + Location: 39,5 + ReinforcementsGunnersRally: waypoint + Owner: Neutral + Location: 8,9 + ReinforcementsMCVRally: waypoint + Owner: Neutral + Location: 10,10 + ReinforcementsRocketsRally: waypoint + Owner: Neutral + Location: 12,9 + ReinforcementsTanksRally: waypoint + Owner: Neutral + Location: 10,8 + ReinforcementsSpawnCenter: waypoint + Owner: Neutral + Location: 10,5 + ReinforcementsSpawnLeft: waypoint + Owner: Neutral + Location: 8,5 + ReinforcementsSpawnRight: waypoint + Owner: Neutral + Location: 12,5 + +Rules: cnc|rules/campaign-maprules.yaml, cnc|rules/campaign-tooltips.yaml, cnc|rules/campaign-palettes.yaml, rules.yaml diff --git a/mods/cnc/maps/nod07b/nod07b-AI.lua b/mods/cnc/maps/nod07b/nod07b-AI.lua new file mode 100644 index 0000000000..24504bdfc3 --- /dev/null +++ b/mods/cnc/maps/nod07b/nod07b-AI.lua @@ -0,0 +1,193 @@ +AttackPaths = { { AttackPath1 }, { AttackPath2 } } +GDIBase = { GDICYard, GDIPyle, GDIWeap, GDIHQ, GDIProc, GDINuke1, GDINuke2, GDINuke3, GDIBuilding1, GDIBuilding2, GDIBuilding3, GDIBuilding4, GDIBuilding5, GDIBuilding6, GDIBuilding7, GDIBuilding8, GDIBuilding9 } +InfantryAttackGroup = { } +InfantryGroupSize = 4 +InfantryProductionCooldown = DateTime.Minutes(3) +InfantryProductionTypes = { "e1", "e1", "e2" } +HarvesterProductionType = { "harv" } +VehicleAttackGroup = { } +VehicleGroupSize = 4 +VehicleProductionCooldown = DateTime.Minutes(4) +VehicleProductionTypes = { "jeep", "jeep", "mtnk", "mtnk", "mtnk" } +StartingCash = 4000 + +BaseProc = { type = "proc", pos = CPos.New(49, 36), cost = 1500, exists = true } +BaseNuke1 = { type = "nuke", pos = CPos.New(52, 36), cost = 500, exists = true } +BaseNuke2 = { type = "nuke", pos = CPos.New(54, 36), cost = 500, exists = true } +BaseNuke3 = { type = "nuke", pos = CPos.New(56, 36), cost = 500, exists = true } +InfantryProduction = { type = "pyle", pos = CPos.New(52, 39), cost = 500, exists = true } +VehicleProduction = { type = "weap", pos = CPos.New(55, 38), cost = 2000, exists = true } + +BaseBuildings = { BaseProc, BaseNuke1, BaseNuke2, BaseNuke3, InfantryProduction, VehicleProduction } + +BuildBase = function(cyard) + Utils.Do(BaseBuildings, function(building) + if not building.exists and not cyardIsBuilding then + BuildBuilding(building, cyard) + return + end + end) + Trigger.AfterDelay(DateTime.Seconds(10), function() BuildBase(cyard) end) +end + +BuildBuilding = function(building, cyard) + cyardIsBuilding = true + + Trigger.AfterDelay(Actor.BuildTime(building.type), function() + cyardIsBuilding = false + + if cyard.IsDead or cyard.Owner ~= enemy then + return + end + + local actor = Actor.Create(building.type, true, { Owner = enemy, Location = building.pos }) + enemy.Cash = enemy.Cash - building.cost + + building.exists = true + + if actor.Type == 'pyle' or actor.Type == 'hand' then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(actor) end) + elseif actor.Type == 'weap' or actor.Type == 'afld' then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(actor) end) + end + + Trigger.OnKilled(actor, function() building.exists = false end) + + Trigger.OnDamaged(actor, function(building) + if building.Owner == enemy and building.Health < building.MaxHealth * 3/4 then + building.StartBuildingRepairs() + end + end) + + Trigger.AfterDelay(DateTime.Seconds(10), function() BuildBase(cyard) end) + end) +end + +CheckForHarvester = function() + local harv = enemy.GetActorsByType("harv") + return #harv > 0 +end + +IdleHunt = function(unit) + if not unit.IsDead then + Trigger.OnIdle(unit, unit.Hunt) + end +end + +IdlingUnits = function(enemy) + local lazyUnits = enemy.GetGroundAttackers() + + Utils.Do(lazyUnits, function(unit) + IdleHunt(unit) + end) +end + +ProduceHarvester = function(building) + if not buildingHarvester then + buildingHarvester = true + building.Build(HarvesterProductionType, function() + buildingHarvester = false + end) + end +end + +ProduceInfantry = function(building) + if building.IsDead then + return + elseif not CheckForHarvester() then + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceInfantry(building) end) + end + + local delay = Utils.RandomInteger(DateTime.Seconds(3), DateTime.Seconds(9)) + local toBuild = { Utils.Random(InfantryProductionTypes) } + local Path = Utils.Random(AttackPaths) + building.Build(toBuild, function(unit) + InfantryAttackGroup[#InfantryAttackGroup + 1] = unit[1] + + if #InfantryAttackGroup >= InfantryGroupSize then + SendUnits(InfantryAttackGroup, Path) + InfantryAttackGroup = { } + Trigger.AfterDelay(InfantryProductionCooldown, function() ProduceInfantry(building) end) + else + Trigger.AfterDelay(delay, function() ProduceInfantry(building) end) + end + end) + +end + +ProduceVehicle = function(building) + if building.IsDead then + return + elseif not CheckForHarvester() then + ProduceHarvester(building) + Trigger.AfterDelay(DateTime.Seconds(10), function() ProduceVehicle(building) end) + end + + local delay = Utils.RandomInteger(DateTime.Seconds(12), DateTime.Seconds(17)) + local toBuild = { Utils.Random(VehicleProductionTypes) } + local Path = Utils.Random(AttackPaths) + building.Build(toBuild, function(unit) + VehicleAttackGroup[#VehicleAttackGroup + 1] = unit[1] + + if #VehicleAttackGroup >= VehicleGroupSize then + SendUnits(VehicleAttackGroup, Path) + VehicleAttackGroup = { } + Trigger.AfterDelay(VehicleProductionCooldown, function() ProduceVehicle(building) end) + else + Trigger.AfterDelay(delay, function() ProduceVehicle(building) end) + end + end) +end + +SendUnits = function(units, waypoints) + Utils.Do(units, function(unit) + if not unit.IsDead then + Utils.Do(waypoints, function(waypoint) + unit.AttackMove(waypoint.Location) + end) + IdleHunt(unit) + end + end) +end + +StartAI = function(cyard) + Utils.Do(Map.NamedActors, function(actor) + if actor.Owner == enemy and actor.HasProperty("StartBuildingRepairs") then + Trigger.OnDamaged(actor, function(building) + if building.Owner == enemy and building.Health < 3/4 * building.MaxHealth then + building.StartBuildingRepairs() + end + end) + end + end) + enemy.Cash = StartingCash + BuildBase(cyard) +end + +Trigger.OnAllKilledOrCaptured(GDIBase, function() + IdlingUnits(enemy) +end) + +Trigger.OnKilled(GDIProc, function(building) + BaseProc.exists = false +end) + +Trigger.OnKilled(GDINuke1, function(building) + BaseNuke1.exists = false +end) + +Trigger.OnKilled(GDINuke2, function(building) + BaseNuke2.exists = false +end) + +Trigger.OnKilled(GDINuke3, function(building) + BaseNuke3.exists = false +end) + +Trigger.OnKilled(GDIPyle, function(building) + InfantryProduction.exists = false +end) + +Trigger.OnKilled(GDIWeap, function(building) + VehicleProduction.exists = false +end) diff --git a/mods/cnc/maps/nod07b/nod07b.lua b/mods/cnc/maps/nod07b/nod07b.lua new file mode 100644 index 0000000000..65e754f28a --- /dev/null +++ b/mods/cnc/maps/nod07b/nod07b.lua @@ -0,0 +1,265 @@ +WaypointGroup1 = { waypoint0, waypoint15 } +WaypointGroup2 = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint4, waypoint5, waypoint8 } +WaypointGroup3 = { waypoint0, waypoint1, waypoint2, waypoint3, waypoint9, waypoint10, waypoint11, waypoint6, waypoint7 } +WaypointGroup4 = { waypoint9, waypoint10, waypoint11, waypoint6, waypoint7, waypoint14 } + +GDI1 = { units = { ['e2'] = 2, ['e6'] = 1 }, waypoints = WaypointGroup4, delay = 40 } +GDI2 = { units = { ['e1'] = 1, ['e2'] = 1}, waypoints = WaypointGroup3, delay = 40 } +GDI3 = { units = { ['e2'] = 1, ['e3'] = 1, ['jeep'] = 1 }, waypoints = WaypointGroup2, delay = 40 } +GDI4 = { units = { ['mtnk'] = 1 }, waypoints = WaypointGroup3, delay = 40 } +GDI5 = { units = { ['e1'] = 1, ['e2'] = 2 }, waypoints = WaypointGroup2, delay = 40 } +GDI6 = { units = { ['e2'] = 2, ['e2'] = 3 }, waypoints = WaypointGroup1, delay = 40 } +Auto1 = { units = { ['e1'] = 3, ['e2'] = 2 }, waypoints = WaypointGroup3, delay = 40 } +Auto2 = { units = { ['e1'] = 1, ['e2'] = 2 }, waypoints = WaypointGroup2, delay = 40 } +Auto3 = { units = { ['e1'] = 1, ['e3'] = 2 }, waypoints = WaypointGroup2, delay = 40 } +Auto4 = { units = { ['e2'] = 2, ['e3'] = 2 }, waypoints = WaypointGroup3, delay = 40 } +Auto5 = { units = { ['jeep'] = 1 }, waypoints = WaypointGroup2, delay = 50 } +Auto6 = { units = { ['jeep'] = 1 }, waypoints = WaypointGroup3, delay = 40 } +Auto7 = { units = { ['mtnk'] = 1 }, waypoints = WaypointGroup2, delay = 50 } +Auto8 = { units = { ['mtnk'] = 1 }, waypoints = WaypointGroup3, delay = 30 } + +AirstrikeDelay = DateTime.Minutes(2) + DateTime.Seconds(10) + +AutoAttackWaves = { Auto1, Auto2, Auto3, Auto4, Auto5, Auto6, Auto7, Auto8 } +WhitelistedStructures = { 'afld', 'hand', 'hq', 'nuke', 'silo', 'proc', 'sam' } + +NodUnitsTanks = { 'ltnk', 'ltnk', 'ltnk' } +NodUnitsBikes = { 'bike', 'bike', 'bike' } +NodUnitsBuggys = { 'bggy', 'bggy', 'bggy' } +NodUnitsRockets = { 'e3', 'e3', 'e3' } +NodUnitsGunners = { 'e1', 'e1', 'e1' } + +Atk1 = { CPos.New(11, 43), CPos.New(10, 43), CPos.New(9, 43), CPos.New(8, 43), CPos.New(7, 43), CPos.New(6, 43), CPos.New(5, 43), CPos.New(11, 42), CPos.New(10, 42), CPos.New(9, 42), CPos.New(8, 42), CPos.New(7, 42), CPos.New(6, 42), CPos.New(5, 42), CPos.New(23, 38), CPos.New(22, 38), CPos.New(21, 38), CPos.New(20, 38), CPos.New(19, 38), CPos.New(24, 37), CPos.New(23, 37), CPos.New(22, 37), CPos.New(21, 37), CPos.New(20, 37), CPos.New(19, 37) } +Atk2 = { CPos.New(16, 52), CPos.New(15, 52), CPos.New(14, 52), CPos.New(13, 52), CPos.New(12, 52), CPos.New(11, 52), CPos.New(10, 52), CPos.New(9, 52), CPos.New(8, 52), CPos.New(16, 51), CPos.New(15, 51), CPos.New(14, 51), CPos.New(13, 51), CPos.New(12, 51), CPos.New(11, 51), CPos.New(10, 51), CPos.New(9, 51), CPos.New(8, 51), CPos.New(31, 44), CPos.New(30, 44), CPos.New(29, 44), CPos.New(28, 44), CPos.New(27, 44), CPos.New(26, 44), CPos.New(25, 44), CPos.New(24, 44), CPos.New(23, 44), CPos.New(22, 44), CPos.New(21, 44), CPos.New(31, 43), CPos.New(30, 43), CPos.New(29, 43), CPos.New(28, 43), CPos.New(27, 43), CPos.New(26, 43), CPos.New(25, 43), CPos.New(24, 43), CPos.New(23, 43), CPos.New(22, 43), CPos.New(21, 43) } +Atk3 = { CPos.New(53, 58), CPos.New(52, 58), CPos.New(51, 58), CPos.New(53, 57), CPos.New(52, 57), CPos.New(51, 57), CPos.New(53, 56), CPos.New(52, 56), CPos.New(51, 56), CPos.New(53, 55), CPos.New(52, 55), CPos.New(51, 55) } +Atk4 = { CPos.New(54, 47), CPos.New(53, 47), CPos.New(52, 47), CPos.New(51, 47), CPos.New(43, 47), CPos.New(54, 46), CPos.New(53, 46), CPos.New(52, 46), CPos.New(51, 46), CPos.New(50, 46), CPos.New(43, 46), CPos.New(42, 46), CPos.New(41, 46), CPos.New(43, 45), CPos.New(42, 45), CPos.New(41, 45), CPos.New(43, 44), CPos.New(42, 44), CPos.New(41, 44), CPos.New(43, 43), CPos.New(42, 43), CPos.New(41, 43), CPos.New(43, 42) } + +CaptureStructures = function(actor) + for i = 1, #WhitelistedStructures do + structures = player.GetActorsByType(WhitelistedStructures[i]) + if #structures > 0 then + if not actor.IsDead and not structures[1].IsDead then + actor.Capture(structures[1]) + return + end + end + end +end + +CheckForSams = function() + local sams = player.GetActorsByType("sam") + return #sams >= 3 +end + +searches = 0 +getAirstrikeTarget = function() + local list = player.GetGroundAttackers() + + if #list == 0 then + return + end + + local target = list[DateTime.GameTime % #list + 1].CenterPosition + + local sams = Map.ActorsInCircle(target, WDist.New(8 * 1024), function(actor) + return actor.Type == "sam" end) + + if #sams == 0 then + searches = 0 + return target + elseif searches < 6 then + searches = searches + 1 + return getAirstrikeTarget() + else + searches = 0 + return nil + end +end + +GetCargo = function(team) + cargo = { } + for type, count in pairs(team.units) do + for i = 1, count, 1 do + cargo[#cargo + 1] = type + end + end + return cargo +end + +InsertNodUnits = function() + Media.PlaySpeechNotification(player, "Reinforce") + Reinforcements.Reinforce(player, NodUnitsBikes, { ReinforcementsSpawnLeft.Location, ReinforcementsBikesRally.Location }, 1) + Reinforcements.Reinforce(player, NodUnitsBuggys, { ReinforcementsSpawnRight.Location, ReinforcementsBuggyRally.Location }, 50) + Reinforcements.Reinforce(player, NodUnitsGunners, { ReinforcementsSpawnLeft.Location, ReinforcementsGunnersRally.Location }, 50) + Reinforcements.Reinforce(player, NodUnitsRockets, { ReinforcementsSpawnRight.Location, ReinforcementsRocketsRally.Location }, 50) + Trigger.AfterDelay(DateTime.Seconds(6), function() + Reinforcements.Reinforce(player, { 'mcv' }, { ReinforcementsSpawnCenter.Location, ReinforcementsMCVRally.Location }) + Reinforcements.Reinforce(player, NodUnitsTanks, { ReinforcementsSpawnCenter.Location, ReinforcementsTanksRally.Location }, 50) + end) +end + +SendAttackWave = function(team) + for type, amount in pairs(team.units) do + count = 0 + actors = enemy.GetActorsByType(type) + Utils.Do(actors, function(actor) + if actor.IsIdle and count < amount then + SetAttackWaypoints(actor, team.waypoints) + if actor.Type == "e6" then + CaptureStructures(actor) + else + IdleHunt(actor) + end + count = count + 1 + end + end) + end +end + +SetAttackWaypoints = function(actor, waypoints) + if not actor.IsDead then + Utils.Do(waypoints, function(waypoint) + actor.AttackMove(waypoint.Location) + end) + end +end + +SendGDIAirstrike = function(hq, delay) + if not hq.IsDead and hq.Owner == enemy then + local target = getAirstrikeTarget() + + if target then + hq.SendAirstrike(target, false, Facing.NorthEast + 4) + Trigger.AfterDelay(delay, function() SendGDIAirstrike(hq, delay) end) + else + Trigger.AfterDelay(delay/4, function() SendGDIAirstrike(hq, delay) end) + end + end +end + +SendWaves = function(counter, Waves) + if counter <= #Waves then + team = Waves[counter] + SendAttackWave(team) + Trigger.AfterDelay(DateTime.Seconds(team.delay), function() SendWaves(counter + 1, Waves) end) + end +end + +SendReinforcementsWave = function(team) + Reinforcements.ReinforceWithTransport(enemy, "apc", GetCargo(team), { ReinforcementsGDISpawn.Location, waypoint12.Location}, nil, function(transport, passengers) + SetReinforcementsWaypoints(transport, team.waypoints) + transport.UnloadPassengers() + Trigger.OnPassengerExited(transport, function(_, passenger) + Utils.Do(passengers, function(actor) + if actor.Type == "e6" then + CaptureStructures(actor) + else + IdleHunt(actor) + end + end) + if not transport.HasPassengers then + IdleHunt(transport) + end + end) + end) +end + +SetReinforcementsWaypoints = function(actor, waypoints) + if not actor.IsDead then + Utils.Do(waypoints, function(waypoint) + actor.Move(waypoint.Location) + end) + IdleHunt(actor) + end +end + +StartWaves = function() + SendWaves(1, AutoAttackWaves) +end + + + +Trigger.OnEnteredFootprint(Atk1, function(a, id) + if not atk1Trigger and a.Owner == player then + atk1Trigger = true + SendAttackWave(GDI5) + end +end) + +Trigger.OnEnteredFootprint(Atk2, function(a, id) + if not atk2Trigger and a.Owner == player then + atk2Trigger = true + SendAttackWave(GDI4) + end +end) + +Trigger.OnEnteredFootprint(Atk3, function(a, id) + if not atk3Trigger and a.Owner == player then + atk3Trigger = true + SendAttackWave(GDI6) + end +end) + +Trigger.OnEnteredFootprint(Atk4, function(a, id) + if not atk4Trigger and a.Owner == player then + atk4Trigger = true + SendReinforcementsWave(GDI1) + end +end) + +WorldLoaded = function() + player = Player.GetPlayer("Nod") + enemy = Player.GetPlayer("GDI") + Camera.Position = waypoint26.CenterPosition + + InsertNodUnits() + StartAI(GDICYard) + + Trigger.AfterDelay(DateTime.Seconds(10), function() SendAttackWave(GDI2) end) + Trigger.AfterDelay(DateTime.Seconds(55), function() SendAttackWave(GDI2) end) + Trigger.AfterDelay(DateTime.Seconds(85), function() SendAttackWave(GDI3) end) + + Trigger.AfterDelay(AirstrikeDelay, function() SendGDIAirstrike(GDIHQ, AirstrikeDelay) end) + Trigger.AfterDelay(DateTime.Minutes(2), function() ProduceInfantry(GDIPyle) end) + Trigger.AfterDelay(DateTime.Minutes(3), function() ProduceVehicle(GDIWeap) end) + + Trigger.OnPlayerDiscovered(player, StartWaves) + + Trigger.OnObjectiveAdded(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "New " .. string.lower(p.GetObjectiveType(id)) .. " objective") + end) + + Trigger.OnObjectiveCompleted(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective completed") + end) + + Trigger.OnObjectiveFailed(player, function(p, id) + Media.DisplayMessage(p.GetObjectiveDescription(id), "Objective failed") + end) + + Trigger.OnPlayerWon(player, function() + Media.PlaySpeechNotification(player, "Win") + end) + + Trigger.OnPlayerLost(player, function() + Media.PlaySpeechNotification(player, "Lose") + end) + + NodObjective1 = player.AddPrimaryObjective("Eliminate all GDI forces in the area.") + NodObjective2 = player.AddSecondaryObjective("Build 3 SAMs to fend off the GDI bombers.") + GDIObjective = enemy.AddPrimaryObjective("Eliminate all Nod forces in the area.") +end + +Tick = function() + if DateTime.GameTime > 2 and player.HasNoRequiredUnits() then + enemy.MarkCompletedObjective(GDIObjective) + end + + if DateTime.GameTime > 2 and enemy.HasNoRequiredUnits() then + player.MarkCompletedObjective(NodObjective1) + end + + if not player.IsObjectiveCompleted(NodObjective2) and CheckForSams() then + player.MarkCompletedObjective(NodObjective2) + end +end diff --git a/mods/cnc/maps/nod07b/rules.yaml b/mods/cnc/maps/nod07b/rules.yaml new file mode 100644 index 0000000000..7e21a872c9 --- /dev/null +++ b/mods/cnc/maps/nod07b/rules.yaml @@ -0,0 +1,127 @@ +World: + LuaScript: + Scripts: nod07b.lua, nod07b-AI.lua + MusicPlaylist: + StartingMusic: linefire + VictoryMusic: nod_win1 + MissionData: + Briefing: The Brotherhood has located a huge field of Tiberium in the area.\n\nThe nearby village has laid claim to the field.\n\nEliminate the villagers, as to prevent any infection of our own workers.\n\nGDI forces are reported to be minimal, so elimination of them is of secondary importance. + BriefingVideo: nod7a.vqa + StartVideo: tankgo.vqa + LossVideo: visor.vqa + SmudgeLayer@CRATER: + InitialSmudges: + cr1 9,12 0 + +Player: + PlayerResources: + DefaultCash: 4000 + +^Bridge: + DamageMultiplier@INVULNERABLE: + Modifier: 0 + +CYCL: + Buildable: + Prerequisites: ~disabled + +NUK2: + Buildable: + Prerequisites: ~disabled + +HPAD: + Buildable: + Prerequisites: ~disabled + +BRIK: + Buildable: + Prerequisites: ~disabled + +EYE: + Buildable: + Prerequisites: ~disabled + +GUN: + Buildable: + Prerequisites: ~disabled + +OBLI: + Buildable: + Prerequisites: ~disabled + +TMPL: + Buildable: + Prerequisites: ~disabled + +E2: + Buildable: + Prerequisites: ~pyle + +E5: + Buildable: + Prerequisites: ~disabled + +HARV: + Harvester: + SearchFromOrderRadius: 45 + +MTNK: + Buildable: + Prerequisites: ~weap + +HTNK: + Buildable: + Prerequisites: ~disabled + +RMBO: + Buildable: + Prerequisites: ~disabled + +MCV: + Buildable: + Prerequisites: ~disabled + +FTNK: + Buildable: + Prerequisites: ~disabled + +MLRS: + Buildable: + Prerequisites: ~disabled + +MSAM: + Buildable: + Prerequisites: ~disabled + +ATWR: + Buildable: + Prerequisites: ~disabled + +HELI: + Buildable: + Prerequisites: ~disabled + +STNK: + Buildable: + Prerequisites: ~disabled + +ARTY: + Buildable: + Prerequisites: ~disabled + +FIX: + Buildable: + Prerequisites: ~disabled + +SBAG: + Buildable: + Queue: Defence.GDI, Defence.Nod + +GTWR: + Buildable: + Queue: Defence.GDI + +HQ: + AirstrikePower: + Prerequisites: gdi + SquadSize: 1 diff --git a/mods/cnc/missions.yaml b/mods/cnc/missions.yaml index 0512dc9117..a285280e22 100644 --- a/mods/cnc/missions.yaml +++ b/mods/cnc/missions.yaml @@ -22,6 +22,7 @@ Nod Campaign: ./mods/cnc/maps/nod06b ./mods/cnc/maps/nod06c ./mods/cnc/maps/nod07a + ./mods/cnc/maps/nod07b Funpark Campaign: ./mods/cnc/maps/funpark01