From cc562a49508803778b522d8558b56bc7091a8c43 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Fri, 16 Feb 2024 23:35:39 +0800 Subject: [PATCH] :sparkles: Ebb and flow --- assets/fonts/ibm-plex-sans-regular.otf | Bin 0 -> 136352 bytes assets/fonts/ibm-plex-sans-regular.otf.import | 33 ++++++++ assets/{ => images}/attacker.svg | 0 assets/{ => images}/attacker.svg.import | 6 +- assets/{ => images}/bullet.svg | 0 assets/{ => images}/bullet.svg.import | 6 +- assets/{ => images}/player.svg | 0 assets/{ => images}/player.svg.import | 6 +- .../tower.svg} | 0 .../tower.svg.import} | 6 +- assets/tower_forceground.svg | 7 -- assets/tower_forceground.svg.import | 37 --------- codingland.tres | 6 ++ project.godot | 3 +- scenes/farms/enemy_farm.tscn | 3 +- scenes/main.tscn | 22 ++++- scenes/manager/statistics.tscn | 18 ++++ scenes/objects/attacker.tscn | 2 +- scenes/objects/bullet.tscn | 3 +- scenes/objects/player.tscn | 2 +- scenes/objects/tower.tscn | 2 +- scenes/ui/finish_screen.tscn | 28 +++++++ scenes/ui/stats_overlay.tscn | 78 ++++++++++++++++++ scripts/bullet.gd | 3 + scripts/enemy.gd | 3 + scripts/enemy_farm.gd | 14 ++++ scripts/player.gd | 3 + scripts/statistics.gd | 71 ++++++++++++++++ scripts/tower_health_display.gd | 2 +- scripts/ui/finish_screen.gd | 6 ++ scripts/ui/stats_overlay.gd | 25 ++++++ 31 files changed, 330 insertions(+), 65 deletions(-) create mode 100644 assets/fonts/ibm-plex-sans-regular.otf create mode 100644 assets/fonts/ibm-plex-sans-regular.otf.import rename assets/{ => images}/attacker.svg (100%) rename assets/{ => images}/attacker.svg.import (75%) rename assets/{ => images}/bullet.svg (100%) rename assets/{ => images}/bullet.svg.import (75%) rename assets/{ => images}/player.svg (100%) rename assets/{ => images}/player.svg.import (75%) rename assets/{tower_background.svg => images/tower.svg} (100%) rename assets/{tower_background.svg.import => images/tower.svg.import} (73%) delete mode 100644 assets/tower_forceground.svg delete mode 100644 assets/tower_forceground.svg.import create mode 100644 codingland.tres create mode 100644 scenes/manager/statistics.tscn create mode 100644 scenes/ui/finish_screen.tscn create mode 100644 scenes/ui/stats_overlay.tscn create mode 100644 scripts/statistics.gd create mode 100644 scripts/ui/finish_screen.gd create mode 100644 scripts/ui/stats_overlay.gd diff --git a/assets/fonts/ibm-plex-sans-regular.otf b/assets/fonts/ibm-plex-sans-regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..51b38a2675b2a881c68afef2de623cafca46c86b GIT binary patch literal 136352 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%0Dt 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³Y$EfH++`FCcLHD!nG^PN{=qwT-M46kKN1ORb`Q0;jFYg?nKF`Npq20?km3n z=TeNAb6#YWB-~eq1Hr;t_<1fq=|V>Q+tkdUecUnVi3%BQ<%w-1J%|Z`*j&i)Hh$9= zD4$yav#-}t?lr1yqPJb@?Z{Gk9{HQg_X{<*)~PI9fk5UrE=8vtqeeB8j`}umXCEV^ zb$G4MFfNq7VFh$ML)u(R>o8A?J`+yjp3GF<8JdnC-C@p&!Uw%a^^s9%GPQNon4EqI zx-v(^^tI6o9tvYBtS2NpHuG5^$N;CrFaf%g=$K#W>!f``Dc+${lJM_IB_HM-HB&d1 z;TLlAZjiYq%p>7^0*!Xs(&)>Kvxr7hQ#$L)F=Kbg+ z__p*)_#FMT^!l&LvNSQXD@yZRdKJd1JfW4M`2=H8@Wa8St-D~+FzUI&+Ho@t*3cFT zy0k_&o`yZ}Oc5M`PaO+jLuk9yr2b4=In|hEw|c%?`4wcmZ}o@@K9QRc@HoM|%x=w( z_+R9$_}6eLF^J3-g$_v$(gP`6@`Gh@h&B@o#4v4Gr7vYBOE{%!m((f!tl17=wR{|s zD)PY#r2MexLnVg-o6t?h8MKx^)i%nCGxG>sSbC?B2&=c0`_|Z9d`Zk|;m;^FES#oO^q$Ulv62i@MO~=Kb(fWijLDRL?U?kJfW*#3Fgk zJC`0syQzF)m;c!(!sVAwgk8Q^eZ?cVLg3=J^gh@@CZ|X~%Zl#={*+$5w5(`(;;E`t z=^o~?@f+Cz59lEI@Q(i{M(mf$lRVqWpIGJe%Uoq5Pcr6^x0T|T;3za!x=Ut82)?Bp z;Y#%pJJRGiIPFKcDF`nflso7>(Y`Af6%>V5Q-<(mj$|T_Xvr*OZKYX?d4vnDQqQ3t zk?<<3>-}6SYAQ}*cDp5K;$1K;m-A87u7EG1vhW(PDr*5Q!3%GVF%pqi@y*6jlj(h6 z1R=Z$L|Epf;6zW#`4&qL&O7MgubP87p*r(LozQXk(}rm zvvumIuETWUDSQv6qI&nJw5698Ple&*%pD~&W_c0$QRNBb%AOH!E|oj#F{R9D)(^cE ze{k0g^t6)H>R4KFSZ9>pxy)6hec|%W`puMR>mM(ZM{z8@vCR78ogT-daNj=0Fv52g zvBJvBS@GUco?;1$yi2?JMrtfAnfzio>&z?U10+s(aE0>Zzt%b?HqbW1Hpe!PEp$#1-LZ!~ z)6vKAuH!(=gqTy#PRJau18G7+Wv)<#J8RZSnN*T=0&Hs~J}(ZbJFk@=ukY zSN>%AAdwkc`CjzR^X*}qn7Z*};xiLsiN-i7VM~RW3iT@tt1zd+j*6~|5>4?YR;bn^ z(nBN8jrrcmy5GAwHzD3l2iBZ+WSwyr&P1NE4`e;+V0w{Qdp)jN@qLiHL>(hl4yp1; zRX~bD)|B5wzS^uGzlC!Hz70vyi0FfjxxO8xZe24R z2lE{Qyf!do04os&1cTT~U6HR5@cwu(G=cLB)>_{{M77%B_ZGhOh#1unyx+;{_9lFr za@~sD4@PKlikb{cD*#WYRV*8cUtmU4D`Kt?DOD|IWSl~3$g@f zp|nDwn~Df?akRm1tbgv#w>0unbmT!NQD7x1(L;Q@BE`>WHxV(02z>mWz#F|8VCW{k zwQ1umL`V=m6HGQHcBIhcZqCAIO@XpAxab2f^d<6`8DU4_ti%)FBwod6kmx!@)*%{4 z5%CQKDv849A-Y15qYu#c<=l^YeL!?h;a~qca1OKq?jqnm1@8ud7n$JOk@fZMR4x-XGddvfagV5H#LRdQ@4`b+cQC)6 zfx;uO0mkurJX|>eZk`c()8eZ$VB|O$iKB)yVC9&_Tid8fcH9P1@u`# z1c)3WK;#jHC~P`5-Uey{^b#IrXVW*Nr4qFtia-mJh&q7 zPw7>38G5bxpXhZRZI`%0@FCW9PfgPXgY{>?$q2139539S4;~IFZod^=)I z#yqBE{3TUxecqV$a4^!09iK;J9GK)@8nhcpWb!Za3 zOp+BvCn>B$fy7XKpBbT3;*d$CBol9^Ep8IL<(XVWO{MxX3rO;TBo|0b3kv-SGzXwy zDMany5@Hgf?TLrT*VOg}=-NC}t8m8Rg3Ao>lMh5@+{!#~BO2w>Sf@8o+fCF^8_Js2 zMlR450$BkR#Y!Sx&)uAxf~QuBr$oz0thwlZ@_&nM8i0C7fG{6k%Taxfi8Fz0ACT<> zGI~WQ)Bq?O0)=UH?Sq1OK(`OPN#B!8Zyp3^V!eoMYS{bm?F*zL0TNM4`XsC}a3lRt zk&2Og#dxYvE(eZ34itNU;uKH_#|MER4+z$PpEW>m2ng0#5M*Na3Ag7(ak}8@|4vL) zv2d0ADA`|Z_MPzD1Tb;~a0!o#T`JZ|E22|Ah{T!pjp(H#N*74q(*-+6ET*1d!|Zp8 zv}(}cve8Y!g4m;?4Nc4U7HX3kOq)&Y=v*)$nkQfJZf9x=OHe!bP&lPMk|X$6+K^gB zn#4X8d#%(?W91c42t6dG<%_gWV!Vk(Tm%HCEIvIB9YhzOiSVe&pM~IE+LdGVHF;=^ zJlePhjgdz?CAO^D&-hd{v+-#B2}J6aD2?ra#f+XPaXBS|qXw)J!BGQNu`o2WH)~eN zSqt4FIa@GFNkV5NS)+(>-Y!$ARmLdv~X!Z_Z1KU#Z_(0%iF9${!wd_NH%pAGh!qa+Cr6K3Y2##wR!AU>W zfv-9K$g@8Iu03`$Mx?E&LoSw zWn^kvw$hIZcN2XU3dqP*Ed5M4ybumAfbR6jzy=4a(c?g3=MUmLnC}p52OlMgrVt8* zF;rQ#yDa?}J70v~L|`#!nT#^RoR9<@GCHEaVk9IZ4xx^zk7X1n+>it;g3YpUnA}hs ztGWUBZU{_`xHiZ0=uPf5!Afn#nb88;LB`gs!?Eyyj8Sd_$~Q;L8KgGHwlX?bd{3@0 z4zNX3ZXdn_r^=}?NZF0~eJ6F_&AExfo+UM4RL0&|hbkxBLfxuPQigNOh_Gy~Xh_9R zQ5z@~M+&rj8-eq(ZOo^Q0U(B(Xm3~al(Z9GR`r?KX+%zeQfMp~G253JflgAxoum?M zh*aGPHl)99MJebt3x`>%Y{9%!<+w%a0Eea=UW|#bWoKdl9iVav7CaZxOmYg%1cySi z(mE9ds3D9;B!k?gSP7RTP$yZK$+4)Pr`oC{#A<}0)6mA| zrxwwP90gb#h zD3mdV%uu7vv{+#+aHSlP`>dskT>s6BzaO*8nv0(+Z>!D1xe9V6bC3)97BRQuTy(YS zsk{>uFLTuVPL)H=uBBXS+}`G3lL z6L>p{YTv)AdY^g9a57IP^T|Ai5R#CDkc1F2k%Wu{0)#0B3;_|DK}AGFL_~~;8W9n> zQ4uksAR-qO5dkq5frp5I7-bM+fJokV{i=KKeNIj$uipRvy|?>Qt7~^x*RZBqRkf;{ z(wmh{8SFO%i~N}1j;jwaGVJCrM0%vy zjb#@6{Q!~Qiq7ASS#TNY<0)xX(Vl77oz##ltV*%J4S40p&f<~(^>yi zI|^K)x>kdKJUQ|HU|p6~8F`u0vS(B8jab7X+Qt?^6MWwbe#Uk+uE7~UHRav>6V{F< zIYpj|_cMr;ZiI6;vWKz)pUA%v+lrsbz2;lbijlpcr5<^H0FM*AK2uK8I(de5NrA&fcR|%=V z6S4SSEBrmdNM3`H>kD|%JZ(9V#?JQMfoF)D4C)7cZTEGITRUH{wnB${@gKOC^rpA1 z4(My>Z7qKSTA3VgjZdY|+Aa{}spwiAWmy~4!tA>Jrwr4Hk_<{vniN;o7qT`-?xK@Q zHXQ-hVl9ZhNU&VcPn^@WdF~fcmOQ%CF4I);y&;*#HXd*JXB4v1@j$YYj9xrl+@9T^ zOLL9%$xFkY%W&|5{qT4qZ<~4IM;Uv2BE3hgtS(ua};e<)4XtEYg$LWGXX%f47KvdEwh&Wke3K6nigCPnez%N9~s5?ic8T z)s8KCV!xgePNjKpow9|tn3Nbzc3a(V@|tPh+nL)e-_hHb-yNxK|NomDN;&wr zffFm!a9B^Cw-~OhLMFAUSTlfbz#B6C#a>#vOjq!BiT!?hpZ{6X|K>Tb>1efaSpNV1 z<}2yRXuiJ>9e6rxFI;|Lv@z`OhHdLhi?ycdxPSd`Kk~%V6BT8-V*OFqd#SOkDE+hd zyRqxBP&uTHeUr2(?*HQ5Sa6eBc5#o_7XCNe2WGus(U0;X=L<90?yh_ZNJq2%T{arA z=Vg_eWoo_ZD}=&s_xPsbLLT{8QMm^gjitqwYd4RTx|e*-+E*>#A{{|-NpVJfQrNv6 z@t*EmuaQb3)_OAz7Jg#?XZ#V5)OwCj$CAi5O0|t}h-D?9KL zHmBFKr_}N-q{HS`3(bnOUP=32NoA62<9)MN7>6ii8rSmIzKx8hj6-ddp5@Lz-jGHf zz4thxP>a*I%@rOidKa=?6z>-6UXxK~?wFM%MjJAVM;2i|o2J+-&8|1+80C=NEIOy0 z34f(ANnJX&vXE+=-UgFm z@HL(_T)eJcmQh;1TFoMAd6Y229CKc2g2*pM6B}EZS9kG2BCA!?ALS{hCReQ|iSt-y ziKZGVJCib&V>E~}15F+-{?kI<>22YsncNpYN!~@8ky_du27A?ue`&8N8Wg7{B{oNj zOWx8!E&u<3OOp!Plwp+f-wX68Zkx@_*H73m$*>QQvf4Znn#;@$p%dXIKo9)92455S> zpRL?co2i}60a%=Q4USs~whJX5*h!T2XP&k_eztD&XqKx+lqx|Q$a1&djJ!FX%S!&A zJRg|V`#)K;;GDSxwkXGLj6 ztBTGQeJX}ljH{ShF}q@M#c>sPJ-%RXtv{ zt-7?jp?ZAvis}oiZ?3+-`o)^kn#P)`H7jb)skx@+uA2L598<{^F{=M#faHjc3edgFSJtzyj@$QF9|iYY!TlC+|A25GON+8(EqIm^o=thIxsMzkrcvTj zKezqyaWiZcWVaxFlbcT zNUj@QSqtSFmwuMJpWW|tUNRP_#|y+BaQwGYfc2DVUs$o&IlHb%>DF63(SzDVz8DR@ z8q=rj*?QvUb8Yc>y(L)A-A+*1Jlf6I)O_l?L*eOA*nIyRU6sc_hZMb$x6B*eQja8c z+$FG>`!RJTYoVRcVy1I!_su%$eFpL9NBx4kjQHhfin&N7yCRCbZB1*Kw=Euw1bl_@ zrQF8eiuz<3xi9BzyHDabNi)CT`eZe&tXGL$=nY4Kxuw$Re5aTvn&>5-UQEeL2r*at z_I0thv3;}CzH(aU%8{0OaMy^G^hVE{uc3J>HquJ-R*aZ!6lJ4MD`>Z-u_(oR);s_2 z+$jT}^>A*>`ghNGFnmV+)-+bo)`eKawx#<&BW9c%dzfee@C|1EpCfsBSv%G)qaV5) zIf(LNz3dx!r*BV==GsEeQC@6En&idpyTACKNzqmoR~Ko5KcYvUbMw&z(es$Teb;tq zv=!~hchQkK?n(Pd^6ArUzs*X5_L`Xv+yf7^#25ePUNaeJxrhAM-r09A`F~T2J!_VK z>JEHek0oHE33_F0lLZ9&6?$hIV_-3)7P0LhG5NH+FC(At!qqR+o7?mDY%YtXIoR8m zJ8{Ik>y$S>&Bz7z7C9|JmaL4dbSsM;0Ni2MFe%7gqY{C^>VRT__!OD;JRNTpE7JU46_sdv~_U-PM)8~W}tO>J%n&cOGDLu$}Rjm27(fEpK~MS+umwezh@FA%*Sjsp4)n^4Us@ZRd|^ zrI(e@D)jAf;3wNxnB|3aNIuI*8QW>4#kLy04FeC5!bWb?l&}gM9mn~2a1_Rkr*&@r zBMXMJ8^UJbTAoqV98K};fyKd2)1Ue3bi#ru{@Jxg_6!&Q;mhOt@6=84FRpp}pB<761;~02QC(9^R#qj@0HiV2St2 z>M)Ah{G$2BTl?(It2VQ0zJTefN|py#^Xmwtv9}o)>Z;jp)oVM?(kivd+QnRLAqT~5 ztx&)0dC|z)RrD)xe3q){W|Ju8S&iem9)5F8ZZ`Xqrp>3pSHjk;@v`GN^BCGnusK)o zk^R7&aiOiKMtYi8k=52bN}KD9^dYrAKTn+HwD)tY8)@XlB8uHYt5_K+{PJnIq%!i@ z<<4&9SqlB)O8+N_+nVV9{)|c^Gg^TqI}YflH)f@^GJhQ&wl9x0$)zRg?wN*ACjNL| zQh`Gbs8S@}f1mz6=S=B_pXkkDc&1fQ%VJzttHAU=>X>f>e8>CM;~82S7kdgpXgiL|wK;~mQ_{7t2|ei+LX8e<`nLZLyx) z>S8+0-i#M9+EOlQJ&W_oFhc3kJKOx7_mzuEXp&0-KXy;6Lue7z1^Q&1Y}!0NYdjRC zGuAfZrO?Khi`B)xDi~$DxJ89rVl3tosjj-@X=L9EHLtm-#aqU1CZ{nMaia9Q`C~qt z;?sO9pQX+w)g{d9r9a~a?ilW^1na@1qwRUFrP_BlexaqQ6l57?Ey`$A+#<`#`WoiJ ziLwGGyr|Y(&108RxUVw7Ja?kprjkkhjH6Q=qvvA@_EzX-zQsxz%Z#|tGuF=LKiX|x zQuejCt@P27f-FtSrKTyOUd&o3ZB8odmGvWKz2$D$rY=RE(bn!XO=j7|Tnd~*F0p3h z66=ZQqH>83#u5s-#F%-YH2tMlz@Ft|o{#o6&B&uMrPg7^7q(t&zv8w?E&Or2)IDdumMi{4~s*kwOx;XWzor|p-=uIjIxVy=c4)lw}r&U}ShF!A@jKd?pG_6batbOUietGQXbIGt9*S0MeqjZ6a zJd~9xK36tYrwo(2utz|C@jH2YOtC*V_B)p_XtIq9X3jgZyBp!AQ_CG-)mmdxX9qT+ z`0)V0cEtF?-U^R@A#eIadd)K3pPDyK)BKr?woOy*-#_G_xNmGiv3=)Yc!~Nc@}f~0 z9?5cvb~#@bp`B($H|gbybC)(ZKi_DJnwG^<#cHrUT;>hYgddBaERORIKjYL`x@-Y( zY<_9kQRv0&>lh{jmdf5&+5A_|+ghL37wYUzQN4MlMD?=wVeZ+AF}$chYlfE;BRor< zDPGLqd-ocsMg_cxTT;B(t>$>y8xL@AB<;2S#4us!sAcW@0LsfCb&$8AxXV(Z4=FYK zRUr}fWsbj+n_;*{>GL|@k{MnYDVw%q9L@a}T9xTFlIvNMCVTdu`JpunePh(?%4Yv^ zluXC;8vPlcHJ7YdEAC_((73UHllZjWqHf+VY3e3Efi344Q|>1;`yxqEYNYc zjP_M(^EMP`02b^UP3aFww0Hk!c0!b-?560;{nRS5b9O5|*YS?d$6Sq#_VuGp5tr-q<`CMiOuOGc9C0EVn_AZRBWa4norD{rDNROat3jkjmsQnCFW^HfV&5KTP|_ zzOnEwV&f44cm4>J9I2hV%hBKQSlfx`K7D|4krhVTx8qZ>M7vW|cIp{exI!$}(aKH7 zC%S8#%P*go^$UhE(;G2Xl&_vBWgn|qN*PaE->Q^v>Lp#yd@6tJ1*WVmzOxqhUk%e9a!o*YCY%8CYG6U(#_c zrR?b|OX4SL7V9E=r)geDEjyEigY5fBMg5@a@`A?Pco^DGd=sN7qX*r7_jkR3ts@@wpp~c zN5u4$_J~+r3UuPC&AHvH9p6QJKWIB`EW&_sCDYU+tH(aQ8 zrh)hJ%kHWzhKUp}O&>ArWVI%?o34wg*>V3IG2@UX`NZ!~G|h1j{|a;^59MU^5RHpV zC2sHS5H={QcsF61ar*x5bcVBOX~j7;y;JO?eUDZf~=T4KGWyZKotrxedjn;m{wB5y0&L2G^YNmOT`mOkUnoFMU zRyKE~)rwPCyr5B9zOOVkK1#XI{^x&5rt8QjUyJCcMLu>Q*_8o8D0wWmrZW>v_RBD2Wza60@sO5__bqKvinNc+*FcG=ceG}+ zEL%Jqy;{7Hzi4(fxUsf3ODRdV`p3Funjp3>|GY(*)hf&kSWbq&IHzy;u@HaOMzid! zeI{FaKSNCrPn$(+o=CO0tsPUUD54RMGGit+lOXODu$zt7(<1k9D%7ck1p2lC z6gB>#_QqGY6eY7~tv-=&GbzsaqbMP%Qj4qjV)OX!nlwuxJW;aonaKc$)g@akv9B@O z&*Z`0EMVi%=xab-3b{ty@c+M87t>}N3DyJ0y4YwSs|(doIX2H{z2&{CyIG*pf~u#b zNqMX(FK2iExiehTjB}&JWx4IEtbN_Ld`w2N{PuRvG)9YQ3hSkIyCrHECAYbG+?~$M zzyvhI1di-i%(Kigi0<2!B6<~BN*k%hab5ZpT>30&JK+ao+?eJ8pER|S;|SO4lm()B zskW!`wiDQuM&nv`PNgJG#Ywr?x#`c=iKC`0TyH_26mF)m;xz0*p_R?Np_DGxCc9He zV-{h=c2f#C=3Wj0H`cbSC24_sJ(JM4FuWQM^}_jn1R5$XI_}Q%*bHq=tC7kq?qW=(*x&t`d?oi5(P)}H zqkd>9<$>V7rRV=$*NWxspDn|;Zr{3rT_Dx^7NSe0F(IMgZ%ig6Q~8)}GxD zYoQ%>e@$*2ZE1GoCgmnIzh?h))4+*gg(EjhxY-DP_I=z62JN`B=-2{24Ws*Uk6Kd8PHR!FJb5Hn&wt}UxC`zPx8$x$pN&+{XmX7>Wet1-MZkB&?~4&Pl)6S( zd^H!4B>Q>C*W8@<_We2UM+=&U_rA4Y7lZCb#d|1zf#Q7>-=z3mf*p0`BEi=M`2slk zv{&48xc3(;ZgafeU!nLbicb|BCCEM{?hY4RA-LM0dr0tix-w62py2g_#|!onL@SVk z^;O=_7yOan0KuCC&EE5&jpAJepEu~t{_*}P!LfoT84T99dEZ-bmf-n%+z2BOF&z&Yk|g zaIKXUZlJse!%ZsBN{q)&$}10>DDgIq&K&b7bu*=oRH@VWZ{^10E|t9^+@tbOp$?}| z{{58vP~AX#-DLE?Lc2bETHMFNJO4&9Ec9XSGgpd_(X0q%vt09;Hs# zQ_K4}9-$>${7%0;X`gh>a!h)K6-lFVwE8Tj)~m^}HW`|XrtP#3T;4(JH&L#o*Z`&s zfAft0LRY~pz?~NN9R%wID+SvdbQc9nb3u5KG@2{E^@Q z!JAZWmFjST;(ZK;wu*NZd|p@PD*af&lMI46t8H(=YNc!=*x#VLT=6pnJ1WgA!Se+Z z!8L*x7<6wdY};7)WWxwY&uKEs{q*1HYt`Tc;qnBDD{ zx{tVzx+}tZc;}pOZa6Po5H1ZL4j&Jn2-k#b!;Rq!;j7`6@U`%DFlst z&(R6WY+&s15qE{_63z@~@wJGv!`ZG^_(1po-y->7IN$XN7lzCEV#i0qm2OzLDqQ78 zhpWRU-I(yH@F{mt_;lFh#zC)J-7F~fO*b2weap=Y-wEGw3&LIDE_XB({JvWV4S(Pk zg?q!jZgIFj{KOp-ej5JMEe$^lzj7g-It;2!R{-`q-2u2JDHM9ao?tODSQQouQYkSA2EvEb5VK}Z6se~ z85733QS=Jq;E_pTk{cVQhQr{L>0yRDnBMA0cStxY9OWj`^UZgYz~N#yIV=mOxGCYZ za0a*te3{9btSw#rayjxgWXVeL5^Uyrb>8hgC1JS zoX%==P&>5HTJl(j9_ox1I>&XB7V7SP!O`G5v$MCS@5=icdikEdr|aW;V-ffD_D-38 zewZKT`tvf`{iz+|Aha98-$&)$qhD3&kgfG^pCjV^!hKl$^K9NHFuPMJM?x7 zpv7u;0d;SUciu1DyOcyJl+oMw@qK-NN*GN3%gOPVq#8_XZHH+O+BKv_jyTVK$ZBr2 z@o)S04uIC($Ug@zOF432sw0@|%+a1VLUd5oD1$#U+jIgLS@#@9EAFAAHac^n=}beyAVnF5vsbBix04 z6eG%u{a8O9T1@cM+(-R%e}ucnAL-}0>-++Lw7bzS@{8O?+Pd6*!LRZsxG(yX{3&h| z-!y)oyValJ&v&=`3mGkL@mDf}`l-L#f66`NKkct~kJw1cJ?3xrx4GZ=+x;Ex1?>E9 zxj*>t_`BW9*lhQ^Kl=y#gKj%xg@@eR{^#)DJB%8B>2~^G`CqyB{1g63x641p;lb`R zK47)IL_1%BKU?`f`!{{Pf6M<3j{G}ES8)F>oVhC`zDFnt<-Sj-3^l$n)P*j7aOeh2 z4yNB9=qH;@`zhhDFwIX5Gr|#mS~xPy_A|nqFxMXu=7;(INc7^-ezs{we-xT=iJyy& zxWdoFl3eZQhm*rPzkr_R{eBs}%Ln}mdY4Q5%5X)v(jRZVi$BqN7k?7Az_tElEX_^+ z6ne*7{HbO^`_sam;Vyr=^_6}d_P~$)`{_R(_3Oiv;VJ(C`i$TE^TMCQYyQIUx3I%s zf;Hg%hpk8UA4$rS3V#LtM=O6N_CQDf3F|ZbHQ2Yq{iof+ z{~R3Xle^%>5yV0&M*)7UMjLhH$RRPdO4o~{6bb4Fr=kauvwcI3jVke9{noZa5miVU3U=@ z^q~8&IN*~|uH0P%&8pmup-pJ#HX60u&CuyE_a*2w!+jY#9qGPelyIA%!71*mXxh`= z*NhVG>qZIpjc`%8$lV?;375EU8s6O{F;P)49v*Fj>8D0o4xbMlnxf?vz(XWC> zcaQqsd)3q42ab|tQ?i-4%XHlXW!p@aIkzS8xL=%9gUpuuQ>p=bd59Pm5}Jv2rd>R~kP^X^6W zCejgnsjmUY{Y-}a5I@q7_GA1ZezHHzAI?|C=lg|zG2ai&lR548LD{SW+4{D1mi_+O&0e(itbpY<>JKlqpVBKcqacJ$Uej3{%VB2+U<>KX=s z_o4KJaYRX2XyL%&N<+Vy2LQ{(zEmZ^9B84K_Zfutd6a05(pxq*yZ4snBoox!HX z_~PvJWV#y)c4oL?jAM>+!x_uWaU-xD=JJlHdC5FCigC?+H=41{0yl>7&CzZwW1NNV zAjUb1+&IQMi`~JDcaCx68S^Z0hcND0%2yqkuXPg{|15Wt7z3?vhcXUY=_WH4I@V2L zJhaM9WlVIOJB)GB@opOLJzNcSj3#D7be9d$#jW7zB}<}(_JL4 zBx7Uv0#|MhHv>%zx0WQektCIeZ-;LqRW`P2t+7=HjjbZLRZ7CD#Anr#uo_8NEgJmi z;NcPUxJN(mEtv32#$25lb3Flk5?%}%dDUs;mC%d+j_aoD+lAkUmx#X{UZ!p)seKr0 z{}F7w8n$tro|b1{53dt{GrURsui-7EoW2)47&o^HJHvaldRN%xI%^!)S+d>-{ZxU5 zsZ6R|NAY)1kJ4J4-9eh5jWj{IG(lTwg4$$YG7t?xkL@}zY99qO-B2mrP$llKmTst# zZfGmrP-#6mDUVEM^F}q3gbwiHrQ$*_E)3#AFD?w?!bDt{6Bm|<3v=Sa5^#$EnckANV`@XStpKc6+RR`1a*xstIaw> zGZ`1Q3YUe;xNf{yDPF7;FIK^eALGiEaO5CyWE=6~An{^b@nRKRcpaMTGw@s`Joh=` z#%=ZC^WpQ*cw^Ye^)JAA_2H&)6IZ?%zC=C09KOPJqwIoC;>*tA z_Ha9M2d3w{(j#q#55C3tzl(UZy?C^nc(l8?vxmn29U1@MPd=vq8<++7Deyt&0=kJ) zE5xal;?z1gl|3urSMY03@oO(xB6T(g1Wul2zM!|bw%TkzYWpJdQLUI4`UBTrf?r#S zU+dx5S84U1!k=j4Hh8y2yjvyStqpI4H<4sHVn|CO@df{$y($8F(Ye8;^sv)k_!9QC9^gh6V-PwDPRg$_H>H${CDrk_@%}_sZ zq-1ZEWN)_Ygc3>M4D|*_sW(`q-e9?UgE{IAR;f2wuHImkdV}SX&$*J%QuPU|B$-{1 z%rByet$$dBe0~}G;VVe#R7vSP$!EFjkP6A?e932}~kE11-^CX!I)0sK5RTfD; z7t3O)lEqT3p5z$yBr7DVOOVnBk(`IZLrB8I;bHnu>syvdVy8=Dm#J@AB|E2;BzBd0 zm>KF}W=d9%kmb`_{md%$Gt1S_tWrNSSN+Ty$?YulGpi)4GbF34B&9Rd&m1ZFoGlBg zjV!3P>T`}#pEE~&&MH|`T_vllWK;E0|FZ@Qx!fHtxt$@oU8!DZhODgqlHqxhVeBm| zu6F8|7OG#GFNs|s>#M!wcBy)&CCnucK%z`ykCuEcluRyEAGJu*xLDR&2U%+!)n6T> z{%VD6woa1IrLx>QtM6JQDP1TjJyv~}`B%)r_A@JPoUFJ3vf>8HiaS_V+;~}WhscT> zBr9&PthfoX;)ckI8!9Vqn5?+rvf@U_iW?~_Zj`LJ(X!&E$ch^yD{c}tgpCAjEL<)P z5Jv^Erwq~nv8N2_NWkXz64uhzX(Yj{AcvQ(3DPx*v`kL+dWr1yQfY@W+3V%f2o=%= z_HNuu>6ZqDLG+D7_~vg7GquCu#Sviyyf`Y1Lf?-LqvyGrEV;3r!A_vC*f5DfC^_!ZiA>!^7e9W;4S~dZgK5HZsPn1~&S_ zu#lc=5#OHf$-M6|^cc)=(9bLlOX&fO9(_fRexgTz(S!G~VpR_iJqGSZk0GMRP|;(U z=rLUM7$JI$6g@_X9-~E%F`~y<(c>V|V;poCC2d_NJ>5!r+DlKjlAiXWQfukyHqz5= zMWr^<(`}`vTS-rMl%8%cJ>5}yy1jIB2kGVxqG#*SC-k8Y?Hl@{hZ;j8IA!FE<;RRL zbhi263e5*sYCgD1RH`p;t8A``{7(oc!6j?L8ggc= z4VRqGoJYAhu@tP0XZC=;lbM6D%sbeu=D*z*)LeQ;&82q|1}lWYN-#KpdfU8BweVOY zJk|=2b;4sSVX#^ltPuuV3wLdVySBnzg>Y99Y|f`%7;GmDwigB~0&C4&H$1iz9y#(f&};{t(gr5NWLn(SEXMKSi`Z zM6@3#+D{Iq$M|+TdaO!(Fjd;DTH35e+N@Tbu|N_wK|C={JaM>qVwQMfl6Ydec;Zm; zM4ja9FnHoL^sq_W6mdpJIOBcjWa|T_ia&U-HQJK*Rx=0DN7}Nlv}HeO%l^`qyze?$ zgyyt4h=J<821#2EmbM%sZ8=oha+tK`aB0gC(v~BoEk_k;%h-F3hA&$&OUOvry~`1_ z0+cWd-qq!p1@Gocv<_6N8QC({YWncz-oC!Ct6a};FBOlMimxlg*Ja}C3h{NB__|d3H=S8y zF4Nv@ZR>GKXdgPkDYhzSJ@FtkSo4*#-pq#Nm?<5?%$LbvsbsKB(pN6&tB~APs^_gz z&s!~dsZq~cD|xAN=Wz^V_31;DV)JFKBsHyBiCW^?uo|`0wPi)>ZQdXKo_`NJ$tc@i zl}k7c{4$P?SS{tyq=Lhvrz(ltTz*azvsuwPW|VAR zx-(R4!&Byy?wOx%$CdUvI-tqw$*Ci=QMQuSi8-sTl+caC*3`OFP6G$yLXL9guKS^P z`g2q;cRiRZLpjQszh(p{9;sv=dn9vM#wk_elxp0#@R|;FX_HIR_cC2YaVb&hC4 zy~qCx{!2*WU92CLv-){{vKV$9I*1sxP=X#y%Z}}ZAu2)yGD$))s&7`DCQc@jy zhTf9N56~jx4;#b>aY-Wnu(i>0xWzc5RGd))EvlfU@khD%qm-4$TJ9T{REkT=#3fbW z%J|NBrBu99El#O{Q#$a3@roC()QMMGiC0>SSK5eI+CqK4djUmy@x1X(d+|*N@l8k8 zjvC>!0UVvhLtVr}UEDB^u0@<=Z;coUw;3ljh?9DXlX{7h;#j_qIH`{~sjoPxpE#+% zIH{jFslPa>k2tAOoHRh3)F@6Gpf%s&n&%oWP8udo>I)~`53YW~QCY-EIdM_~C%ug> zG0j^AKOuFj(bS+%jjKw;Ri&)Lc7Wc-Tcz+;Z|K^`vj*S?z*`mY)*!U7>ED5@Tnr&@ ztMrv{+Zdi2>!*_2VSXm7^hfxkh|huZa^k#dabAtMt=1pQmm&f@#|kqmK<{Tg-&Wkb z_^(d<*Gl}?8veTxJ@I z{5?hdJx%<5koep9vz}5+7fus@A1eMfE4rhbkoG~Q5&NPUyO7rOVn6ZvNb!1q@%lvZ z_eAmcDDn5f;^~Rv>51azXr0?mrjhvUSpOBo)3(+(hVsp7A0W;is2;7edbA$m@+>Q zm?r&tnDlEOWMBYm#-?SbAqm6W6lvLM(z4T}We*asPZO^nDlI!)T6T)~euT8_1aWy^ zad|&+`ABKm{^IY6(y|l9&7;K4Q^m~(OUq6akB*lW(kLxEReU*GT6Tc=a-eL04zdBt zWCN7T2IwLiprdSnuCf6tWCQSxlH?fXP0R+Uk_}KT8=yuuK&@yZDj+P1;kD#e|7msTyEO**$Z9g6F#_pt($%F`jbv~cdk8t!#ej8(!p=nF1XVn z7q#$GSLiwf?m7fcI|6PxhH;1aFP??va|yn2mCjF{v7iCjiO+fDs1E+`1|JWF8z
    Wks4!%W~J60rJIBM?f1~+NJ+@l)EDb_ECT=RV> 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 - Tower - - - \ No newline at end of file diff --git a/assets/tower_forceground.svg.import b/assets/tower_forceground.svg.import deleted file mode 100644 index 5d191f3..0000000 --- a/assets/tower_forceground.svg.import +++ /dev/null @@ -1,37 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b4a5wo7y6orr0" -path="res://.godot/imported/tower_forceground.svg-9f6d44720ea623d40c26c9524e3dd5b1.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/tower_forceground.svg" -dest_files=["res://.godot/imported/tower_forceground.svg-9f6d44720ea623d40c26c9524e3dd5b1.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -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/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 -svg/scale=1.0 -editor/scale_with_editor_scale=false -editor/convert_colors_with_editor_theme=false diff --git a/codingland.tres b/codingland.tres new file mode 100644 index 0000000..ae30564 --- /dev/null +++ b/codingland.tres @@ -0,0 +1,6 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://gh5a3no0ojkl"] + +[ext_resource type="FontFile" uid="uid://cjga4eijrww18" path="res://assets/fonts/ibm-plex-sans-regular.otf" id="1_5jc7o"] + +[resource] +default_font = ExtResource("1_5jc7o") diff --git a/project.godot b/project.godot index 0694de8..855d7da 100644 --- a/project.godot +++ b/project.godot @@ -51,7 +51,8 @@ skill_dash={ } weapon_fire={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(163, 27),"global_position":Vector2(171, 107),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":256,"position":Vector2(234, 24),"global_position":Vector2(242, 104),"factor":1.0,"button_index":9,"canceled":false,"pressed":true,"double_click":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(185, 16),"global_position":Vector2(193, 96),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } diff --git a/scenes/farms/enemy_farm.tscn b/scenes/farms/enemy_farm.tscn index 99fee40..920b9e9 100644 --- a/scenes/farms/enemy_farm.tscn +++ b/scenes/farms/enemy_farm.tscn @@ -2,9 +2,10 @@ [ext_resource type="Script" path="res://scripts/enemy_farm.gd" id="1_66qev"] -[node name="EnemyFarm" type="Node2D" node_paths=PackedStringArray("common_parent")] +[node name="EnemyFarm" type="Node2D" node_paths=PackedStringArray("common_parent", "respawn_timer")] script = ExtResource("1_66qev") common_parent = NodePath(".") +respawn_timer = NodePath("RespawnTimer") [node name="RespawnTimer" type="Timer" parent="."] autostart = true diff --git a/scenes/main.tscn b/scenes/main.tscn index 3102a3c..4de701c 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,9 +1,12 @@ -[gd_scene load_steps=6 format=3 uid="uid://l4mybb2dw107"] +[gd_scene load_steps=9 format=3 uid="uid://l4mybb2dw107"] [ext_resource type="PackedScene" uid="uid://cwkcf8h5rspoh" path="res://scenes/objects/player.tscn" id="1_nq1ke"] [ext_resource type="PackedScene" uid="uid://cxlgt8h33u7os" path="res://scenes/objects/tower.tscn" id="2_betjv"] [ext_resource type="PackedScene" uid="uid://cppmks4ln28yd" path="res://scenes/objects/attacker.tscn" id="3_jg22m"] [ext_resource type="PackedScene" uid="uid://cy2xpilh8v7vx" path="res://scenes/farms/enemy_farm.tscn" id="3_ogjsq"] +[ext_resource type="PackedScene" uid="uid://2tqfm73cc4id" path="res://scenes/manager/statistics.tscn" id="5_qd3ww"] +[ext_resource type="PackedScene" uid="uid://cjam63kp5sg2o" path="res://scenes/ui/stats_overlay.tscn" id="5_rymed"] +[ext_resource type="PackedScene" uid="uid://dy51uqtr2ng32" path="res://scenes/ui/finish_screen.tscn" id="6_b264x"] [sub_resource type="Curve2D" id="Curve2D_gwd20"] _data = { @@ -20,8 +23,9 @@ common_target = NodePath("../Player") [node name="BulletFarm" type="Node2D" parent="."] -[node name="Player" parent="." node_paths=PackedStringArray("weapon_bullet_parent") instance=ExtResource("1_nq1ke")] +[node name="Player" parent="." node_paths=PackedStringArray("weapon_bullet_parent", "statistics") instance=ExtResource("1_nq1ke")] weapon_bullet_parent = NodePath("../BulletFarm") +statistics = NodePath("../Statistics") [node name="Tower" parent="." instance=ExtResource("2_betjv")] @@ -31,3 +35,17 @@ curve = SubResource("Curve2D_gwd20") [node name="EnemySpawnPoint" type="PathFollow2D" parent="EnemySpawnPath"] position = Vector2(-309, -271) rotation = 1.5708 + +[node name="StatsOverlay" parent="." node_paths=PackedStringArray("stats") instance=ExtResource("5_rymed")] +stats = NodePath("../Statistics") + +[node name="FinishScreen" parent="." node_paths=PackedStringArray("stats") instance=ExtResource("6_b264x")] +visible = false +stats = NodePath("../Statistics") + +[node name="Statistics" parent="." instance=ExtResource("5_qd3ww")] + +[connection signal="enemy_defeat" from="EnemyFarm" to="Statistics" method="_on_enemy_defeated"] +[connection signal="tower_broken" from="Tower" to="FinishScreen" method="_show"] +[connection signal="wave_finished" from="Statistics" to="EnemyFarm" method="_on_wave_finished"] +[connection signal="wave_started" from="Statistics" to="EnemyFarm" method="_on_wave_started"] diff --git a/scenes/manager/statistics.tscn b/scenes/manager/statistics.tscn new file mode 100644 index 0000000..965eb45 --- /dev/null +++ b/scenes/manager/statistics.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=2 format=3 uid="uid://2tqfm73cc4id"] + +[ext_resource type="Script" path="res://scripts/statistics.gd" id="1_4fj6w"] + +[node name="Statistics" type="Node" node_paths=PackedStringArray("wave_timer", "wave_gap_timer")] +script = ExtResource("1_4fj6w") +wave_timer = NodePath("WaveTimer") +wave_gap_timer = NodePath("WaveGapTimer") + +[node name="WaveTimer" type="Timer" parent="."] +wait_time = 10.0 +one_shot = true + +[node name="WaveGapTimer" type="Timer" parent="."] +one_shot = true + +[connection signal="timeout" from="WaveTimer" to="." method="_on_wave_passed"] +[connection signal="timeout" from="WaveGapTimer" to="." method="_on_wave_gap_passed"] diff --git a/scenes/objects/attacker.tscn b/scenes/objects/attacker.tscn index a469515..c3fcf8d 100644 --- a/scenes/objects/attacker.tscn +++ b/scenes/objects/attacker.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=3 uid="uid://cppmks4ln28yd"] -[ext_resource type="Texture2D" uid="uid://p3urintydjlo" path="res://assets/attacker.svg" id="1_56wxx"] +[ext_resource type="Texture2D" uid="uid://p3urintydjlo" path="res://assets/images/attacker.svg" id="1_56wxx"] [ext_resource type="Script" path="res://scripts/attacker.gd" id="1_d7hg4"] [node name="Attacker" type="CharacterBody2D"] diff --git a/scenes/objects/bullet.tscn b/scenes/objects/bullet.tscn index 0147d94..58d9d23 100644 --- a/scenes/objects/bullet.tscn +++ b/scenes/objects/bullet.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=3 uid="uid://h4fxpxqc6bpt"] [ext_resource type="Script" path="res://scripts/bullet.gd" id="1_7ic61"] -[ext_resource type="Texture2D" uid="uid://voltvmrkr73s" path="res://assets/bullet.svg" id="1_tytsj"] +[ext_resource type="Texture2D" uid="uid://voltvmrkr73s" path="res://assets/images/bullet.svg" id="1_tytsj"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_r7dy5"] size = Vector2(8, 24) @@ -22,6 +22,7 @@ rotation = 1.5708 shape = SubResource("RectangleShape2D_r7dy5") [node name="DisposeTimer" type="Timer" parent="."] +one_shot = true autostart = true [connection signal="timeout" from="DisposeTimer" to="." method="_on_timed_out"] diff --git a/scenes/objects/player.tscn b/scenes/objects/player.tscn index d02ba69..13fd70a 100644 --- a/scenes/objects/player.tscn +++ b/scenes/objects/player.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=3 uid="uid://cwkcf8h5rspoh"] [ext_resource type="Script" path="res://scripts/player.gd" id="1_sa7t7"] -[ext_resource type="Texture2D" uid="uid://b4daomndc1ag" path="res://assets/player.svg" id="2_3pad2"] +[ext_resource type="Texture2D" uid="uid://b4daomndc1ag" path="res://assets/images/player.svg" id="2_3pad2"] [ext_resource type="PackedScene" uid="uid://h4fxpxqc6bpt" path="res://scenes/objects/bullet.tscn" id="2_v83ov"] [sub_resource type="CircleShape2D" id="CircleShape2D_k56cq"] diff --git a/scenes/objects/tower.tscn b/scenes/objects/tower.tscn index 8b8c385..7df502b 100644 --- a/scenes/objects/tower.tscn +++ b/scenes/objects/tower.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=3 uid="uid://cxlgt8h33u7os"] [ext_resource type="Script" path="res://scripts/tower.gd" id="1_d5o8q"] -[ext_resource type="Texture2D" uid="uid://jxub8lma4oud" path="res://assets/tower_background.svg" id="2_ynj1l"] +[ext_resource type="Texture2D" uid="uid://jxub8lma4oud" path="res://assets/images/tower.svg" id="2_ynj1l"] [ext_resource type="Script" path="res://scripts/tower_health_display.gd" id="3_ijb8h"] [sub_resource type="CircleShape2D" id="CircleShape2D_7mogk"] diff --git a/scenes/ui/finish_screen.tscn b/scenes/ui/finish_screen.tscn new file mode 100644 index 0000000..e0f7058 --- /dev/null +++ b/scenes/ui/finish_screen.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=3 format=3 uid="uid://dy51uqtr2ng32"] + +[ext_resource type="Script" path="res://scripts/ui/finish_screen.gd" id="1_c1emt"] +[ext_resource type="Theme" uid="uid://gh5a3no0ojkl" path="res://codingland.tres" id="1_l6ven"] + +[node name="FinishScreen" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_l6ven") +script = ExtResource("1_c1emt") + +[node name="Panel" type="Panel" parent="."] +layout_mode = 0 +offset_right = 1152.0 +offset_bottom = 648.0 + +[node name="Title" type="Label" parent="Panel"] +layout_mode = 0 +offset_top = 280.0 +offset_right = 1152.0 +offset_bottom = 364.0 +theme_override_font_sizes/font_size = 64 +text = "Game Over" +horizontal_alignment = 1 diff --git a/scenes/ui/stats_overlay.tscn b/scenes/ui/stats_overlay.tscn new file mode 100644 index 0000000..5292688 --- /dev/null +++ b/scenes/ui/stats_overlay.tscn @@ -0,0 +1,78 @@ +[gd_scene load_steps=5 format=3 uid="uid://cjam63kp5sg2o"] + +[ext_resource type="Script" path="res://scripts/ui/stats_overlay.gd" id="1_iejg3"] +[ext_resource type="Theme" uid="uid://gh5a3no0ojkl" path="res://codingland.tres" id="1_ne3m3"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bs475"] +bg_color = Color(0.996078, 0.996078, 0.996078, 0.588235) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rfnxc"] +bg_color = Color(0.517647, 0.729412, 0.478431, 1) + +[node name="StatsOverlay" type="Control" node_paths=PackedStringArray("survived_indicator", "wave_indicator", "wave_progress")] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_ne3m3") +script = ExtResource("1_iejg3") +survived_indicator = NodePath("SurvivedControl/SurvivedTime") +wave_indicator = NodePath("WaveControl/WaveCount") +wave_progress = NodePath("WaveControl/WaveProgress") + +[node name="SurvivedControl" type="Control" parent="."] +anchors_preset = 0 +offset_top = 570.0 +offset_right = 1152.0 +offset_bottom = 648.0 + +[node name="SurvivedCaption" type="Label" parent="SurvivedControl"] +layout_mode = 0 +offset_right = 1152.0 +offset_bottom = 26.0 +theme_override_font_sizes/font_size = 18 +text = "You survived" +horizontal_alignment = 1 + +[node name="SurvivedTime" type="Label" parent="SurvivedControl"] +layout_mode = 0 +offset_top = 20.0 +offset_right = 1152.0 +offset_bottom = 65.0 +theme_override_font_sizes/font_size = 32 +text = "0.0s" +horizontal_alignment = 1 + +[node name="WaveControl" type="Control" parent="."] +anchors_preset = 0 +offset_right = 1152.0 +offset_bottom = 648.0 + +[node name="WaveCaption" type="Label" parent="WaveControl"] +layout_mode = 0 +offset_top = 14.0 +offset_right = 1152.0 +offset_bottom = 40.0 +theme_override_font_sizes/font_size = 18 +text = "Wave" +horizontal_alignment = 1 + +[node name="WaveCount" type="Label" parent="WaveControl"] +layout_mode = 0 +offset_top = 34.0 +offset_right = 1152.0 +offset_bottom = 79.0 +theme_override_font_sizes/font_size = 32 +text = "1" +horizontal_alignment = 1 + +[node name="WaveProgress" type="ProgressBar" parent="WaveControl"] +custom_minimum_size = Vector2(2.08165e-12, 10) +layout_mode = 0 +offset_right = 1152.0 +offset_bottom = 8.0 +theme_override_styles/background = SubResource("StyleBoxFlat_bs475") +theme_override_styles/fill = SubResource("StyleBoxFlat_rfnxc") +show_percentage = false diff --git a/scripts/bullet.gd b/scripts/bullet.gd index 3ff4f46..93dd933 100644 --- a/scripts/bullet.gd +++ b/scripts/bullet.gd @@ -1,6 +1,7 @@ extends CharacterBody2D @export var damage = 12.0 +@export var knockback = 4 func _physics_process(delta): var collision = move_and_collide(velocity * delta) @@ -8,6 +9,8 @@ func _physics_process(delta): if collision: var collider = collision.get_collider() if collider is Enemy: + var normal = collision.get_normal() + collider.velocity = collider.velocity.bounce(normal) * knockback collider.take_damage(damage) queue_free() diff --git a/scripts/enemy.gd b/scripts/enemy.gd index 6abd6b2..03e4fa2 100644 --- a/scripts/enemy.gd +++ b/scripts/enemy.gd @@ -2,6 +2,8 @@ class_name Enemy extends CharacterBody2D +signal enemy_defeat + @export var damage = 8.0 @export var max_health = 20 @@ -13,4 +15,5 @@ func _ready(): func take_damage(amount: float): health -= amount if health <= 0: + enemy_defeat.emit() queue_free() diff --git a/scripts/enemy_farm.gd b/scripts/enemy_farm.gd index 4199672..421af36 100644 --- a/scripts/enemy_farm.gd +++ b/scripts/enemy_farm.gd @@ -1,11 +1,15 @@ extends Node2D +signal enemy_defeat + @export var common_parent: Node2D @export var path_follow: PathFollow2D @export var target: PackedScene @export var common_target: Node2D +@export var respawn_timer: Timer + func spawn(): var instance = target.instantiate() @@ -18,6 +22,16 @@ func spawn(): instance.speed = randi_range(800, 1400) instance.target = common_target + instance.connect("enemy_defeat", _on_enemy_defeat) # Add into common parent common_parent.add_child(instance) + +func _on_wave_finished(): + respawn_timer.stop() + +func _on_wave_started(): + respawn_timer.start() + +func _on_enemy_defeat(): + enemy_defeat.emit() diff --git a/scripts/player.gd b/scripts/player.gd index 8547add..87a1221 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -14,6 +14,8 @@ extends CharacterBody2D @export var fire_cooldown_duration = 0.2 @export var fire_cooldown_timer: Timer +@export var statistics: Statistics + func deal_move(delta): var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down") velocity = velocity.move_toward(input_direction * speed, speed * delta) @@ -36,6 +38,7 @@ func deal_weapon_shoot(): bullet.global_position = global_position bullet.velocity = direction * weapon_bullet_speed + statistics.bullet_shoot += 1 fire_cooldown_timer.start(fire_cooldown_duration) func _on_dash_cooled_down(): diff --git a/scripts/statistics.gd b/scripts/statistics.gd new file mode 100644 index 0000000..fe00491 --- /dev/null +++ b/scripts/statistics.gd @@ -0,0 +1,71 @@ +class_name Statistics + +extends Node + +signal wave_finished +signal wave_started + +var time_started +var time_survived + +var wave_passed: int +var in_wave_gap: bool + +var enemies_defeated: int +var bullet_shoot: int + +@export var wave_gap_duration = 10 +@export var wave_duration = 10 +@export var wave_multiplier = 1.5 + +@export var wave_timer: Timer +@export var wave_gap_timer: Timer + +func _ready(): + time_started = Time.get_ticks_msec() + time_survived = null + + wave_passed = 0 + enemies_defeated = 0 + bullet_shoot = 0 + + _on_wave_gap_passed() + +func _on_game_over(): + time_survived = get_time_survived() + +func get_current_wave(): + return wave_passed + 1 + +func get_current_wave_time(): + if in_wave_gap: + return get_current_wave_duration() - $WaveGapTimer.time_left + else: + return get_current_wave_duration() - $WaveTimer.time_left + +func get_current_wave_duration(): + if in_wave_gap: + return wave_gap_duration + else: + return wave_duration + wave_multiplier * wave_passed + +func get_time_survived(): + if time_survived == null: + return Time.get_ticks_msec() - time_started + else: + return time_survived + +func _on_enemy_defeated(): + enemies_defeated += 1 + +func _on_wave_passed(): + wave_passed += 1 + in_wave_gap = true + wave_finished.emit() + wave_gap_timer.start(wave_gap_duration) + +func _on_wave_gap_passed(): + in_wave_gap = false + wave_started.emit() + wave_timer.wait_time = get_current_wave_duration() + wave_timer.start() diff --git a/scripts/tower_health_display.gd b/scripts/tower_health_display.gd index 8808f2c..5d07773 100644 --- a/scripts/tower_health_display.gd +++ b/scripts/tower_health_display.gd @@ -2,6 +2,6 @@ extends Sprite2D @export var regeneration_progress = 0.5 -func _process(delta): +func _process(_wdelta): set_modulate(Color(1, 1, 1, regeneration_progress)) rotation_degrees += 1 diff --git a/scripts/ui/finish_screen.gd b/scripts/ui/finish_screen.gd new file mode 100644 index 0000000..734ba04 --- /dev/null +++ b/scripts/ui/finish_screen.gd @@ -0,0 +1,6 @@ +extends Control + +@export var stats: Statistics + +func _show(): + visible = true diff --git a/scripts/ui/stats_overlay.gd b/scripts/ui/stats_overlay.gd new file mode 100644 index 0000000..8d674b8 --- /dev/null +++ b/scripts/ui/stats_overlay.gd @@ -0,0 +1,25 @@ +extends Control + +@export var stats: Statistics + +@export var survived_indicator: Label + +@export var wave_indicator: Label +@export var wave_progress: ProgressBar + +var wave_stylebox = StyleBoxFlat.new() +var wave_gap_stylebox = StyleBoxFlat.new() + +func _ready(): + wave_stylebox.bg_color = Color("84ba7a") + wave_gap_stylebox.bg_color = Color("89a1e5") + +func _process(_delta): + survived_indicator.text = "%.2fs" % (stats.get_time_survived() / 1000.0) + wave_indicator.text = "%d" % stats.get_current_wave() + + if stats.in_wave_gap: + wave_progress.add_theme_stylebox_override("fill", wave_gap_stylebox) + else: + wave_progress.add_theme_stylebox_override("fill", wave_stylebox) + wave_progress.value = stats.get_current_wave_time() / stats.get_current_wave_duration() * 100