From 2891fb6248c6c4a7af377eec4e8c98ce42223f88 Mon Sep 17 00:00:00 2001 From: gamer147 Date: Sat, 11 Apr 2026 23:03:00 -0400 Subject: [PATCH] Deployment slot UI mostly setup --- assets/ui/unit_faces.BMP | Bin 0 -> 177078 bytes assets/ui/unit_faces.BMP.import | 40 ++++++ prefabs/combat_ui.tscn | 6 +- prefabs/contiguous_bar.tscn | 52 ++++++++ prefabs/deployment_slot.tscn | 186 +++++++++++++++++++++++++++ prefabs/stylized_number_display.tscn | 10 +- scripts/ui/contiguous_bar.gd | 34 +++++ scripts/ui/contiguous_bar.gd.uid | 1 + 8 files changed, 322 insertions(+), 7 deletions(-) create mode 100644 assets/ui/unit_faces.BMP create mode 100644 assets/ui/unit_faces.BMP.import create mode 100644 prefabs/contiguous_bar.tscn create mode 100644 prefabs/deployment_slot.tscn create mode 100644 scripts/ui/contiguous_bar.gd create mode 100644 scripts/ui/contiguous_bar.gd.uid diff --git a/assets/ui/unit_faces.BMP b/assets/ui/unit_faces.BMP new file mode 100644 index 0000000000000000000000000000000000000000..b8b2b470953041cadc7804163249c1910950225c GIT binary patch literal 177078 zcmeF44?q;xz3!b`XC8`yaeqbK%14g1~e^ zV_2xs$PA;t!A9Kn0K0$mXf}TASoT8}!4jhXCz~)Ph9yn7jg2x-V1}^S>;cPIcIP+# zfrUoh&x~v(yZf%O%wZkJ?ix3njT!qbHZk^pvq=;0WWkf~VgGnvB>Sfc6Ik|i#=aHx zF#Ap5!|e8mr&!v=smwTGK8w0Hou%AAi5Y}_?9@0N`^VIOV0S0m*sQx}v5D5l*kiQ) za5VdesMTy~Mi^V3634!ql*ndBu42!yIyN`e#+KjtDEr3$+Rh^HdX|NzJJ`zfd(g(? z>}Mg>?B07;vD5|eY{~QoS>(LwY+mA0_K5KS%lW4}+5C)DcAIdWJv8fKwj|ZTOsP+^ zdomWV_1WKGtLIE--+cI=*|+8_V&8t`VK(3P12)B0&c5?tF8l7iKW2u9*0FyY^*)>Z z&+#nv|ITLX9?oW_k)N`?^Y3Q&B-XLZ)+KC1!T(}O^H#7I7CywDnE69CFYCMP@x_an z-M*Pk{oW!bEG}jDOnQ&~?D45=VP+{~vv;x5d4+6D$xL==!ECnq(M9YV-+7KbU;KaA zCqd^~){-aLqmeh+x1P>m-<#IRmM!`bEB;;%d+b}=*srS?yC=Vl{g3~k zAN(tOEA=w_&4Cd1X5kC$M`i!Q{(q`^RT~$^QAtU$cWh`4;=}s_pEF zfB8AHZQRZpHmqdT>o>B3qW9Q$x2{^glJu*RQn zVRUZqL zUmRyY`PnED0MP99myUfaKe{bKLGv5#+zXFvYsNw)vMLDs+H5c_|- zKVsD{_p;_ghuQnD*RuZi*09#jGFEly1NI;P@d~@V?|pXmzjm-^j{cS{c;hPD^J^z- zd;LGyzGEM-z_VAF>&gmNbFP`S|L0q*^WSc;vJ)4W^S3XvUmxycAH9E^?RftTYk9Ye zee~P??Dy}#%WB@g%wGGikJ+eCZm~~q{(_zR@3ZWKGnd#QXBRu((Z}}oe9UfMeUJUy z^^5HE?|a#ei@m#9uR6c31PFi8U#z_;X59v2Gse9FS@sh4uvCu z3I#z|X&P(?!>@}yfJq2_dU|@G*ugrT&bxt=6uy z7%h(ImW0}bmS_j^I(w~6RcCm^Zx86h(?ilT(_=$GLKheq5)y0HGW9|j5*iW48paBn zJv_vSOVzr~UYL-UP^f#Owzl>S9nafssv5%^{(3;C`*}K8#7;G*hv)*QnnT6}hO82$ zqIwJDAu0j#fI7fK6o>#G-g**@7JWjYF`>4$zP2{OSeT%<7`^ML8Xw+p_keCpUb;Cp z1okRD1md84NS;pcu~~2)ZXST);SuIzuq-VVc1NK;%wAR7R9j^a(-%7I6)hI`E{8J% z^nk81FE%p-JhJm(u|l%Plmbe+P8SlQdXtb29wDOpAQt$8*+Lb>T&fT&EzQwnx24(B z0(6dw+EcX^4qX7YZ1yHcTAHfK;SH@G7&9h4op?NJ&dv)F#-xwQ3=GW69usTMQvng6 zANUV}33rX1hu8|^^Rahv9_iwkL~grwd*$}p+QOznqs3l(s^V0w-D1R6EiacV4X^$6 zfRH{WWK4QspgA@@yE0Z6l8y~scHY$3*t~Ql5c1{#f>2BtD+q{p@kja~dGM&qy@QHE zohiX)3LEVxtS!@*)fPHNhnZ{%CS75LyUuXNUk?ay9p?195b_{UiVj@T0})}Rk1?w( z7VH%{5D*zV_AcPqJQhL$96(arE5Sf%t=PRW z@e=}#z+z1e)Q!oWY7PuBo3qo+<}u2!7Y2)@03LTeD$E0qv5x`>${yrXT8btUYzgT9 zJJy(*^rkT;eUoX;9pHmfMV;ZSpB@kbVWUDw5mU1(vvoq?RM@Y;K!m_k(^bO|bbZZ( z3M;H zuu`yC*%%O}hs2Hv2?@zG$7ZVafsV%j9Ug>m5D#QXG$>Lwh`ipm-D0`JQv3VZvs2H; z{=OD@%XZtK^D$nn{C#c;x9M%^!;{E^JQz+6oqRd` z2PIgm8dbPU_4W4JggZKPwWg5R*w_$Lt*+yagj)MB4^LnE&k4Frm@D%bjLu=Sp2gri zc9jkSL70_pR`MV%&;%Au?Fx52x_RuQG*EYs+Le3ITbj~L7mQ`L1f$WIU@J3TFr_tF zhIuIa$ZsCf2n;DjoQu%P{4B**y1+pu(9tebu3ds%$)P<+#rDsDd zx)89y+~OvspN1ANDkl?#iS|b^UqU=cAj(SeK5TZAaeJlRVbSBqVXxe7G!4)1%AGUV zTF}!p;uu}XR18EAWrdhS%;1upuJj(5WydVZSj<@g$UICZf(HQ6wgwPmLV~`q*5NRw ztx7XG9JPh|gam#Ocd%m_ejPo4iyn0811{X0olU_m=C3MaSB+71v;bLfb#NLy-i75t z;XIS7p4g+t1XEd)qc)+isxYC}(Nty{#_<{c)u4|+K*`3GVQePy*?Fayc2~=TF3*Ao zXh0moT^N7dg&f%{Eg+anEGuiV7gkkO71~?M$}p$+8II@gzA9+w0(7ueQ)5HMz;30d zo1e{AdUISmM<>BLK^XYCi_}7J$Xdax_;eurMPY@*)Kpkl*kp246vChQ)EO@D-vdH` zPLFBDSe-dL6B8$6Vq<--NAc_Cgab*q3-Tb3;>Vve1|ChT5>{dSfn^hT_}};ND_T7u z@GFFY=?JY5>-r42=`ExPx)dc12Qix{3Ph_pqrI$2ybp^RbxmdVVR>lv(m-VbjX`2D zPEQZi#=%1@3aKU(uwRKGfTrDpZq`8qE(Eea0S83^QnUSAMq#lU#xc-U^56c3{2U zG0el$Jzq}FO@Ja_<%S|J?MYv#k_XMe7Y^&=%fX=8iVA^hgICu(ynElbM6=!D!mp$U zRK`l&gGSL;vg_eShkIbS2fmUX$p1=O)oc`>_VL%9QjpwdpxSVk4n32fuif?9rI;M$ zO%FJL8aed6qo(n($G&zT$%-RX<`u<5&k_M8k8wCR(X~Ohi98!`^?EN4#s>0Vj@wP9DE-R zp4U{#$QU&NKR|Hxfy)9sz9;gKOFr{SeAYJZ@iBI_F;gNrqdflhz zdDA=9#U@ii0#uP8e#S&4WfKxOBKbg=$ibV3ds~eOW{P7l{`82*LoRSP_f=(*iN|en zVtmu@zVNuG_@h~4e0VrZDThARu01BEwQIqnJcWh(^1v;vHOyU))zoy=cr}_Y_W71A zwTkvKwrmlrsd#{fqcXZOHTRiko{7d^ZYs7MAmV9K!jT$58Mq}%$hmn)yref6ADc!% zjK-h-6l-K2L&4YKNRsV^$+zA1baQiOXJ>Qs)3@E0TxeI?FV6|Vw^gObzvHs=xU!-KlNX04*$+O;)}0HjC~4y;u5q++HNhzT?*r&p(zmA(4L z8`Ix-ncgg_;7BXZuC)-mMF{!Xrtou0^x>3<`rQ1 z+$lL(#KHfaZ`>F?x*0%{wFF`@#->Flb}n4AX3fIR#OO5W#CxwPap4b?XJy^!b8#TF zaP{5D$|`>#JWjgeXm$^=s`KT6^e0~jz@!12aKF@Z=v3P;AIavm|t6M{HE15iMM zh-i;P#yvUiMf{C>_Y$Rdk$dvVFTf)?*@qy=Q;NK;z$!sx`r=xACj zj7~GD{-5YnvN(?vr`&lr=pWk&foSr0+g*>>clOn&EEeq2PT2Xg`D>l9^fy2xA1v~n z&b0tS3c*V3KaxjtLe8G)In{fnS0BIjeD(A_)j8AmwG5Jy)@xLjoJKsF>GxTfEuJ8m zhr9)nG;$>LkO*zSR*^*3Bw~By$Rt(6&__x}%G;8qx+!6K8)e~fS<0HwK~GIbM+dL* zC|_a=My%0eu*h5i$=Up4L?%DK4^*7UfDQyg((&*Bj&s$=tB?2eR7dt)tB$Ph>A_a@ zIRFto2>t80dAuRZ13cc~0+Dzq|G`Kdpn-duO$qbJt82S+sNbm?S{ zVp1i2KooEuU_lub4~0NT6#Oo8JkXbraM(y;mPRKkc#y$*asVDdL0b=Q&CShy@4bUt z>GN4N5?lp%Je_QZk-|?iBtl!>E*;$-lVmc6g+(VW3`fynBo zM!UTNH~rfa4pxvvG=YqJ@yQpTd<9NJN>B<+n7c>hOwfBwq+zvMfn@8}tw9te5@|=c!S*eND6g13R-LtdAz~TW2BM?SBJ#{B6d4~kU}&BLUGlTFH&43 zC2)Dsmj@#p2M@mYUiW(kb2*akt-e5#?Jtu)K!AcO&I48pkY0XS$pbiAo=FNbLL6)0 zLK@&a)<7c0u%u^NR6r2!raX|6B8>&*6)$s-2R%IcYsx_*xZFvL^75La$7LQ*Q#bGI z?cD+%fN>VeI0~s?!F>ln!K3G2mHbCS!nt$P`>yru$vNKFbG+wT>NPC;j_2&@xz;xw z3c*;NQFp^WjYJ$J0+EOS4YWTp2Ct!(hlf#82WY@vSu6)D=2j2j0YuTWHl)r%jF z`~Hjmd4L9`g9k|@T0SKC<%P+0bwKeDjSAD?Ovq{#BERtEWa<;1Msga7iN=Lp@EzX< zk8fk$wa^H|MMOLbNy&l~_yM}h$e6w+CM1!%U7Di43Jl2Fw3k!R=;o&f>*ANd7 zVJ)5*3p6sa9v~)Uqp;$Ol&p-Df(&{5K|By%q4!-R5V(%t!L*gv+;SalBqDAeWU!J7 zlCEKOjeN*87l~x&HT>?(zm}AA_9{QZb4WRT=QixA299gTt3Sxukn;h8UI3}yQ=i(G z!)tMK1c%P`Arm2MMe=~3Pn8CX(n*s%@L)^=9u)%+GFb=h{saOVuYCCAlb4<(eIN@i z8ulva;CtlD#dIA+$b~R3A}>Gqpva?+^MG?Ft5pYmJgDFy;#j!GxNxB{EIK-D4K2dL z5{+vXia^}tQuYE!N(N~JBr^C?!|Bie~lPp9eev&P5-T1UAH(7Ngm`t zdXw538?OQZ0lDUKQTTfeIIiWNP0GkWOZ%l0%;~G&5KTCG`u2Q~lUkpe^T8f$IpIHK zATi__I1da$$YzONM3zUY4-cZjfq({*#ok?^Ef6S!cm!R#^x`W|20i(qKOS2}9-{B) z?!I2Kb*q(Gt#l6V^zwr*gGXT<{$RJD6s)lYt>6`REyfZt;%I0vBGgS>*znD+Z#FDU z937o#Y=9?On5d{nJb3>@8GA8}_yE@j>BKD$#<&By+IR~*0Hh5u?=b|xSNpsAZ@HB6 zARtK>3ShCWo^?SOu3IkhB`#7(eo{f5G#7vFTyARphScaiJup&z7^BaqU%VlQ=%6Gz zcf+}Jbb#;?9v-Qj2$?8Z9#+o7J(Fd83^<;B_Spm>0XH{Sz+Cwk2!%mM-T~bYApJRpill)ddKyv%UQ;=mH{f!GtBXU66R>avb&3`*PvGd#YbeUHocpeQGuG zds6$R1C=;m0!@he0GW}HgDerZxk|N=|5?}B#-xG^Niq*~d42AN>Bs9a670!& zH8uCu4X1K*kgv`?KD|D-{@e!Q3rT821% zBjg?T;fL>Xfp8vwdga4Q8aPNF2&p)at>BTnRf`9Sfzu!slq4!d#1mgpbb`dEOCDVK zAO<2>!cbX^R4ktZ|EHc0B9v10maoga&y-S7UcPs4!QM=h=`Q)79tJBJ9^D0R-v7sI zBoN|p>(Gug~)N1kG=BYAyEM(B@awq#U$Y}6kPfm(4Z?I zaPH8Dkp}3V@QShdD^_I6sraq?Or}f|ZLU}`U&TYO2N3Y+|Kn8vf%WP_s=0crA2{^x z$z=prbxCb=IS{Dg>K}W1NhG~n;5?Gr@EY$Dh$D4F?uP36T$(A#ZCSkG)CRb8IFRaB zbE`MhpL$gUf+K|#Qd1>y00<`{$pa2V@vp^=6~ysuGP#d31idg>72S9|-%UZ08TTP3 z6F&^P^vWwi$X&YR?LNe+2(U2r5P=}Pd}&NH8q*wPjTNoV2M|j0=g%*G>#eu$!&)j(@JLRG0*@~A{?-1ge zFBmHj_}VM9ao`%%CFlY?;6eaI8wV4400`!=@T1KGhKb`)5TUG>KA;Xv<#HGfEKT^s zA@Z0jBUnf{Dk@%Bu>wH&RFN({me!1$Zog)_f?ofHCth51A+_krnl zj>B!Gct!*w_X?d1c*M-bTxS}gfU%;5$(V-aT)d*x2LV|lnk+csx8CBmi}a$z!IF~+ zNF#+;^jFj03o5tz!364%cbqhL?v~fLybc(3TQUj?3g9p(71YgrJ*n^Yq`9wenJWqe zdf32n>oIH92cvZgG+N+5PJzeqoZNa35E2M=JvnqqA;?9*w@Ww_Ct?JVgoGEIFH~48 zFRTawkAd_-S84xrDG2%i4vD_+3R5K9V3AKJDhGYc6?hbi1_~gciMl$Bkh#fHxeqoH zI3N*dgG70KsXDyk(&O#Ten0qQ3@V7 zBTOOg>;;3@sq?qg)y>7K?)AF1*L!IeMLOkr_;Z%qg6a0Y>K5>50fJNTCVf30RBw1S z^&FENIz=Va_Yg=7EEjF%S|g-Fu=2=*8m7xogrmalZ0Gtwh~>{-QT=h_zyni?l-Eu) zMIt-&_uj-LmR2<`5H1UOK@LQXgUyX;!Thd>BMoZ@cOe`|QcH~ZUn(~~KNB%kdHGM= zJbr?$OqD$FZy+j!fN*{A1=ImwF3W>a{Di3zwv!^>w!STO&`8}}FaecfJaX?4B4ylkK#ET6$bq)k8e%pz=E`ZdN7su1BM)(i% z=L6!v8^J^Ic8x5CfzSqiNFiP$b9Z%wSTYGN4GkQOwa~=6g@{mWML$?OEEXzmaW^Gq zFnw4691;&?3OsX(?y3@y8j%NwLO49?V61?6pwD5UdXwsaW6SHW!*tbcncLf2M?hpA zjGbbv{#-8cI7hA>4g>~^cmT$$;&71mOomDXqT@&afpmgv>f}6BGDmG=J;#B;2d;n+ zkHJ2-Vo)9o(FOt_W7hlX6;A!gJo`9;;5D1e6_7`!U>!`(VSkRL}<@41aS z9cgYs0g0qw%Z0uRb1x*3WLQBR%G9Zzc!$7(E%jaTON3etdJq%@Sd!dclvqO)Hzc6Ja5;055giJJ)lZZKyx@GfetIAjf-h86c_C$lQ@5frCUM zrkEIfT+&DstLuqd3Lustd`iM+(}&g$ztXZnd0_9-{{XFgjzt6_@nCa#k}J&>c_^U3 zhcNKK^kF?BDhPylyeijsuQ7TJ$;_nbEHN>b8KP6)2FWUwg7YjJCMIot!oJuut@UvCe@j~aM?o)1~YV~oS;tL}kOkHinS z3l9#){w9D7^(6jG^&WAp9!MbJDjs;S^vg=Pwc*QZ>a(>o)KmEL)El+>`sx7$5`I7N zz|%+KIrFX0cKUv53l@v*&jKWTwx1*ND*iLod&JefYqi&*C^k8dphJhOL6_@L9De^$ z|7#R&Xk`V9$!Mz@6bL>?U;NQ(Ls@1Jld{N9KKv(sUhpdZGu2y7Jp3B0aEZrKYY+z# zJ~~iozr<4zVg-B&P;6kJP#P;B8%TFqm10}tD`(}C7W77=O+N^a5c876B>=*g@;f!x zhACn)Xuhf{{4@REv!U%b-qqc`Yu6+GfB*;X7C*FfsZ|D|ArN9wT8gh_0tiq*4kQ2s z+p(&y@N5Wz4c`N38`y<}m_u>jz!LKk+~*W(9%y>fuy}FFq0@&-7B3zg$e-!|o(*lk zFjw8HA6fl~r>j&siO0&N))>)Z!C?6a1OU+erGXL_2?zlS_a^{BZ!_wRRRev)vN-Pz-Dozyb8=*2Y=~KPXo?L(#FWm(B_$<`JEuep1|)p;>>(MfKTo|;;BkHR>PP$t zBv3L}D-Usjz=LS=C?#3MLLz1|S%8CY*rZ%|pdWn*f>Cd=Rq1iVqM}<>StD*UkDMPl zd2(bVE#^n!Msq(GOAHZbBBo4m5%SQ}8e1w3;s);8 zgx{DpJNp-jBT^cMcv)S03U5p%5$l{xENY6$lcgLSW!|XoOq`(IIC}OJ9ND z`U|BlI%C*LuDa%5;|h#5Bv zY5+l`8!=_^C~bwuPi2@+cW1kI*6Vh#vxvN8(q%2_7yG(F7v$u&!LX z5++LoqTxW`Dd5g2tb$PBN{|f<5g-^+h^jNN0S3fDCm3xAucR%nN}!Pj_YJ=>Idbxf zjuluU2M3=9B3^YFGwhi1>nRaaN=}zx`D+mIsi7zk?o7&08iL`7u%f*o7%X8#Xk_RR z+7k@clK4UDjfx+&%jMd&YxS;29@%<&tA;|Lg+S;d2+{6JNgy1N;slWejaVoHC}QD3 z0E0p;I1~cn#RDi1Sm6s%b--cMV-075afqsy@c}z;tx5|GA#(*6vY#*KPYwx9TlH32 ztg0&ZZZJ$){D+b$B_)SSu>8Z~DFX^bpqrHk=@&Y?h>~YYhQuQjX$b8J@kj&Ldt?-< ztnPNbxjKIJBUIfN$o=<^4i8)!6hy;8Q6N0P^6KQ+*z=|M70f^Zg}`fYwQwNnLx8ce z2o`a4cTD6g-x~ zrT<|u6;YRJCCFoLe$rs$P~fnZKp*-+1p;~89vM1#dx9Z8z9fFYdXJDWcI|?_+7-Xr z&j_8utH7Y%prwbf-~u6YSg=wAgx0D7A>t_`ri-vIzvYc+MW;;AMcD08mQjt>yKQI?{)#m zuGM6*eAU4ib$&Q*pgpuQ=oL_bN)Q1in!dKTEsDbMaca58}Ep``#fztn ziij9hLW^mzS0#&4t_eiYC*>sN=L{;42z^OT$?2Ry1tRD}b3!9?1{H{)kI#uO$r(r> zqo550yWP7kcfYy%O&SuqPt%j3-Vb~wXz9|WD}#UqLl840G(s7ryy%M1W&Sf%5ArKYRWkw>CBzb$C<%ANJPmQEA(+@ zFb^Vxo*4msoEgl62=QkO(8n479%K}}hig~-uI|g9e%ehoYpYg-MdQKnAPhh-1c5k$ ztT0!;Jm5Mc#}RuTPJ_G&nJ&>_NnK&AvhXn?x?e|vAQtbuQ^n;1pUz*CV<&`E`&Ud3 z4f!UxAh_C(Z73r;1hLkBY|EX?5K34hpZS6VhBP!?#Bq-s~)#jG;4)lC_=z!q?G%0aFX>w9S+Nei4u%0fC3%^ zK7%HCX-q*ciZ!U|$rQ6Bnh{@7Xf@wFpMos-6LTWHpy0vh*hd-QIuKgTESX6`7A%#R zG90`iLC3JwXqzM*1l6UvCu6vtzd8^ySOs)=Row zTYa56?|&=JmvDtx`L@qBLW*-Sbw#7}QWz;6dY1EmR!U_a)X$uTg$&a>6>#WCxC8A1cj5!s;6#+i<$hhxM3m%Mt*4!*;Y0@X=t5}Dh!K&_NH~!J+Y{n*33~ zqT~T-SZp?$^57uIpCi6{rwV1S1mr;Hop*TfB}Z7OYFv^S5;7kI z5@DtIGGuZ{Na7N_B6)pC1KmEciSr;5B{Zp6QnHA6fCyNP@&aPYU!If%Ao)p2%k#a? zLD|kbv~{| zt&WGu!h(3jmp~!P<3b)2yTEY>6DD{fjDV0gKV((c68#2TIbDPzBJ@?W97m}R- z#A9X2;zy>$FPgXruK_Y!T5%IggBmR*?;1drl-CiyPMhX;29|Qynv64KN9#Zq*(}<<9 zrNXZXLMb+RXoaa0TnG`Xk}kvmi<97ZD89nz(48z*?}-2V^w9{}A!ainFmoQXNJKUp zukbqX9b}R4#hefc4|`7^;*;((XU3xhui&en0YrJArsd8%1#!MaxYMcGF}(VW-@CXXTrJ7gX_dctrJCk$I< z)RT=O(^Z9$2fxikfa!9J2{wp^wEgr^LsL zF!+m2N*<==?MWD(<1(=x1N5YJe?Vp|Z!f{{oa$kKUefLl2-*w9bP3hN06o-id#D$W z=@P0JZxG^r>p>kH2QEaxP=UoGtGnO9V1(kUT_x&!O}Id~!6I=W$XW_A-u8;&QWT#t zAwm3l2j&qm7DNJ$Qb`}g0aI7hOSl9@6C|RM!Zmb^2zjx`p=Vp(N=uM%Bx1dUyAT4B zkoJ}(n`+8F~jqk zGH0UpLL(z#urR~xzdc?rzNCaZ5RH1Hx_5Ce(G5cd9PyZHha;hx69N*yOF3^sp)O38 z1VoH_35fEzC{LPzAh<#x5dfip3u;mF5OEL?ICdNuB^s$qV#-~0xbj!RMC5l{MHtGnZu!h`EN-TILamw1pe#6kK>Y{18B3j}Ww!o$gMA<6Im zOIr)e2ewu6@kT5k*jCB)hT7gB^}0cT`)}g0nsuXj(uUi+$h%{7D;&8H=mNuY{06as zfVkiHmzohw&itVqTf_|K>7mp^dyzw|S29377o-7;#my8}6v1*^Rl=8wHxduhi1;Bo zbRQOKuf*c7HJJwR9LjT=F~oX9ZEwJOTn8{&oCnajc`ypGRB7cQ(uicC$bsNhf1fg? zdgEW{#(@2zIOeaH2kn@5JzTnkz*`y8v4IDG$bvvlLZdkJ;p`Xf0giwJ@Iyhd0~HT8 z%tO&NUv8GiQiJoLox1g*%6_?rGu+y65Bvr8KtMpi7dxuBLEb*t>w~=g@9gCOe1_rB zfQ%R+c8%#Nbr-q&J1Rr*LPnIl;eK5%_&Z$>;Yrv47C;}O9`Mjmx(L@MshY`TQvr$F zCUtn!HdQOzBp`9+e@Q?v`z&AfQXTErurWA~fQkSUefnyJ&aNBefFKT;M}_SOQ(S$H z+bi~WRQXy}8*9r&AYTuUb-o`=s5%;HLpX5d%9XYOCwH~p_GOd}{(NnKslsmJpYn7epnceE`~%;gebz=BhyC`W z(AX${Qe@*m`++tNw6zUUAi9B`=pAS;+OG}zd~JXUJh*w8L8J?1+Hc2Q+Wa%P z>GL}q2bi4_+S-b6!bL!$-H@kLr^_>cxj+Wf2TYa8E|@6^Fj@l$NnfWgFW{iU=o0%nV$ugcEQJBK?~wBJaxoW(NbZzfyq-xf@}_l&Cz1AU34EH z8LVwl55ygFM&ZZR=Zd<4^|81N;^Dy|p!e?zq zu(9eC{j?enKZ|XY9k$7p=k#TjnPh%&@wpv)r=I#RLkkqHZvehCsW z;;+gr+Ki60&Q^!@+j?M!nRZE_`fEx=wStvkWJ$GUavKt-F!4OiQh z8&`@BxDFIunf21NmuC6z9!Nt^QqvyPoeKy=)FSr06Z{9 zV&d9JH=`YMIu^}>_ZWoS`0OK3K_sU7Q!TER3Y*OoG-3AyAXyM(tI)fT5Io?!GZGTu zF5*r%MPBdxU)cVAak5s$;C5MW`W zvlTq#`>EY~UzZFXg0OBK;xO{)wC#S;o#Fk4!H3A>+Z``;eEWb#HL*T~F%{1ZVR6M* zAmXt~JcI+T#~yP52rm^2wVM@U{qg_|B;hjJz}-@-_!3)oUm#?l00jDIxp=W&!~uZ- zimhJ3V;g{gLPmL9)C?=)s<;_5AQdor0I!InMaC82<{@l!{lh=F0EC~1xb*PAJ&S3T zt;V#<%GSdzKys?3^+XHYd1V^zYxHvI2&o*6;K38g1PY1s?GoY2fdg%>E6@fO2UfUT z7gqQUvUKo6ghH4KTj=9K=s!tJfUvQPvRx<=iC|-+@6JJ4FvVuOZ}xZpm&h4RTG@rm z%`jG+3RcaR1&Vo9Hub3^Kmcbx0{W=0uP~WL22EHn0V!y~?w}UAEgsWu+s1KZ#1W42 zD618r71R>7jmN@N^=`(+fO91X_x*;><2Uz-fOsLCyVNAU)eJ0b4&Z2MX{|ib(%IU2 z>Qt-4R+$FnsCmG93&I;a1)+u-B$>cqW%+iA0a2Cf$_oeLu#78u;oGinqrW|;pvdWT zpfHslq0^H}%u^Mw@vIC41c(UzlD(3EXyc$;Z#)lQc(=${0F6B$kWw;L=}^gKfo4t= zE@Z@r5qb{f$dM5yd_Ojx)-ahC>?RyY3nsXSAK>xy-fal6GB5&xFv__+9zYCS{s4G9 zE$icM#ygA?AR_cji0~^Ww?8+wq(L85j>@W*Q>~T6qm%Qff(hr<*LefWJ^jZa$v1n{E`{2@m;Dm*}r;7OCGj$Ev;nT`bD zRzgY+`ug@ya^5ror z?#ewy0-(&gQgn~7X4VzMEKMF$;Wt2oj+C#>8Zocf^)N!hG+vEXwB;8E%#|g!F4m;2 zNQQ|ksKHbUWx%1Eu@p*aE(^bIAQWBcpK5Vc*f48lO0XrEf`S%&x?skH1q+TGnXTec znT=$CJhsIh%P8O07k3P7w&B-6FI39lWFS}ze-O_DE860a+&CD#x&8#cYN?8FfJY1Q z=sW?}enJnAF1JT(ZmxuNjmgjkmSU@d-j@dxX5Ax9yQiq=K-__%qVdAF@9`5~!Ea#T zA>2;!)$L+?S}|`Ij|O@Bn}+;OG>AoFE|j z1TP+(0j5fl5&Q!P5g9iQed*~7DHq3a95^s5Zq|VVP>67kWJpytrGbZjniyV9gBJlE zUm(SZML?i<;{jMHENFy|7^PU%m}f(XJ!67C&S-jc_zoz6f*BPeX z#a2cF2%oirKuiGvM5FuDcZmlC0+mddA@R6C>G0vh4(r}>7j%K|Mw1u$K3Aig3fF<>qwaC6?Pp|BlDOG zAWwyc20YbLTVea3K=AJF-O$IoTp$EQ=0RzzH(QFtNi8#7e?hSS4Llk!B7cQ z;!edS0pUaB-@tRggYYQJ<&A?GYit;H5DxID=|mnp$c41nYEjbUEufWfM;-1tjVIFmu7lBXCUYJz(YSZ zWRsLa2oH@#39J zsszE+;lq{Liny4L5mQ*41FezcT-3%2m5g~cj+T~|sv1Y0qoxKUb$Ij(eHU9#IcoA0 z`Vhv=MRZHE?F0h3ROkf?L4h}q@d75<4-kx#C))@KhU!`qis*aj0Z)-mo!S6_;1Ndh!Wa^y%kU>Ii1XtHwGBD-^W_aYD45_!nwinWo9 zR1M(}d0++$`aqDSGFQU57hzlQZI{W!gG?3RUbrd1Z!`a9FL| ztp+HAq_N$Kr&*e;);PEjukWL}8|oG%0f8XvIdD(T*a;k!@Ow|kfx_2 zOxv`{9J_tHA0SFMugrT+L(G}-Km$CmjLp;LLEgNMSeQ%eO4Ez$O3if`pp!t9Qzj-; z0OBeHRS?LLBjb0IPk$FTAN=^B z57|PI?b7B^(^-?3NAlPP6vU(TMCS>$JYX+`e7Y`pVx2x%&n*^RMh_3s>*p4E^$CXO zCyNvgLntab8SI0DTBLzT1AV^Z-aOI@jYR|y@oJB6stQ#bs@kT!I$YV{^Cg0*P6G%{ zmLRw?nd$%pERgEx+LQ#u(^yM|X#y-1=iz$4oE*sazyJN+pAsMZczB3FW;7XQL|8{z ztv`e5f?l+7z)HzD_@G^r2VBUen!N11JaQj!=eUF`amjM_05AAiHT0xM0G&a2{aseYkeW1OkCd zlst}DKlubWW>_N()}Mig)zI|GC)Ojr|AO45dv*b*?%7c0jBx6Zh|B|_Z=Uy5yP#ip zs+QaZY!radA7)PAkM-YFwnTX$F6$m84#qUpfw)vT@CXsB>LU1@PT4G%dGH4ldQD-LAB1c?P1EGhwz@wlPHoidKl zCw{0m0(TA%AMPy=1{~h+ z*4S1LJmg{FC);6dzJNgR-vGbCormTORscHRj`2nXCa&tt>2T+DaOi*|V2rL*2OY7i zENB8*tlbMp89V{V?%m)q`-t+CGBS?bv^H5e502yJkqj+$DBm+!9v7crwpv?jG%iEo zz36zd0wf3!!5>dhi4P8@J(ugffAzpaN5jI{Pd?fH$@cA9<2dhk``;E~>*~mr*VSop zm3VL*&<`aJ1Ob*jd!=X^(}*xu1OyZiWMK(`z=F+C=>zY`peT#nIB;P7g=z4E0FiAz zhDtg-UWz_=@PUjPzFf1JCeS^Iw)WK`S*1?n1X|w}( zj_4|_uCz`NDs(zQhf5&>w$cRU^$&3$7@y;6`2^S}{Jp!If-G*a4nZGE{~;Ywh6u#^ ziB)-P^A(;K{9&Pz(b_t>idKb3kP}Y zKriRjeS~l~mKGn?<@wa)(}_aqzhfQ|hD)c%?1@PiApCnNc&P0a>{ms75N=?=fP*~9 zZXRTjTkj@93V-h23HKYHSl!!SZN}|4M28NwAoKZm$p;?HoM+|(5B0F{^S8jiWw`;13=*U)jVt!^(_}&K@+~efPgIE!LH=idC059gIP}_ zuJYOES5+X#R#`m20*tILfP-P+K?jOE6GJfY;B@HnIj8eQ&p^o2vQ^Y7@j$>U;m`*V z5ZEoq21VZf9N(=rVfXhT1_H8xPi2wC+P!;$a)MWRu<#(t&96F7M54s#>Wjg^fy$Rn zFy&3bK?CfU*dL(tMb866LH!nFT2CgLj;2P zM4C4N4;U;>dHC+`D=+ybIPmo4?I~8rqcxZ=sZE*G7ubbKZp*t37&D0nSt|g6nX1sy zRS_+D(7S_zx_8rjA|xWYbVOKxDLA}O?@QU%1qRZ@k-skdJo^}s2RB$G56o8)59CaU zvozEp?wamNBp~l{mrk?qpXZSNir!<^2m0-dFZnb~%w%U|t|+V`9+nC_?f?Q0Eo!|$E*$7UI}8^77;pdtZa?Ha6qi2!Ry+B#oY$t$Qu&M4g+jnU=7B6W z`0p2O`0wxi0Rdrue<%Hyd&U8CqKAR}rQpG>2s`G?35fnHS4fJYKb3h!@n1zY04Ts? z2Y`HCL`G|Nj7I64IddXabt6%tDsXS4C>f|W+*ST6G6W+UXE|pF)*3+g|jAUgVaF-1rFtKumS2=?T)askoc!7o?%0rI(c@CLPZCzg$VV)X3M z^64Hsh7(4~6Fxj5MIOrM&m)P48WC?YWflnFo*OZ-lp+-#UZv4gvK2pT*S?JhsFB`& zd+l0Y;(MIMjVJqyi`RB^d`zjMV{LJ9|4B_CiHV7!ZEbBGl(3FYO!RHdQxXu6HGW_q z0nrc#eccbfOlFRjKs<9S=wq>EcLwvl+O&jw@%_p7`W4UUCuWbHJ!!4tx$?D>K*$Hk zoPE8}hpHZU^zQQ&2;o?>=6FX3`njXy_?k5uKuR-94&sMs+@M56u)P)fXjET*<~U9k zcYG{8*!yuu@kwnUiJKCmJAOwvJ|ZH&>p+2jA_3zAv&Lry4x|v`A$@ZOfM^&jHxHrt z+&SLE!nt$Ja##D~ae4IU(U;{)p8pRiM?5C2b&6-}oHS`t-;K4Cw0X2gdOd$0*{;c> zs3_%lhm-$1fBdnt<9G@R)cbABBpxMe#l7C(s~c-e4sI>UWTlzPueR~vaM7dISoi~y zxTztr<9Dva8yv@t8?MCY#D-1&fCL0)k=+WN9m_;cl;@x&yjYxXe`h_}I-Lw(PmKgYj4bs(NU zkKEVm>p)UcL>&EM5`lR6bmH+QzK^l54{bS*9;K!8M#;f9OEU3NX;P{CEQ(LMPC^hJ zS8m+m)NYA9PWGSlav_O{4T;guC$=R%p9pK!(UC}UL7BTHbtW(v4~#Vv5Ouj?D}?k3@=T> za?w*yH@nf0p_GF3<^;;Ms+R0=80ECr9X zPC{|Cq=bMRJ$iI4%1n)!5Qv*cabv%$_~iNGj*csm-mY|X6rYF10w%>-uuUY7=fPl8 z;`1HPQ?9`Y8h!;r&+j2&;n!mE=f#cu`{J-5Cf-2wF{BUS7Uva&)vX|&y~TO(7nR3I zc_B0~^4@#zjSLJGXe!Gmjh+PeK?318_D?!CY4%H#xJywB1ny&BT50rX25RpemN=HY^ahNThAQ_cQCk>$Q-#!Ku^er_d;DN>4#G^Fxq)El&WHI4T zC6thClqZw8$=Q(jZ4lU$*hW|qIgU;KfS_}6V<~=-Q8wew<6k(MRDo~a#R6Y!LLEKF zE9B)oKmqlFngIhynu!R=py&PYfG@`nzEC7o3kZ1%5IE*^LLD-Wmq;_-Jlf&D5l{$OXi3oDX;Lqs=cP(TR8z2SJ2v>j!+lXXocs+Ddts5g!3SO0q@ZqgsXif zxR0RbbEFV29#Yri>vmQ|-ix0Vk-(u5`C_C28W4yZ2L}X!sP$o3ZvYP5O5JW~U$zWO zo=3@ggQ8dXSVQDN5N2_S%z`}B0%j7mon?;;Urbs;v*kb0x{bcnyQaF!tCn2i}8wa`NWL5sn>7pDy~3bIrsf zsH{m4nrIz_(TKPIkh(qq9O!RFXaN2BM!v)YKeT*l|4Xx<*bh?$IKDh49!K}LPi&vp zyKf#=26&L(iOBTAlPJzNrDtu*uYSc*U{pAZqo74m%Gw@Jgau~~3u-@D5G>(B zww9EhM7S%-gY)PwK6&!wcfRx7C!hSB(kGuh_nq&cgj|SXzv%idC*FJoBqibhz9)JNX3Lcw|_PDEo2lc-e54Aj?5Abk-N9S`t z?*xv{pFh_L9tf_yct9FNfOt4v;DJaRG~h(KeDnd!LxI!n6kkctpL;6=>VUb5-m%O= z(f~fAU|F^!8i+92tMDM)V3k207cZ6xF=b6L0_B2)GVmz#xN{ggx$8rbdoA*{fY8hM z)@V8Mb$1LSY3v69@c3BteiVBA}xN0^b28kQ`v8q+}t%z{&5} z;mreH12lw@F{Y-NkphU2CsDZ%#h@efsesqu&tJpm@I{8ok*~Y^z~c$@JY+F@|HmKC zru7pyNgyg7E?09WMOG6HGv|>)+BdiV=jN3wH_tPGM*F_bW|#YuvU-m8fJf1<@CUmE zrC^OMXa%phcl*Et^vqjE2KjR_@iolWR*V$ggF!bB*U8#uz!3dMbL~l&uRhTCuu~1L zO|FK%8!l%eM6$^R3)a<@Sm53-GU$AaI&_dma-|?t!fF8sAyQW26N%{hIiw<*P~>aN zjyYjajhY9j>d0kmybm-^!3fYNsa`5-cyY=w>QIkBc@t5ao)1t&AtD*dD&*Zy>EScv!Y&4PZ5VfK!^tt z@hE~qdfYr7DBy{JY~9)jXTTHkaO{Lh(VnOe^uIFU0||WX6>JsCMIJY9Y{E2U1MomH z1!^9A;34So;8k#CWpX7wyz4V8q~XV$u&_B6dR`pv13%Ml7c6ta$XbOdfY6f=@EX9; zBbdre_!W8p1fE2%v{$M@2M>5xVEAz_1zKX{>po-j{}VTFf`K?2LGrkXqCPJkotJwr zyY{uW?8CSN25a+wf`?&WZ%g~W_U7KpO8>z-|5vXe{i=vBX+?!aMQ$D$B9DTCjEvIK zBsrZt+1OYL8Yp!i9xHCV)(APcPM-H9zKwE~KPRto>(-6F23KDf=8HGcq;bOym&;ku zpyI*!z#}*rFvNs$2nD~Y30GXCB^|(%1BacQ2hUl;$a$!E00*1~J=9&+M2|zjtJ6kI z6M(q=hicIA+H2qtdhctm!L`eguP5N1H2Y>BaNNB4@qV6W-?;hl%_pb?VVApGIxo9m zlX_d$&z!k$;>>v~H~;76&4zuyZ&}~c?z-IUQUD<_a2mvdl0=1w$njOi5}5}Pk#UG? zpjuL(;K49g1t9(B0puE`^T=WDsu6Qq?!!Z7Q`aU?>+2&`5RV4p(RHKCRRDn~E8>wv z(nIk0@yW@}5XkuPWUnwRR8;~G7$;Bw4huqEyB%2pJV+Y~AbQ{c2NDDb#Kd5e;(A~+hls*@+k>jw5%2Dw+ z+242`GsP!Ay2j^=uYGh9>+_B3@QQ#mfJavscn}IoT}TBkUmVHFz>x)eg-m5~)_8GP z=ssD>h@%gS-Dq59G1~1G3syvidvhg^ri&M2^g(bO=>C|pvKRtX789h8xp>h%UE($9 zz{Hi5Jdtmxd++e!-~k#@!NI|;!NF0FuUZAAOzKnMU@q3&=~@qYELyY(Lyu+iz@xq8 z`lr{|w_J90Hsf_Ui9BdpR|J72&#HNdG(;Yd2qj`tDj6~r571~N66Ylz1cxR}ROSji zhz17&dGKEsaDb5y53*0=D=XpA@l0PZ?ACa3SSX(YttsAxH(v%82}b)eyCr#<-M9<` zbP`AyG$JN_*+qJkj^hX_Ln2ua5b`S*<$xDfNj2!8_mVePM!r&mj6ohG4$z2-3ceg1 z6&%$XylOwZ`hJf*P`T4}8P;jhq88#YZyAjXTUxG@#d0Z!ADAzJxe{mD-9!kEiieDY zOC%#Bi_3(dKsTfq_rXyH9-RxMU*f^p_{f8R^xf#{gF+~AZD56qG-_)lK7Sq@+#HNi zMbk122ZL!WLc>DkUTLxf!BuqhGKd2#l4shNMdMn`{Ta-tAOKi=%bbN@i+tm3#Q_M z0fqtgYW?~}izfDBn7+@@y9itBQD$JC(Fcw*rARbTzyM81zMTZ(b{}{wlmjV}u&7t6 z=!&0rF_(wSC9&WcZ)-&rHvtEEbQuT4p@l;^@PK0{I&krz!*?bwxVa)6JLX`fq-hzT zSdbTisCYD83}OOiOO!mI5rGA{{f96@)%D`{c2l$)pon}Gd!POB6RUzBKSKWFGXA2D zJRW@63r8n82t&)F^^2A*nz;zGCKKD?NeE91O#Ks0gB%7v@Tq2d)TebUk=PDkEP74>o)D z<)|Z3m+=82t*w_YUw%9)c-3r`IwXH>Fpxhd9vGD`0-8lLrHdaPe~v?h3n2~H=*kgmggmRuE2{(5e2^PS3iHIAoS6H{nxi24fVEEVvFj5hnkLOpW=Oq zc3jZFh#WvLdlDTMAT-&*Lv62k@0T^XjT72{KZkF3%L7wp)aCb53JvwllLf$~^FrL* z;3W^%N=Ay~h>Cms2qfY;G~XOugc=Bj_zpmjlW!AZ2}QWdS z*P*B#KJZ`xf#b!2hiX{p*$@0VhT_nMIKM9O2oMked-EV5DjXb$5(j{g7I;$1KyZ%> zLzTt+D4-7x|j3_Lg; zD&TZHm2o#aJUVyz(FI|ts>d&h@P(?FZ(Mdokpp@B zaRgcZyoc|*{=!OVay_x30As?wz5?9MfbqHa5e7>aIs(Q62n`F7cpcF3)D4JcBoH9M zELMQXgB}8*OH^L=%JZf#Ifuv!Lp$ZQr7w90Uq^F^4Sm4T&;^YY^!Z#ER2~5ok_94A zhE(d#U>gHIQ6MzGF7f~eSTXN#SJ~ol-lqo|2uDK$>nf;|az0hu1yD#9VjUTWyPPtd z2VLx-;EHj5kWiu#XW^ycG_)RQsOw@4U5qubh5{HW7^|*2AA{v-Dq#F*DfaY~Nx5jq zgTZ6KXh}SF%%MrfFduL3^VZ=4We-sI)1T-#27p0t3h;*muZfqPu%tSW2zd>76~$CL zwJ@B9+5;qzLDK*{K!ndz$vn83A~QBE|Fw&!FS$&QP>P_#hL0}b2@m-I8KtVO-cr5vH?V>3Gpo`UB;v*qF?Pz7AN=44i>5?GOe7#~ zA_;i|^T_k&F-lFqYxDClpl|ye$~%3hFSOq^21)xBuTuKZBY&R+Mtuhs#b$Blxme=j z?m4ff2HBKJ@UG&JU9})J|Q70!DmLvt2M^PjQP=zzWbv=kWjzq!t&bi6GnF& z`gAj~;4r{Lz@LZ(Wj;0O0D^+*C&c5kLnj2~PI#w&g7+~A!eT3bW&!t~V!sC9m|_qx zoxTVXnPP|`KO(&+^XG0L^5gsTSU#m6{`}{eUh)_|eMT*Od zCPHE1gEZ8O3tzZoE%ctIHS(gMVL|l4Q(Z1GYw@D#rOFC15`>Z()8u*NMWSm3#A1l| z@EQUMndkG{Gjq<&oO6P<*3!y8FSBRQKJ&6a=llEZy=V5!gngu`W!|sB`{&)F!cF~a z#Md?_-wd(WW3M;k?3eGV@SFZLq8B7&`~8CB1HV5zp} z(RC@gNhxwW*BC%F3kY&d&<70_ZQPd`20}{aAZrh%yzQH3-z7+z2B1sY+8|}k1 zr@dzRLPo1v&Vp$+z5i<1LdX z&zsjT5MO>FG{zPd&Y6=RYd!W3Wc=pScVB<~-A_OL^2_)@lJo*S+s`8y{C@SF&Ai)g z**xSyk?=@>g*=W;h(v2Csdet$>Svx=1P|`RH#cdndtGYR0D?Feub>ag%oAOR?+_x3 zUK6cIkbL=5UinDzfCeX~&A=TM00NFzy!PtyIfa)4!x|6Ux&O(_3jyQ}zLt6)I1FH5 zUidaTKbqjHZ;4fogD<`5rW=LGyvdXM1L8}w)G_C0h5Z4^826jsye>q({Pfd!K#~f0 zmA(Ov>?FbRMyX119)_4Giv<`qrMmk1q(zJB;Gx3YXrDxB&lDU3 zO>3oGIY!F@@|svJ6A1p}7y_9RXzrZ?j42eJFli1P>JQR|T z*@^|$T5raXVt=D6y>PFi==)xS08V5PK#<6y*O*@f5KXJx z*dzj(GNrk53M{6)B41)-n(_0ppvYygF2B4mS8mVHr3BI?_XEf+^a7dC;H&JwUC?gU0+=-(n#Sxt|>|*ZXiiX zf@9`LOjZKTKmaVdPrvUzz5!wqxep-lXoAO6Q=Xba`STG)Gy|uZFU-}kDNP%j91oBJ zM`5nqEklSA&AiO(+A&uHx3RhDb!w)Wd7w#ns`R5{P~kg+CwfL03rF! zEuVh+=@tZHg#`lS(P3_dTwi^CbzSZ=i@+f)uBVcfl$7fvk|e?yIa6FnLefx#@!D&n zb@3ecDbImK7A<;>%kQ+x5I}^-l&2Vr{K`itBEXz{o_gijD^o%t7mwV+(ZT}?xw(uP zSFzC^f#5Mp{Pl>z$HRo7QQy*1U(ZZOJv_XpKV_#cy=l~qlW!S(9(ib*I1pUNdE}vK z;y^xqHzTe*w4`7tNcl)8X@>_PL8Up0khE<4#+{0X*emj6i&ua2Q7qOLmPIndqYmd$ zw+I|%>1BSoXFmQ!GMI?LF$fyB;zE=@Xq4ZVrz4WljAtM(5+O<1E8!t5p0d29HIWn% zi;KsTPv(w>$Nt>?7%7CJ?$D5nK&WR$0`*#+?_BT8uY^TCNWjrj@2Acs3u64Wap;qA z9h1k5iL4}63?7AJ;gOXUYiT469-rbmK7H`PNSZU2R8kOXDoNrIPf2>PDadz1dQwSK z2w&pJrfZa4L?7AUK`}TG0g}DtQ74bNNx4*Z7cH8bewCqq}&d%uTAhK51m`+_?yY zo6)mo6G+nab5*&31Lq+;27HezS)`9-w2ns1dM;iC&mtBL9!3ZnkWe_9ip-ZaOIM>2 z5y+F=NJjJ#;ekYCF1L_-VMT!W(1O3RQg~pl&_@Rnfk&l0|2#$$WDMTpmYXgeJor33 za2!;w($34{LA=MizZsWtU2GoIY?BJ8OC<$^p^z^ABNPgPq$wy1oIrH!)15liE52z4 zs>a8bN2LX#G!hXAbt_C2u3Q1Zi_i*@b_kHFO&(Ia0tfCx2gsnzAN^=hCc$iWz=DM{ zseWmdh5-$~!cYX3Cdlwnu_n^<9XvE~=C(fW6MdkS!d&6u^60{&K8!=jc1lEgFOBLbncQG~dSYWZ}b4{!j3%PVgh zbH%0cfxtsxh+`8XkplL_#(@JEufP8KZ-j_vDK54kgcGkUF#n~(LxqASd`c*6uS606 z0SP382T>Xx`mNV058~xfcm3SlMRm_qC-EbIFion~t6NW=H1&~$Iimd`8xrG0MZ)wK zl0cXV51CTkHSz(GKffu{Wl zmeY@@{0IGtG}I9dOKczj5Cp*3!bij*wrUG~ST+xby}~xt<<`}K;l#o0xhZq!revQu zn54I!6d1QSS#Tn4Z;@Fh4?F@{?}v1(Cz?*^zZ`Y(o4MsXw7G3(e8l6Sh`FE zNLrkH4?ak{LvRoT$T&|vcqCEkbR$lHf(`Rj-V5B0FRIkjbeGYEB{ejASfeSKv1{clDz;J*Xobzd}T8)0`c&`iPurv&BMT1{zI%C zhRgCtlsOxn$qNut^nwHTt~|NGvMiX*Bb1*n*OMxRgd>27=23Vb_cjq80Lcx3gyKOV zZXWa@DtYjHXE9c=>EL!4@StzeT|CSo4!RS;p@78Yp($G>IM|}Nkf;?|35er23Wov` z&4XSMQ3vHOJfzMm9lV6%QkGaAM42mE8=Q%vDs`=>196}d+8!nkvG!J=X2n^kxz)Ok z=eWL_FXrepQ5Hz$k*KhccM{mq20(~|NK)k_6_qSyuxJuOBA-D=eF}*g!C(oUCYIXr z;8X`B?wcdhxQ}IXUJiwFDIXN#=7B(zFPGt^hS}f{ z&7c>!V9bb)l>RGB79iB+){M$iZ}lZOV(}0V@OU}&GCW?M6AHLEzvM(=6psS(CQ+fx7D<%C zBgmud-gx5!i-%Sq88i(Zk7nPh^9F{vjxFGzh9y9ldUyzoBw&EU3^YBSsZ$+TYHhMY z@gTWoO9MNlQ^VC0beV{1MuG;_SUkXitDt%z*T7q$PgyUoKIVupUUmlN!QtgWtqK^$ zf}_4eId`6a-m)ZyJVYOsx!S*f@-4TVM;{`Nwl)mbd3k{2?5FR(>(PfQ9`x}>wgRGf zSU8kE?BWw3h=W>{yb*`=vztJKhuAJVD-Dh7Td`PktHptytsIH+=sw(~GfcVv=s z;dJtgvj7B=5C?)!M;jw$*skJXSOO6>xR{V2`en^ACKSbkD(@1d4`r&P#;g2E zEF3rxDpscd*iV;x_z0pRS^0Tm^Oe17!+%6A4kysjj=>UZb@tuY^4g?@={o|1S62hm*BOVTMAaYI+2Hg8cc!bSW zxRhZ51{^vQD!dAY*ebA= zg@^(o0%4u>U@0IGBBB#Dd~LOKjBc&2#)phXA0`b1Qq2V?;XL>Tv-e8TP~|`KM}owZh$NsM$&R%W zAf_U0kw656gs@c(b0s_uY~oRxm~aaTG3H5(!9xwc69=+OV8k|6_WnZRd@xkjto&=B zVgD-r6cYWwkl%?y-asIV2Rd;(54C2jlB!LC02-nVi-(x1>w2^1m>R3JrsirOp!F)D?KjYN?!ZC9n?FjwThoYF@P3W<1D zdp0HxS-Xg&KWV5v_`7^1C8=tz#iP_}xH)$PfhbjoP?SKJ(E30q&Rm*CH`Ozv>AK>a zl#S!$Gu3l*pV1sVG)f*CQsY(LLtqFMLXv5*sP?M$iadyz+L>#osqd7O)fO+y)}kx5eX%>+nprXnJZ5WB`^`3Uj3g2W8KsKl1J z<$*wK0|gS^midY+k8ibn|ALKC>*xBCm@s5*cd61BMToh2RPj)nac!#gq*QK6dImEn z4G@}wxtdlUR)?mIl=?0~m!2wRqp0T2yj%%G0ij_i$>w?~c`FDLE2xyn5{-J5mY!3EY2;weGWoQ~afI-8< z!=oCpt?-vIL zga_yAE+vUa?_ySy*VhfI_9Qqm@#ef}mgmmIdCZ)di3yY1F8lG9>Er9}%0GO5)f5K^ z6z&2I$MYBPkn*O~!68>%Nktb2GIM5LM72Y{8*^voY+j+Bl? zoQ7B}IV%Vd>=X-=M5h;dd|TY4>V(^7bGYv$hI&x`07=pnf+SrkU>A9OTQp$7rZUy$ z6d8)16zWt8gE=QzE{5-D31BqO$Nwv2QHA$a^PR7x-CfD)bp-}Li?90~m_w-?uQLP5QgG~_ zo;jYouX?jN=Akj_i6=%~aRpC*awJDZp)q0U(g`3*??2z9A5Q8wgEq#);~Nr)K7W4y zEzGDxil3ls34`U*F#q5L<$&VlB%e<%Pg>xMneV#mmM`DAbLaBq*IlP`TClB+3%V;B zud3*$eDo_ujRM6Jgi-wg(K99pi=~7K8U3wq(hv3ifq3MhY2S=M^!a{&u%(|pi&v)6 z>AIf7Wl3#Z+1kc+VmWbTCxaUoEZDk_7gvmNDZYDE*IfsTopp8NO(Jb=OEUFLoku`4 zdNMkH29GPs8udiQq#q#g$S6)%CTr=^_&{|1hkCv~$-8ULEeelm)1G{C%|!Z;@;v);b_R|7s!~0hfL!vtreb}Hss;+7_6UbKaWvto+Mola(*Eg|BsMTkPEz~N8k8nLFf($ZisSX$cF#K3IQqVi=d$XFma)~?;Ub?e%-0)&(Zkn48defRgj z|NS~}ED5!>iP6f`$Loz(-Q1r(;4wt+(g%a&3Nc#y;}C&IwqB_Zsx8(B512S{;!Ck_ za)mJRD;ipm_@t-e`%554%xL6v&y#ECLqBqk7yRYe6n zT3U#?iYq)bWXPC@pZs8mAv^?%@xccVj~Ox~ygVv0;M@;?c<#JFI2-PpA7oTTJb|R_ z-j!mF%TGy3p%7(Ue#)-hQ9Rn3l8b_V8NbgxQYD`s9!+ggJdW&x#{$WRTa|nZ;IZ#W zgvWI<>?iY?XX;w(o}qi+Qb=R+RX4}4V2Sr=6dv3%x{OE8Qulo#mO|ixGOiqSB}4Fv zsrZt8VssgqI4T+{1W4>k){rqn{@0ifc!1^yLyiv-l?*xl0mDzm#04_ohZ_eB*x0{9 zcuEUKUPef&X^gwIOqh_;vAZNi#^tA^l&mUANs)2+DJ8o*Qsf3N;V{9U9BL~~_LDC; zxinasoJ>A{a%o#A*)@Kjy3L6rYcm#*FC$~^*0mWKW2@NT$IxtuPrn}{}D}{0SD$O-6e?mhtmrW-715DfG)s);2z+92$ z$(OP91O_Y6kg@fMy!K@@1Ta^mIr1&vxf~~wskZ_IB$+Tl9&syJv^<`80!fH8%DQ+n z;T1kkJ3^&Os#LmuWwBmdtEboE(|Os8!&5y!2Wth6QXPd<m;vHU%D>6VHsdM`Mj-DCgP<{q2$tJSH6t33r_4?n-R!Za73!R z`;2|W*X}!!u{OhzZ~5IcKkmL8AP{M-!<*wi;6VdK+KJAiAWl1Qe8sRhi-94ZG=bvDr&n-+maeyyrk5g)Kt+CxW)IHeVYDFS4-TRN1tvs2 zJ7>-g_~C%Nw#eB^BQ50JS^xl_^8toAGRcF*|Qwpd{jb8hoBuV|@A z*C+pwIoDE|K?>V|G3McIQq2-5q$ss)i)pa9mG~A=3{xVB3B)(wH(#IcOWcy^Z-GaP zpO{KzF#MM4jr1_4TG3Y}&EFa=0CI0QnWtFq9y_Da)y z--&%EdQWUcE;LCX;ymuVzkl8LuY-x@)}_LmJTOVws_S4vF_-NygFcE562xGU81)1% z`cCYwMcuyKMW-?$P8kkifG`4;F8Q zFMV6V8VgxkEv4?R~AEJLSO{ zfMc8DfrAIokVCN?2rRHu!h`q6Tf98rPHoDEKi5rlAP`IzmTNwBt@$vq_aH^tCL4#S z#0Ih}rNGI<&j8>`lpzJfAK8~I5k(~!a@s2@Qv0?_rxihpLH#!s6{%v`n`KHB3mT|{ zt`aI(2=>}^3XKDABA*vkv>2=ccB1>{c1Yu3LPY9MAn&}PN_4h3>+C$ za*G=)gKd?KplEBGFhy^hFd^H+BfrI$UtCdnsp$^84r@iYZrC}mK79W9^XL2V9@KMFu~syCkVwd%icd!%EDcKpZ=SMy z6+zTNzyh9@6>l6hT5hw?50~;a{J8vVvQp2nP$t zZWBnW0P*lhZlbd)7;M6S$jXy3R^mz^B}=Rw$XKv1V;`MWTg75+m3$c(D{&>(5;LDN zQ=ER1hR1mQU;c%B(l*S*R*A)OpOz9$($$VAL>Ll57D_4bG3BAwI)Mt6sBr>j3Oibq zF(so?fV8!RJRR?JU4a8}wDf)QNxrXvy05DMnHh5kbtod+9_~GU{Lqkx4Z}>p!Fw}n z8b%6fP~F93;Xph**eO-%;J-B=6#S+A(m?kIX^+UCTvbS{l>$V`0(oGyc8ecDA+7N6 z$b+hsz>wejFj%I&;*JvZY9SpH2!(!vs+7PGkwom()_vknkd9a^MFSXh(mJQ(V0~>sT;}d|C`Wl$`7V(&EzHRV0E*grWFW`|fS;UNve-KGmESQV~bCHr|$WUvXE zcn(aSvQd7pkP>8(?LjgYoS?0-PgSL)-YfMhsa8qlYU_yw8NAsrhDy{xe|xL0KQn&3 zi9~Fc5{NDqE4+VZH49sXFjTkIsGGo|6tjQ72M2YjjJ8IxQ1o)OWlU*9Z`l(jG&Z`e zm0k(~;lYDEg$Hz^fQ)%K(|7zh5JVJRyD|_AZ1ZKt^dG~v3>$C-IH+a~J2%X& z521lDF!O#vA*~PUyNZk?1(8YQc;QiE@+c7=7_8kL9XKT=&tA(d06NOgkKQ!eMB=?z`F zFDJi3;aHKMdy&UInKA5@Hek!`stE!Q zOjl&@CB_L4X>Z_k1qS_A$OH()pc4uKiOQF~1JZ}6dGE01cFX1LM=2FtWpHkSo!GkDG>`4ERaMPA@<%;!!mJD_=$SXIO@DljFMA?cyp-)+dGIq7aWyR;|0Os%k(KBnuY9u?1eKQ z#Z%g)SJ3pppMN6tE1$1I?}`%0Jw9LNaXbfB%B*yEsoQgA`h539HX4bkcHkr#Y!Fr5 z6+rQ-9Ep7_DW)$6hw$hS2ZBC!@7f)ahuUm%(6U&*WU*I8(k>Tk zg>E9dMJ!`$*kXyj5_1I+tW~(St8_s#Tzas+|9vrC)UE^x5zyd6BK=9==%RilT9E!k z@#{~}eS#ln*0Ei1FkVPcr$HzJ(e+9?vL=Wh_t1a`V&E=^rGkV{DRGtNSR4PD(Za(7 z0ttD`d5~@VV05M{r#U0NC91l67rj_+edzPc%=(py0Whky1O_vK?@&vbUBTjPElzw@ zNy%K3hw8)XpnetO{0Bu}6g+KOEPT6ZtYV!1Fin*|cy> z*Z>4GB>Z#(Q5RemWcmgvfuIma*oHg?`C{>)wrloV*;8xnGLd7$B1sHa;S(DrrmKaP zhq}y!j$T6e2MA=9s6*tjt3x?=8X#VIaJn|wW?3ve2UgDvZ60}uK#o`z3(q0X{#D^f zSRUaG->te6!GU1dSH5)}h0ygL-aEaBt>|TRjX*%evHuBa7LLNdJ8M=NXUpk7^rM9- zv^}WhHfESOVqejakd^S$Fpq5J!uw=J@E$&HU!U143W)@H$^Zr{CJ^r`ob$MIRos_*O!AS%M0)d1j52{u|MXFn2=Mi2pr=d7)URpxEw=L9$OQNz{8HEEN zoHt)fpx%4r#1YP+OJz422ld|X>xzcjg8qzncYKIgF2@nmakWFg6fdqCAh5Ve;TYvS z0(DTjUwU+Dl255@Y@9+f1a(l=_2!ejrY6*8U0ShHL>{9@-}B;&0>r$lGfaAWGc#X& z@g9gc_AdO3ej_NrT(0}@B%%fa=g@;zKS_AGnM+O#VzHF#5aY#+v#UM4spMoT268on z#e*3~*Ht(h&vH;i!aTs^?z%FwO7Wu&a|Y*;DZRSl)ba3mz)n8aQAe4MLfy8MX7?om4~=k6koFV$+ZxDk6$UQ&63>Rcnj>QbZJwgIm=}+vqHG zstXQ#fo|f^#A4}mW`)zmgUB@u&`^Fulmd=2vqooU)8uY*01@{cl1>vFhszS!xt%yf zEzvxb3DxLIR8=fGOYr6N@3I1Uo|Cp9} zAtDfP5Q`*7#c&~Fu=a^GoZX0#jChY{!Z_ey3kBa!OT@}2>gbXlMd@7^H;(I|9jNb! zfg@B|TdS+ib-|Ibly)Fz3L_hg#H30U3GTT_y2Ktl%*8EHZ!rlB(P@5EVzc|_3c#HY}=Xy)OhATYXi)bGIH%9V*% z&=`bFSC^ZI)OM+~AQAG>sYoMGH9kV2^yr-vd*w>?%(|BSZDt}J?ES94e`!R1+P^d; z-(_-3q)R<#1S2buSZsN)ATyJbA!c59K!Yl;)!>v=O1vvt9wrTHS>_MTe4)z7Y&e}r zLbh{GbE(C(t^cA&lJWzIG z9Tc%~Xl{AHC$b~|tg*{3yY$-2%>Jr4hv-6JSF>Ds#d$cDVJ_r+h=+%23_6ry=Hq-w zJRYvCd`D(PAN26XKUz1B82P~AFjL_Sey_EnY83^8-0AVGRd`L`vBgYFx= zhfr3nUQ1tAlU{p%fyn5>uR@2XFU8L`q6UK%e{s~3P}@3BZ%H(j9l?-tiTX zq-t7fs(kgkw*_1Uudi#85h~{cGI($fSB#zy2v5`+$<3ulGL5}q%+;h3JRv3!Sg~Eg ziaC?A?Ibm&ks`@hAWZK!y&j<6G@@%yT*R@x+;80ulz_{?J3iZimP1gNG$1 z5=*>mYa(lp{z=juZ$1CmW6!_!)*t`)@BILgV`$fbkvcB5U1p-!q*C;By$oB$z$r#T zl<8Uh8~`{fR;(j5#8=3mTxgs;x%dCu`~PywT!`ex05YOx(xnQAoZ02dQi1@9^$3Qx z&^o!M-S1z=Ma7t{7(md*z@Y;Z^q~}&g!1x&a=sJfNOY$@9EZl=j}R#mM^qD&oRIJk z;r6W$4SonBiNHxjAFO;>H;6b4dMVXam>Y;W3AqPF*i3h z5NuP`h(PD|&Z^EyRlS{)x+XP?#j2WgX|$IIL;*WDhYvtf^|p}LVkLlMC~u#l0FAnG zF;@d+tir&EK9n5v5-ELfi0w0hSV<-*InrSX!-l0M42A$e?ovRoUQj_I!-h!?cR(P| zD}}uESZ*AH1%OvxdF83paZic88kef(o{D9%^wWks7K4FYy3YO0n~c*=89O&TxVU(* zuYAepyQ_W0E7ldOliAMY5+5`ddCbk7S(hs?a_i>i≧6r>b=&&I5UDr`kIL5+g=* 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 A6951J literal 0 HcmV?d00001 diff --git a/assets/ui/unit_faces.BMP.import b/assets/ui/unit_faces.BMP.import new file mode 100644 index 0000000..a32ff1f --- /dev/null +++ b/assets/ui/unit_faces.BMP.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7coajdu61crq" +path="res://.godot/imported/unit_faces.BMP-4eb539ec6753a0109183a7c01fbbbf92.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ui/unit_faces.BMP" +dest_files=["res://.godot/imported/unit_faces.BMP-4eb539ec6753a0109183a7c01fbbbf92.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/prefabs/combat_ui.tscn b/prefabs/combat_ui.tscn index 3c08082..9ccc7c5 100644 --- a/prefabs/combat_ui.tscn +++ b/prefabs/combat_ui.tscn @@ -357,7 +357,7 @@ texture = SubResource("AtlasTexture_manhy") [node name="HealthNumber" parent="UIBase/UnitPanel/UnitHealth" unique_id=1442983008 instance=ExtResource("5_55shj")] unique_name_in_owner = true layout_mode = 2 -size_flags_vertical = 0 +size_flags_vertical = 4 sprite_sheet = SubResource("AtlasTexture_ox7qj") number_sprite_width = 13 number_sprite_height = 15 @@ -386,7 +386,7 @@ texture = SubResource("AtlasTexture_vj7wc") [node name="SPNumber" parent="UIBase/UnitPanel/UnitSP" unique_id=442319509 instance=ExtResource("5_55shj")] unique_name_in_owner = true layout_mode = 2 -size_flags_vertical = 0 +size_flags_vertical = 4 sprite_sheet = SubResource("AtlasTexture_ox7qj") number_sprite_width = 13 number_sprite_height = 15 @@ -415,7 +415,7 @@ texture = SubResource("AtlasTexture_r8i3r") [node name="FSNumber" parent="UIBase/UnitPanel/UnitFS" unique_id=1558008542 instance=ExtResource("5_55shj")] unique_name_in_owner = true layout_mode = 2 -size_flags_vertical = 0 +size_flags_vertical = 4 sprite_sheet = SubResource("AtlasTexture_ox7qj") number_sprite_width = 13 number_sprite_height = 15 diff --git a/prefabs/contiguous_bar.tscn b/prefabs/contiguous_bar.tscn new file mode 100644 index 0000000..4df4822 --- /dev/null +++ b/prefabs/contiguous_bar.tscn @@ -0,0 +1,52 @@ +[gd_scene format=3 uid="uid://fw4ug70qd8nm"] + +[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="1_nj0tn"] +[ext_resource type="Script" uid="uid://cb32ywwuyi706" path="res://scripts/ui/contiguous_bar.gd" id="2_cbar"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_vkyrt"] +atlas = ExtResource("1_nj0tn") +region = Rect2(680, 557, 52, 7) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3kyon"] +atlas = ExtResource("1_nj0tn") +region = Rect2(680, 564, 50, 5) + +[node name="ContiguousBar" type="Control" unique_id=1119297666] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("2_cbar") + +[node name="EmptyBar" type="NinePatchRect" parent="." unique_id=303722124] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_bottom = 7.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_vkyrt") +region_rect = Rect2(0, 0, 52, 7) +patch_margin_left = 1 +patch_margin_top = 1 +patch_margin_right = 1 +patch_margin_bottom = 1 + +[node name="Fill" type="NinePatchRect" parent="EmptyBar" unique_id=1864372620] +layout_mode = 1 +anchors_preset = 11 +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -1.0 +offset_top = 1.0 +offset_right = -1.0 +offset_bottom = -1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_3kyon") +region_rect = Rect2(0, 0, 50, 5) diff --git a/prefabs/deployment_slot.tscn b/prefabs/deployment_slot.tscn new file mode 100644 index 0000000..1deaaed --- /dev/null +++ b/prefabs/deployment_slot.tscn @@ -0,0 +1,186 @@ +[gd_scene format=3 uid="uid://csu4xocsj71td"] + +[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="1_vc35g"] +[ext_resource type="Shader" uid="uid://bd8ki8xwym5nc" path="res://shaders/chroma_key.gdshader" id="2_mwfff"] +[ext_resource type="Texture2D" uid="uid://c7coajdu61crq" path="res://assets/ui/unit_faces.BMP" id="3_q3r6y"] +[ext_resource type="Script" uid="uid://cb32ywwuyi706" path="res://scripts/ui/contiguous_bar.gd" id="4_byj02"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_07lbo"] +atlas = ExtResource("1_vc35g") +region = Rect2(680, 522, 60, 35) + +[sub_resource type="AtlasTexture" id="AtlasTexture_scfqt"] +atlas = ExtResource("1_vc35g") +region = Rect2(680, 605, 50, 17) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_a8mo2"] +shader = ExtResource("2_mwfff") +shader_parameter/key_color = Color(0, 1, 0, 1) +shader_parameter/threshold = 0.01 + +[sub_resource type="AtlasTexture" id="AtlasTexture_ajsjv"] +atlas = ExtResource("3_q3r6y") +region = Rect2(40, 0, 40, 40) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kqrkf"] +atlas = ExtResource("1_vc35g") +region = Rect2(708, 587, 28, 17) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1c3gn"] +atlas = ExtResource("1_vc35g") +region = Rect2(264, 272, 52, 7) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d4kxr"] +atlas = ExtResource("1_vc35g") +region = Rect2(264, 279, 50, 5) + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_vxtih"] +blend_mode = 1 + +[sub_resource type="AtlasTexture" id="AtlasTexture_og56w"] +atlas = ExtResource("1_vc35g") +region = Rect2(740, 522, 45, 35) + +[node name="DeploymentSlot" type="Control" unique_id=258677476] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Base" type="TextureRect" parent="." unique_id=1397025328] +self_modulate = Color(0.85881317, 0.8389489, 0.60661924, 1) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -30.0 +offset_top = -17.5 +offset_right = 30.0 +offset_bottom = 17.5 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_07lbo") + +[node name="Contents" type="Control" parent="Base" unique_id=1351926154] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Empty" type="Control" parent="Base/Contents" unique_id=1459198631] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="TextureRect" parent="Base/Contents/Empty" unique_id=460221998] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -25.0 +offset_top = -8.5 +offset_right = 25.0 +offset_bottom = 8.5 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_scfqt") + +[node name="Deployed" type="Control" parent="Base/Contents" unique_id=1502290289] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="UnitSprite" type="TextureRect" parent="Base/Contents/Deployed" unique_id=1617524406] +material = SubResource("ShaderMaterial_a8mo2") +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -45.0 +offset_right = 40.0 +offset_bottom = -5.0 +grow_vertical = 0 +texture = SubResource("AtlasTexture_ajsjv") + +[node name="ReadyLabel" type="TextureRect" parent="Base/Contents/Deployed" unique_id=1608591044] +layout_mode = 1 +anchors_preset = 6 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -30.0 +offset_top = -14.0 +offset_right = -2.0 +offset_bottom = 3.0 +grow_horizontal = 0 +grow_vertical = 2 +texture = SubResource("AtlasTexture_kqrkf") + +[node name="EmptyBar" type="NinePatchRect" parent="Base/Contents/Deployed" unique_id=855067973] +layout_mode = 1 +anchors_preset = 14 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = 2.0 +offset_top = 7.0 +offset_right = -2.0 +offset_bottom = 14.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_1c3gn") +region_rect = Rect2(0, 0, 52, 7) +patch_margin_left = 1 +patch_margin_top = 1 +patch_margin_right = 1 +patch_margin_bottom = 1 +script = ExtResource("4_byj02") +value = 50 +max_value = 50 + +[node name="Fill" type="NinePatchRect" parent="Base/Contents/Deployed/EmptyBar" unique_id=318061429] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 1.0 +offset_top = 1.0 +offset_right = -1.0 +offset_bottom = -1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_d4kxr") +region_rect = Rect2(0, 0, 50, 5) + +[node name="Hover" type="TextureRect" parent="." unique_id=1517469291] +visible = false +material = SubResource("CanvasItemMaterial_vxtih") +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -22.5 +offset_top = -17.5 +offset_right = 22.5 +offset_bottom = 17.5 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("AtlasTexture_og56w") diff --git a/prefabs/stylized_number_display.tscn b/prefabs/stylized_number_display.tscn index 2d9dbbb..0b9d6fc 100644 --- a/prefabs/stylized_number_display.tscn +++ b/prefabs/stylized_number_display.tscn @@ -1,10 +1,10 @@ [gd_scene format=3 uid="uid://bc5a7tb0my6n5"] -[ext_resource type="Script" uid="uid://biud4ob4h0rrs" path="res://scripts/ui/stylized_number_display.gd" id="1_s5s2y"] -[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="2_b1oqg"] +[ext_resource type="Script" uid="uid://biud4ob4h0rrs" path="res://scripts/ui/stylized_number_display.gd" id="1_yn0fd"] +[ext_resource type="Texture2D" uid="uid://cavpqnd0qqoou" path="res://assets/ui/SO008B.BMP" id="2_2wvj5"] [sub_resource type="AtlasTexture" id="AtlasTexture_b1oqg"] -atlas = ExtResource("2_b1oqg") +atlas = ExtResource("2_2wvj5") region = Rect2(546, 839, 272, 39) [node name="StylizedNumberDisplay" type="Control" unique_id=702997768] @@ -14,11 +14,12 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_s5s2y") +script = ExtResource("1_yn0fd") sprite_sheet = SubResource("AtlasTexture_b1oqg") [node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=2089310026] unique_name_in_owner = true +custom_minimum_size = Vector2(60, 0) layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -26,3 +27,4 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 theme_override_constants/separation = 2 +alignment = 1 diff --git a/scripts/ui/contiguous_bar.gd b/scripts/ui/contiguous_bar.gd new file mode 100644 index 0000000..f469b93 --- /dev/null +++ b/scripts/ui/contiguous_bar.gd @@ -0,0 +1,34 @@ +@tool +class_name ContiguousBar extends Control + +@onready var fill: NinePatchRect = $Fill + +@export var value: int: + set(v): + value = v + _refresh() + +@export var max_value: int: + set(v): + max_value = v + _refresh() + + +func _ready() -> void: + _refresh() + + +func _refresh() -> void: + if fill == null: + return + var ratio := 0.0 + if max_value > 0: + ratio = clampf(float(value) / float(max_value), 0.0, 1.0) + fill.anchor_top = 0.0 + fill.anchor_bottom = 1.0 + fill.anchor_right = 1.0 + fill.anchor_left = 1.0 - ratio + fill.offset_top = 1.0 + fill.offset_bottom = -1.0 + fill.offset_right = -1.0 + fill.offset_left = 2.0 * ratio - 1.0 diff --git a/scripts/ui/contiguous_bar.gd.uid b/scripts/ui/contiguous_bar.gd.uid new file mode 100644 index 0000000..411f7f5 --- /dev/null +++ b/scripts/ui/contiguous_bar.gd.uid @@ -0,0 +1 @@ +uid://cb32ywwuyi706