From 78c4291b6ab2178cb46fb1e7e73c1d978346ec12 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 9 Feb 2024 12:16:51 -0600 Subject: [PATCH] created basic building class started building groups temp ui placed #11 #13 #6 --- assets/scifi_tilesheet@2.png | Bin 240494 -> 243996 bytes data/buildings/corruptor.tres | 10 +++ data/buildings/hub.tres | 18 ++++ data/scifi_tileset.tres | 68 ++++++++++++++ scene/world.tscn | 85 +++++++++++++++++- scripts/Base.gd | 14 +-- scripts/building.gd | 8 ++ scripts/building_manager.gd | 4 +- .../expansion_random_pattern_large.gd | 18 ++++ .../expansion_square_pattern.gd | 1 - 10 files changed, 212 insertions(+), 14 deletions(-) create mode 100644 data/buildings/corruptor.tres create mode 100644 data/buildings/hub.tres create mode 100644 scripts/building.gd create mode 100644 scripts/expansion_patterns/expansion_random_pattern_large.gd diff --git a/assets/scifi_tilesheet@2.png b/assets/scifi_tilesheet@2.png index c1073a47332bf535ef161eddf22a9409f397a1d9..47727391354b6163b1a9cc224a72a6e2c338f3fc 100644 GIT binary patch delta 24949 zcmY&=1y~gA_x2J>iG(01wV;TUgoH>eDhPsfw@67#2m->;Ad=F8EYjVb3MfblNVkY| z#{$dle6#re{_p$Eb;-E9v(GcndCs}dePVWN^m6LnW#2%&K>R8KxH=$CQBl~mj|Q8Y zZEdS>UiD+g%dwDn{kV(5`sPXz*5zjslo*1rzdJ%$Q~I3oacuc5v&AxUdVCaq7` za*hhL3f1q(>9AYdxoX}Q7th8Fp~98kt@{kOp6WzSmFaURshi*tOJivy&pvV6u+yIc z+G=P7*Wp_D5{;Uvpw62?885*hriX6WlYJoPt=+JYy{5&2^hJp6Cnj zNKS*4ha+j7=aK+fkd6UkB2>yT1Ir>F1Ih=%pkLY4?K@xJ@y64yNn!oP?a>1TMgX{S zXGB3-Kl4uCcdEf#ax!bQF^`)M)k;G}#Mt`s)drh1pYNp)zL58@QRvpt5Y#AD%p6Q& zI@Ym!bUhMJ`t`TYZxTubns*Yj)$bT+!z#!@p%m2F3L2OL1XLe=Dl%9bD#;el^6NQR zFP*UK?%H{og&qp+0*kO?L0T<_SM z0ltgC0({Zx`9hAAR6*YkP3#T;KYDI~q}+fq^t4@sd^M15jlx1FP^Aa>am#E zTXOCz&~jcH(dmI+FB|2$Sz20}KeywN*U(_XXM+*KMFJ5;wCscrK?80DP>wxvCo1&S zAu^<;3ia%_cyNq8>~_gcRM(ly7t#gf3(1pxB%mW?pK@C}m^3ISA}q(=Yi}6=0uFZQ zK=#wt@fGm7$MdlgIz=|*r_+lvb=Y^2SU%>`c>03)u%}AOe=I@0KUeW>5;$a> z-)eunT=^D~QXCOo@nm$c8EmMlq#^;Els{%QhfJ$!x)`h9Dly~feZ->+ueBS8>l7Pu zDkj{CXID(@*5cOb=4BA6;>ooJ^m`ftfuXmQs%~+)x!G%i!Q+F2thObs#@LluWSoJh z!}-5ClU8Gg`a|vdSBsA)j?1II%WXGlcwXgsIcHKYv3-i-DrQYTs3w+npu(2v1PiybekUCsdtIoM$~)NnjLa>L}B?vadA2@d?~xU?drB9Ru>ZvtY~UR@L`uEE@Lg_HxFlL)#7%aG{7+nug~xIi zRWf6%p`OL_H--RY)yQMm z^m=RmCs%Amy4g{4`t`ead4W(J&ctlPJMTvAxT+u6iewvdqm5Z+Uqm#>n?0`j7B0W2 zE?aVRne&xvA9iY#c@@hL5iG<&ZY`2B)CACw+SxiL9v!(^+d5J#rS`^#De-p}3EaIA z@2q!~$1o}Eu&*_xb@flmvb}+f`Iok!bG7t*@nTCD!~FP|W2Pbdj+RoETG&yVU(eYz zf`j9hVQnLJ)WG5-j5e}|N4HMZ0UYoAT`W5LqTaapsq#}@<85PC)IrzNZvXi=Ko1@a zCddJ4D)9(FJ$i@Dn{CMc&@y#_g$lKX2n1lz0jDo)?P#%R4^H@!j8mWYv&JWfv&|*z zmiC}W`T91?%qvvui73+1*0%8xu!+H7*aR7llIa;@o$Kuyed-Mpw$hmOCdWAJ?d^w> zl4EL0<`Ir#d`iRGrDK4Foq31T2hl>2mH1C*B^0mv_5$Vmelc4Alr4;x&AM6ftURt^ zx=`X+tvY{l_JxoPxT%VRqu`gufBeR}^&^t6*8cJub;nu zF(jND#CTsj2QZaI{KCsb4lNVHXPN688*w;ozAt|NcSpGyP}8%jaq$m19vlXX=5z`M z^02Xam#OL>GUgO9NeQzy>kulg6gn4T9~~3nWZ{2T=Xssw2-lRtC6>AqOAmB}sNGoK zFYJC+vF2&??n%bicd|0($88rn=fg|%^Se66lX#43o?ed#4pcL-{-X|i;rd$F`h%zo zgMSHyaNk?NG$vC9ec7(0tTO_D$4y@uFjBgXAQo%tt1?4<-=_|QlPcE zvO!Zk@zmA(Zmtbnd%Jo6XlkG9b3|0Q9eP3qP&nqWAjXp&*v3?97vI0rYIovXzZJ|N zQM;T&;VpmbTc?Hj>v6Yh@!L--f?<>}SXVe?f^5J(cZ<+kpB3|L4NBFH{B{X*a`D+P zH8x+zDs6pZ>o^Yk=EyK9lAZ9kCZ?13Or!Akb_g*}5TX9{)a?P)wcb{KlVb~Y?k)t!Hr%LK**|J+Mpkm5+zHBRKj~^a)rW;cgj{?{9 z+0$*ZGlX6jr{s@i&(0dJC`doi86|D-(Q$WIJbrfkOLmIuMmrr}zxdHRx;yfa3A(;| z^#sy^pWRFL2=uCo`-BMoTQ)+Pk8qSqE#={LmIao@24y^W?T*@2Di}TtmMq}x##O_` z4dIP4qZEoMxmdyFfy{BAvCw@PAj@&z8`wc_H?D@EC&d*CC&j0>%M9uSwGxvj1FK$D zeQ%p}SY0Clrwnq}5L^q$z29f=bMNP(<_D68b8i?iuRcC^;5-MS;rCd=BCrDqV@KPL z9>#^*7UTT4E01zg^k>}*I-V^}%^H(9IL0*b%X` z%(6>5QmlUePCG67!sdsn>WQl{+P`YwD^;t<97X=RTzkt%k9*~GMpBX&&$o8=^&^L7 z%#nwd_u64YlLfJNm|+@lS`Lv0Xv)?6{4cpayJT$$&N1FsRJ<(+!J6kS2+N2Q^lGB< z8?{mI<93&U=4k|KbB5ctq_N)#Aj8+xclj`?Vt#Zg%n~KGk*g!{Q%OZ-KudgxC0qT; zvk(AN(z%Rw-`}@RE263!l-|?(= z>pvLXHfqqk_3hiA*%U^WM4h9}SOXEeXm&*_G9XzgJmUL0(PjB;Lx+j}I#Wri7|Tp2 z-FhnNNW*65?9k&z;EvYuX^F`@pSqy>=4o-8>JOJp>Yjm;%e~=0Ay9zuO!gfe(dC>| zSr}xQSz4=YyXCDddkxtt^d{jq2+g%HRx5pE6!d8|Z@ZkS#P~GvNr&;NR?o(l9ZqWi zo8wM9=Q^Gq?K^HJsxd}~NclFz2a!qEK6|Wz!P9JY>y#X8u=Q74RDz80n2ctC_T26a ze@B}ln5d9#Ke_R2VT@K(1%u~*k<(Y&sJuHS#o7k= z_k6en2&v3Ljo4V;foe+^{+9vHK!-$gr;_NLo!IT#XA2MOA!rqo6cR$|k6745*G)cS z-ckHTzsK`}JyCf~IAaD-V?WpEcL_W((5h>v+qsu2n)cRB#F~$FThUe~CMH?KdBIeabX1VbbzYbj%U&!TTNe}-Th;dlZgYL_h=lNL`Vezw zfJQ|jKc>=!Ce`Uix~|;}SwlQ#VxvAA7&xTxVHs#+S1CZj7{L#PD-Srf;Z zEZ9U7Ce+;IbI*V1o70)Cy%Gbh($vxKtr-B*u{EQ@$p=F8PxS2Sji(A2gn`o5U6qYl z%+J_HcL1z@F)1=wr8bql3ij?yg18T8Fi0a8jCcKq;WyLUWC5k%xj45vnHlO{F0?fl zn9{olUudQdD8Jth`In{&N0T1ul92|VzKxt$`$sQ3jC@l5rdnH zdM83ERX3AW0IETOlI6jjaG!3Ltg#i)lV|l7+}KFafc&w~QADCUrm=PMHqflY=WwFf zo5zL6sR;_`!`U?0sEw}Y>+%3YExYa9Ogf&+)uSwRoqSIfw`u#cCAG%2z_(my`#%zo zm=7SSdp$>O<;wid&r6VN@YozsB=EYlwM2+9;hEkx?Kn||LW-IVpN(=ns&YmeqgEeG z0mEnsCIZ`Jc&F!gM<5SiTw(5Ttu>y$KTWE6GdD`Ap~t%UHcEw^*h*Q$S+^Orp^?b9 zu+)>tO+GqSpmmLzInApD0(JcAFFk_V+Yv?*+YNneWcp8TtwUj27PoDXT5@4?v(f1E z%Yal#?*{fA>!se+VL?+;->}eOB26g>24PQR9%zP#hrj7_k_F(M{?mxkrc)d12146@ zq?nmFdtu6z?dIjAe$ott6BZ&2`=`ocQ5&?x_4k^SxmwRiRg%%RfVF+Og{Uh%eE zK+JpZcT*|qPqaB>9*htM8+u{Pb3al+nz;~M2}5&8acU3PIfafB4 z{o&D6_OQ?oh>k85i|T`yxr<)P(%Y{HrCu=}MGBHLe;`mNHpcC+O5wS4ml6|TjSb!x z!$JF)s5aexrhdM}&ITWF;_fGcZ*KSlz5M%kR#DwA(y7gX-rg<<-n*c9tBX2uyU#WE zBGJ;$r$;3{5s~3l5Cz0MG4!r^XYtr52u)g|9HAlfnE^ zp9Jn|9J_S%DzYc0IJDF+)z`mQyoy3zjYv*TY~n$hTNLw;qLhZe^ZOB^p(%ch^yDf47h9@P3okw2z^) z4&KTYB-S+pSij+_I8BEKqj{^r4sX7$s!LMjHe&4gV)RSE}RsX_$9F0s(dO2;P-Bf2a0Gu5g zxok8@1@?SG_5L7=O3(@O;UxWTtey;loKV>yd0Ij|Y0QwsX!0y{R(mGUsiwy|Hqv z>Lu67q}&q~6;b^(F;C~4pz_FF0g+p!Ecf^wRgFu-;}1?1gzSrqODS;ZVBEpw81Zl1>f^M0O+q>Q^S1J z$T4DM#!k}e819Cy?U`!6Ct>Twh^F-QQmi0OciK&AJuz2OM1g+#xTlXSip#iMn%#eg zs=q2{yMFDO$LCGYBWJ))==#v?tQ1N@F+NjsdG!|0!oD?Z>g5J8=V6_&h@5*}3#MuaPd_5tG$IH>?^Yl2(gmbofE(H1I0=w^20A;18cD6s)2PSyO>_kjH zd`KEU`pM_xT*Ll85LikX)G+y){Q0A%C3uYE+qd5kAe#>zOn4Ujrf$bpKfX~lr$Z898CMseK5*$-|3<9M+s|>{`@zXAJ%<;=7Y%S zwq`KnX31#g41v4D&J@J!*am9qUYuU$6Flhgf@VZtjh3M=ls1bJB8NkZ85OQbR+7-Q1YeNd&z??44?T zELrFe@F?sDDD_h&i;Jy4_SL(tt=5x1-_VRFZ$u%yQ8O&0lNawIIw{RRH1ISCmD!(oH6E^yl{T1ePR^|i zwCCN-6yHgitJ8LV>kMjWXryrgS{8j>U0q|^MY`n%K$@BoPk->%_Ii8Mx4e8%0`Wb)x)+1fHo(V^A1nR@Gcck&wtAC276H0D zhOaq)_}xy&r<{k+H@)j@vyn5_<@DB2 zu@1`^qnaH;N77v*g29TuoSlISrfYmSD3Sgmv41dZk_Kt^A6pA02JyQ>2XE8ABum>z zPwXfI)#|&VN{aHG(V|2Y%!~zNHoTwS-Q%v8sRkj#y|=CPWk?&BLhvbgw;98c2gm8uZ%xA(o%#<}kYKY_SCDZVrWABRfn3y)%fyZb|*?+yfNR}WprgMa>V zQfcKq@U_r-(tSFSi}@kEIP5Am9WZsU%XHQZ?ffnyKT~?6shHn z5l)ZY@BH@08}W=7JbP?8K*t5*1OX#mJ@NB1TFlHuh2?M#jQoTE)Bqsw{W@_G@;yJ> z#Rsr^iGaK1ikx-e270vZ_=(TE;<8{Z@+ep`G}UVK%2{X?e`Ngr?WbtlpNDrDLYXP$8A9gXak5C*Is5x zct^@wwz%EG%`xlcIJ@48-gIo;$j10ocb3P(9Wd>PvxeQ1ZOj*zn?I?A9kEBXyaS*I zh;3EQdy|GVgj)42`DUunuZJ)+YtNeNlW$}w)ThY ziCt&=cek16b~v_yW=*acD3Q#y{^Em(h?qVm1$0EW`~aSTGd;P%+D(pwF7FZ#4cR}q zDcjlr0S;069)Ieug!E%h5R!XS7(uVg=VU%wG|dM9XB)R$G&mDM)9>%u<;3rcdnslQ z*%U6}NLB2WDpFVxscWgfS6QxsX zEJ@!c@HFtHy!9VXpVWJ9b}J3*B@ElZ##+Ph@#)XsS-A2?W~ByH4=@-_h5{H34i$xo zjBZ5_n>E{3PwYvq76bhewh#(vys)dt0|genO_Qbd(=G!?a$Rqqf;(DN_a|p(TUg&7 z=H9whLk=MlxKml;Uv$*UG`9b%8A7k+V$r#?5Zlt`qnC1CUhW14Q}G!9f6W@oQ?cii z_nf03B=6rptzJfYZG|wm1Y2yr(GwIBa`idYkvG zU0=T-q!hclY7M1ZV->R5KIA+x@M_$oH)}Rd%>VvG4A@FFY-mknc+p%mJg~WL;0zaEr->uEeAa-s6H|)?ksbQ=b`FS zem+r}&l+d*eZwq_QJC|h>GFe9URE(=;##LE07g-^YKaSKkeBsnnSDrUa~7-C=U=581P9D9icbca%~{?4wc?b zwwd>{3JFS7`C(mgp{jf5bO=T>Qe8mibGp^oIx{hHcmfwM)aIf%{%FaYfkBd1G!t^7 zQnsSD8*KM8WZy~6%}$(fqOz@Wts7r&O}Be4MP!Xd$!nwMBA55ule}Zj^g_uY@`;!scZtq-l5w+p1J5SAb)FR<>b52ACe>ehY_%$d4~^Cf^H;Jmbud z7Kz7DfD?#WwN}0O{(k$l@r1?oM4k=Ax(|*OvkCIk zb*!$8-wq~aX3Nlde2pHN^!m-*Y%^c3wRZ>ikHcG)rc_ihTWM*nq2AslC=X~Y%;Ii# zXV6U}(Tj~+lhci^tF_BUJyOCceeJP}ixh?pCbzwQe+p?i+r}QKn5-EAHNE@0){wK> zXhzjsf_A59nG6pOdy6aa?#OYUvPcQZm>XIKT=f<-Ai1TWMRkqVA7P#O-41T2E^{?Z zemNV6<>##&Zc`%r!g9VUm`NH7{rF+0`;73G#pl`yJ7y{OwVyTo7Z+n^fw1F}r@Mu8 z#>a0%&u$j3-;e@)N<<;_mGD~o*?fBF2GM(j`(gE%l)8;=Wonqf#-WR6a|l})dO172 zzYjUybmBsGmG`u1E=)SY6H|}N^)+7v!hMd0kz12{j^O5T7%g{;k-9|7<4mXHj@`wn zUzfp9N*I1LzAT9!CARD_*q$34Y8clO|Lm&#>$x$YH&k9P@Avx)A9{no$XEvGOA3lB z>E_DNT`uglo6o()X87~(s#s4($oMW9LaI_*+Ps?6r%cdddTAxc36ze>Gj{B=+|S`$h^KuioCtQRL+wC~0Xk5D^iDXhD~E zQj41?JlWJ88RhdSx0v5-XE~8qS5n)X#A0{{+wzz4&_uiDBo-iT}NOEuo(Cv+-0bV)fSl z-a0?$#{j3K(jRh~(_9(w?~s*-3T9|?c|R7^RFb=LZA8d^>Jj4ji+ijC*?%wIE55OMG4J(?*PNGvOqxOi6U^Vk z9>iv)0KSBSf7!wL<&+UWbs%Li`g==)8@fZ}#9>&9-_ZHr;i8!cePJ>=#hQ}|t_&3l z!&TciXM)pL0C4Zee}?)soCdAu_ZVV(4tUePS=(w%U2i0F`rbk1>I=5a3~Lkb6(Ynj znZuAhNf;J&M+HNXDBy-)0L*6{V1d_)iValq-&Q^)njbrYMRBg;=hF{PwODf?Kmu5F zG?Q1&)iqSvo4J_Fvf|s&r(q?J%teU(pRX9W%MB_0d$$k+484BtvdqkTO`u_V0V)mDA;L>>i9_I9T@PA)HJK7GZ4e;N0u06(;H2yuh$|AEE z{(TAau`{gH+pnDM;kc+^T6+QJd-J^D_sZ z0B)!4mkR&H62F-g@Zg&Wtt4 z<#?Hl<;+rDi6k7ZdateM=+pJHa{XC)O8y$o9#dZ))m30bI?4!KFZCkFfBOSeBU?Px zso!c&CD7Xf@TLD15?g%kd{nX#WhiBIWm)dY?saUr0kS|E*xk8uCeZ4z!97A5YC|k9 z2g=>pvN8F#gd1V~{~sY{c|K|);T4JsU!Brzhr^E0FC%*rRJ-7LmI1cM1g|3o9+cJm zS7G2l_yUse%}z@FWpJgYsL`>6ExOB&SRQ%x(jYmOs2ICw0i;+H^P6kYAZIW{Txq9> zmHLMunoet^bhkTixf6-qzMFq9xC|<7{NGBX^LiJM8K17Ja`OfJQ491q%ebz3Z{rkE z)WTdEuHdMG+}nG=O*9D322y<}zpwL+JJYY`Bo{>YPJ6^AT7UVkDiF&?1M>qYsg|x? z3}5rTrBXGLL2kU&2k>TU)j@x0t^m-Q6r)>C7S029XX;;n1halV0y>_I6aw3P5cR*xj+skp&uhe52R`{kVISuJ4sH60@HM%BZP+UzaUNA z>v+8E#bWXsxQ_iUxES}0Eiph^c3$Lo`_*aAO#${Kcb_)IV`W<7gZ$K{7Aw1u;geiX zhavFj%tu7qJ98+vL5B!+|6*Wo@6@5QiGl&B@m~qSAG9GHDzr~J6$Wz%HAt}LF;KEM z##NalE|C8bmG-dL#DxdOOw&{9n6H4f4gUz&Bd+0~L9p1L5GYDQ8wgLENwK8re&lx3 zfPKi$2lM}fBXF8PV1qWBI(m2>NZ`VbJJ|q}1%5Zb6oVMm;xjfu1miD@83>#Kq~EYN zYd^MfN++SS0h!}!&Q+UK|EZ0R)D!iy* zZ>2{!NT^rKc>1CAw`DH8D}2j$Fs1#xx>p__%ONlKZkblAp*GQ`ql%foypce@Q`}J=ob6J&4Qyw4Il;D zB+cy$km~iQD*r6%r=vo-v~Q)#XMp0rW?BDdBC>RHs<+<4x**(D4D|Iqdnb5iR;`>y z@W5bnhNF=}l80f;ZnWY$eg(r>6u@bN zwpU%O8F8;6luJzzW+)BkIy`|4wVM@w3RYBw0I78!8BWWS2j1O0MUqNic!Z-aFxc%| z7k@#gupms4UcBWc-9uqg;|RYq|XnnhNEB>!PzWwe&ZoyVmopz=D6ALKUNpb~b`#nHpE&=V@r zT-DHSr)5rnkb1QI^{QMcEBx+$1+=jbrKN(Hu;01(9(=7k{r?nO$G9D#{D8%~o3C-H zIPC^g1~HgKG^FJ(<@O~#E8wB>9wq*+%Owhjm2&R^MdD6H;w~F5{zA&=D-WgjgQ&0q zCfn8p*!{Kn+4>N!eUInvXHEwQJm7r8aGM5$C4`RvXJw?Pc|0aRccP3h+~ywkT|Em1 zHvAE$>g1#z9}`FyNT~6t%PFFDgM6Ddrffj%wxpvwe41?ty#;pSxP-+u`G)fi+H*wb zd`v#g*3xv_n9x^f_)F*VNNv~ne#<4%@@V=qJz3dY-4_Ou0MIYYESq6wuT-Ld99U0# zijC~D1v{z2ol;19&#;97UIzXTPBot?dvA#tB@tt`bv_h;;{r8U%am}r&v6hPVU+Yuai`msxT}|o@b|4=O4Zq8 z643n9X%tf3kl1RI?@?uM(35~ zUb0ITp86DGn(8lo07&Ux@Pq8Y z8T6ZQ>DXcnE%-+%Nm!=?iqys2Nl0*8Bz;sL1oZj=EQKf%ypv27f*Pkj%gv=L1o>yz zrfd&c5Uk9l>q!CE{v0+F`W3aotw|}fW4gr_v@dj#HGYn?A?_N`eD-Z=I*-tAFa5;` zP&EG0#Yra+>ePh>m+^f`5f&MJ&QE`*7(fjQjI8N)WSOTSWAKQ?`6wji6V2g+*GwA& zz(d-kYP0Z*(8AB_^tTIJH^la26kj~tzQU*FyOD#hs7Nf|fo;0|5F{#|jo0E@mZQO_ zob%M3x6u@o;lsi*_s-eD`%fz164W-wb>`Bt{;?i3(Q9;?-P0q%%fFZ+6DIjJIdKhP z+y*&gypj1Jjp%k;;?Ok&uuxF|Gb{R$McpHio#uAK07&49pUZysh;mimd5BqX}4aj$O=H>t6r*R z4%V4$GimH?V@9ah*(bqtBuar#`4h$Bvc;iZGJ1giGgQw^uC;wLz)NU;`B>LU|FJNk z`B)m83#l3FeL`PIn@WyJTvyilbyERCAKzd6Cfn1C=UNtFaL8ho%~-hF+FQZTlr*-6 z(C&=uq>MH=q~P-p2KE4{c-8BLp92R$)1c=~2dzfLT_vQ^PS;{i9^B+(g}3faf~r?6 z!P=m5Dj3XHi1_*zobf#Z7aW8~Wla&l#il7BeS>{Ymcr=#JX5Zwt%W#xucW4|lbvVY zi^UIp$)|eS+4^CzQ1_*p9imj@Mm}TWSb@^FvIv7$^!sSQ7~OA;R^C+o_@^gd(xZ?x ze#}LJxY1WH^}Go}kgwOzumI13g#ZoHq~E5U-p8$q<|8xKsSvxUqhAQSK(di_n3VCy z>c^Zd{N~$kgfZ6$|46L6vDDpo1xbeoWV!jD4}jtts>kf`{-`sZ4TZZHjc&x;_(|v+v*jC+Jz1Yfqcs>b3$d?@DK%*xTm*;jZ6?m~ z%f)bKy~gzRnljcZNPa_Y_Fr*f&_sRGC+S+H@3ZfQ1l~H$C1GK7Ju>RN@w6z9$mSZc zGUDO}USI_JJdcpq^ZY_86nH7i0x-@^$n6ix`-r%a9^PcaKDqyrX2fbsj>ewEtDyv9 znf<((*YVYtG)-SL2^P>0UM~&r4q)(%Ye(p0UrD7da4EGy^r+i zM3ll?ch8sfSr;Ss>aKf80QM~aP!66`D^1*J5k_WOH?Dl^T-$aT@&sEcv5zq-F~i`lQ$N8XO&Bu&=*p@ zKOK_r9@xu1mF(9k!lUpcAN$ne zjqW-dP(rr!C~LC9bG-@4@x(SOS6KOthD@8P>HtuheaOZCe51m%h@L@7yTRQP0(oi_ z9GU}G_f(iL&YTu%u8oR!+;}6C-{%$&9OO4-Jezh)D1>D*(Hi{>q{1hS6(jteOU}g# z=Lqzjm(^S*#Dl&bO=5lRwUVNESnvRo^!1l~IF}X80riW2It!0AXNP-x@)ZIhOocm9 zHal|WSb;x-kPp6oI?&3caaUFi(>YM_B|Gg z#L6A)iLb+Z)IqP9_;o&O(>F(izR-TGW!rxiw%`0NF69WbZj&T|W|f|Oos8{~FU7z4 zixJ=1Ylbg3Ix2a@)x>iJ=wv)|BIOlhdK5PT{F)|86(HB;h77-Pz@bTyt69=p0cmf@ z3NOUu1^aHOULdwqOTB`d1s1J;sfs}U#@2c2g}=v^`1U0SS|3gNM+l($a5f<%S!yP6 zO2B)2@g073ekk!UO_T<4*ICQVPXnhw-;JY8YW(M1{5RhMILXUbS6!~isWyU!g%0V| zvq0Z7?Fuy#EPWw{z7R{#jlFll=b)xA(8u-LVld)CuJS|YCglq`)c8Y*yA1ey4XMK| z8wt?!N$}E5tJBig=iyF%{86;h_u@!E|;Zr7q}bx z9(!VMSSdEvnxdIZtsq>s@JesI5tRPAN99J`RTqw=jCT4cDVL_|5HRBUOnHjWhM0Ku zy!Z6)?ZR%S<3j9D_Unp#%6&l)PjX7J&|+*|K*EdgrJ$6IrBevto3-+QB^T8P@q&Hk z$EJb4se~kW*T!Cv0Vk>p7nOgNIGm?`vedN;*3Gj&{vBDGv3JB5H=LcGy9v(%vW!4V z`@rn};a7X!PaHBg!nve1L6UE_)gPd{D3R*Pr>CvH{#4C_mrWKagDUn#x z;_o@%p~8PSe*bTtbl$u(t(g6xHf#uLpu(-}<^Vl@!x4Ip#5=_e$UC}%-0gm$7@bj@ zJ0RRdl{FOAV(%|qe0EXufHGPGNsn;J4SV2;JUBX-2!1zxlwF$3XSHROD?(2oqm34< zS%oI9u->$?pTd)gI9I0lqKlF>j+6NUw;7opO5-Mk!T2w}Y(eeHvSnPICb30^Mry&@ zxd^jbnGb=M&A{eu2?0O^GTy?&qFIW&kl1qiHzoLqyf+GzJ;-BcfOIy9)vM`?kTn^q z$eO-tkqzSf3=JAhLRbXL!ZVe@&ET;cMB#IH^%fzu7C%SWYR^1UD>}V4m+$8n*EUk9 z&~*7}kjH)g#`LH)*Jo}`PerY!$8xHXAAwqXzGYesKUSXe^kRO@;RCG#m~51SG;UBB z?8^ZPwfx7OTN#h3`C;_fVa4;F2DCZqQ-}rRTPLAJpx}x4lM(BdjRGrrlYNF?pY)#` zXhJ!ZjRavG$S_)lkHVXjMXl^&4QRPJJPHUqUd1!w{2zp<#Cp&PfadrdQU9Jo%ljve z{df3)mUId9rQ!XOMYH>jd@dH(IE)hxxxWw07Lc1>P;b)2ch(;rCrTOh5qa6T(a*$( zS$8vjEru8#1s`+>FKKD#r4s!QiMW1e7bqG>-q<9@!)Y0GOf0Zpniu(+C~%1;t2;FD z6$aSi;G;Ft%zKJlvbbLcXNAXOR+ja~S>cFn0#nw%i4R{k{Lu4n=aEr|za+yyF|Cy> zh#x1r+mUr0e<*icodj<}3AI$i;>}%b1H{6GT-dW<{asz zDey0l5Y}sXIXyQ9azj4_6Nw(&yXY4_k~Hlv3XS0Db^0d6*VQS=H>|6~ky0s$A72_0 zn3G3}2)AP=0W3-OkOg-?|J(BP^fuzhNdynLC~{ZZGDvNIJDu{mP3L0p zS5I<-@aA)qY>pzAtWYgq8R#*cw>VXW35EdCv=FaqgwhrX#5f1RGy=?j-KpIwKa(0# z$@^ODuN?P@7|I-K85E78D&A1KAw8(4C->%qna6xw$WEZa^PgVG;j@*s@NRYt2!?PI zPhoh#K^e0xI_@^LCQgEXEeX+CRsu%yi$KHA>lgEcudQ~<65qaGK%2gIYwaZ*4;l)0 zz#m#u%xB@T!eOvq3&LktzhO?F9|g~xdpV~UQM=2@_#lKJTRFC}0xw96MrF6C?D4b^T!k0xC`DECq^ z8GGyG-MD{a9TU~#VBnp*9A;{IgusJV2^}<)8-Y~I_?j=%Uds^^!+d||X`@NhiyxSb zIZ)1RVs7g(AwH$Q7!UG208kn8?xcJQQ$q_*HrlUFu1YX7v$|+i}HfcrqjromPKYmVIL7$aspYk3tdmf zAHYlTm~+!ZQY5s%L5RCtc}y&C!C>6a2jxT(^FN29_ch47fK9`08_+BHV(*if9K1?u zHz?Go7l3Bbl06CXQH#6+{g?R47f4rsnbKl$3E%Z+8z&|15{R~EV|U_3h+aWD+C%VV z#gtSW+6@u>`E3a*JA-c$IEkdePjcgO%4b zy-Ze8R!w)<`@%%++>WZMbsF}G)z~+Fd~!Ed_z0J@L)&G%AW2!H1oRwtE>@HLXvI5z z6dpb1CI7!j9R`ynq{2b4`9~vZSqkvx7sj*QD^kt|Qoxo1i^nB=J(5h)=umXrGt*%d z-Q%6yt`VRuiL|$5PK%pRObc&suc08T?YVV)#|g5gTgjUA{|ZkprFY1naXn1ws>LOc9@H`t z?dNRENWE?c8S=xq92N+=+lq+Ir;U?F48jagI(fne*j8S>7%BD4>sY%#Ha83&dbSLL ziL@t`sw8*5o}56bNSyzJj)yf6`t+U&b3k0E_V13c3u6)s5cQ{sKCixMOP8;3K8?5R zR2RGTU%_j`Xd$*xy1-!eT246K)L0Jcf6KA&RzIZsIEU52Ok=ctoy7SdtF%(2>>4jo zvPG<08(88v1gX1u{b|&lmBZ2=GurejO%R}>S`D>n|9cm{4mhS%&;UD$KJ;ZkWjtE} z;Nnp7Ov9svAwWWT7?>!|Y_vc8xEEzL(k5A;5x5Ff5g4YVs{{yLXDYC|N7p(a*TKmP zRZIN(dA-Y~Rf1SXUS(WH(^#zW-L1s}FCRrs1L=a>hqGx?*)98Co7aEh&b!`N$| zq_M%;rH*Ov)MdZi;3J2}7NF&TiHq-ctu1aD-mj;A^`FYvc(><#d+%$Bzz5TVpme#B zUZcRzZfWfY%&nU3kM5VUrr%sKP3Ix>+ZewfU6e%Bk5N9Mb+RVzfS0&NZ0nbR(t$r_ZOu#5Z+PF>_bPBL6BG?r)ZfegRJh zZ+Dm+Aba((FB_+xgV*(OZyyI%()ezJKi&KfwhW-EQr^DHCd9irFWBKc%+d|6)1&4< z;C+Mp`6D?040qdiJ>jrtHzqT(M+VAr>ws@P6-t}Fd(y&VHk3%N{+ah?E^J-#*Yr~_ zCd?9~P4dt)Q*BrL%F2ym$s@cEu!PNmK6%=Ng6{+ge~X@7asOLN>nM4_-j&?;&m7jD zuHPiFy$y7UrJ_laXf>s6bBNm@Hg1H5yErhs4PSWQnEY!$ngK|LFqL8>~4 zMyyn4=~Lad@tKO2`K!FrYg8Hd(IV4{VIfjbU?`o|0bIlHK6QPrRtx426ghgB$B+4K zRR#HG5Z|I@J^SP$uAMueEll{k!=@e=q~vjI!AUR(?(lW4e0Vexv(}lS`G001okgq) zZC=Or%3vltRSXMet1w}ED#*8&U=@nXmK$fkzahTOrFZ#EclQdu!hK>IEru`}0Q*Ch z3E#Of%1$4x*E5!xx3L(Eb)+2?zN$mnwe9o%Z#&OFVt~P%pHSdUIFaIA3y?NdA`0#) zYD0jh-vdahZW{VrY&oPOO_|`Ul?EgbML(O|u!K z_!lM|u0wsSguZ|IKW=ni!^%P^J0QWNs|)!Q>o;L+z1;|?R>e43(?)F$o2Kt4;pV6O zDzbS~@)&s$T8}c`C5-oCyMtJ+{c9sRS`3Q`vAm4oKtNqhOak=N5b|>WZ6Tp7#z|uj zijao)n*ULkgzcG{(|({n-~E8{2jnl_)Gk7y9Gg*#&VWSYj>?ZU1deRJnV*nnAvS?} z3J8>lQV(cM3x@c2khdH#AVh)dp(x!AGn>}(S;KwR@3Ob}V*Fr&!UL`;9Z7Hn)P_j# zD9Y!nfN)Yg#PFdf^!{5&{T=6Yy$l`?_(C!EK?td&w7DU|zKKy~+&>WT4=n!`o#VHg zN3%eWA>Eq@6z+@F_{w4i@9I*lzI{5EHe(eV{|uQ@6$HrqUzj2P7J{jZr({kr*t1QX z3P=(kWX^eyh!Fp#flz^kkXntRe}y%@N{Q&I)eiInAyEp)oh5+DfzM6CxKs%i16}`M z>5Yf?jmLxDLQM)caMa6N<%%5Gh)b?SK)+Cs1HA4hsCatDjxJS$}ageM)ha zj?WKShOg+R0R(-~UE(Zm`#{aZJ9KXcY3YV3z0aiSsA6(kLoSH+{wJ{6X$_!yYpzh1 z*Zcn(c@D5Bj<)9tEwnq7dX$r*s33=hB5hHcv4IiwL#0SFi1jRh$}TDbf*eT5fufvX z00%}wcq|5y?yP$r5dH!#nhg){aJ8ysAota%393L=lQrkj4 zd}8N&*S3Pk$3{`oMO?I$bIqDX8~#n!`0+xAjKW*V8((oR1phHL$iQpu?C)|%RzB;P zW|JBh=yB|?&^)z2>x8{NXDi=EudbDj+j=wpT;wXcy5_TG4jnz{P{otwF3>msG&orE z+4=BB6E6Ex7>zQN9aNQk&loo0e`+1#6e`&oOFUS^xYHzcdV7KpB@j)lg0OJ8^& zDpZU;;-xH}J>sOhq8|5|P5I}(PlVpdzn2yA!kHT zUn}tblzlM{Pr9PUG#p|p!;S0jECN!w_+P=@(#>!aMbf4s8$5F;ck<8)rfL^VpKN zng z=sfv(kN>b)p&p$i9sI%B^pgCzO_5Iipw4&Vc7NQf7QL5yVUj;+Fy=BxZuw&t^G`c| zxBHP+fu^f=ZQKI#B+eEl0oyOab(lDBd)p)lz zab>F3DuvJStT7sha7Q~!6=CFx5r#TLD0`oK%Z#L5kfsHT?k@}0X5-Fh(bjkJ=`bfi z@TiPBjIBW#hleVk)ooBSzOLh+SA*Vp3Prg(Q$HG>f3rAb*4Dhos(|}FlR!}6LlW;5 z2hq=~()F=iEBjbRnHhU;X};LptYd*FNPVb|4G}s*t|?Ii0BDh<$L#)5iD|3g6CofZp34P2)>oR#R~*q|kI+CxESb_!T?x+yZ<#AO zI{A3QLembD=Yg@mL)4Zqi3v#X;!=KTR*I%GV_^Wdg8@8d)3L8@hIu+?6d+xP{o$y$ zUtAFE;GtX^pnJQO^->>T>~FW)QzDrM;bXwFY2*nCHXEIxFq2l{*%iL4R1sw2;@@|F z%!7IGn&^iU2j94sTSss=)jK~0!RN1U$`H?5Cc{?-?fQ8fhF)(~CaFuP2j(o7K9N&X z1Bid#XpO&cnr+e~4@`a1hztwqHH?WW{m5n3G;}LEQC| z-+_?cwp;LvOMQZI6sAx7|0gd0`^h;T9i!%_ezBvZntZLAJiP~TWyPTU5-o?KGL=E& zg5Q3JHoWTbR4(m-$$wb7Me>uHrI){!?AgEswl@uMjfpBw^CfRR! zMSZ9Qtcv?>_m=@r{|~$;JN&Pw4!Pdn?)p<*gA{1o$wBB!o<95<|6$Eng3iKomwE88 zC)NKL+#MmFHWY?#nfZk%)RLmkB+zxT{AULq!KND&d$_hRxh2;hhbwEO5C~TCpK^F& zM(pSw<0g38_6yD=`);zONY@r4^OyHW7r{Va_VSX%J((SQsNje2w)Sz}X(bOt!FrK9oeM8S zxsQx$Ik{iBBJas-bJWz6dVCqYz{Wt~93f+_>ilc(-l{pk^*U6v5`=|0jA=qv217y>^;TcsCHgIxG|@af&+3{ zLeWWv35#Gs`s)IzT7oSvyeDL6s}slUJHxj98(fi`&`ZeBQ5UJ*z|Wj&hkW44)#H3V z^q}3bUyxE0vV;s9R#S0S!HsUT$b$-|fre_U5SJsyG^r|}Yb0zv%kY5n3;RB4d?7F9 z3nW!Gv28L=J*jQolC zl>_AEyxD~rdplZgLR@^>5tNb65hybM4RkJ%(0{e|#=Ey4H>SXcGVGvWgVC*RRTfd^ zWuG83F%A@uN}{hlY}0DkT))BTj(&hgi<_M$^dN520h-A4;$Nq|?~d5sVX807u6$N? zGmK-Nk^edBd;4cPu$cvDpjKNT4@5H-w8!~K2R744IhXEFggFN+NsGjY1{c_o*}Jxw ztOMXDuCO(eVWN$hP;6q*t$CDE#m+GrH*c$-5K1d0@oj0b zEu7Fr4JpSAyj6x&4v~E&T*8JM>XcF&#N&V7{vzL`WdL%CDhb1hRw7$`c-R`>D7hGt zrFfv(z`A{y){!0@ZGGeC)K?LMArJa$idR)9b*)_Da5}L_uj)+msJ>+H*#1^sCdf#% zgKVP;wuvqb&txdG=65|SlJ@#eRQJq61kS{XH>5UWx{xj4jT#zOmKGjFj&?xIhi{{# zuS*WyIH^Kh28{(UBP$CEP`>jwXe$t8<>qoDS{LFX=0KV!IA8Qy5djhadHH~s_4}!z z0Mq_pSH}RIyP#*N3+%rC>cE`@2!Z(5O?||Q{7OA|M-{FmoE4QvH;q0v>f*3<@y|jA z=liCeOCz`pKH@8=Rirw3Q^*o`<$t8mh(u`I3Ua1Qpw*JRHG%80s0^JZkLaifn@%x! z_`g|ki8~qZp|0+RC>D%!#tG;@B92f4epiqidtgt?S`plqy%xVb41;{XOqN%&Hug!=13~V|#BjY{;R+xU+h2L!+ ztCNBM*FIj~4==5Do4nx#K`3Uh%Fadqy?Ri19#gG=)`g0I4QM@r0;?uhXQwKSSvF_- z=e!6d4Fqsc0C^%#q9K!@%1y3;(uJiAk$z?%GR<*6%XlFX;TQ*azi#!@EbT&qe!~XV zG|wa%nEjwa3^eCJ9{}>w;CnJ!i65*AdeN69NEn3M6{qP1(>eBJPf#QD%VcnH%v2zy zgI1#!RoJi9hLT3DOfTZ1eHU^iKvE^E3L1VIYJ%Q))h07Ee8&vZ5p3>GjrTA{f-i$C zffu6MJ}Ph8SyJwKX(Z3Nm(0$lR7O9zRVu9`QAR2S2$mI{CQ^;YXVmkdoE%)Owe_8# zQ)|? zC}Tt^AqVyI1ypud0g^i87s)7HV zjWB{G3{A`m=?A122O=4Y<6wF5`ZuJJn63nHSH*N6jqVoUNKTf6z=2lRHc}ywjvzop zi2eAFWSn{mH5hQS>_S09gP6p}5LtEiA-Fk$N-J(l3WvP$Kt2nzZY1;D35m0|b#w=I z)UQb#R1%9Dkt#zs2+^$7*r)?Zu9ZoZbJ`gV1TJ<0i8@7@zY9c@ zC=Z`gKaGB9XL^=(>1|F*F|taal?jO!aXFGb!SRH?gIpA@=eejOYqO&);W(^skGwlF z1sZ4)v-XWugzz~I*)!a$V?wKizJAs?pI1qWzJDnse)lh3H``}eJ$Nzlp6%r2qbF5! z$`cMIU6**FnLr>SwdtV-tzn(u$sffh-VNQ*+1|hNq2Y^RQW{t`)Im(>xc%6m&XngR zg27&`s|#1^4z@%J$nhdQ8q0I_z@xjq42G!G-SPB_VZ5t^{g>lPT|U(TCP1wwxm%C8 zHM-JmevNZ?Y^r2C$lhK1MrBpUYH}YQy!xWj6QZbKd`*{;p4j99j09iSaBs&&xb~n$*RO)IJQ3Z71D==c-4TJN0!P zfC(CD^8Ty5rX6+{)Rja1f6ZS$*;D{2oNqK9nN)i&=>$6^5b2aley{rq7`m504m!J- zd`e$u%+G@LL}>cDwKgBO$Hzif3Uf?wbg!SW-7PR3CPx5VDLg|1yd@S;;=EY*#azW; z5=#(d1bhB!*hA6dKYx22$y>7V4CPzU|3n34?*PO`D%k>HE-Vu=HlaLAc3$BiG-sXw zhVM~nDGbTtLYL8@$xvBR4&%_~Z39DHyFWr-PL@|>0ug{lt4|UARy7=zsK3~vWFjlW z6i{-YA++5~KZ<|$L0)vnKIoYQWBXp*9iiT0h9Bq&?Nb8spEmdR=~+_24HOjx$busg z3&w_*$&(%flwAz}i3XOZtKg1P=oE!K4krj;^RBgL+rj5nvdk;Al?C(bW{nq5nK(bd zQ{)5!Y|o{3Jp1+ucJ0an=Wq%jW_-#UVBTK6HBA?GR;TtV#!w*Q{nNe!`O_DU7w?}g zi46W{5m$Vnq9mBo1knP;Cje8wQ{m*^X#GwGxFifU+N_m68_{|iAvNmq>q6^b08>gV z0@zON_H3Q-Bm9NOKSe$t*n|J5Ck`Hqbhlr4J+(U5j&Dr%wAI)^BXZmt&qc>7zmK#T zjC@dOTW;HLz@LGd%Pcj#VRN{@w90K@T~<4*@&M^5dKM(+0nD;IzM$dv>PL~vpXZj6 zE@~{Ga4Il$GwpRa^)%8(FwKH*j==C{C*}eiW9KBaG-SLN_Gvx{Y9<|0NPy*35RnqCGE4ySVMQcUb3|2iXL7$1^CZ-4=n@>YtZnI z(QRbQ6aPB+>2p*^OWfrd<79s2`$zOnIq;^)bKqpErq}wND)dVkMKtmG2m3nzDb?KQ zUh<$9uQ3`egh5%$ZyXSLlB@n}5@T<6*-8od&aGhX$0qI0SEI8**#;`syFV`jIndLd zvL)SpcPa|6^TSIR4m^~z18@g9#<+$dvp+_MZ1y#QsK6Cpqn2okRYQz#W;W^wb8G^} zji2#Hdqn#>XQC>R9Q4UB5Bot+Tz-Ix49Gt+ulzW+;Dchy@ko>;f_N%O(p@lghfRg% zz9at8@-TifEi>~ER7c2vKqgK+dH5@|V_3?Hp#K4cC(PBSkJH>Xtstf5Lq65Gp`zGVGNPEHoU}T1SQjJE-om)yG;f08u50jux zxw={jw#o&>B#M7_TrYgPPc&YjVu}2<=*iAF3si5WeSv)AUVUCkA%1{Q-yxw<>)< zt{-Kl)uYtMLp^zP$oHNTFll`$;{Yv7p!OM6gIuJTys6VzJ?eENe|d9J$GQ7xIqr+N zSU-u4qoHIo<)m*20GhRFaVadx3}dTXNhZ$$|AsJ z26QeEX$j~?Q!H5>Mnfcfhe+YQPKXg%EP@sd2?#VhPY3rEOrt~jcB)i~XfUuu)bA+U7ju{w?;F2^tm_O6 z&;t2xtlkBu`uN(f`K|AL1-;sGAgXPYBdNNk0Bsg&eZHGnk4574KHFUqBS(wshozBD zB<3k z`V#UVn>Wu%Wf^pe0NdhKpHt)ulVZ#m^0oG95<3N10#W03XHC|-laL8fD0Mt}+hUgw zdOyH_ckWR~IL?oBERropU2C;{jUZ|`{40d?V)-!KdKqPU`AtO4gGhoKwal41udk6L zfZ7`aL|kaUbTX}2iiEO0d-2KU!`zpoya8Y%s5&h&R=<>svgv2CqmNQ5 z2M7=n*?9e0c{rXJ+&lo>Cw7y=HNmA delta 21529 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 void: grid_loc = world.grid_location(position) - world.change_location_data(grid_loc, Constants.TilemapLayers.BUILDINGS, Vector2i(17,7)) + world.change_location_data(grid_loc, Constants.TilemapLayers.BUILDINGS, building_data.atlas_texture_region) corruption_tiles.append(grid_loc) world.corrupt_location(grid_loc) + building_data.corruption_pattern.expansion_finished.connect(on_corruption_finished) func _on_expand_timer_timeout() -> void: - var corrupt_tile: Vector2i = corruption_pattern.expand_next_tile() + grid_loc - if corrupt_tile: - corruption_tiles.append(corrupt_tile) - world.corrupt_location(corrupt_tile) + var corrupt_tile: Vector2i = building_data.corruption_pattern.expand_next_tile() + grid_loc + corruption_tiles.append(corrupt_tile) + world.corrupt_location(corrupt_tile) func on_corruption_finished() -> void: expand_timer.stop() diff --git a/scripts/building.gd b/scripts/building.gd new file mode 100644 index 0000000..28c3b77 --- /dev/null +++ b/scripts/building.gd @@ -0,0 +1,8 @@ +class_name Building +extends Resource + +@export var corruption_pattern: ExpansionBase +@export var atlas_texture_region: Vector2i +@export var name: String +@export var description: String +@export var cost: Dictionary diff --git a/scripts/building_manager.gd b/scripts/building_manager.gd index 9fd6035..7bfe73f 100644 --- a/scripts/building_manager.gd +++ b/scripts/building_manager.gd @@ -2,13 +2,13 @@ extends Node2D @onready var world: World = $".." var base = preload("res://scene/base.tscn") +var building = preload("res://data/buildings/hub.tres") func _unhandled_input(event): if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT: var build: Base = base.instantiate() build.position = get_global_mouse_position() build.world = world - build.corruption_pattern = ExpansionSquarePattern.new() - build.corruption_pattern.expansion_finished.connect(build.on_corruption_finished) + build.building_data = building.duplicate(true) add_child(build) #world_grid.set_cell(2, world_grid.local_to_map(get_global_mouse_position()), 0, Vector2i(16,2)) diff --git a/scripts/expansion_patterns/expansion_random_pattern_large.gd b/scripts/expansion_patterns/expansion_random_pattern_large.gd new file mode 100644 index 0000000..7333b25 --- /dev/null +++ b/scripts/expansion_patterns/expansion_random_pattern_large.gd @@ -0,0 +1,18 @@ +class_name ExpansionRandomPatternLarge extends ExpansionBase + +const EXPANSION_DISTANCE: int = 8 + +var expansion_tiles: Array[Vector2i] = [] + +func expand_next_tile() -> Vector2i: + if expansion_tiles.is_empty(): + for i in range(EXPANSION_DISTANCE, 0, -1): + expansion_tiles.append(Vector2i(0, i)) + expansion_tiles.append(Vector2i(0, -i)) + expansion_tiles.append(Vector2i(i, 0)) + expansion_tiles.append(Vector2i(-i, 0)) + for ran in range(1, EXPANSION_DISTANCE): + pass + if expansion_tiles.size() == 1: + expansion_finished.emit() + return expansion_tiles.pop_back() diff --git a/scripts/expansion_patterns/expansion_square_pattern.gd b/scripts/expansion_patterns/expansion_square_pattern.gd index c08f0e1..e40d3cf 100644 --- a/scripts/expansion_patterns/expansion_square_pattern.gd +++ b/scripts/expansion_patterns/expansion_square_pattern.gd @@ -15,5 +15,4 @@ func expand_next_tile() -> Vector2i: expansion_tiles.append(Vector2i(x, y)) if expansion_stage == EXPANSION_STAGES and expansion_tiles.size() == 1: expansion_finished.emit() - return expansion_tiles.pop_at(randi_range(0, expansion_tiles.size() - 1))