From 81bcfdc34c41c4fc0acaab17563d89844749d276 Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Sun, 8 Oct 2023 19:25:57 -0400 Subject: [PATCH] RESULTS SCREEN --- audio/sounds/fail_shard.ogg | Bin 0 -> 13229 bytes audio/sounds/fail_shard.ogg.import | 15 ++++ audio/sounds/shard_results.ogg | Bin 0 -> 12053 bytes audio/sounds/shard_results.ogg.import | 15 ++++ autoloads/audio.gd | 2 + graphics/hud/final_score.png | Bin 0 -> 403 bytes graphics/hud/final_score.png.import | 35 ++++++++ graphics/hud/missed_shard.png | Bin 0 -> 191 bytes graphics/hud/missed_shard.png.import | 35 ++++++++ menus/results.gd | 33 +++++--- menus/results.tscn | 71 ++++++++++------ menus/results_icon.gd | 4 + menus/results_icon.tscn | 68 +++++++++++++++- objects/hud/3d_text.gd | 2 + objects/hud/3d_text.tscn | 111 +++++++++++++++++++++++--- 15 files changed, 343 insertions(+), 48 deletions(-) create mode 100644 audio/sounds/fail_shard.ogg create mode 100644 audio/sounds/fail_shard.ogg.import create mode 100644 audio/sounds/shard_results.ogg create mode 100644 audio/sounds/shard_results.ogg.import create mode 100644 graphics/hud/final_score.png create mode 100644 graphics/hud/final_score.png.import create mode 100644 graphics/hud/missed_shard.png create mode 100644 graphics/hud/missed_shard.png.import diff --git a/audio/sounds/fail_shard.ogg b/audio/sounds/fail_shard.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0b70d968a04c7e48b288b3413edb4e4820b12d32 GIT binary patch literal 13229 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 literal 0 HcmV?d00001 diff --git a/audio/sounds/fail_shard.ogg.import b/audio/sounds/fail_shard.ogg.import new file mode 100644 index 0000000..4920d06 --- /dev/null +++ b/audio/sounds/fail_shard.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/fail_shard.ogg-f4a17a606ec4c8e07282fd39330025e8.oggstr" + +[deps] + +source_file="res://audio/sounds/fail_shard.ogg" +dest_files=[ "res://.import/fail_shard.ogg-f4a17a606ec4c8e07282fd39330025e8.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/shard_results.ogg b/audio/sounds/shard_results.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d2c352dd8360cd739307eff476eb79ebbec05450 GIT binary patch literal 12053 zcmeHtc~sNKxA-I^Awa;e8Uol576Swf5D;)_67~QJfy4k}A?#t1z3vSV5W*rvKo+$j zEXpb%;NAuVWK&sW)2g@@ajCT~wYK$rg0`=}@9%rw``dXsrpi%pm)6fD$)AYN!nVqL{+;AKVNgwAc-vFM z<>SAkQiV@LQ6UO$Y*LKX)|6;Md@PT%!hqmOu%XycDC;Ry0*MtFkscnK7)@|Z%!p0d znV1lnm}Vwt14Diq!;Im~fdMpxvGyhm3MNX}0AK+KH8xW_9OY@&P*zLYU0LQKhXyJ6 zm1X&ZxbQ;jp}z_OH9{Kz1Q3vvit8SG@~=5YJc3LKNPcT$0yQi4m)-#;&_DiUceW}+Re?0oRP+FM>0s0mON;d+_K+A{EGi$6& zfrk1tEdmfg(**9NTArO+W1ad}CylqhBKv9DP1?Hp2l%j|lpeAzBXTYyeJ*2vU}aA5 z+5LfMbAsn{Lf++s;c`FcU-#dAC(kQWC%}Nj$g$#qnUsi^-glHL2yQ|5}jKoc=M7FEF)plwUSR>UHJhQ-yQoiU#{K?HfV z4++&1)xTVIRI7d@Y0|2h?#mCTS$nRjvSvkt@z-=8K)N&=ts0b6O;o2|^Tbp)e1djs z)F`$!O+h%_ACIaH>4rgcu~XHGO$%J8Z{S4r8fKTInHjAbmN3Zoc z-h+DN->iu{rxXG~?<0=BxT++_{j2%VAiagnng`I^(yj>}kQ zj5TD%WIM=;i+Ua(Pi=Sfh->JX4YFt`V=>JdK6wd>q@EqNU5<`m$AiJ5d5Vn##iqL}qVubps*XQtk}Cg;=fsFkREkdIiGIv0CgoSe=2thLlg5v>KRy57 z=D$71J;fNxkmtCj82`g_WY+r5kT-RaeSY~g$4!%vK+{}T|5E_~$VxC?E9;0K%W{Tg zH^Z`I2Wq54cyA;FddpbNmm`o-@)s*idP?AkjX_}j8ny#O!|FaTeMD;^J`SUOkqsai+B=s{dh>OhDl}3ej zlK*-7H@y7pU|avei$?XK1^E2WIsNYl|0{w2RsxWT!_=Uk4x`r40xocXfrAfdVuI&O zsvtb@<;GojZ_P!n&c;>Miqn622eiSyqV8I=aaE&I33b(R#p~Ize@BRbup4SP4iS6E z8-DEj%dVjhdFid$s5B|$!#7R~WBaLL&Hw)61ONzNia-D~M`?e5Q=Nwf01o1aKq$WO z5J$p*ATsc{A^_sZ-E02+F#qq^e_;p{kN`L+18HKiN@yVPQP_p2X~E>g zaQWBiQB8CdNz@1vfJK7EB(1S2s^3G0iiTL}a5C9z+NCrS3WD;9R0vc*{^RaOrR%>y z^CpR;v2bX6fy9oKi`_nkNmlcX8D;{4F_7JJsCcwnN)kcwQ}bvtdF&S#KP?}BcF2(j z+=?IbrKIY{=JQq%qw6bM6cpUWRR4{p`e;F`Fti$ntge2XFCU?~xm^XKoTmCflygXF zOm$;ZGqjV?RtRU(LssX>am~=~0+$o9L*~jO1+h@S^X+7XfKPQ@Npth^`F4vj00mGB z<&lA?MR~1@48Woc1_&~=)5ys#w4Tq|mp}{OMFe?}Efj_^ts5}m8Vu#yFmHy3VFZh1 zZq}g8FgGb@(LEaKSvE||h6)zauw2Y+BGj{3W=J3~aDaYXbWUz70=$Bvz3?*LxZ{t; z45sztqp2E(4LB&gY0?Up$2etTYbZ|M!W^lDaBCYPAiAT6Sxyj64GK8YAd>nr7GvpX zDinVlgGgY2_DR~J_$?HTfE96T1KFZnUB}l#;`S6b?moU2id*^O`cIhZjn_X*fA{gv zGENDBv>_Li$(US6P0h{9P;D9#RE|8}ZEk+r-z%5@Tzc3ox$vK!mqBt*kJLRY-@eHz z0BlVHz`P?YU3gg9DT6jTxO~49TBFUNm&`OZj>3P;m#${qAQ=3uf zNHQs}2okk1@~qJf^*4gzt#z(DD%RGQ1&Pdh??VcLaL`nOwyPL6lm!)7_Tp;d4I!RW)FmerV>YHo`Z0mgSfaNS5i%|yfv=P&g@aDSLaMncx#VoU7=WxYwejOma%Mx zwEQ8cT1XjshYN4D{xRsVM*pvC{4F8kILH=^B8r-Zf*`|DiYzR$oGDAah6J=t4uEEY zqp#Iv>x9)QtzIKoQOr5$3<;Uukle!LcEzg4r9xXw(t_2`ubIuu?)I@1mRtD#mX zW{pBU{MdgvI24uTsET~@&#N$)!3<*RT z;<3`egpRCQ45d#EWnze~;d2AT2pa!$1H=d#=2H&{kcZ&qa#}gCQZ~sUsQRh=)X)Gi zf{>q3az;?~^LQ(a%2?)~s?hSQAYc8A%q<7D*tTzkyKC8a(^h;II-y||JG*CtS_)G} zJw4l;-SCek_4A&JhCN)bNCJJ-lX)x)ZH8*fDKu}WJY2yTt7Kt#7S?Hn*6xmv0vK0t z(2|`6fP%V>CR&S@nTY`oG>;NEP*%YhTy~|=tPJa9k|b}3wa4rMpy!Qa^YaD?*0p$& zd82}05ShCV3{T8^TsSMRQrJE*7^28PGq71)eHu*3!Qo!++B+|WdPgPx0n0Rq4*+Yx zBD8!h03uOZ^bdyaD_QfCo#EmlyNc!D-`W8pFlSgXz7+7h2w6 zD?1?#z|iPV2Tpk%jsA4wA+uWP59Bu<@@>)1VY$dOaO+kEo$2c3?Blm(^F|kMme0p8 zKdy#;o0u44Q1eF~}J+Kh@GQOQ8nTlCT+P@t)$m2kAwd zCgA%v|M4XSBc8ts8eddiKk-p<2-S;BsM~prSsKx<0arp4KM%qBxwkHB1r(i}mrDJd zo90gjwT4Q>H!B_jd z9Zg|E)}=3U|Ac!;!5WJe9 z0N*;%#D{I(FWjlw&;SD5PF=i%o>B{nei)th<5Sp_TG*_?!rqSW5%tB^@aysS9jGL3 zXXCLJjZ5r<9>QT|c0Do|e&ui9kS}s*26u-K%>8|A{ zpUH8;6bi})tLsG^Th0L9LZ>Ch)q-2b%GTC9W!R!nn|IQwd+OJv%c&zjB^Im=F4law z=lzC>9DRrQ_9K^IUsdK@-jPnUd9*zu0@Oz}R2O9xW83(XSc?&>8LUD5EJ@;g%D|(= z8SBbj$V|Z$-2W;N`}zPF-}7EE_iADYg4+ zu3+7{dn`p4pNPiFju8srQ*fOj-<&KLk+=qa0~TI{gFE22zgRv_AZ(vx#Aq!Yx_|v_ zN6&4=i&+abT{Ty@e{MJx`o4A3Y}uo`%d`G9RU=F;4-Dk34u3A?_cV)kl<_kRat;*m znojjV`{NEX#0Jdeq@ILZaj8z(p-)hMer&OD1Oo>q*X=HJf66x>(fi=~<;>)|*!K+` zU&@*t+$3&rb01<;o>$e4lcL@u0RdN=n`aA7=HMAKQW0lKqNFdB=xATkCU8hkCmI-o zrAEx#KFIn#Z%!G#jr+O8_}Prtn>{<+_m)sQQ#mr}*5w zFZF*ad%D{;6!&M+#Z|!BrVy3~rv|LKf=9gky_sxi^4qDk<_D6UY2(+`{g;;}&g5Sw zeu1p#?>`mh9#?dxd$RxV`8WG1;WlT2MR8O60b|Y@B{2;xj6^i4-&+W>tWOG|aa%~) zmcDP49Ty~0&w{lJ-o>MQj^@QZeOvGQE&a+{HuyMG@H_Zm{PxSGZ~ts-Tgwn9WrYLk z`T=fB^G#8cwyRM_)qek_6={i&~v@Q?`FW6FKG*OWndWzVtH=(u}8_;Y!(Nfz%D8gW&@2o{9F zdvWNs;HK*-Zo!VQdAjt5m55g^n4mB2+O8aN3IQ|hyU@Iv?OrJ;k>;OKIDgYM@-)Ja zaO3JPJsEy~Xp#t9y{6uO2LoB-MYG@8<>stX(Q7tch(rNE!0UQoADsU)w25!Oc6MP` zoGueB*4uAV7?`|eJ|pb3j<)8b7oB0o#}YVto^Ir>AZ~r&U~@xcO~nG|SxTqx(~6s> zv#lO^!9i?8?V@?^u@X0u9$ARgRnfFCATSmj1d%VzjfhO#)kYFyB%qK;%DGHQK*I9U zP4Yty{SfEoP3s)pfmMsYSSfhx@s%fLDwpqCqM3`<+Fv%Lz1p>an7lFELV!5jk+Vvu ztkLAErPfhmDTC?s!gyxx z(fnh(;?eBx{uGvarpyRv1D*PP1|elN2?xSIn9$;BBH51lg7ns%su}awGmOFJ@i)^y z(Xu0g9~eCT?a9|zq&U3j-IROBPN`Gu2?fj9pp#hdabqa(3?lR5;^wRQaVIizkBM)_ zSldrm7>19{k~M>`Y;m=;IW1yebq_XZZOTWAYj~OI+BXI$-gX1%fR4=%*}+CUV_%rf z2CpM``UNOGr1wK{e1B;xaK@NwFteQl-1^a)>mGB%)^=(L`-asJuSA}HQaYAML5tBp z2yqB443DjSX)MS#2vL|f6BT>#-aV~;Y5Wx}YqSu=`wD-lSEOMGoIXN?&>2?O+XHB4 zqkM~n>Ow(jNHIf&AU)cTx}cy8j42}KrWm8m&-UFkueSQ21F~&O?y5C?IJ>5eL+7_2 zj_v8I`hoZ!d{@wrZfjEI<$Tb~O6SB?tvD;Bw#AtNW#?5t4x($mus^+rog8&A?Y<~F zN(=)UIrIWthP_TtYD=zCOL)-gxt9CRU8lF)@~KamH}2IX^LBn^`#g2ox4D@|Wf!@} zVzB#YMP$?bP+SW;v&RXBd`RzY)qg;9Z*=p0W=i4F7|!u6hM_mG$J7wQHdfQJ!Ki{FVf;R+PoR06_rv~Yj%s1R-3qyO%L$9 z?4)CkW>opsPPw&3Hodxt2u0_cjL>}5gZ(g}nOK|JA9PR=r%AG|ZNU$$ZImUU=JZgP?VSnTd4MGKJeiS)^oARD1)xwOm!*kWXZuP*nt|8=~D!? z7z3*w?&gHY5ESw#r3yq#*6O}7#ito*9!NOH@R6An|f1w4f;&%2{XS$05j zCabTzI;e=Kkw`IjbipAaP8+1+(6j`MgWjM7iopREM{;wImt;|`i6n_lf)N}qnketwtb_&;mv7==lwAq3P0Z;bT<6p*5u+-5cf1~N z@1n@H3g4p?TB;`Mz^cJXp`l>&-bd4rMIiw1)V?3QGZnygQ`Kv)d8N^T`@1Ha%j(9n zkgU8afw3t}GSK~{i@nFV+J}YVVf*UmA;ATv)(=#JTMMK82H#eD8|6pfBI|N2)0j=> z_~ZmPgjPBIpc}~4@Xs-|v#~WQm}|6m_aL7p#UcW=@+G39Ue?l&`WtJJuBydS;V?9Ib)?=MgDe~sWaaFu<;kZplq z)_)zpR&j&gAIv*lLk~afdAjQMwJ76kdz-+os_d7;^F5=&hN5ucrp|>XS*%Ftm>D|h z9Hv268lqdYWrZ~3)pcOB5VZG$Dqoe7#AJ>EqK5#(_XvpDfiOCv&@Ipf=Xxdso0+7i zt|yK{Q5LsUYfBk~E+V$n)w2)`)i?8%)XC?9oNMB-BSV{w^b$N7Dgp$o@yYReT}iEF z5#a*U5>JrVH1R06RcV? zut(d`*GL z)hM+Egypun)@OTakjb_O(`0$t(eJ!mcH0yy8Lt*+j4#9*_}l*ETw$PJiO?(oC423j z-%-?a*@I~^xzIRcdacLyxh22m?1i~@hoA5CM)pwW}HH}ha)8r_Cfu#v2&p5gf{G%1ct=IMcAMM3Ur zv*b=Yts-@m`cc8pUH+ee8wPU_*}s!D`lfEsJ(GiDr8 z)rL&JJ+U`tbG>#FesWgX?uI1PAEWSw8KmWEM6To0pnT6GMgKW_ZPXX=j**>-nCq>Qx) zH1QUM5+Ly21rRt*6=MWW35oq4fz_osb-mlxNr!GV2t&n)*I)vmcI-8|9mSk?4nv?U z&TJzlHVQX|${w4riWn6PQ5>x@)!Xp*3Z~iG{KJs&>O2KdFuNeMvJ9BB%6VSXwj34D z>%EqI)WL&c8TUA$gBQ!T`SyKJMIApjR-E-hGCNJC2b`YeBmF!FrRE}QhF;`z^LRa* zQWt+`z3n}?0yL*jIv`jQ3@i@O1YSA<%lkSUrgF2itBkE+50^ZeGBy6g#TG$B7er>G z?KpNX)Fnd#GRjftBxzf1Eevf!s$(tDnBn23+UgPAd>0GP&2@t)|L&gim*5yBK%~ml zC@n}-pqhXLa~WT=xM5C^J{PBmi@zb;p$uAoccY<) zl_S?3Pc-Z+TSG^8Ob+m%r3%eePy;JhEC|`>hdB8ai~M=;(9+m;?T_{!=^sr$x_{jM z(fQ-1kA5FR82;P;tbX+Hr?XYw)tDDta_u+nS0kn(lD?lFxhe4Q%oF|@89EhhknYw$ zHEsQSGmk|pM0skIKz|jv6yws0e~OQLZpp!1jc~7<IWOs8+lV*s*N$$&dt zOZK-?S65cycI0t7JGFDW4$~tSRG*ulNk$h%xZe{f35^&4!3`DJ`6H1?lQBw)QW=`A z!(+7&Xh8L?@9qdJ2vfic`b>%>%w720Pz~U}>;cBoLJ`jKlxcV^0DXB|mR)3N81))i znm-h!!h`3te+Vw|KzQiqY$xtxr{NdfDrdw$`Iy7h*%l~Sk{1TV+4PB^Csnvc5?omc z91rSw9hFZt@_2K9Q{mm6YI-@%opnQ?l~RNHmUu@QCcUgO?2r*XjB^kCcf zqSJf6c)ZN6#vSoaundcdP1o;^y=MCMO>_tSMoQ2Xl%9u$e?}v_zS$mG5p+85LVHWW zSq}Gf9$_=)9-dNrD{OoDs}M}&54 zQ;rV~3KzjOREVhf5e0JM23i=d2IvLU8lj$aRNgh)>47oZmM6%JG8W{FLnx}D|V&EJ2 zEM7{!Np1Ana&x`0$MT7(<1YgB8na`qTf^|VZ{qdNR8`n8r%4<13cF}}uG-dZfl^MN zKUqmO%#E{dK~c0L;yHyVZJIN=uHjKvS?{17UN5+m5u*suJEe6So;6sO8rm!hD8K1v zH`k)#*)qP8MHIqPJuNXZ9?pj+hm^WK_XxnW+N>@z=`hHxR*F<|dA?28_P|7&MQ6f> zz4VZnS8u*2;KD)|a(?DJ?{-9`z)m&`-)yI8H%l`vmz!@4K&Sb;U&eHI=jn}kJM{mQsnctqz zEUDkHSHxrMw85UfTwqwziKC^p(|jqdu`nr78tU!A58JPaK2@~`c5pB&x0IB) zwy~!#;Ig>h*DursPE@_n>4#7XwYA~SLMP(O-I;CxF53a{Eq*u9erc6Be~C63!A&$G z$q*yHZsog0G!DJS*JFNE-=?!8TbA8jR_25}M&Xoq-U(Yh>a(arah_V=)T(D}f3QEF1r^tQwCGY;Ws`NUU!yMf zYm2&8Yho=weL3JfC*R4}#vSixIsWQRZUC$k0CGN3x3#HS2X}HRhRqIgm=}tL@y;k< z+TAfdv8=2>>N|@qa2e*u`?Ixe7tyC5&Nc^yA+XpoMqAWo1He|MHLxbJ)l!oQzO0wG zm7k_;0aNI@Pw2iFFdYeKGz3jy2xtuq!=Wd!mIxR+wuF9Si#DAGM-1Hb#9#>s121w{ zccSHnGwTN^F#y&AQ&?mJ1_HDYmD}5oIY01Sr6u5E@N6nE*JLB?fP%}fB!A>0!dG_V zZ7ppL1-kB-M=t`mfy@MGzuCNu8IMx6(S7)+uZDT7;#RA=so%__KD`$cniE?x6UMxr zZQB`TzWM7AvmqWe%(x0A$er!{x$BNzNc{D{afQyJs?EFoj+zniSs}fH^L9YqqHHloGAh1wuR8jYy=9eKS8LMZKta$2}Mmf`I!ewp+ri?`w&bfMjR;57%zZ&*Mf8bneNIJw_Vz)A;STR{O-h@gL%m z8{%|leqg)(bUTLa^Bzk#YL-fraglkVy4={S^_GrdF3eUF_0k(>ybMYjteFASZGw$T z6YRpDUF>0|2;*&_BGO1Jt1w_b0cl^VJ6)!aLZ3?(>S0y7*yMyT6_njjsd}H9i(uqQ zTCj_kE*y@H@b7eg!SP#Kg+IX;!u%FfNVKltC=~%-A?OAz%Y_gX1M@k$T`6xOGcdMe z7k9}(y~n5^xHCuF%WqO2u+P)cya@A#AwUptTZk_vsnvJ9)lgVEmMSWeEcktoIYpem zgxS@19N&-0SON%uMFa_8h5cV_hW6mmhvTQXHF>OOJ&ta5-a9@HG$MFA4^3`5tP>P- zB0)5MMVB|lZ*0FFX}UT|nXc?f!+`Vg`uMcew#3TLC)qQcqe{tMZT9@WcD}dWHL`jB zaszCyVnVBN`+EP-_R%uBb*Evtcyf?DGs7y#LoWo@$8g=2Su+iKy0m_QlXghpahG_4 zIbM5^??c8n-P%0p^P*pormdlfFH^0=t_*{+F=e4Te4xI;Wnad-F_p0j%l!5e<{7?{lta(OwP9^ zBw5}t&SFU--Lg?eGgJ|ATmXVt^h$h`Weq*Pl_2+M87n{Q0-%><;I@8)eTa|oW{t9S z`IBLxzhqHW^Hw?6d;w@bIeziVWqgdYrav%maQVv1x^kWA_4Q-pzCUH{uRhaP-Cf3InS)yH3VTrU2GbA)*QMu?wX@$53P zhj#h7^GHNtu;DgHvbyLgiN3FAJIM1IGMQj?X1WPB=#JzCC9NYjn}X zEs>13_3cmYJahJ!JQak=h@^6h(g2bShX@IHJm5;;n+B~y`$NXH*PMyGaohwmsI^1) zV6QYVzlF)w2`>bdT!3IA0=qjSI-L7ulFXD67(G@{~wn}#Eoj04$TiS@H5?&KL z+#eu*8Jn|RO2umJph3566eQ3$KlOf)SqAU1Wt*g2Sx2acr9@x*@b1VX+bW@|CW_#2 zag%?mUxx@anrWgU=`jj#-Hu?@z#aQr5WX67tDQ3xsitEeJ5+N*ZuFkBEjRg|7WK^d z-ImmK-@cZXR*hvnM4ycg8`dai2kmL&)=CE} z$$C2VS^llJ{uJ4*`a!$k`{!l{9uLhqSQYJhbV9MJ<4ob(d&m7}W^8TjQ!B9(wuNdB zzO5+0UE4JDV*A!3u7Ubremrn~mmh~&{P0Fgvv~zZ@t#fk;DTDeOw=giN9c2B+3dGp IZ);Kc4?&rkjQ{`u literal 0 HcmV?d00001 diff --git a/audio/sounds/shard_results.ogg.import b/audio/sounds/shard_results.ogg.import new file mode 100644 index 0000000..8d964a6 --- /dev/null +++ b/audio/sounds/shard_results.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/shard_results.ogg-e4052319e009d469e906bde9026be412.oggstr" + +[deps] + +source_file="res://audio/sounds/shard_results.ogg" +dest_files=[ "res://.import/shard_results.ogg-e4052319e009d469e906bde9026be412.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/autoloads/audio.gd b/autoloads/audio.gd index 9e956db..8ab4923 100644 --- a/autoloads/audio.gd +++ b/autoloads/audio.gd @@ -36,6 +36,8 @@ const a_spaghetti = preload("res://audio/sounds/spaghetti.ogg") const a_good_job = preload("res://audio/sounds/good_job.ogg") const a_2600_charge = preload("res://audio/sounds/2600_charge.ogg") const a_victory = preload("res://audio/sounds/victory.ogg") +const a_shard_results = preload("res://audio/sounds/shard_results.ogg") +const a_fail_shard = preload("res://audio/sounds/fail_shard.ogg") #Plays a sound func play_sound(snd,player): diff --git a/graphics/hud/final_score.png b/graphics/hud/final_score.png new file mode 100644 index 0000000000000000000000000000000000000000..8d90201f3b6a614b29dcf0d33af79327e52b37c0 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^(Ll_{!3-qJS5J5kq!^2X+?^QKos)S9a|ZZ?xPCQu>Q&PN^0cQ#l>jN`k|4j}|Nj}TpW+3oW#BCEh%5#gdKiQm zkLRyQ0UFBU>Eak-;omxmF^^f1hlTrpeaXzo+s8u#cLjZ@*t>w`Q}C_dY}0C0{5mmF{?gz)-rJK z3l7xYrTcN^WX|vBH~-}6Ty<0Iwa$TCbswcPmQDU<#AvH#zQt;86T@yvjeNsqBSvYq zn)ysqx6dhAcYe)Xo<%m7QkmYK=`i-6S=-tv<$0ai)b_Nv!K|)hTGO{4WSBMYDYt~L zYjWkvnWhpBmp7X%*giSqm3B~Y{#vUq=56z)3;)^De5cr5NO+g?u^Pobkstg$#nbec)I$ztaD0e0sx!lvI6;R0X`wFUyYrBO!Fnltw4&YB*-uLKf}}Q23|lOXMsm#F#`kNK@eu#F){ls zP|(EF#W6%8JhbPeAcFx1)58DD9yiVOsoBxc{>LlqEko}@e&(jLR void: - # tween for sequencing - var tween = create_tween() + Fade.fade_in(0.4) # fill in shard names var level: LevelEntry = LevelData.levels[Game.current_level] for i in 5: var shard = shards.get_child(i) shard.get_node("Title").text = level.shard_titles[i] - # shard collect animations - tween.tween_interval(0.5) - if Game.shards_collected[i]: - tween.tween_callback(shard, "collect") - - score.text = Game.score + score.text = "%05d" % Game.score + time.text = str("TIME: ") + Game.timeify(Game.time) #Determine score bonuses collection_bonus_score.text = str("+") + str(Game.collection_bonus) time_bonus_score.text = str("+") + str(Game.time_bonus) @@ -34,5 +32,18 @@ func _ready() -> void: func _physics_process(delta: float) -> void: if Input.is_action_just_released("ui_accept"): - Game.clear_collectibles() - SceneManager.change_scene(preload("res://menus/level_select_scholar.tscn").instance()) + animation_player.set_speed_scale(4) + + +func final_score(): + animation_player.set_speed_scale(2) + var text_3d = Text3D.instance() + text_3d.anim = "final score" + self.add_child(text_3d) + + +func _on_AnimationPlayer_animation_finished(anim_name): + Game.clear_collectibles() + Fade.fade_out(0.4) + yield(Fade, "fade_finished") + SceneManager.change_scene(preload("res://menus/level_select_scholar.tscn").instance()) diff --git a/menus/results.tscn b/menus/results.tscn index a0ae35d..7361746 100644 --- a/menus/results.tscn +++ b/menus/results.tscn @@ -6,7 +6,8 @@ [ext_resource path="res://graphics/hud/results.png" type="Texture" id=4] [ext_resource path="res://graphics/hud/perfect_bonus.png" type="Texture" id=5] [ext_resource path="res://graphics/player/arrow.png" type="Texture" id=6] -[ext_resource path="res://ui/PressStart2P-Regular.ttf" type="DynamicFontData" id=7] +[ext_resource path="res://ui/arrow_figure_8.tres" type="Material" id=7] +[ext_resource path="res://graphics/hud/final_score.png" type="Texture" id=8] [ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=9] [ext_resource path="res://ui/theme.tres" type="Theme" id=10] [ext_resource path="res://menus/results.gd" type="Script" id=13] @@ -32,10 +33,6 @@ shader = ExtResource( 3 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = false -[sub_resource type="DynamicFont" id=9] -outline_color = Color( 0.254902, 0.027451, 0.027451, 1 ) -font_data = ExtResource( 7 ) - [sub_resource type="ShaderMaterial" id=6] shader = ExtResource( 1 ) shader_param/speed = Vector2( 4, 8 ) @@ -125,7 +122,7 @@ tracks/5/keys = { [sub_resource type="Animation" id=4] resource_name = "results" -length = 50.0 +length = 24.0 step = 1.0 tracks/0/type = "method" tracks/0/path = NodePath("ShardsAndBonuses/Shards/ResultsIcon") @@ -134,7 +131,7 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 3 ), +"times": PoolRealArray( 1 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -148,7 +145,7 @@ tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { -"times": PoolRealArray( 4 ), +"times": PoolRealArray( 2 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -162,7 +159,7 @@ tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { -"times": PoolRealArray( 5 ), +"times": PoolRealArray( 3 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -176,7 +173,7 @@ tracks/3/loop_wrap = true tracks/3/imported = false tracks/3/enabled = true tracks/3/keys = { -"times": PoolRealArray( 6 ), +"times": PoolRealArray( 4 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -190,7 +187,7 @@ tracks/4/loop_wrap = true tracks/4/imported = false tracks/4/enabled = true tracks/4/keys = { -"times": PoolRealArray( 7 ), +"times": PoolRealArray( 5 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -204,7 +201,7 @@ tracks/5/loop_wrap = true tracks/5/imported = false tracks/5/enabled = true tracks/5/keys = { -"times": PoolRealArray( 9, 10, 17, 18 ), +"times": PoolRealArray( 7, 8, 15, 16 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), "update": 0, "values": [ Vector2( 0, 0 ), Vector2( -256, 0 ), Vector2( -256, 0 ), Vector2( -512, 0 ) ] @@ -216,7 +213,7 @@ tracks/6/loop_wrap = true tracks/6/imported = false tracks/6/enabled = true tracks/6/keys = { -"times": PoolRealArray( 0, 11 ), +"times": PoolRealArray( -2, 9 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -228,7 +225,7 @@ tracks/7/loop_wrap = true tracks/7/imported = false tracks/7/enabled = true tracks/7/keys = { -"times": PoolRealArray( 0, 12 ), +"times": PoolRealArray( -2, 10 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -240,7 +237,7 @@ tracks/8/loop_wrap = true tracks/8/imported = false tracks/8/enabled = true tracks/8/keys = { -"times": PoolRealArray( 0, 13 ), +"times": PoolRealArray( -2, 11 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -252,7 +249,7 @@ tracks/9/loop_wrap = true tracks/9/imported = false tracks/9/enabled = true tracks/9/keys = { -"times": PoolRealArray( 0, 14 ), +"times": PoolRealArray( -2, 12 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -264,7 +261,7 @@ tracks/10/loop_wrap = true tracks/10/imported = false tracks/10/enabled = true tracks/10/keys = { -"times": PoolRealArray( 0, 15 ), +"times": PoolRealArray( -2, 13 ), "transitions": PoolRealArray( 1, 1 ), "update": 1, "values": [ false, true ] @@ -276,7 +273,7 @@ tracks/11/loop_wrap = true tracks/11/imported = false tracks/11/enabled = true tracks/11/keys = { -"times": PoolRealArray( 11 ), +"times": PoolRealArray( 9 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -290,7 +287,7 @@ tracks/12/loop_wrap = true tracks/12/imported = false tracks/12/enabled = true tracks/12/keys = { -"times": PoolRealArray( 12 ), +"times": PoolRealArray( 10 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], @@ -304,13 +301,27 @@ tracks/13/loop_wrap = true tracks/13/imported = false tracks/13/enabled = true tracks/13/keys = { -"times": PoolRealArray( 13 ), +"times": PoolRealArray( 11 ), "transitions": PoolRealArray( 1 ), "values": [ { "args": [ ], "method": "collect" } ] } +tracks/14/type = "method" +tracks/14/path = NodePath(".") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/keys = { +"times": PoolRealArray( 17 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "final_score" +} ] +} [node name="Results" type="Node"] script = ExtResource( 13 ) @@ -514,6 +525,11 @@ margin_bottom = 23.0 theme = ExtResource( 10 ) text = "+500" +[node name="FinalScore" type="Sprite" parent="ShardsAndBonuses"] +material = ExtResource( 7 ) +position = Vector2( 640, 40 ) +texture = ExtResource( 8 ) + [node name="Score" type="Label" parent="."] material = ExtResource( 9 ) margin_top = 8.0 @@ -523,13 +539,13 @@ theme = ExtResource( 10 ) text = "Score: 0000000" align = 1 -[node name="FinalScore" type="Label" parent="."] -margin_top = 120.0 +[node name="Time" type="Label" parent="."] +material = ExtResource( 9 ) +margin_top = 178.0 margin_right = 256.0 -margin_bottom = 136.0 +margin_bottom = 192.0 theme = ExtResource( 10 ) -custom_fonts/font = SubResource( 9 ) -text = "1234567890" +text = "Time: " align = 1 [node name="Results" type="Sprite" parent="."] @@ -538,7 +554,10 @@ position = Vector2( 232, 80 ) texture = ExtResource( 4 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "New Anim" +autoplay = "results" +playback_speed = 2.0 "anims/New Anim" = SubResource( 3 ) anims/RESET = SubResource( 10 ) anims/results = SubResource( 4 ) + +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] diff --git a/menus/results_icon.gd b/menus/results_icon.gd index e5d1ae1..1169655 100644 --- a/menus/results_icon.gd +++ b/menus/results_icon.gd @@ -7,3 +7,7 @@ export var number = 0 func collect() -> void: if Game.shards_collected[number] == true: anims.play("collect") + Audio.play_sound(Audio.a_shard_results,Audio.ac_collectible) + else: + anims.play("fail") + Audio.play_sound(Audio.a_fail_shard,Audio.ac_collectible) diff --git a/menus/results_icon.tscn b/menus/results_icon.tscn index ef80685..f73a102 100644 --- a/menus/results_icon.tscn +++ b/menus/results_icon.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] [ext_resource path="res://graphics/collectibles/shard.png" type="Texture" id=2] [ext_resource path="res://menus/results_icon.gd" type="Script" id=3] +[ext_resource path="res://graphics/hud/missed_shard.png" type="Texture" id=4] [sub_resource type="ShaderMaterial" id=4] shader = ExtResource( 1 ) @@ -40,6 +41,30 @@ tracks/1/keys = { "update": 1, "values": [ false ] } +tracks/2/type = "value" +tracks/2/path = NodePath("FailX:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("FailX:rotation_degrees") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} [sub_resource type="Animation" id=3] resource_name = "collect" @@ -68,6 +93,41 @@ tracks/1/keys = { "values": [ true ] } +[sub_resource type="Animation" id=9] +resource_name = "fail" +tracks/0/type = "value" +tracks/0/path = NodePath("FailX:rotation_degrees") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 360.0 ] +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("FailX:scale:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 1e-05, -0.25, 0, 0.25, 0, 1, 0, -0.504449, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("FailX:scale:y") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( 1e-05, -0.25, 0, 0.25, 0, 1, 0, -0.504449, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5 ) +} + [sub_resource type="Gradient" id=7] interpolation_mode = 2 offsets = PoolRealArray( 0, 0.734694, 1 ) @@ -92,6 +152,7 @@ texture = ExtResource( 2 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/RESET = SubResource( 6 ) anims/collect = SubResource( 3 ) +anims/fail = SubResource( 9 ) [node name="CollectedParticles" type="CPUParticles2D" parent="."] pause_mode = 2 @@ -118,3 +179,8 @@ material = SubResource( 8 ) scale = Vector2( 1e-05, 1e-05 ) texture = ExtResource( 2 ) offset = Vector2( 1, 1 ) + +[node name="FailX" type="Sprite" parent="."] +position = Vector2( 1, 1 ) +scale = Vector2( 1e-05, 1e-05 ) +texture = ExtResource( 4 ) diff --git a/objects/hud/3d_text.gd b/objects/hud/3d_text.gd index dda4a03..de241d3 100644 --- a/objects/hud/3d_text.gd +++ b/objects/hud/3d_text.gd @@ -27,6 +27,8 @@ func _set_material(value: Material) -> void: yield(self, "ready") text_mesh.mesh.material = text_material +func final_score(): + _set_text("%05d" % Game.final_score) func play_confirm_sound(): pass # Replace with function body. diff --git a/objects/hud/3d_text.tscn b/objects/hud/3d_text.tscn index de37d03..8a6a0f8 100644 --- a/objects/hud/3d_text.tscn +++ b/objects/hud/3d_text.tscn @@ -1,20 +1,22 @@ -[gd_scene load_steps=21 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://ui/PressStart2P-Regular.ttf" type="DynamicFontData" id=1] [ext_resource path="res://objects/hud/3d_text.gd" type="Script" id=2] [ext_resource path="res://ui/Kozuka Mincho Std H.otf" type="DynamicFontData" id=3] [ext_resource path="res://ui/Boba Date.otf" type="DynamicFontData" id=4] +[ext_resource path="res://ui/HooskaiChamferedSquare.ttf" type="DynamicFontData" id=5] -[sub_resource type="SpatialMaterial" id=9] -albedo_color = Color( 0.901961, 0.133333, 0.133333, 1 ) +[sub_resource type="SpatialMaterial" id=11] +albedo_color = Color( 0.309804, 0.690196, 0.380392, 1 ) metallic = 0.35 +metallic_specular = 0.11 [sub_resource type="DynamicFont" id=19] font_data = ExtResource( 1 ) [sub_resource type="TextMesh" id=2] resource_local_to_scene = true -material = SubResource( 9 ) +material = SubResource( 11 ) text = "TEXT" font = SubResource( 19 ) pixel_size = 0.05 @@ -183,6 +185,99 @@ tracks/4/keys = { "values": [ ExtResource( 4 ) ] } +[sub_resource type="Animation" id=20] +resource_name = "final score" +tracks/0/type = "value" +tracks/0/path = NodePath("TextMesh:rotation_degrees") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector3( 0, 0, 0 ), Vector3( 180, 0, 216 ), Vector3( 360, 0, 360 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("TextMesh:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector3( 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("..:text_material") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ SubResource( 11 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("..:text") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ "00000" ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("TextMesh:mesh:font:font_data") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 5 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("TextMesh:translation") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector3( -8, 1.8, 0 ), Vector3( 0, 0, 0 ) ] +} +tracks/6/type = "method" +tracks/6/path = NodePath("..") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "final_score" +} ] +} + +[sub_resource type="SpatialMaterial" id=9] +albedo_color = Color( 0.901961, 0.133333, 0.133333, 1 ) +metallic = 0.35 + [sub_resource type="Animation" id=18] resource_name = "fucker" length = 2.0 @@ -337,11 +432,6 @@ tracks/5/keys = { "values": [ ExtResource( 1 ) ] } -[sub_resource type="SpatialMaterial" id=11] -albedo_color = Color( 0.309804, 0.690196, 0.380392, 1 ) -metallic = 0.35 -metallic_specular = 0.11 - [sub_resource type="Animation" id=7] resource_name = "level complete" tracks/0/type = "value" @@ -568,7 +658,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 script = ExtResource( 2 ) text = "TEXT" -text_material = SubResource( 9 ) +text_material = SubResource( 11 ) [node name="Viewport" type="Viewport" parent="."] size = Vector2( 256, 192 ) @@ -596,6 +686,7 @@ unique_name_in_owner = true anims/RESET = SubResource( 5 ) "anims/Zoom Entrance" = SubResource( 6 ) "anims/bug world" = SubResource( 17 ) +"anims/final score" = SubResource( 20 ) anims/fucker = SubResource( 18 ) "anims/game over" = SubResource( 10 ) "anims/level complete" = SubResource( 7 )