From 43512c90c75936ccb0a59d72cce2db17d13517d2 Mon Sep 17 00:00:00 2001 From: assada Date: Mon, 10 Jun 2024 01:50:27 +0300 Subject: [PATCH] alpha 0.1 --- source/assets/audio/confirm.wav | Bin 0 -> 37292 bytes source/assets/fonts/Play Girls.fnt | 47 ++ source/assets/fonts/diamond_20.fnt | 105 +++ source/assets/fonts/onyx_9.fnt | 408 ++++++++++++ source/assets/fonts/opal_12.fnt | 549 ++++++++++++++++ source/assets/fonts/opal_9.fnt | 598 ++++++++++++++++++ source/assets/fonts/peridot_7.fnt | 105 +++ source/assets/images/menuBg.png | Bin 0 -> 13903 bytes source/assets/images/solder.png | Bin 0 -> 1623 bytes source/assets/images/unk.png | Bin 0 -> 2149 bytes source/assets/sprites/assemble/1/8.png | Bin 3566 -> 3839 bytes source/assets/sprites/assemble/1/preview.png | Bin 0 -> 384 bytes source/assets/sprites/selectionBg.png | Bin 0 -> 5791 bytes source/assets/sprites/selectionBg1.png | Bin 0 -> 5032 bytes .../sprites/selectionanim-table-40-39.png | Bin 0 -> 2308 bytes source/en.strings | 5 - source/jp.strings | 5 - source/main.lua | 73 ++- source/pdxinfo | 8 +- source/scenes/Assemble.lua | 83 ++- source/scenes/DroneSelection.lua | 117 ++++ source/scenes/Game.lua | 10 +- source/scenes/Menu.lua | 24 +- source/scripts/player.lua | 4 +- source/scripts/selectionSprite.lua | 18 + source/utilities/utils.lua | 17 + 26 files changed, 2113 insertions(+), 63 deletions(-) create mode 100644 source/assets/audio/confirm.wav create mode 100644 source/assets/fonts/Play Girls.fnt create mode 100644 source/assets/fonts/diamond_20.fnt create mode 100644 source/assets/fonts/onyx_9.fnt create mode 100644 source/assets/fonts/opal_12.fnt create mode 100644 source/assets/fonts/opal_9.fnt create mode 100644 source/assets/fonts/peridot_7.fnt create mode 100644 source/assets/images/menuBg.png create mode 100644 source/assets/images/solder.png create mode 100644 source/assets/images/unk.png create mode 100644 source/assets/sprites/assemble/1/preview.png create mode 100644 source/assets/sprites/selectionBg.png create mode 100644 source/assets/sprites/selectionBg1.png create mode 100644 source/assets/sprites/selectionanim-table-40-39.png delete mode 100644 source/en.strings delete mode 100644 source/jp.strings create mode 100644 source/scenes/DroneSelection.lua create mode 100644 source/scripts/selectionSprite.lua create mode 100644 source/utilities/utils.lua diff --git a/source/assets/audio/confirm.wav b/source/assets/audio/confirm.wav new file mode 100644 index 0000000000000000000000000000000000000000..4eca57e2b81a77dc2ad9e3ef9ee67cf1a0a213e2 GIT binary patch literal 37292 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
    `8|E<5yTsN zsr#OAKV1n%))AY<3G1l2u5%|`MD&DvbQeeCM~PT1liS4-Qf;XPIe$Do(jD~S?hK(XODeG%u;20}m?U%@;20X)G?*P-7iT@#M)}&h*B`*Y#Pmv+==wsEyi@R&1=}>IqTW)e^;DjFsf;>a@I5cxu zze3F?8kNXi?Ti8RxK>hAoP)=I;zfkF&;kS+gYRr6;%{OryI2iQ-;sHiY1Y?VfZ6A> z6~`NEMUy|~5oO2dCBL8>Rv8}KRz60*<|Y1HRcpkr6b#m;;W7K@H$LPQZfU)a-jXU} zEPLz{(aTNpsNMLA%+&!ToJy|P!?)ZsJ{qpV*Yp6p3nPj3^=KxQyE>g{_Yqr>=f{!9 zHdFIlr$;GCm86E!xA3!x_|8^hK3&R@6uAmtlf@ovXRSK+=?cr4$;-Y2FbnfbN|8NV z5Z$A(&;~lgX)t$#TG$8w?L$4h08~E4Zz^Py*((aZLK~`z@l3xaa<_0@$fnm+k?Nu~ z-AVIXHj%@w!dne`>-FeVM&mcX@J{qFFH0UVWm8hlg%wvNL$#+zKZ&|`JC$z+sAt!! z(idnC?!|&L+w_z8N)B~!Wh&usiKGcs!-;&!HDX&3%8|3eu+V7mW*zn4W#J(h=n8iZ z7Q2c=@R*gnl=_SJMX$Jnse)eGkio{W{poiy#y@;ZzEoVRfj&BOdoq>i`GfvzCLZg= zcldLI5yK7BBJPoo5kb$WI?E8zp+9SZvWd99!pxY1 zH$mo?birGuuv=w2U7j1DjUbhk>VSYzY&o6I^voYrsJA3{{G&aHGLdfdX13m>vENX| zF16{^ccb4pO<&0kQwo_NN0*HXSSHNqN%VaFjx*$g*VI>)$q3<=MrOm@_t9a>BBJfY zkT0Ini|OB4FpNF)N^gV2vQz>4v>>j{FNp_fPD;U4PJ_X%WELNW_?9dV&;2Z zdn_YA9*03Zg%P_MwTvc4Cu1Nr%wjy`2$=hb$Z-)osDj%Ged$=t#WMSuL;n{RXcH^p zu`R*6VZ_f0G;)HB@E>f)RjLkWZV!tei>IuSBGANm?i)9d4KFf<@s{3IRTx#c-i!OK zINoOOf(568Y6do`Z8U|;m|w97WJ>~R?_rf9LKQqUjEZv@HD^3`rYGR)PwHCiU6XgH{Gw9(qMdZG05>J8Sp+Fs)$~N3MC8{J`8)Tz(0=@ zDUZ3CburvQkk&>oEHVQO*o=(qi8~1{#`00CazY2_|g&2va zPUcQ*BORUd%#!EAwaQ3elaV6O#~5iY-H*NaDZzsJ(>30!j2*HnR+-y?e>({ zoW;LUSlte=BbBL)Ji5c>#Ml?}vt&L#@(Rk++G_jud{wet9 zV>*y_sXQ4uO?!YR+VpZnWe{DuK1?i41E)6eJ40uQ%x74^*{DKnHX|xb9mJ9Ox8RYV zzd(g$e?y3!y~+m#^lUM zxWpLzZwc=bcfqwT@79&9EA$Z|zgAyT9<(l`idd= zK{UBzJXTnWH}0Z#ZbyzbWyfLl->GzyiM%ZKLVkqZm4Q+D8X?@bM^hzCpiWp0v)Y61 zFH&*-M+}<3VfGc;52TKXq#7P2{7k*~8_f71-1rLYI2(R!6H9}S_3*CW>wp=g*oI4fNF=gxARF)&^e1sr+BAw}C4Wa8e4OY1d&oj?%O232c-_iGT z7Rz&bA2E;^>_o<1MRe~4-_FxTxKEw@k?ijZAF2f-3PIndeT_Q84JK3*qzx2W($$E9iTps;`I&Qnmc1LqIn5pE zO|1S5hU5VGN}zcU(UkfMB#}97dAzy~eVb-*&o1EUAkG_W%(Ucgz{&^E^*Q`I6V{W1 zwgsUmXRd-|AG(#Hcv@GiJqTZ$NbaA9x2@%FYY(zhgp2UzEHF0*pEKYBZsI%8(}}ZI zM8|cJ8iHSSM$7%N?|7<#U(j=cv5E5@qW(AK-X^nVb7Ga)DuItxL)#5Fa|=syZ@S6D z@wA`8n8j?OTMy3e#n)4?_*H82huA!i&Xe6J!Aadgt_EnhC7Gie*gX&(n^Nb1VXM&c zcKV)2@#>3I0a={)1$d%@XD&h+PF#by_Q%ex&~`U0Jpj%%7C(yvUzTI-O=SE1*!#2W z46^=Hp%QrIjTbkuWOju+^=B?-3?4OuyOd>|bt5|72a8Fe1Dpni-3LQop=X`*7PsV9 z2hAE1SD{oSorvr2=+6vC@+7)6bFuX*PQ8T)KS-3F=GTR1ZMxmS+64X9#NdbX&vBaQ4q8|UR}eI8%RwS4w82zm&M@SBP_|&!Ieee z+G?<68%*mEvQvamtl80$IDk`*#($?0ISat(1SaaYBJ&{nO~J0IcyboqlxO5CQ>rL9 zS*NW8d#Qz<8)D&RXu2I((jEWm51x!fax9oK8&p|_t=FP)Q+7AB8bd8PoSVB?kkOR5 zj8m?It?!_IIm|gvgBPaEOiua)yS_ogDrYsNmIgh(0zbU)Xn#v?7@4ypHttCUIN*!q zpYXAn)~T1H@&3jTe8-eGl^iq=|A_~gHlWv?So1K|TMBj4B`liGIqxGg8)ovJcfkh! zR1{A(rB($oYoTRdDytyQ+Y$>$aN;O1?6c(IFsSiZdMaM_i|`Xu_A`l*g`DqK@aT8s z?I8Od#D9`G<2kr+8agL z%hmeWV(8aRC~HY|N5@~&Z}7po0q8l{IAEtoujdI3>sheMb<8?caWQ!V{p5_ z(C0;R-BqlZVaa=lR-bc5Q{o41D^##a7VK!(g_D-Dq*lhV9(b}Tw;p=-mX?O9}$Hd5Id2jI9kCsFO&s8j$&e*gh zRxL~HR6@t5-0JArlw6lH`*Lc3qz59sDJKsVQY<+auvsdSu3M5askQGR>k(&rhR?ht zK3FU(Ns5{GZML+x*|n|KI$BP+6x!kR^*B!7cn( zsDVNa6l$PQ1BDtW)IgyI3N=uufkF)wYM@X9g&HW-K%oW-HBhL5LJbsZpil#a8Yt92 Pp#};yP^f|bXAS%xJUU_y literal 0 HcmV?d00001 diff --git a/source/assets/fonts/Play Girls.fnt b/source/assets/fonts/Play Girls.fnt new file mode 100644 index 0000000..86b4572 --- /dev/null +++ b/source/assets/fonts/Play Girls.fnt @@ -0,0 +1,47 @@ +--metrics={"baseline":7,"xHeight":0,"capHeight":0,"pairs":{},"left":[],"right":[]} +datalen=1136 +data=iVBORw0KGgoAAAANSUhEUgAAADgAAAAwCAYAAABE1blzAAAAAXNSR0IArs4c6QAAAw1JREFUaEPlV1ty4zAMa+5/6HaaRhkGxoOSnTiZ9qPdtWRTJEEAunz9/Xzf/tY/F/Js7MO19H5aH6HqvhGDvTv2uz3Xtd9feGgWBItQE2RJ12dpnSU3zlbjsoKr9XtMTBCrxRKpwWMAUkD3Tio4Q5hC1XUvS5AFwSqnamIRHAQxYYUohRoF4Q1EK67TrK3Mp4P1bzycJ1XEVJCH9dqtDu6PSpzNKOE0yhHTCXZZVM3nLpZrMnViYbnuYMAq+nHPEKKYQNSZ2wupwjOFqfNY30vjQc+uGHNGx7o610lSaXDSQyzKgw5i4FWaTuKfEmSHrAhK8kXjK8t1hBVTWsgSRcSs6vPGCHSqvgJB6y4gQzW/yTLi2WMH0xAnJ9EploIpJuOkpxqS6pCWE+zo5BEs6jrpRilatTT8r1wfRKOkYvosHZ2zFRJ3SeZrlRVLCHHwVbedO8ENtkpsKnWmCD37BtI8Cvee+C3DvydAlYFaAAYvt672q++Pju9KkIl/uu5sNKg8QJg7inc66WJQt/NuHVSFcC7H+tVnJMi0ybHi0yE6w2IMIk6U8bbC5obFr4XfzaLT2vJJLyRTrTqA5rhDMF2rxzyoc0rTTkaZ65a5Fd1lBUmsnDQ0ych1vaUlN7cyE5DJzDhQ53bS0dWnJDhz43CuRdE+86KrLHvvYLJhKKCdDnSMgoI8fr+bIMa8fp/p4FEzOGPPcK+DH3MsUmfVbUK5dNyPLMuqmDruWHP2trPhFCW8nyR19qyuA6qL44Pd9a7T6c4kWkE7o4r6UbeUIeh4WTWLlTHrzI0ZY+PgmJma7mclqGDTYcTVBKmZOCLBZNZZ1Wm1y0PHqqwAddQe/t1lKTWriqScIXBwx/mq/+84l1q4uw5iRbrCvmLdViDaJRU6s9gZNdjIhEguzu1jF5BQGMQdMtiaNBX/SgeZruHwsplIOneqaZhJQBWAeUM216ckymau6x07bHhKUhsqvT1gppfpFSMJRedvkyB1AeR0iuYdfE9NsjODq07EdfplSc8kqCD89iz6smqeEegH9dmYQMkYMS4AAAAASUVORK5CYII= +width=8 +height=8 + +tracking=1 + +0 8 +1 8 +2 8 +3 8 +4 8 +5 8 +6 8 +7 8 +8 8 +9 8 +space 8 +� 8 +A 8 +B 8 +C 8 +D 8 +E 8 +F 8 +G 8 +H 8 +I 8 +J 8 +K 8 +L 8 +M 8 +N 8 +O 8 +P 8 +R 8 +Q 8 +S 8 +T 8 +U 8 +V 8 +W 8 +X 8 +Y 8 +Z 8 + diff --git a/source/assets/fonts/diamond_20.fnt b/source/assets/fonts/diamond_20.fnt new file mode 100644 index 0000000..ed70740 --- /dev/null +++ b/source/assets/fonts/diamond_20.fnt @@ -0,0 +1,105 @@ +--metrics={"baseline":14,"xHeight":0,"capHeight":0,"pairs":{},"left":[],"right":[]} +datalen=6384 +data=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 +width=20 +height=20 + +tracking=1 + +0 12 +1 5 +2 13 +3 10 +4 12 +5 11 +6 12 +7 12 +8 12 +9 12 +space 7 +! 3 +" 9 +# 14 +$ 11 +% 14 +& 11 +' 3 +( 9 +) 9 +* 13 ++ 13 +, 5 +- 13 +. 3 +/ 16 +: 3 +; 4 +< 11 += 13 +> 11 +? 13 +@ 18 +A 13 +B 13 +C 14 +D 14 +E 13 +F 13 +G 15 +H 14 +I 3 +J 14 +K 13 +L 13 +M 19 +N 14 +O 16 +P 13 +Q 16 +R 13 +S 14 +T 15 +U 16 +V 14 +W 19 +X 15 +Y 16 +Z 14 +[ 7 +\ 16 +] 7 +^ 10 +_ 15 +` 6 +a 10 +b 11 +c 11 +d 11 +e 11 +f 9 +g 11 +h 11 +i 3 +j 3 +k 11 +l 3 +m 19 +n 11 +o 11 +p 11 +q 11 +r 11 +s 10 +t 7 +u 11 +v 11 +w 19 +x 11 +y 11 +z 10 +{ 10 +| 3 +} 10 +~ 11 +� 20 + diff --git a/source/assets/fonts/onyx_9.fnt b/source/assets/fonts/onyx_9.fnt new file mode 100644 index 0000000..7142090 --- /dev/null +++ b/source/assets/fonts/onyx_9.fnt @@ -0,0 +1,408 @@ +--metrics={"baseline":8,"xHeight":0,"capHeight":0,"pairs":{"Fc":[-2,1],"Fe":[-2,1],"Fo":[-2,1],"Fm":[-2,1],"Fn":[-2,1],"Fr":[-2,1],"Fu":[-2,1],"Fw":[-2,1],"Jc":[-1,1],"Je":[-1,1],"Jo":[-1,1],"Jm":[-1,1],"Jn":[-1,1],"Jr":[-1,1],"Ju":[-1,1],"Jw":[-1,1],"Tc":[-2,1],"Te":[-2,1],"To":[-2,1],"Tm":[-2,1],"Tn":[-2,1],"Tr":[-2,1],"Tu":[-2,1],"Tw":[-2,1],"Yc":[-1,1],"Ye":[-1,1],"Yo":[-1,1],"Ym":[-1,1],"Yn":[-1,1],"Yr":[-1,1],"�B":[-1,1],"�D":[-1,1],"�E":[-1,1],"�F":[-1,1],"�H":[-1,1],"�K":[-1,1],"�L":[-1,1],"�M":[-1,1],"�N":[-1,1],"�P":[-1,1],"�R":[-1,1],"�b":[-1,1],"�h":[-1,1],"�k":[-1,1],"�C":[-1,1],"�G":[-1,1],"�O":[-1,1],"�Q":[-1,1],"�U":[-1,1],"�W":[-1,1],"�l":[-1,1],"�c":[-1,1],"�e":[-1,1],"�o":[-1,1],"�m":[-1,1],"�n":[-1,1],"�r":[-1,1],"�u":[-1,1],"�w":[-1,1],"H�":[-1,2],"M�":[-1,2],"N�":[-1,2],"d�":[-1,2],"U�":[-1,2],"V�":[-1,2],"W�":[-1,2],"aT":[-2,2],"aY":[-1,2],"a�":[-1,2],"mT":[-2,2],"mY":[-1,2],"m�":[-1,2],"nT":[-2,2],"nY":[-1,2],"n�":[-1,2],"qT":[-2,2],"qY":[-1,2],"q�":[-1,2],"gT":[-2,2],"gY":[-1,2],"g�":[-1,2],"oT":[-2,2],"oY":[-1,2],"o�":[-1,2],"wT":[-2,2],"w�":[-1,2],"yT":[-2,2],"y�":[-1,2],"A�":[-1,0],"B�":[-1,0],"C�":[-1,0],"DI":[-1,0],"DT":[-1,0],"D�":[-1,0],"E�":[-1,0],"FJ":[-1,0],"Fa":[-3,0],"Fd":[-2,0],"Ff":[-1,0],"Fg":[-2,0],"Fj":[-4,0],"Fp":[-2,0],"Fq":[-2,0],"Fs":[-2,0],"Ft":[-1,0],"Fv":[-2,0],"Fx":[-2,0],"Fy":[-2,0],"Fz":[-2,0],"F�":[-1,0],"G�":[-1,0],"If":[-1,0],"Ig":[-1,0],"Iq":[-1,0],"Is":[-1,0],"It":[-1,0],"Iv":[-1,0],"Iy":[-1,0],"I�":[-1,0],"JJ":[-1,0],"Ja":[-1,0],"Jd":[-1,0],"Jf":[-1,0],"Jg":[-1,0],"Jj":[-1,0],"Jp":[-1,0],"Jq":[-1,0],"Js":[-1,0],"Jt":[-1,0],"Jv":[-1,0],"Jx":[-1,0],"Jy":[-1,0],"Jz":[-1,0],"J�":[-1,0],"Kf":[-1,0],"Kg":[-1,0],"Kq":[-2,0],"Ks":[-1,0],"Kt":[-1,0],"Kv":[-1,0],"Ky":[-1,0],"K�":[-1,0],"LT":[-2,0],"LV":[-2,0],"LY":[-2,0],"Lf":[-1,0],"Lg":[-1,0],"Lq":[-4,0],"Ls":[-1,0],"Lt":[-1,0],"Lv":[-2,0],"Ly":[-1,0],"L�":[-1,0],"O�":[-1,0],"PJ":[-1,0],"Pa":[-1,0],"Pj":[-1,0],"P�":[-1,0],"Q�":[-1,0],"R�":[-1,0],"S�":[-1,0],"TJ":[-1,0],"Ta":[-2,0],"Td":[-2,0],"Tf":[-1,0],"Tg":[-2,0],"Tj":[-2,0],"Tp":[-2,0],"Tq":[-2,0],"Ts":[-2,0],"Tt":[-1,0],"Tv":[-2,0],"Tx":[-2,0],"Ty":[-2,0],"Tz":[-2,0],"T�":[-1,0],"Xf":[-1,0],"Xg":[-1,0],"Xq":[-1,0],"Xs":[-1,0],"X�":[-1,0],"YJ":[-1,0],"Ya":[-1,0],"Yd":[-1,0],"Yf":[-1,0],"Yg":[-1,0],"Yj":[-2,0],"Yq":[-1,0],"Ys":[-1,0],"Y�":[-1,0],"Zf":[-1,0],"Zg":[-1,0],"Zq":[-1,0],"Zs":[-1,0],"Z�":[-1,0],"bT":[-2,0],"bY":[-1,0],"bt":[-1,0],"b�":[-1,0],"cT":[-2,0],"cY":[-1,0],"c�":[-1,0],"eI":[-1,0],"eT":[-2,0],"eY":[-1,0],"e�":[-1,0],"f�":[-1,0],"hT":[-2,0],"hY":[-1,0],"ht":[-1,0],"h�":[-1,0],"iT":[-1,0],"iV":[-1,0],"iY":[-1,0],"if":[-1,0],"ig":[-1,0],"iq":[-1,0],"is":[-1,0],"it":[-1,0],"iv":[-1,0],"iy":[-1,0],"i�":[-1,0],"j�":[-1,0],"kT":[-2,0],"kV":[-1,0],"kY":[-1,0],"kf":[-1,0],"kg":[-1,0],"kq":[-1,0],"ks":[-1,0],"kt":[-1,0],"kv":[-1,0],"ky":[-1,0],"k�":[-1,0],"lT":[-1,0],"lV":[-1,0],"lY":[-1,0],"lf":[-1,0],"lg":[-1,0],"lq":[-1,0],"ls":[-1,0],"lt":[-1,0],"lv":[-1,0],"ly":[-1,0],"l�":[-1,0],"pI":[-1,0],"pT":[-2,0],"pX":[-1,0],"pY":[-1,0],"pZ":[-1,0],"p�":[-1,0],"rI":[-1,0],"rT":[-2,0],"rX":[-1,0],"rY":[-1,0],"rZ":[-1,0],"r�":[-1,0],"sT":[-2,0],"sY":[-1,0],"ss":[-1,0],"st":[-1,0],"sv":[-1,0],"s�":[-1,0],"tT":[-2,0],"t�":[-1,0],"uT":[-2,0],"u�":[-1,0],"vI":[-1,0],"vJ":[-1,0],"vT":[-2,0],"vZ":[-1,0],"va":[-1,0],"vj":[-1,0],"v�":[-1,0],"xT":[-2,0],"xf":[-1,0],"x�":[-1,0],"zT":[-2,0],"z�":[-1,0],"�A":[-1,0],"�I":[-1,0],"�J":[-1,0],"�S":[-1,0],"�T":[-1,0],"�V":[-1,0],"�X":[-1,0],"�Y":[-1,0],"�Z":[-1,0],"�a":[-1,0],"�d":[-1,0],"�f":[-1,0],"�g":[-1,0],"�i":[-1,0],"�j":[-1,0],"�p":[-1,0],"�q":[-1,0],"�s":[-1,0],"�t":[-1,0],"�v":[-1,0],"�x":[-1,0],"�y":[-1,0],"�z":[-1,0],"��":[-2,0]},"left":["BDEFHKLMNPRbhk","CGOQ","UWl","ceo","mnr","uw"],"right":["HMNd","UVW","amnq","go","wy"]} +datalen=2384 +data=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 +width=8 +height=9 + +tracking=1 + +0 6 +1 4 +2 6 +3 6 +4 6 +5 6 +6 6 +7 6 +8 6 +9 6 +space 4 +! 3 +" 6 +# 6 +$ 6 +% 6 +& 6 +' 3 +( 4 +) 4 +* 6 ++ 6 +, 3 +- 6 +. 2 +/ 5 +: 2 +; 3 +< 5 += 5 +> 5 +? 6 +@ 6 +A 6 +B 6 +C 6 +D 6 +E 6 +F 6 +G 6 +H 6 +I 4 +J 6 +K 6 +L 6 +M 6 +N 6 +O 6 +P 6 +Q 6 +R 6 +S 6 +T 6 +U 6 +V 6 +W 6 +X 6 +Y 6 +Z 6 +[ 4 +\ 5 +] 4 +^ 5 +_ 6 +` 3 +a 6 +b 6 +c 6 +d 6 +e 6 +f 6 +g 6 +h 6 +i 3 +j 6 +k 6 +l 3 +m 6 +n 6 +o 6 +p 6 +q 6 +r 6 +s 6 +t 6 +u 6 +v 6 +w 6 +x 6 +y 6 +z 6 +{ 4 +| 2 +} 4 +~ 6 +� 8 + +Fc -2 +Fe -2 +Fo -2 +Fm -2 +Fn -2 +Fr -2 +Fu -2 +Fw -2 +Jc -1 +Je -1 +Jo -1 +Jm -1 +Jn -1 +Jr -1 +Ju -1 +Jw -1 +Tc -2 +Te -2 +To -2 +Tm -2 +Tn -2 +Tr -2 +Tu -2 +Tw -2 +Yc -1 +Ye -1 +Yo -1 +Ym -1 +Yn -1 +Yr -1 +�B -1 +�D -1 +�E -1 +�F -1 +�H -1 +�K -1 +�L -1 +�M -1 +�N -1 +�P -1 +�R -1 +�b -1 +�h -1 +�k -1 +�C -1 +�G -1 +�O -1 +�Q -1 +�U -1 +�W -1 +�l -1 +�c -1 +�e -1 +�o -1 +�m -1 +�n -1 +�r -1 +�u -1 +�w -1 +H� -1 +M� -1 +N� -1 +d� -1 +U� -1 +V� -1 +W� -1 +aT -2 +aY -1 +a� -1 +mT -2 +mY -1 +m� -1 +nT -2 +nY -1 +n� -1 +qT -2 +qY -1 +q� -1 +gT -2 +gY -1 +g� -1 +oT -2 +oY -1 +o� -1 +wT -2 +w� -1 +yT -2 +y� -1 +A� -1 +B� -1 +C� -1 +DI -1 +DT -1 +D� -1 +E� -1 +FJ -1 +Fa -3 +Fd -2 +Ff -1 +Fg -2 +Fj -4 +Fp -2 +Fq -2 +Fs -2 +Ft -1 +Fv -2 +Fx -2 +Fy -2 +Fz -2 +F� -1 +G� -1 +If -1 +Ig -1 +Iq -1 +Is -1 +It -1 +Iv -1 +Iy -1 +I� -1 +JJ -1 +Ja -1 +Jd -1 +Jf -1 +Jg -1 +Jj -1 +Jp -1 +Jq -1 +Js -1 +Jt -1 +Jv -1 +Jx -1 +Jy -1 +Jz -1 +J� -1 +Kf -1 +Kg -1 +Kq -2 +Ks -1 +Kt -1 +Kv -1 +Ky -1 +K� -1 +LT -2 +LV -2 +LY -2 +Lf -1 +Lg -1 +Lq -4 +Ls -1 +Lt -1 +Lv -2 +Ly -1 +L� -1 +O� -1 +PJ -1 +Pa -1 +Pj -1 +P� -1 +Q� -1 +R� -1 +S� -1 +TJ -1 +Ta -2 +Td -2 +Tf -1 +Tg -2 +Tj -2 +Tp -2 +Tq -2 +Ts -2 +Tt -1 +Tv -2 +Tx -2 +Ty -2 +Tz -2 +T� -1 +Xf -1 +Xg -1 +Xq -1 +Xs -1 +X� -1 +YJ -1 +Ya -1 +Yd -1 +Yf -1 +Yg -1 +Yj -2 +Yq -1 +Ys -1 +Y� -1 +Zf -1 +Zg -1 +Zq -1 +Zs -1 +Z� -1 +bT -2 +bY -1 +bt -1 +b� -1 +cT -2 +cY -1 +c� -1 +eI -1 +eT -2 +eY -1 +e� -1 +f� -1 +hT -2 +hY -1 +ht -1 +h� -1 +iT -1 +iV -1 +iY -1 +if -1 +ig -1 +iq -1 +is -1 +it -1 +iv -1 +iy -1 +i� -1 +j� -1 +kT -2 +kV -1 +kY -1 +kf -1 +kg -1 +kq -1 +ks -1 +kt -1 +kv -1 +ky -1 +k� -1 +lT -1 +lV -1 +lY -1 +lf -1 +lg -1 +lq -1 +ls -1 +lt -1 +lv -1 +ly -1 +l� -1 +pI -1 +pT -2 +pX -1 +pY -1 +pZ -1 +p� -1 +rI -1 +rT -2 +rX -1 +rY -1 +rZ -1 +r� -1 +sT -2 +sY -1 +ss -1 +st -1 +sv -1 +s� -1 +tT -2 +t� -1 +uT -2 +u� -1 +vI -1 +vJ -1 +vT -2 +vZ -1 +va -1 +vj -1 +v� -1 +xT -2 +xf -1 +x� -1 +zT -2 +z� -1 +�A -1 +�I -1 +�J -1 +�S -1 +�T -1 +�V -1 +�X -1 +�Y -1 +�Z -1 +�a -1 +�d -1 +�f -1 +�g -1 +�i -1 +�j -1 +�p -1 +�q -1 +�s -1 +�t -1 +�v -1 +�x -1 +�y -1 +�z -1 +�� -2 diff --git a/source/assets/fonts/opal_12.fnt b/source/assets/fonts/opal_12.fnt new file mode 100644 index 0000000..4b02d6f --- /dev/null +++ b/source/assets/fonts/opal_12.fnt @@ -0,0 +1,549 @@ +--metrics={"baseline":9,"xHeight":0,"capHeight":0,"pairs":{"Fa":[-2,1],"Fc":[-2,1],"Fe":[-2,1],"Fo":[-2,1],"IC":[-1,1],"IE":[-1,1],"IG":[-1,1],"IO":[-1,1],"IQ":[-1,1],"Ia":[-1,1],"Ic":[-1,1],"Ie":[-1,1],"Io":[-1,1],"Iu":[-1,1],"Iw":[-1,1],"KC":[-1,1],"KE":[-1,1],"KG":[-1,1],"KO":[-1,1],"KQ":[-1,1],"KU":[-1,1],"KW":[-1,1],"Kb":[-1,1],"Ka":[-1,1],"Kc":[-1,1],"Ke":[-1,1],"Ko":[-1,1],"Ku":[-1,1],"Kw":[-1,1],"LC":[-1,1],"LE":[-1,1],"LG":[-1,1],"LO":[-1,1],"LQ":[-1,1],"LU":[-1,1],"LW":[-1,1],"Lb":[-1,1],"La":[-1,1],"Lc":[-1,1],"Le":[-1,1],"Lo":[-1,1],"Lu":[-1,1],"Lw":[-1,1],"Pa":[-1,1],"Pc":[-1,1],"Pe":[-1,1],"Po":[-1,1],"TC":[-1,1],"TE":[-1,1],"TG":[-1,1],"TO":[-1,1],"TQ":[-1,1],"Ta":[-4,1],"Tc":[-4,1],"Te":[-4,1],"To":[-4,1],"Tm":[-4,1],"Tn":[-4,1],"Tr":[-4,1],"Tu":[-4,1],"Tw":[-4,1],"YC":[-1,1],"YE":[-1,1],"YG":[-1,1],"YO":[-1,1],"YQ":[-1,1],"Ya":[-3,1],"Yc":[-3,1],"Ye":[-3,1],"Yo":[-3,1],"Ym":[-1,1],"Yn":[-1,1],"Yr":[-1,1],"Yu":[-1,1],"Yw":[-1,1],"ZC":[-1,1],"ZE":[-1,1],"ZG":[-1,1],"ZO":[-1,1],"ZQ":[-1,1],"Za":[-1,1],"Zc":[-1,1],"Ze":[-1,1],"Zo":[-1,1],"Zu":[-1,1],"Zw":[-1,1],"ga":[-1,1],"gc":[-1,1],"ge":[-1,1],"go":[-1,1],"ka":[-1,1],"kc":[-1,1],"ke":[-1,1],"ko":[-1,1],"ta":[-1,1],"tc":[-1,1],"te":[-1,1],"to":[-1,1],"xa":[-1,1],"xc":[-1,1],"xe":[-1,1],"xo":[-1,1],"za":[-1,1],"zc":[-1,1],"ze":[-1,1],"zo":[-1,1],"�B":[-1,1],"�D":[-1,1],"�H":[-1,1],"�K":[-1,1],"�L":[-1,1],"�M":[-1,1],"�N":[-1,1],"�P":[-1,1],"�R":[-1,1],"�h":[-1,1],"�k":[-1,1],"�l":[-1,1],"�C":[-1,1],"�E":[-1,1],"�G":[-1,1],"�O":[-1,1],"�Q":[-1,1],"�U":[-1,1],"�W":[-1,1],"�b":[-1,1],"�a":[-1,1],"�c":[-1,1],"�e":[-1,1],"�o":[-1,1],"�m":[-1,1],"�n":[-1,1],"�r":[-1,1],"�u":[-1,1],"�w":[-1,1],"A�":[-1,2],"H�":[-1,2],"J�":[-1,2],"N�":[-1,2],"U�":[-1,2],"l�":[-1,2],"DI":[-1,2],"DT":[-1,2],"DY":[-1,2],"Dj":[-1,2],"D�":[-1,2],"OI":[-1,2],"OT":[-1,2],"OY":[-1,2],"Oj":[-1,2],"O�":[-1,2],"Wj":[-1,2],"W�":[-1,2],"dj":[-1,2],"d�":[-1,2],"mT":[-4,2],"mY":[-3,2],"mt":[-1,2],"m�":[-1,2],"nT":[-4,2],"nY":[-3,2],"nt":[-1,2],"n�":[-1,2],"BI":[-1,0],"BT":[-1,0],"BY":[-1,0],"Bj":[-1,0],"B�":[-1,0],"Cf":[-1,0],"C�":[-1,0],"Ef":[-1,0],"E�":[-1,0],"FA":[-2,0],"FJ":[-6,0],"Fd":[-2,0],"Ff":[-1,0],"Fg":[-3,0],"Fj":[-6,0],"Fq":[-2,0],"Fs":[-1,0],"F�":[-1,0],"GT":[-1,0],"GY":[-1,0],"Gt":[-1,0],"G�":[-1,0],"IJ":[-1,0],"Id":[-1,0],"If":[-1,0],"Iq":[-1,0],"It":[-1,0],"Iv":[-2,0],"I�":[-1,0],"KJ":[-1,0],"KT":[-1,0],"KV":[-1,0],"KY":[-1,0],"Kd":[-1,0],"Kf":[-1,0],"Kq":[-1,0],"Kt":[-1,0],"Kv":[-2,0],"K�":[-1,0],"LJ":[-1,0],"LT":[-4,0],"LV":[-3,0],"LY":[-4,0],"Ld":[-1,0],"Lf":[-1,0],"Lq":[-1,0],"Lt":[-1,0],"Lv":[-2,0],"L�":[-1,0],"MT":[-1,0],"MY":[-1,0],"M�":[-1,0],"PA":[-1,0],"PI":[-1,0],"PJ":[-6,0],"PT":[-1,0],"PX":[-1,0],"PY":[-1,0],"PZ":[-1,0],"Pd":[-1,0],"Pg":[-2,0],"Pj":[-6,0],"Pq":[-1,0],"P�":[-1,0],"QT":[-1,0],"QY":[-1,0],"Q�":[-1,0],"RT":[-1,0],"RY":[-1,0],"R�":[-1,0],"SI":[-1,0],"ST":[-1,0],"SV":[-1,0],"SY":[-1,0],"Sf":[-1,0],"Sj":[-1,0],"St":[-1,0],"Sx":[-1,0],"Sy":[-1,0],"Sz":[-1,0],"S�":[-1,0],"TA":[-3,0],"TF":[-1,0],"TJ":[-4,0],"TS":[-1,0],"Td":[-4,0],"Tf":[-2,0],"Tg":[-4,0],"Tj":[-4,0],"Tp":[-4,0],"Tq":[-4,0],"Ts":[-4,0],"Tt":[-1,0],"Tv":[-4,0],"Tx":[-4,0],"Ty":[-4,0],"Tz":[-4,0],"T�":[-1,0],"VJ":[-1,0],"Vg":[-1,0],"Vj":[-3,0],"V�":[-1,0],"Xf":[-1,0],"Xt":[-1,0],"X�":[-1,0],"YA":[-3,0],"YF":[-1,0],"YJ":[-4,0],"YS":[-1,0],"Yd":[-3,0],"Yf":[-2,0],"Yg":[-4,0],"Yj":[-4,0],"Yp":[-1,0],"Yq":[-3,0],"Ys":[-2,0],"Yt":[-1,0],"Yv":[-1,0],"Yx":[-1,0],"Yy":[-1,0],"Yz":[-1,0],"Y�":[-1,0],"ZJ":[-1,0],"Zd":[-1,0],"Zf":[-1,0],"Zq":[-1,0],"Zt":[-1,0],"Zv":[-1,0],"Z�":[-1,0],"aT":[-4,0],"aY":[-2,0],"a�":[-1,0],"bI":[-1,0],"bT":[-4,0],"bY":[-3,0],"bj":[-1,0],"bt":[-1,0],"bx":[-1,0],"by":[-1,0],"bz":[-1,0],"b�":[-1,0],"cT":[-4,0],"cY":[-2,0],"c�":[-1,0],"eI":[-1,0],"eT":[-4,0],"eV":[-1,0],"eY":[-4,0],"ef":[-1,0],"ej":[-1,0],"et":[-1,0],"ex":[-1,0],"ey":[-1,0],"ez":[-1,0],"e�":[-1,0],"fJ":[-3,0],"fg":[-2,0],"fj":[-3,0],"f�":[-1,0],"gA":[-1,0],"gI":[-1,0],"gJ":[-1,0],"gT":[-4,0],"gX":[-1,0],"gY":[-1,0],"gZ":[-1,0],"gd":[-1,0],"gg":[-1,0],"gj":[-1,0],"gq":[-1,0],"g�":[-1,0],"hT":[-4,0],"hY":[-3,0],"ht":[-1,0],"h�":[-1,0],"i�":[-1,0],"j�":[-1,0],"kJ":[-1,0],"kT":[-4,0],"kY":[-1,0],"kd":[-1,0],"kq":[-1,0],"k�":[-1,0],"oI":[-1,0],"oT":[-4,0],"oY":[-3,0],"oj":[-1,0],"ot":[-1,0],"ox":[-1,0],"oy":[-1,0],"oz":[-1,0],"o�":[-1,0],"pI":[-1,0],"pT":[-4,0],"pY":[-3,0],"pj":[-1,0],"pt":[-1,0],"px":[-1,0],"py":[-1,0],"pz":[-1,0],"p�":[-1,0],"qT":[-4,0],"qY":[-1,0],"q�":[-1,0],"rI":[-2,0],"rJ":[-6,0],"rT":[-4,0],"rX":[-2,0],"rY":[-2,0],"rZ":[-3,0],"rg":[-2,0],"rj":[-6,0],"r�":[-1,0],"sT":[-4,0],"sY":[-2,0],"s�":[-1,0],"tA":[-1,0],"tI":[-2,0],"tJ":[-3,0],"tT":[-3,0],"tX":[-1,0],"tY":[-1,0],"tZ":[-3,0],"td":[-1,0],"tg":[-2,0],"tj":[-3,0],"tq":[-1,0],"t�":[-1,0],"uT":[-4,0],"uY":[-1,0],"u�":[-1,0],"vI":[-2,0],"vT":[-4,0],"vY":[-1,0],"vZ":[-1,0],"vj":[-2,0],"v�":[-1,0],"wI":[-1,0],"wT":[-4,0],"wY":[-1,0],"wj":[-1,0],"w�":[-1,0],"xJ":[-1,0],"xT":[-4,0],"xY":[-1,0],"xd":[-1,0],"xq":[-1,0],"x�":[-1,0],"yT":[-4,0],"yY":[-1,0],"y�":[-1,0],"zJ":[-1,0],"zT":[-4,0],"zY":[-1,0],"zd":[-1,0],"zq":[-1,0],"z�":[-1,0],"�A":[-1,0],"�F":[-1,0],"�I":[-1,0],"�J":[-1,0],"�S":[-1,0],"�T":[-1,0],"�V":[-1,0],"�X":[-1,0],"�Y":[-1,0],"�Z":[-1,0],"�d":[-1,0],"�f":[-1,0],"�g":[-1,0],"�i":[-1,0],"�j":[-1,0],"�p":[-1,0],"�q":[-1,0],"�s":[-1,0],"�t":[-1,0],"�v":[-1,0],"�x":[-1,0],"�y":[-1,0],"�z":[-1,0],"��":[-2,0]},"left":["BDHKLMNPRhkl","CEGOQ","UWb","aceo","mnr","uw"],"right":["AHJNUl","DO","Wd","mn"]} +datalen=3608 +data=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 +width=12 +height=12 + +tracking=1 + +0 8 +1 2 +2 7 +3 7 +4 7 +5 6 +6 8 +7 7 +8 7 +9 7 +space 5 +! 2 +" 4 +# 9 +$ 7 +% 9 +& 7 +' 2 +( 4 +) 4 +* 10 ++ 9 +, 2 +- 7 +. 2 +/ 9 +: 2 +; 2 +< 6 += 6 +> 6 +? 7 +@ 10 +A 8 +B 8 +C 8 +D 8 +E 8 +F 8 +G 8 +H 8 +I 5 +J 7 +K 8 +L 8 +M 11 +N 8 +O 9 +P 8 +Q 8 +R 8 +S 8 +T 9 +U 8 +V 9 +W 11 +X 8 +Y 9 +Z 8 +[ 4 +\ 9 +] 4 +^ 5 +_ 12 +` 2 +a 8 +b 8 +c 8 +d 8 +e 8 +f 5 +g 9 +h 8 +i 1 +j 7 +k 7 +l 1 +m 9 +n 8 +o 8 +p 7 +q 7 +r 7 +s 7 +t 5 +u 8 +v 7 +w 9 +x 7 +y 7 +z 7 +{ 5 +| 1 +} 5 +~ 9 +� 12 + +Fa -2 +Fc -2 +Fe -2 +Fo -2 +IC -1 +IE -1 +IG -1 +IO -1 +IQ -1 +Ia -1 +Ic -1 +Ie -1 +Io -1 +Iu -1 +Iw -1 +KC -1 +KE -1 +KG -1 +KO -1 +KQ -1 +KU -1 +KW -1 +Kb -1 +Ka -1 +Kc -1 +Ke -1 +Ko -1 +Ku -1 +Kw -1 +LC -1 +LE -1 +LG -1 +LO -1 +LQ -1 +LU -1 +LW -1 +Lb -1 +La -1 +Lc -1 +Le -1 +Lo -1 +Lu -1 +Lw -1 +Pa -1 +Pc -1 +Pe -1 +Po -1 +TC -1 +TE -1 +TG -1 +TO -1 +TQ -1 +Ta -4 +Tc -4 +Te -4 +To -4 +Tm -4 +Tn -4 +Tr -4 +Tu -4 +Tw -4 +YC -1 +YE -1 +YG -1 +YO -1 +YQ -1 +Ya -3 +Yc -3 +Ye -3 +Yo -3 +Ym -1 +Yn -1 +Yr -1 +Yu -1 +Yw -1 +ZC -1 +ZE -1 +ZG -1 +ZO -1 +ZQ -1 +Za -1 +Zc -1 +Ze -1 +Zo -1 +Zu -1 +Zw -1 +ga -1 +gc -1 +ge -1 +go -1 +ka -1 +kc -1 +ke -1 +ko -1 +ta -1 +tc -1 +te -1 +to -1 +xa -1 +xc -1 +xe -1 +xo -1 +za -1 +zc -1 +ze -1 +zo -1 +�B -1 +�D -1 +�H -1 +�K -1 +�L -1 +�M -1 +�N -1 +�P -1 +�R -1 +�h -1 +�k -1 +�l -1 +�C -1 +�E -1 +�G -1 +�O -1 +�Q -1 +�U -1 +�W -1 +�b -1 +�a -1 +�c -1 +�e -1 +�o -1 +�m -1 +�n -1 +�r -1 +�u -1 +�w -1 +A� -1 +H� -1 +J� -1 +N� -1 +U� -1 +l� -1 +DI -1 +DT -1 +DY -1 +Dj -1 +D� -1 +OI -1 +OT -1 +OY -1 +Oj -1 +O� -1 +Wj -1 +W� -1 +dj -1 +d� -1 +mT -4 +mY -3 +mt -1 +m� -1 +nT -4 +nY -3 +nt -1 +n� -1 +BI -1 +BT -1 +BY -1 +Bj -1 +B� -1 +Cf -1 +C� -1 +Ef -1 +E� -1 +FA -2 +FJ -6 +Fd -2 +Ff -1 +Fg -3 +Fj -6 +Fq -2 +Fs -1 +F� -1 +GT -1 +GY -1 +Gt -1 +G� -1 +IJ -1 +Id -1 +If -1 +Iq -1 +It -1 +Iv -2 +I� -1 +KJ -1 +KT -1 +KV -1 +KY -1 +Kd -1 +Kf -1 +Kq -1 +Kt -1 +Kv -2 +K� -1 +LJ -1 +LT -4 +LV -3 +LY -4 +Ld -1 +Lf -1 +Lq -1 +Lt -1 +Lv -2 +L� -1 +MT -1 +MY -1 +M� -1 +PA -1 +PI -1 +PJ -6 +PT -1 +PX -1 +PY -1 +PZ -1 +Pd -1 +Pg -2 +Pj -6 +Pq -1 +P� -1 +QT -1 +QY -1 +Q� -1 +RT -1 +RY -1 +R� -1 +SI -1 +ST -1 +SV -1 +SY -1 +Sf -1 +Sj -1 +St -1 +Sx -1 +Sy -1 +Sz -1 +S� -1 +TA -3 +TF -1 +TJ -4 +TS -1 +Td -4 +Tf -2 +Tg -4 +Tj -4 +Tp -4 +Tq -4 +Ts -4 +Tt -1 +Tv -4 +Tx -4 +Ty -4 +Tz -4 +T� -1 +VJ -1 +Vg -1 +Vj -3 +V� -1 +Xf -1 +Xt -1 +X� -1 +YA -3 +YF -1 +YJ -4 +YS -1 +Yd -3 +Yf -2 +Yg -4 +Yj -4 +Yp -1 +Yq -3 +Ys -2 +Yt -1 +Yv -1 +Yx -1 +Yy -1 +Yz -1 +Y� -1 +ZJ -1 +Zd -1 +Zf -1 +Zq -1 +Zt -1 +Zv -1 +Z� -1 +aT -4 +aY -2 +a� -1 +bI -1 +bT -4 +bY -3 +bj -1 +bt -1 +bx -1 +by -1 +bz -1 +b� -1 +cT -4 +cY -2 +c� -1 +eI -1 +eT -4 +eV -1 +eY -4 +ef -1 +ej -1 +et -1 +ex -1 +ey -1 +ez -1 +e� -1 +fJ -3 +fg -2 +fj -3 +f� -1 +gA -1 +gI -1 +gJ -1 +gT -4 +gX -1 +gY -1 +gZ -1 +gd -1 +gg -1 +gj -1 +gq -1 +g� -1 +hT -4 +hY -3 +ht -1 +h� -1 +i� -1 +j� -1 +kJ -1 +kT -4 +kY -1 +kd -1 +kq -1 +k� -1 +oI -1 +oT -4 +oY -3 +oj -1 +ot -1 +ox -1 +oy -1 +oz -1 +o� -1 +pI -1 +pT -4 +pY -3 +pj -1 +pt -1 +px -1 +py -1 +pz -1 +p� -1 +qT -4 +qY -1 +q� -1 +rI -2 +rJ -6 +rT -4 +rX -2 +rY -2 +rZ -3 +rg -2 +rj -6 +r� -1 +sT -4 +sY -2 +s� -1 +tA -1 +tI -2 +tJ -3 +tT -3 +tX -1 +tY -1 +tZ -3 +td -1 +tg -2 +tj -3 +tq -1 +t� -1 +uT -4 +uY -1 +u� -1 +vI -2 +vT -4 +vY -1 +vZ -1 +vj -2 +v� -1 +wI -1 +wT -4 +wY -1 +wj -1 +w� -1 +xJ -1 +xT -4 +xY -1 +xd -1 +xq -1 +x� -1 +yT -4 +yY -1 +y� -1 +zJ -1 +zT -4 +zY -1 +zd -1 +zq -1 +z� -1 +�A -1 +�F -1 +�I -1 +�J -1 +�S -1 +�T -1 +�V -1 +�X -1 +�Y -1 +�Z -1 +�d -1 +�f -1 +�g -1 +�i -1 +�j -1 +�p -1 +�q -1 +�s -1 +�t -1 +�v -1 +�x -1 +�y -1 +�z -1 +�� -2 diff --git a/source/assets/fonts/opal_9.fnt b/source/assets/fonts/opal_9.fnt new file mode 100644 index 0000000..e1fada7 --- /dev/null +++ b/source/assets/fonts/opal_9.fnt @@ -0,0 +1,598 @@ +--metrics={"baseline":7,"xHeight":0,"capHeight":0,"pairs":{"Fc":[-2,1],"Fe":[-2,1],"Fo":[-2,1],"IC":[-1,1],"IE":[-1,1],"IG":[-1,1],"IO":[-1,1],"IQ":[-1,1],"Ic":[-1,1],"Ie":[-1,1],"Io":[-1,1],"Iu":[-1,1],"Iw":[-1,1],"KC":[-1,1],"KE":[-1,1],"KG":[-1,1],"KO":[-1,1],"KQ":[-1,1],"KU":[-1,1],"KW":[-1,1],"Kb":[-1,1],"Kc":[-1,1],"Ke":[-1,1],"Ko":[-1,1],"Ku":[-1,1],"Kw":[-1,1],"LC":[-1,1],"LE":[-1,1],"LG":[-1,1],"LO":[-1,1],"LQ":[-1,1],"LU":[-1,1],"LW":[-1,1],"Lb":[-1,1],"Lc":[-1,1],"Le":[-1,1],"Lo":[-1,1],"Lu":[-1,1],"Lw":[-1,1],"Pc":[-1,1],"Pe":[-1,1],"Po":[-1,1],"Rc":[-1,1],"Re":[-1,1],"Ro":[-1,1],"TC":[-1,1],"TE":[-1,1],"TG":[-1,1],"TO":[-1,1],"TQ":[-1,1],"Tc":[-4,1],"Te":[-4,1],"To":[-4,1],"Tm":[-4,1],"Tn":[-4,1],"Tr":[-4,1],"Tu":[-4,1],"Tw":[-4,1],"Vc":[-1,1],"Ve":[-1,1],"Vo":[-1,1],"XC":[-1,1],"XE":[-1,1],"XG":[-1,1],"XO":[-1,1],"XQ":[-1,1],"Xc":[-1,1],"Xe":[-1,1],"Xo":[-1,1],"Xu":[-1,1],"Xw":[-1,1],"YC":[-1,1],"YE":[-1,1],"YG":[-1,1],"YO":[-1,1],"YQ":[-1,1],"Yc":[-3,1],"Ye":[-3,1],"Yo":[-3,1],"Ym":[-1,1],"Yn":[-1,1],"Yr":[-1,1],"Yu":[-1,1],"Yw":[-1,1],"ZC":[-1,1],"ZE":[-1,1],"ZG":[-1,1],"ZO":[-1,1],"ZQ":[-1,1],"Zc":[-1,1],"Ze":[-1,1],"Zo":[-1,1],"Zu":[-1,1],"Zw":[-1,1],"gc":[-1,1],"ge":[-1,1],"go":[-1,1],"kc":[-1,1],"ke":[-1,1],"ko":[-1,1],"tc":[-1,1],"te":[-1,1],"to":[-1,1],"xc":[-1,1],"xe":[-1,1],"xo":[-1,1],"zc":[-1,1],"ze":[-1,1],"zo":[-1,1],"�B":[-1,1],"�D":[-1,1],"�H":[-1,1],"�K":[-1,1],"�L":[-1,1],"�M":[-1,1],"�N":[-1,1],"�P":[-1,1],"�R":[-1,1],"�h":[-1,1],"�k":[-1,1],"�l":[-1,1],"�C":[-1,1],"�E":[-1,1],"�G":[-1,1],"�O":[-1,1],"�Q":[-1,1],"�U":[-1,1],"�W":[-1,1],"�b":[-1,1],"�c":[-1,1],"�e":[-1,1],"�o":[-1,1],"�m":[-1,1],"�n":[-1,1],"�r":[-1,1],"�u":[-1,1],"�w":[-1,1],"A�":[-1,2],"H�":[-1,2],"J�":[-1,2],"N�":[-1,2],"U�":[-1,2],"l�":[-1,2],"DI":[-1,2],"DT":[-1,2],"DX":[-1,2],"DY":[-1,2],"DZ":[-1,2],"Dg":[-1,2],"Dj":[-2,2],"D�":[-1,2],"OI":[-1,2],"OT":[-1,2],"OX":[-1,2],"OY":[-1,2],"OZ":[-1,2],"Og":[-1,2],"Oj":[-2,2],"O�":[-1,2],"Wg":[-1,2],"Wj":[-2,2],"W�":[-1,2],"dg":[-1,2],"dj":[-2,2],"d�":[-1,2],"mT":[-4,2],"mV":[-1,2],"mY":[-3,2],"mt":[-1,2],"my":[-1,2],"m�":[-1,2],"nT":[-4,2],"nV":[-1,2],"nY":[-3,2],"nt":[-1,2],"ny":[-1,2],"n�":[-1,2],"Bj":[-1,0],"B�":[-1,0],"Cf":[-1,0],"Cj":[-1,0],"Cs":[-1,0],"C�":[-1,0],"Ef":[-1,0],"Ej":[-1,0],"Es":[-1,0],"E�":[-1,0],"FA":[-2,0],"FJ":[-3,0],"Fa":[-2,0],"Fd":[-2,0],"Ff":[-1,0],"Fg":[-3,0],"Fj":[-5,0],"Fq":[-2,0],"Fs":[-1,0],"F�":[-1,0],"GT":[-1,0],"GY":[-1,0],"G�":[-1,0],"IJ":[-1,0],"Ia":[-1,0],"Id":[-1,0],"If":[-1,0],"Iq":[-1,0],"Is":[-1,0],"It":[-1,0],"Iv":[-2,0],"Iy":[-1,0],"I�":[-1,0],"KJ":[-1,0],"KT":[-1,0],"KV":[-1,0],"KY":[-1,0],"Ka":[-1,0],"Kd":[-1,0],"Kf":[-1,0],"Kq":[-1,0],"Ks":[-1,0],"Kt":[-1,0],"Kv":[-2,0],"Ky":[-1,0],"K�":[-1,0],"LJ":[-1,0],"LT":[-4,0],"LV":[-3,0],"LY":[-4,0],"La":[-1,0],"Ld":[-1,0],"Lf":[-1,0],"Lq":[-1,0],"Ls":[-1,0],"Lt":[-1,0],"Lv":[-2,0],"Ly":[-1,0],"L�":[-1,0],"MT":[-1,0],"MY":[-1,0],"M�":[-1,0],"PA":[-1,0],"PJ":[-1,0],"Pd":[-1,0],"Pg":[-2,0],"Pj":[-5,0],"Pq":[-1,0],"P�":[-1,0],"QT":[-1,0],"QY":[-1,0],"Q�":[-1,0],"RJ":[-1,0],"Rd":[-1,0],"Rq":[-1,0],"R�":[-1,0],"Sj":[-1,0],"S�":[-1,0],"TA":[-3,0],"TF":[-1,0],"TJ":[-4,0],"Ta":[-4,0],"Td":[-4,0],"Tf":[-2,0],"Tg":[-4,0],"Tj":[-4,0],"Tp":[-4,0],"Tq":[-4,0],"Ts":[-4,0],"Tt":[-1,0],"Tv":[-4,0],"Tx":[-4,0],"Ty":[-4,0],"Tz":[-4,0],"T�":[-1,0],"VA":[-1,0],"VJ":[-1,0],"Vd":[-1,0],"Vg":[-2,0],"Vj":[-4,0],"Vq":[-1,0],"V�":[-1,0],"XJ":[-1,0],"Xa":[-1,0],"Xd":[-1,0],"Xf":[-1,0],"Xq":[-1,0],"Xs":[-1,0],"Xt":[-1,0],"Xv":[-1,0],"Xy":[-1,0],"X�":[-1,0],"YA":[-3,0],"YF":[-1,0],"YJ":[-3,0],"Ya":[-2,0],"Yd":[-3,0],"Yf":[-2,0],"Yg":[-4,0],"Yj":[-4,0],"Yp":[-1,0],"Yq":[-3,0],"Ys":[-2,0],"Yt":[-1,0],"Yv":[-1,0],"Yx":[-1,0],"Yy":[-1,0],"Yz":[-1,0],"Y�":[-1,0],"ZJ":[-1,0],"Za":[-1,0],"Zd":[-1,0],"Zf":[-1,0],"Zq":[-1,0],"Zs":[-1,0],"Zt":[-1,0],"Zv":[-1,0],"Zy":[-1,0],"Z�":[-1,0],"aT":[-4,0],"aY":[-2,0],"a�":[-1,0],"bI":[-1,0],"bT":[-4,0],"bV":[-1,0],"bX":[-1,0],"bY":[-3,0],"bZ":[-1,0],"bg":[-1,0],"bj":[-2,0],"bt":[-1,0],"bx":[-1,0],"by":[-1,0],"bz":[-1,0],"b�":[-1,0],"cT":[-4,0],"cY":[-2,0],"cj":[-1,0],"c�":[-1,0],"eT":[-4,0],"eV":[-1,0],"eY":[-3,0],"ef":[-1,0],"ej":[-1,0],"es":[-1,0],"et":[-1,0],"ev":[-1,0],"ey":[-1,0],"e�":[-1,0],"fg":[-2,0],"fj":[-3,0],"f�":[-1,0],"gA":[-1,0],"gI":[-1,0],"gJ":[-1,0],"gT":[-4,0],"gX":[-1,0],"gY":[-1,0],"gZ":[-1,0],"gd":[-1,0],"gg":[-1,0],"gj":[-1,0],"gq":[-1,0],"g�":[-1,0],"hT":[-4,0],"hV":[-1,0],"hY":[-3,0],"ht":[-1,0],"hy":[-1,0],"h�":[-1,0],"i�":[-1,0],"j�":[-1,0],"kJ":[-1,0],"kT":[-4,0],"kY":[-1,0],"kd":[-1,0],"kq":[-1,0],"k�":[-1,0],"oI":[-1,0],"oT":[-4,0],"oV":[-1,0],"oX":[-1,0],"oY":[-3,0],"oZ":[-1,0],"og":[-1,0],"oj":[-2,0],"ot":[-1,0],"ox":[-1,0],"oy":[-1,0],"oz":[-1,0],"o�":[-1,0],"pI":[-1,0],"pT":[-4,0],"pV":[-1,0],"pX":[-1,0],"pY":[-3,0],"pZ":[-1,0],"pg":[-1,0],"pj":[-2,0],"pt":[-1,0],"px":[-1,0],"py":[-1,0],"pz":[-1,0],"p�":[-1,0],"qT":[-4,0],"qY":[-1,0],"q�":[-1,0],"rI":[-2,0],"rT":[-4,0],"rX":[-2,0],"rY":[-2,0],"rZ":[-2,0],"rg":[-2,0],"rj":[-5,0],"r�":[-1,0],"sT":[-4,0],"sV":[-1,0],"sY":[-2,0],"sf":[-1,0],"sj":[-1,0],"ss":[-1,0],"st":[-1,0],"sv":[-1,0],"sy":[-1,0],"s�":[-1,0],"tA":[-1,0],"tI":[-2,0],"tJ":[-3,0],"tT":[-3,0],"tX":[-1,0],"tY":[-1,0],"tZ":[-3,0],"td":[-1,0],"tg":[-2,0],"tj":[-3,0],"tq":[-1,0],"t�":[-1,0],"uT":[-4,0],"uY":[-1,0],"u�":[-1,0],"vI":[-2,0],"vT":[-4,0],"vX":[-1,0],"vY":[-1,0],"vZ":[-2,0],"vg":[-2,0],"vj":[-3,0],"v�":[-1,0],"wI":[-1,0],"wT":[-4,0],"wX":[-1,0],"wY":[-1,0],"wZ":[-1,0],"wg":[-1,0],"wj":[-2,0],"w�":[-1,0],"xJ":[-1,0],"xT":[-4,0],"xY":[-1,0],"xd":[-1,0],"xq":[-1,0],"x�":[-1,0],"yT":[-4,0],"yY":[-1,0],"y�":[-1,0],"zJ":[-1,0],"zT":[-4,0],"zY":[-1,0],"zd":[-1,0],"zq":[-1,0],"z�":[-1,0],"�A":[-1,0],"�F":[-1,0],"�I":[-1,0],"�J":[-1,0],"�S":[-1,0],"�T":[-1,0],"�V":[-1,0],"�X":[-1,0],"�Y":[-1,0],"�Z":[-1,0],"�a":[-1,0],"�d":[-1,0],"�f":[-1,0],"�g":[-1,0],"�i":[-1,0],"�j":[-1,0],"�p":[-1,0],"�q":[-1,0],"�s":[-1,0],"�t":[-1,0],"�v":[-1,0],"�x":[-1,0],"�y":[-1,0],"�z":[-1,0],"��":[-2,0]},"left":["BDHKLMNPRhkl","CEGOQ","UWb","ceo","mnr","uw"],"right":["AHJNUl","DO","Wd","mn"]} +datalen=2992 +data=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 +width=11 +height=10 + +tracking=1 + +0 8 +1 2 +2 7 +3 7 +4 6 +5 6 +6 7 +7 7 +8 7 +9 7 +space 6 +! 2 +" 4 +# 9 +$ 7 +% 9 +& 7 +' 2 +( 3 +) 3 +* 8 ++ 7 +, 2 +- 6 +. 2 +/ 7 +: 2 +; 2 +< 6 += 6 +> 6 +? 7 +@ 10 +A 8 +B 7 +C 8 +D 8 +E 8 +F 8 +G 8 +H 8 +I 5 +J 7 +K 7 +L 8 +M 11 +N 8 +O 9 +P 7 +Q 8 +R 7 +S 7 +T 9 +U 8 +V 9 +W 11 +X 8 +Y 9 +Z 7 +[ 4 +\ 7 +] 4 +^ 5 +_ 11 +` 2 +a 8 +b 8 +c 8 +d 8 +e 8 +f 5 +g 9 +h 8 +i 1 +j 6 +k 5 +l 1 +m 9 +n 8 +o 9 +p 7 +q 7 +r 7 +s 7 +t 5 +u 8 +v 7 +w 9 +x 6 +y 7 +z 6 +{ 5 +| 1 +} 5 +~ 8 +� 11 + +Fc -2 +Fe -2 +Fo -2 +IC -1 +IE -1 +IG -1 +IO -1 +IQ -1 +Ic -1 +Ie -1 +Io -1 +Iu -1 +Iw -1 +KC -1 +KE -1 +KG -1 +KO -1 +KQ -1 +KU -1 +KW -1 +Kb -1 +Kc -1 +Ke -1 +Ko -1 +Ku -1 +Kw -1 +LC -1 +LE -1 +LG -1 +LO -1 +LQ -1 +LU -1 +LW -1 +Lb -1 +Lc -1 +Le -1 +Lo -1 +Lu -1 +Lw -1 +Pc -1 +Pe -1 +Po -1 +Rc -1 +Re -1 +Ro -1 +TC -1 +TE -1 +TG -1 +TO -1 +TQ -1 +Tc -4 +Te -4 +To -4 +Tm -4 +Tn -4 +Tr -4 +Tu -4 +Tw -4 +Vc -1 +Ve -1 +Vo -1 +XC -1 +XE -1 +XG -1 +XO -1 +XQ -1 +Xc -1 +Xe -1 +Xo -1 +Xu -1 +Xw -1 +YC -1 +YE -1 +YG -1 +YO -1 +YQ -1 +Yc -3 +Ye -3 +Yo -3 +Ym -1 +Yn -1 +Yr -1 +Yu -1 +Yw -1 +ZC -1 +ZE -1 +ZG -1 +ZO -1 +ZQ -1 +Zc -1 +Ze -1 +Zo -1 +Zu -1 +Zw -1 +gc -1 +ge -1 +go -1 +kc -1 +ke -1 +ko -1 +tc -1 +te -1 +to -1 +xc -1 +xe -1 +xo -1 +zc -1 +ze -1 +zo -1 +�B -1 +�D -1 +�H -1 +�K -1 +�L -1 +�M -1 +�N -1 +�P -1 +�R -1 +�h -1 +�k -1 +�l -1 +�C -1 +�E -1 +�G -1 +�O -1 +�Q -1 +�U -1 +�W -1 +�b -1 +�c -1 +�e -1 +�o -1 +�m -1 +�n -1 +�r -1 +�u -1 +�w -1 +A� -1 +H� -1 +J� -1 +N� -1 +U� -1 +l� -1 +DI -1 +DT -1 +DX -1 +DY -1 +DZ -1 +Dg -1 +Dj -2 +D� -1 +OI -1 +OT -1 +OX -1 +OY -1 +OZ -1 +Og -1 +Oj -2 +O� -1 +Wg -1 +Wj -2 +W� -1 +dg -1 +dj -2 +d� -1 +mT -4 +mV -1 +mY -3 +mt -1 +my -1 +m� -1 +nT -4 +nV -1 +nY -3 +nt -1 +ny -1 +n� -1 +Bj -1 +B� -1 +Cf -1 +Cj -1 +Cs -1 +C� -1 +Ef -1 +Ej -1 +Es -1 +E� -1 +FA -2 +FJ -3 +Fa -2 +Fd -2 +Ff -1 +Fg -3 +Fj -5 +Fq -2 +Fs -1 +F� -1 +GT -1 +GY -1 +G� -1 +IJ -1 +Ia -1 +Id -1 +If -1 +Iq -1 +Is -1 +It -1 +Iv -2 +Iy -1 +I� -1 +KJ -1 +KT -1 +KV -1 +KY -1 +Ka -1 +Kd -1 +Kf -1 +Kq -1 +Ks -1 +Kt -1 +Kv -2 +Ky -1 +K� -1 +LJ -1 +LT -4 +LV -3 +LY -4 +La -1 +Ld -1 +Lf -1 +Lq -1 +Ls -1 +Lt -1 +Lv -2 +Ly -1 +L� -1 +MT -1 +MY -1 +M� -1 +PA -1 +PJ -1 +Pd -1 +Pg -2 +Pj -5 +Pq -1 +P� -1 +QT -1 +QY -1 +Q� -1 +RJ -1 +Rd -1 +Rq -1 +R� -1 +Sj -1 +S� -1 +TA -3 +TF -1 +TJ -4 +Ta -4 +Td -4 +Tf -2 +Tg -4 +Tj -4 +Tp -4 +Tq -4 +Ts -4 +Tt -1 +Tv -4 +Tx -4 +Ty -4 +Tz -4 +T� -1 +VA -1 +VJ -1 +Vd -1 +Vg -2 +Vj -4 +Vq -1 +V� -1 +XJ -1 +Xa -1 +Xd -1 +Xf -1 +Xq -1 +Xs -1 +Xt -1 +Xv -1 +Xy -1 +X� -1 +YA -3 +YF -1 +YJ -3 +Ya -2 +Yd -3 +Yf -2 +Yg -4 +Yj -4 +Yp -1 +Yq -3 +Ys -2 +Yt -1 +Yv -1 +Yx -1 +Yy -1 +Yz -1 +Y� -1 +ZJ -1 +Za -1 +Zd -1 +Zf -1 +Zq -1 +Zs -1 +Zt -1 +Zv -1 +Zy -1 +Z� -1 +aT -4 +aY -2 +a� -1 +bI -1 +bT -4 +bV -1 +bX -1 +bY -3 +bZ -1 +bg -1 +bj -2 +bt -1 +bx -1 +by -1 +bz -1 +b� -1 +cT -4 +cY -2 +cj -1 +c� -1 +eT -4 +eV -1 +eY -3 +ef -1 +ej -1 +es -1 +et -1 +ev -1 +ey -1 +e� -1 +fg -2 +fj -3 +f� -1 +gA -1 +gI -1 +gJ -1 +gT -4 +gX -1 +gY -1 +gZ -1 +gd -1 +gg -1 +gj -1 +gq -1 +g� -1 +hT -4 +hV -1 +hY -3 +ht -1 +hy -1 +h� -1 +i� -1 +j� -1 +kJ -1 +kT -4 +kY -1 +kd -1 +kq -1 +k� -1 +oI -1 +oT -4 +oV -1 +oX -1 +oY -3 +oZ -1 +og -1 +oj -2 +ot -1 +ox -1 +oy -1 +oz -1 +o� -1 +pI -1 +pT -4 +pV -1 +pX -1 +pY -3 +pZ -1 +pg -1 +pj -2 +pt -1 +px -1 +py -1 +pz -1 +p� -1 +qT -4 +qY -1 +q� -1 +rI -2 +rT -4 +rX -2 +rY -2 +rZ -2 +rg -2 +rj -5 +r� -1 +sT -4 +sV -1 +sY -2 +sf -1 +sj -1 +ss -1 +st -1 +sv -1 +sy -1 +s� -1 +tA -1 +tI -2 +tJ -3 +tT -3 +tX -1 +tY -1 +tZ -3 +td -1 +tg -2 +tj -3 +tq -1 +t� -1 +uT -4 +uY -1 +u� -1 +vI -2 +vT -4 +vX -1 +vY -1 +vZ -2 +vg -2 +vj -3 +v� -1 +wI -1 +wT -4 +wX -1 +wY -1 +wZ -1 +wg -1 +wj -2 +w� -1 +xJ -1 +xT -4 +xY -1 +xd -1 +xq -1 +x� -1 +yT -4 +yY -1 +y� -1 +zJ -1 +zT -4 +zY -1 +zd -1 +zq -1 +z� -1 +�A -1 +�F -1 +�I -1 +�J -1 +�S -1 +�T -1 +�V -1 +�X -1 +�Y -1 +�Z -1 +�a -1 +�d -1 +�f -1 +�g -1 +�i -1 +�j -1 +�p -1 +�q -1 +�s -1 +�t -1 +�v -1 +�x -1 +�y -1 +�z -1 +�� -2 diff --git a/source/assets/fonts/peridot_7.fnt b/source/assets/fonts/peridot_7.fnt new file mode 100644 index 0000000..3f1ea02 --- /dev/null +++ b/source/assets/fonts/peridot_7.fnt @@ -0,0 +1,105 @@ +--metrics={"baseline":5,"xHeight":0,"capHeight":0,"pairs":{},"left":[],"right":[]} +datalen=1708 +data=iVBORw0KGgoAAAANSUhEUgAAAEYAAABQCAYAAACkoQMCAAAAAXNSR0IArs4c6QAABLlJREFUeF7tW9Fy2zAMW/7/o7PLVvVoGSBAym6dnPuSayRRJEgRsNw+/vz/eX59Pr4+48drDH2frcvsZbbHujFn3pfZ7a6jMbw2HoGjTV3AGHjo+/jdPK6SwBKkwB7rsv02YwOYl+EIklsxA3E3szFDqCpi5pnN4Sso7u8kz2MqwTtfZjBUhtGGWRazCmCgjj3s7IZ2oFqBXZGxxFgmsmMSgYpOHdFjWJBVP50eurPpnFlUsh//3Q0MSfENTBMYp1kpqq409CgdMu2kmqxLEjQ+VTFdYGbBNTe3jJarbNWZL+XICjCqAbPsK8ZyWTDTMzLwMAHup4BRwbNxVTGMQrsVmvnZ0lIKGGXUcQgJNaR645FQVaP8Pr3HdCtGrVsBXNk+ZLyK/CGbvoORG5hEx2TXAL+V3DOOWsnmykPkmaBVROHww2E01JQhEcT7GDRBCTGHrqvHtZRZIzste1ermFYQC+DQxDsXVY5WMXz7ntIp+ahxsipduTTb2K2WeUVqV8BanXt4pa0AsxrMpdffwJg6Bk3LnoY7Y4rpmM1sXXds9K4dI7P3LUgboIdBtj4TjWePIa1SvfTavGFUbPHacH4TEHVQZQyKqvDyj1VulojZv5jcbAzGoCqmS9XxOPx0pXUrZuPnrGOqGiHrByq71Qx3+4iichjDzUoJK11aT/yWc3fFmDqmcj9LNcDELlnzRY1y9J757Kt7o47+iTFsisR5iFTNCz3gjTVorZIF0acZjAgakgeZL6UxdR+DjCmNkVWSsjcDiqoEVcbhonGlYo5wRmkOtkdVGylBuatiBUymHej5NHqMclQ9krAjirSRagXw2N+sdOuYmiK6K0boGHbmlVZxekW1Ua7ScEWLMe2z+xPWihjLqPcoxmL+VMBGjTz77t+YYqWMec4EpioQs/mun5tDNQu86usHRoVOxWSqmAVaBcwVlLtOoyrG0THZtaHTg5jIU8dajcfjkvmBtA/954kat33g7Juub4FXK2t150t5/msb9RyCvOmsUU3UjdreWwHjUJ29mQkma/gOEcBGGv5RDY1Du87rk2rgTvZWaB4lK/PRkQ47m0x+x+DOAIaB1wpi8UUdPDUKGNVjnOqozrnUUao6//Hzz9IxMeusIV4a3LOAuXTQjnMOKzmNkj3vVNe67OLEtjTH1THoIUzpio5jXWCyo6v8hAQD/zYkRHQGfXZFowMaupZoxaAqpmVU6AoFTKZesyuO7A0maxk0PgXMCIJJaWdDdKSU8kXjTsWMvVjAzO4uvgorHamAj7TV6WVyjQJGNS65AZhweVDeUnh1MtFZoyqmY1OteZuKUccle6jLmrd6GERJWWXB0+h6zqZyNKPWFdpFlK58YXTdYlbn9UmXkplDLu2yJGWUG4+xulKZqX1j13nhpo4S0ynoMQLpjHl9drQdUDNA7Sp2BJ4TjGq47zAOK8Zhp7dgk2IGaHU6gBT3+ozpDjAD1XmuOu+ZgES0eilE5+aLglEPfCwgtQ6OP5/PWN7/bD8eDyeBhwKrKI1VC9IZjF1KQb2AiUDMvx8afWLMudpUma9WTBrblYCZSxf1ksoRy5SmTPiVgJHO/uSEK/aYn4z/8nuVGuPloznQwb/SelBv0W6ASwAAAABJRU5ErkJggg== +width=7 +height=8 + +tracking=1 + +0 4 +1 2 +2 4 +3 3 +4 4 +5 4 +6 4 +7 4 +8 4 +9 4 +space 3 +! 1 +" 3 +# 5 +$ 4 +% 3 +& 5 +' 2 +( 2 +) 2 +* 4 ++ 3 +, 2 +- 3 +. 1 +/ 3 +: 1 +; 2 +< 3 += 3 +> 3 +? 4 +@ 4 +A 4 +B 4 +C 4 +D 4 +E 3 +F 3 +G 4 +H 4 +I 3 +J 4 +K 4 +L 3 +M 5 +N 4 +O 4 +P 4 +Q 4 +R 4 +S 4 +T 3 +U 4 +V 4 +W 5 +X 5 +Y 4 +Z 3 +[ 2 +\ 3 +] 2 +^ 3 +_ 4 +` 2 +a 4 +b 4 +c 3 +d 4 +e 4 +f 2 +g 4 +h 4 +i 1 +j 2 +k 3 +l 1 +m 5 +n 4 +o 4 +p 4 +q 4 +r 3 +s 4 +t 2 +u 4 +v 4 +w 5 +x 4 +y 4 +z 4 +{ 3 +| 1 +} 3 +~ 4 +� 7 + diff --git a/source/assets/images/menuBg.png b/source/assets/images/menuBg.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc737da59f94a77138e1a0dd4e51bf4c5648505 GIT binary patch literal 13903 zcmXAQcR*9u`?nU0)Bz|UBC-(>6huU127wU3fyhXaRVhPJh|I`JO2x8CSh9%%%92nS zvXgI>5fF%sfB`~U2s4m02?=Ju>F@pL-uvIV=bm$(=d*6sy}O{3$Icx)bm-7YR~M)I zhYlS^N}m6fk(OMIZLVrdZii#L%Q%wY*cxaZu+5{>74^CR1g*>TvBWT>;xVmTJ;aVatg4eWeh~e;&s6H#ez7)UhIc z>~@8)c$g|>Y9N5n1{r!3_QQKwF> z9bd7z3KVAiw40Oc^|SWIYentQ+|RfD-vu!6U~Jb@vb}!;)J*vSYCg8;xBd9BpSY)E zdaMv$!P5R5dfm@W|uict|AY&P#N8{z&*S!u0v1Sl`<>M6&gD z+hR@|OM2$xqxMI$Ji`vHkZ0Z2(FgxKbv1@PsV?sPj>J9&pyB;&HLZW1vYu%an@!X$ zkqZF*WzPtK+1)KzGx8ZJ*Xw34U-f4^9(o?pN7HJeEp;{YtyIucmH*7cV|qM4kd^fg z!2S^rW6OrS*H!lxek4AJ<*(Q`HX{A+q(ADI*4v)?x;GcKnJ`*3h(=*j2ULR=#C2=8 zcrA>*8F<28C->rZ&wj@mL4QJND?ewxAtL1{PM-6C8zvjJ|*MX}|(yff#6z(r* z!;v*+@4C+7f;Ah+Y4g}iw{ zvQ!LSA?>`4do?*NcQ+0+1zm_8RXA-!oj~<=s!!temX|hq?-*DqD!La!M_c@Y!k6LS zJ`tBbtHgT9?_Wo|eTW;OvqQ!G5nxI(PwTJDZZ&hUH8a!{IczVBm5MGnp;QIFtx_zU;y#lQy%6LDrar{JB+a^!PI?(b`_^)9)n+9?n zd~iW*x9GiHsY(-9ZF`cpxqHVRxO&R7apP&cojIZ|s3COi&SuW4AF0I*Zi+0``ZZ$b z$g$;juDmVzX~6}0@~q~OTNA%m{4XE}>nV>IxzEZJIEye2wE3gw+pfqP{?J^7R2*w! z6%P2py)`D=^h8S=(9u$XBemD1U_N%e6Xv5~iZqN>8S`o!12XF}9xpcV^b`oAPg9l? z1E?CU{bzAs&f*+)S@L`(nHc93z{}N5H$B5bl&J=h1DI}m)BYo5e<0KMd;my|d$Wt) zn#fEJnu2N?&OR%sv|1Sqd^6=oP}Z_{_+tk~IFf2zq~&y8iO|9_@3$K+VrFbu<9H{^ zXSu}dWsRAlZ?#vCvi1AJft4Khn36;!yq$ZK(KcS)*KrnCY9{ZtYPfnqn4B0tXpWuw zALqvqvQuVa4@COzU%ZDPw^%EF)+O`97ff{eOP;hhP%c)J$tTjKQ(KmSF>&%TDqjVV z(jswljKxabf{q?_Luy+`Pg#jjCr-s*at>VUfocA6YWvHX)Gk=Uo+H7L`+Cdw1m%m0 z3+LYZ#Q1tZd!x^4te2o0_{;=+?9OJHPI}uFY4*9jJc#Dp&BF(%i?ciD(xf(b4=1k%PKwf&_nNjQSH!q9$4raWQ^&KuKuJ6Uy z<7MTyJC4;F&_y6DOD%Kt{odJ~PPE-QcWQ4;DfjF1c5E`He`RT;pFwlxKv@laSe^9N z>qT2U5c}nWr`?>!K5uCz5#AZ}fZCWygP*=*RihhpB1CIpRG6pNg?k^(z-HN=PL!0> zQ!LAf;BZ_@++Ubq)o1R!oCqnlKpGZ)3554lrhIuGtevh4(#VVw(qLihIsx6i-1)co zNjXB0A4TZtk<`_s zMH8hb1Tly|_RWzx4MQU(-#kXzAtPiA^;sU>cMDs4#qxe)w|R$ zw<){epQp9wE(V0e5uO{?P@GD9<$rIbku9H+uYBCW?+WTt#(Di~NzRi&p;(WC$*aei zxBkdN-nDAue+S0jja2tdZp8E@HHmt7AJ_h`j%wBabA5Vxt!ZnT7an7nkX)~<_TCpN zNKOW6dJLnY(#rQxttbPy;pR>DXWuG+z9Gku>%bceq(UAx$$E{(L!H4IdHNyqd5X?d z&$XC?=x`T+1DaM-`+4EzP|4>z+-=&$7Wc%C*TQ=&pGx!AqQvA(LCny#sj>o9ghg)9 z3Cj8jr<-NtZw5MQ8q|jxz6;SJ@9ac9NC%%ZqEL|hhUPT+^N$wAP|$=$h@lQfQt&!+ zax+yz)~D4Bh#+bK;1SHb##Ww~h#sV%-lq&zrYBE&_fFkoO|zk4HtRo_0t$;nb+u=> zAVU0zP2*XOF+zM@3T*$ZfSGEF{NeQLyCUhtOq<`yd7jf>G(VYzfC;6RojX!= z)m7{uCZ?@?jzJ8DQi7DZ8tWEB&n%I?N{(08KIfc@rT^Zb>MGJLdQ#gkJdl9t;6_9*BVu=&>_KJLWR`X=}idXH1ytz_Dl+wmOBRQ-8?9?%c1Nj@N^L{5n zOy##v)?0IF?-8=A#IDimgOboI#!_Rvw&cK|(X;^tryOuBk6)hF0XlcY#;G(Y8U8k+ay$eKxGQaf#z`>g|@bq@B z<*#Ak!!#ML&x-EU$}d-M6t^*@Ar+b8rXNTe-|u%|mgdPsa;nvY=3A!*;9?xaMkioa?U!ImmOn`7{pK z*b|kLyQA^IZ2Z7r3UvF|C*2i*e60UFP_mt&Xy<(JgB{UDSd^#$;{qG`(+l;r2lZ|M z_L3b6(JU@@JJqAwzSEu|JJ~&kK=O(4zr@`!UxM8A^r;+GodQD78^fjEOwpox#;-L~ z>UjFBDkjQfZ!Ff9c-i6{1 zn;)G4aUEGYiR`e~g(l;w3!}7QdrWTH*N2I9RoM)TL8zRdF>&aKGuoP&*SJKBFw;+N zObp$el{-Ph?TY5IPKniBN`C5L{lx9(g&|OpfD1fA%!0T;Tpac-D+Qn3>X(ua6FNf9 z9_tuCL)5?KtNa0Fdi3DL@+6=b;>#5!J(BRy9%0uZsRodqmHs17<}@ zACk-9K^LzHAL2TmShwe7U!25`w`_)zCyFiVb5YF+36l*%^)d0L03}S;gknAQLp*?= zh)(&)$KK=$arehA=x`dg>7Qy$G+T4NQ%Ny)=~?;?;Hxs!Wa7gL z6;7YMKt6iW;dLkM;P4x^%UzDwrl(B{wJ5c@O7`LPl^q^hRA-&ol{j(fT{!G*80~7F z5R<>(&-IxMf)09cS2vW2t^YB*6O{N96yxEJh*8lYPllK5z*Xl^?E>2ZQowD!q+j1` zR21~Tz8WEWBv9Q5Dq$e8hGU7>|DYXmrJ(^y0JJUndd({FvVLm16Dj2lqq!>kizoV) z^I~u0-GEKpWa%T)`%&a(WXiNBis5=mEzjf~IxT5nULROG482RC>hvrmV^X<1e ziH#F_3W$hU>k9W1SAW${%i3nxj2xlCz=$fy=5*=pYkuqrj!Emm zwcZK~(D1wQ6NZz;W#X;XMqVW6#yFsTG<2iB%@Ok-t7!|@EPsNW2BIC|pu=b1yntN* zGG1>ePwEd&FHLX45u({s4Q^%_A#ce-{viK)?USL~&DC?&?$ubs21gg(SP)u7T&vS< zaCD6mKaQ~i=t4RD2bTj_xrIT#=XKsWa)U}*fTXO=k6ENaOyr*Gls)=gN5r2CJ&EwO z?eSXHA2-0q|K8TvNi_Nyb5CC?c&3%&KfH;F5cp#^jEFk zWF%}t^ANk*dK)zTaV(-H^~0`+?wBL%ud2}Tx^^WVZ4ekhZA@Agc(Z**PKIkL?p_GO ziN}N46hX^*f&PSddCn)BE#ALliO;sV+uvnF;=*->ac3Wio?4n#MkV`;bK4QJrU9Nk z3#Ysko2k9L0Dd)tUly7Ju_&@Mq){xq@7{jNv@3+7unpUFENqE{flDeXFX&-F_E)_P z@W)?PA_KuJ>*O+@oW8{gOu}*rL=&u!u5jwu)lJ6b6QLhFYm6F%EiqOTvh8#O2gCa` z<^l*`RCZ+eOUbOIR-)q3Y&k8cIlP1GN}a`+F^BE-w1*%!Kanx`f`#jDrjv@l>rcI* z-uqB7R~PU1a&phn^%#$=_IC6syEI51U5qQPSf5>A(yoep z?y&;o)h5ZCE=35>dBe8^>U$F2I&81bl8&(mfm^= zI62MB`fcU2Aw~aG+V^Q{3+}JMq6XcBb;HwRw9WVo+z~AbIZA9m4Vbi<+t|#l;{n+> zL*?uBnSjYU3AcW1LzFPYTky!W^Ubu?xi=<;f&BEhK?iYTBvj3PMzxy8kCyON&PTBm z11x|`w|l`2sc}`Meyyw_3wb4OLcC}vsqNM|h3Gb+1~ydQ?EGGL9lJ?o>XoM%6y1_Z z1m(V*0+^~*kT26eZk~Ab-U8`;0=sdtK3kWxnrKvSK;e?ky6(TVByz7|0gEf+sxm*e z^QZEx%!zB`Afmg=qif9Fc@5J+gFq4$aEDAP%Lqm+*);hUrG$8Rb6T#bHtTm#m56Is z6@Zc=^TSou@`q#J2JdOv2EGcaFR<%=;8AKHY%>O=jIMpv^~h`%XXaejfBwLVg)>RI~+9 zgn%_#6^4s;R83D-h>4rQn#xz?t^5^x-d7=s2KDYT2K}gpNgZ*~GO3LxZO_;alcCwo zF(_D%7$&)75_03`)`7Ghm$3QgJMV|iH?tPn5WKU}=6(+CaXkUOPY^BQamJ~uBI*<$ zD<|JET(-&%5f_RZ%b)~ML{FTVBRhI9ZJCl2XLZR#J4CLnZ^c09bzXki2x9ea`+C2x$YGm9bvZdNq?Y$Vi)a;Tm-?jtY zoc-Qh#km#p0Fb&nh+!3#kQuYxPv4XIEiR|`nrNIw@yEwrnkkJqvLR<8o_3ZgTwc<+$F z`~3g)Pc$5NJssoE#B`Tj%rH8nZ~VE(kVZ@7eX~4wVj_PD2B7gM2(wfV$MJc6i<)s> zPTK8XG}E7Y^=98D=%V6pXxHE7H;o%*fO}tg2&+{Mwjkc)I7{hJ^ylJtb`^g)xp;@}=#=5UYTr2JWXQiqRU&A3 zyN51I)>2naYc0xBi|avca%o9UeJca0d=j7f)}YEf_5nFBC_W_~aEjHW*o^m|@hicH zsqb*NvPb1@OC$|!L7!-SW2aLWTrm5He@5rIy3W~{E#pI%LHx$6xb}#v%bYAc z-v}F-4eL}$ay8xFzup}e6u;}e_6WOA0(FYJO$&5%lNvS(ZjOUBHtve2MFAB4AA-Go z$j0Pm?x|*W{*D46s2g@!GMLHN?R*|>I7b$BYpws_7AL-Kp|!0tYa&16!Jz=Xd!gFR z0pL99RNY0MAw<(KCffQTH2gy94)nZ4@1pyx{6_ic>gH0qGO@BDw}_yc%vd~Fc}Vw- z-Tex9`{>w0TvP`?w}I!dnXv&K>o)a=Xj&vml~)Vu=BdtK>vjkFSGrA`A_9>BXVas> zZiIMxO-2JJ9(Hslx`6|R9v5*u=Ugu$hn&JpFDPI1Dfqm_b^&O8*%8&C$=odZsrwf~ z+!$Jx+|msYf$mdpFm(t zC&1x>w`D89tp?Z_f+q<)y7Y^Jj@{pDH&PwFq)?^?XJW^Xd`y}POWN0S;A3+H@73Y9 zQYz7p!gSJ8e>0PNK5hOP1oa_51vus6x&X}0UE%VuY&_Xp?=3pEJKET+w^Dc^*%_18 z1JR~Ew|I8V?u$R#>6p90Rga>Y;cG22sc|Vve5-Pqy$obuFrCQW5beF#jb1Mh7DLcB z=QOwt&8VHy7IJGhh|Qp?xNKZ0w&MI|QEKqPpF%RPk?7sc*X)d-a_70GPcp0#y9sRX zQO^Odjhji$323fZR1t`u!boZ9&b&O~PjRn)W!2KJu64|tocXtN#=%b+7lZY51d80x z3=QI~7%TU>gFBn%<7?RgvW^KtP{K5<&iT$Ju@z8HACuq+=_|hzhx?Czz?{@74DzDb z7}d;8(9|`C$$Y9FS%EP(w3uHVnaSB8$zu49*0RB)eeK8IT8b|C%Z$%ciKBTHS7 zPFuCxf4^6m`WO^|U>59@SYsbR{F5Kq5Mw1m9%cAMJ@w8D$u*Qr0r9)uh|{E1K0bm&DQGo9UfHk z0allk;OYVV0=q?%F*D%Wd+ux!4Q9wuBU&b*)DSpaTQ`x-UhS=2^nT|J}OLDmV=7C(}Kh3-V zY{)^|Vr)HpFfHXTRTr-~gK6(X$?;QO$lPw^m%V(ggS}@KyQh;Hm7@KpgD8GsjMwm_ zx*(~syl^?v@bf5GB3VuWvw$wYl^xxNuA^;zh1E9)t+mw>&*}gSGmzO-AM{p#Flw4h zooK^jiiM!b^~id`?ryPjt_fUpd%5i{%fO8eG~N#J5PC#UE29?SLeDc zl0G*rx=%O&Ma|fLj-$wXuZf3X{xYUYw&Ad65~YYb1v2GM6A$N9kC`et$VN3l+3`A` z-rG48Dw54CwRkPEjHR4e0t~=1S@*k+=$I(lZK8-zd49R76){2NnFYgh()|BtAEwn2 z!FWFft#ppJRce|&O!`7dMGEUPD$@F}9^7?|X)phRxB&iWP#@Pc7H>gn$4scYC>K4G zV-nV~n&ejvj#58`fimc{jHSzWp=7z?Uq9L`#aZv}I?P9T&TTZ|g!mMcx8s1mt*0r*m>OAq=xyPM!w6KOK@i~r2 zpH`DCDeu8escJdrNc9{IeAjL7I8)nz603JbQw@d8A7f(~~QH!ke z%kF1jhV4%e&s=^WF-oM84j4lNv?%dYex?dC<>TOxjq}o4&1Z8v=w#AP_nxYZ*2S(O z&&~e+Dx}N2NJl(le)58?7N8KijYoTu07P+QOtzypI*>m3Z@(X6>&{0*#BS5|`=!JX zY7rHW|1KddSCIWWqY=M@T#B<@4*DR|Ag%+`7uGW_JKl0Zm(=&mgTwT>TT{gdEq{sFzS z+nnn5wcX{CLxs=j-HOI@L7_p-YBUk*dLY|z;YNfAEzW%0lhDtp-bQ4<^Mfxl_TSmZ zbipRhf!JIe;QtSM`WGiNuC9_=f}y&{hrV$WXh3OM#E}1^m4E~4A~5kIMR}m$MigUG zbm)+h@V_hoIjtvi7T6xJ*5dNJRkROGq8}=W4e!UvdZ$yCd#u+;LLe|ByCo^oNz{DZ zbH<&y#|z(lYlLcNXu-qxbi_Aq4~H7>hdD3}paJhz^EG_sl%>l5XTSWJqHV^$;v@-{zy>l4+o-tEMe|3-zF=NAmpQqH+^Gzi^_QoYvggMJMS|H~^R56gL&s&vs^ zOq3kkN2}prF?sJ!_G-K`z}Q+Aw&$HF6>U9eU4wj|t-CyB6=Ac7U6bYAb-l}I*#%$b zxHCaeJ5P+7)>9_+Qlef|F@zFC2%5ez(>6Xfx-Y#tZp5ZZw2QLgGP0+q!&fz%N%9vu z?=?(GK}%eSt&P38`I1tu?FvMD(l!DXzW4J(iQP>_AadGQ)uR`h79Sf`(>tUm8`9AU zJ32=WT#X$ZK+uWe;t0kCTM(z05wixrUK30?BW^4=guO`(T}Q*m^b739LEfT$3wZ*W zBG+t!_Rpg>MxzJ4G~f$=|Cdc^dJa}^-~A`$(}2fMH0ykk|n+UFQ{f*qd)i3 zhKJ>@S+JpLN{%E$+eaf~j%6C{wY^BY7ydq>Z&%RBa_01{{q!MT z+Rru@G-jXB!;Bc{W_TR{*UrDY$teP~bI+PC7$6L=%`wc2#3dDwKCBtrZt-KWhKGQ} zyD8GRtS|lwvtzQQnGVu1=2v|d=vJB+j$9amV>RO8b$fje;9!BaEtn2zH4zwgy+}LJ z;QB&zC(7X*iMiL6S6LPJvr=lOhDE;d{k8#y0dRz*k=G!cPGRa#qAuvyyYjbs^1Ybg z4|TQSo!I^|Bf<~a;kx*5rM%OFr|YL(pMiu?|7%%8oklh6#hM~wofg&b>yWg=GAEKA z*`8%||G9j3Bfm}i^R$cO-oJM{>OOPlf~2M~oS5}I{Ys7W<=W?yQ~HGPxY0WhgU-97 zsxF}Dy64uLyT2mNxtj-Rr_xfgLETl%&5jkLvp7LFkJS4dD2>`Od5-o^%qYSp zw>-7Tc1PrbFC?!?_TMIK*@5Ubg=i}AKSEcFp&i2VNzix>E~qnb z=>I@9jZeR3BwGp(taVE&)5F(5KiW9NxHEz%rTt4{ul{hZc_lqr&mlh4v{d!VD}DIU z)s>sgE}FAhB|(soiqqyx9gb(zC?3!u3i+6VXITa{s2v=7p4Jxu^MLhp5bD^_VvlHW z<)`;y(2ugiD2jV7YV80o3St;t3ZEr@#%u^#PqDsF~`sQ^D^N9bJ z!Wzn1IF%eyZtGH4plwW zr$yuNgB72BD^5qaCeb24z6SEVrtP`Zwu{^5fVDJW?4G#UPO_n4 z5^KweBhl;ZzQW9y_oMq&WZpb4fCv1sx>2f%Lcp@pLacWxf2UhP^EAXH+<05K>1b4# zeGu9c=CwCAKMbCve)szsYVv9>YYgTf3m((ic&)9}=jdH7%SBMU#k~?tNZ&y8qnd4Z zlA|7n;)YiGD1tgzIRI{oV0tg}eNh7?Wy*wjwSj62tviYN?c zAvkN}0b<+86mxjpcluhxNXI!;tL+T-Xsz~(#=5S!zLTl(>;j>?qb#(eR6re}M)B*c z8U0I3ks8Bh<3|mj)1Vsl5R(Rr)6i7!pl&f}yRJtaZT%w6=0{Wc`>#`bBqgNNPV2bx zSfSlQjXCC^VKU0*u|RFL+AvrjqC?_Y|ek@v|5W?ovATt(= zVl)7!KBGKIR{kceEa&~)8;Z~uH^z+16)JRm!#7ySK0xe~%uy{2z$Bh6U5HK4 z)V+E8t>4|rtlideo%CA?m$_wBSBsh`yM&>xem%%2QCq3W7f)qFY>5S6*1?RaeNCO$rd7p3zBd#u5a& z$r6vVFD4$obHhrb6HtgSj002mngJ12VR_b*qr>(*^ke@J|H~Vl>RPJcz^>9Vmkg0_ z#!eRX9;Qd6pQ;NkJ8JG3;nT5xH?T+Kfu~{$PP4p5HHN8e7V^jDpY|%`)~z~me2TsR zBWSRd>vj&A9UND#Jww-WuTJt}fIBerU!SoGMzE%sZqVKK~xeDJp#Gr`HYQF*I0j2tX~Y!ZAfXH0v|a3*m6sq zaG5>%iCtQ0QZJsDC{ZJ3@=DwNnSUU2jr8jsvCSgRAip1ydh6^vh$7>vU;+&l>iA91#&s+l(f?#EPs3hl;3DRx%fIO++?jGqsJ^2Ii*6r%uFOmto&F6oM=BZ^iyQqO~e+s=?H`;RhCDL4r z6czGsTq*@`oCp;)@(eWkIHi+8;~EY#1wx8OcRsQjJT?Xh0h^2JvEHIRh$i8eZt1mu zZsUM~PX-RC&5(WYddlfS{P;m0Iw#9(t&)V`IVTV8%c{tj{^*U-Xh`sJ(3VuN>XvNS z`W3GtY8Ff4w)#&3#@h_w+R3=PB^P@pLcMBQ_|XSS)qD?rS?dCO=_&s{HB<#>R6RX$ zs4tu2u?aZ-(Yl7_^;pB3;>asaG4?F41}Fx#XD|`W%0o|d!SGffUx#1IEeOJC_;OFN z3?0 zTT%1B51SSB;Va)l@b)-joy9Gx=V`x6NU)6Buvm3ZPq&28QUM@u(Q^UVF?S_hOsZ5C zvtl1Qnjy)#f;cB1YI@g$GKYbI>F>QZ?1!@|j3%LSM%y}xXNWyXq*UNqfOzJ+0m3V} z1*XXl8>>t0p?WTF`OhXr_|Nx<0C>gg7VMMtNk9ACW8G9sn*-Z08C%ZT}c=poDrzjUovB-6m-HG0yPqJ#thtXD?2a} zHzK8f)ia=N2f#!mV;%#@$C6|QpePF_D~KxOv8e}gWrV-Ii%{r0{^4K08;p&)-V&Wi zznk%7n6Y@n&eG0T7b|uk2@97)&+jA+rMtj}ivN&UWw^B+M*2|mq`9?tXSLz_rbj~a zFE5!5UnC8&eGOzbZLH@C1FzRHHzSki^SJ;{xS?ogYTaO;PPXa#<(<;?MmB z+E&wZWAVJek4-LNXi=(rS!CXeGO1Q~R=>)X)`si6)_|NenLy9VJL&0j8?G+nC9}^B zW$WYs#L^#+`@&nO@l^ZbGc*7C>BC@BWc8qe6INGSn>WzkhDPJOIJ z5?R!macI^Db2f9Wb@gY5u=<*fqN;rbrfzRer%tj9q94(a+weW_6`td{09%ok4fuC8 zAM&F$QIcmbLk<`vW+pZQ-MShG+<)l>@`YQ@#_n^ViEo#U>k*VFn19lDRgrB~!xDYu ziFHjGP61!kfyIlIrBn{}&xKLc?F<9GEtQtui)3y$-gZ>8&@A@!3S$lDfv#h`^+OIo z9G`6QY!1Ib=;iKG!wlb7%dD)TJ$I7@qpWJO%PV#-hFfT2AOWR? zZb=FGZSScv@0$h3|Io%Z2u`OSb@=OTNFA5>H)u){$3up9+bDJZQ1qt0D$+gP*2+c_ z9_nuvZ!=yCC0TMt5Q`5JI!{nD$1X`bREPg=vvhm=S=gP14fmuLmaDk?OI>Z#??!zI z=k~}?F`gYs56twEL0|kT=%SOlwcZi`HnYMnDDP!t$L6q(-(FpsZyR~CpJKJE*d~GI zfCqO))xB7qdVeA|XM)6lCVtib``P}WBql`ZI=()4+vHm0_t!`3z|iKm!WK!S)z(CD;Jul@wSS108eLkaGKFTf^L!CtYE}Voqiqyf zV_LrTis~2<{tb#ncTC^LKIlpw5lr9Sh}igmD0qSo7X@n;Z!6=PelBp81P1EiWAwel z7MLR(mq51kwxp0$MnY$`vC}Y_+-bopVH{lI$0S6wBUydxl&7VxJ!_9s!FQ=e;yH>J z>tznrK4 zP-^(SoG|B{rlR~5m{7H7v2!xLFsJb42K38COVTe$JEg=vT;2%6ZGIOv)>b?hp^i)q z0htFqPBqsEQ!wLIb$35ZT*~|xN^F8Znl}WD`mmm3osrc(bKirBa@ESe! zyydFKqIu3YfF4s;{+vO^l$$ol0U=_xdQJxp&fqt{r>@XkdMRw literal 0 HcmV?d00001 diff --git a/source/assets/images/solder.png b/source/assets/images/solder.png new file mode 100644 index 0000000000000000000000000000000000000000..d136677c90927e602e21b6f0951f6fd683823ad8 GIT binary patch literal 1623 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 delta 3552 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 Wble)fu=~vNE}4t_t`eu<3;zU|RnYSQ literal 0 HcmV?d00001 diff --git a/source/assets/sprites/selectionanim-table-40-39.png b/source/assets/sprites/selectionanim-table-40-39.png new file mode 100644 index 0000000000000000000000000000000000000000..54db5d76458b719f1ddec3854e5da0760bdc3774 GIT binary patch literal 2308 zcmd5;do)|w9!@CjsP>NOOSML4DcUNE;*M9Qq||t|)e7SgifAXn7_O)$f|-`0(n^ak zC1q%Dy;@4eBeX@lBJHIiR6G*Tlr$nFKPTRb&EG;JAyfPN15>!;3%%8sX=L@bmwsz41^U?i14M!{1g)j!%GBSqkT$BM53ifA|JnM;Y_ z<@|REhmUJQA4=u8!CRu9JfhS6;kQGaOTi0TYRw@wp6+?Z$B`L z*v_=dd0~NyS~fKuM|V;gQ6)k8{pNkkGj&*3EVFsJ9vS|v3ppsTk@v(b;3YQU&PnRA zms$Pmy21!pDRlZ`4p!C(|KIf(fa^fLKgC ziSj*$NJ7-9?QJ>=pf_n6T^@9g#uSzOZ~%Sg|EOS**t`GyR4#z-w>I8u>0rrJ(Fn{1 z(AS8YS1KY61HMaj5Alu%zd7>ZXY9R2S~!D%UFlgvSfE#hI5o%HwUNl+;?8syL3H;4 zU59!-Sa~;0_&Mb9=(;RUE3PT5ZM!Ol=LefxTt z7a}t8Ff&}M@%{Ud@SC;0dOQt-*}wTuBdH?6fm3O7_*U!NrU86@&MY2%GnZ9@<)NVB z7G$?#tqFT9gpK?MyY4xi!mj6EH(PMQb;DbR?W;`5xK9Qx`ioNAg9KN3T<8U{%%+OjrIrsDEea&N@&U4*eC>$!wqbN-_2?mmj4l2DfosJEjKvO0FO z8P!F#%Y(4?ecz{7_j-h*&`3ep5GE1t)IK9{4K9M_SBnyCfZ&rhieK}ndypEnEHM$@|<^;J;g3|qHfnI0wKn7K@%mQ51t*Ls%r`(j$d zlzaJ4nLmqz<21O%Gc)n%lghpPNxuKT#JQde*&;vFdN{vQC>D6g#L>l+627=u)Ottc zFS`P%XPN=Ylbsm!ojiq4*6yTczWHJAOWC@t6T@{X)N?BkQFyqyKe8B>Z)wl6Yq6P^RKOvGg`Wr_p1C(-fn+ zhCPQSi-+Ko!lM);N|;~+YK@iemtocpJZlqiO_uDSn(qSJ!lENOzogAJ4-aWMpN8=Y z0uGu(P3!WJ+)1X|r^a+L1|X?C z{pOTqZYZh6l{s96O+0peuFjHb92y?Oj=y9keqc*jZI)m#0jxAvfVXPfi#Z8 qSX`c9w_%twJ7Z%a(18mdl!Lb*NwB5XXg|dth}&5&XpK`y+P?vkde2k< literal 0 HcmV?d00001 diff --git a/source/en.strings b/source/en.strings deleted file mode 100644 index e8822fe..0000000 --- a/source/en.strings +++ /dev/null @@ -1,5 +0,0 @@ --- These are example strings. -"menuResumeGame" = "Resume" -"menuNewGame" = "New Game" -"menuOptions" = "Options" -"menuCredits" = "Credits" \ No newline at end of file diff --git a/source/jp.strings b/source/jp.strings deleted file mode 100644 index 29eb461..0000000 --- a/source/jp.strings +++ /dev/null @@ -1,5 +0,0 @@ --- These are example strings. -"menuResumeGame" = "サイカイ " -"menuNewGame" = "アタラシイゲーム" -"menuOptions" = "セッテイ" -"menuCredits" = "クレジット" \ No newline at end of file diff --git a/source/main.lua b/source/main.lua index a7119cf..edd46fd 100644 --- a/source/main.lua +++ b/source/main.lua @@ -14,6 +14,7 @@ import "libraries/playout" import 'utilities/enum' import 'utilities/ui' +import 'utilities/utils' ZIndex = { player = 4, @@ -33,6 +34,42 @@ CollideGroups = { wall = 5 } +Drones = { + { + name = "Quad FPV", + description = + "This is a quadrocopter with a camera on it. It's a good drone for beginners. It's easy to control and has a good battery life.", + price = 100, + locked = false, + preview = Graphics.image.new("assets/sprites/assemble/1/preview.png"), + full = Graphics.image.new("assets/sprites/assemble/1/8.png") + }, + { + name = "Drone 2", + description = "This is a drone", + price = 200, + locked = true, + preview = nil, + full = nil + }, + { + name = "Drone 3", + description = "This is a drone", + price = 300, + locked = true, + preview = nil, + full = nil + }, + { + name = "Drone 4", + description = "This is a drone", + price = 400, + locked = true, + preview = nil, + full = nil + } +} + import "scripts/player" import "scripts/bigBoomSprite" import "scripts/groundSprite" @@ -40,23 +77,47 @@ import "scripts/balebaSprite" import "scripts/dangerSprite" import "scripts/tankSprite" import "scripts/progressBar" +import "scripts/selectionSprite" import "scenes/BaseScene" +import 'scenes/Assemble' +import 'scenes/DroneSelection' import 'scenes/Menu' import 'scenes/Game' -import 'scenes/Assemble' + +Difficulty = { + Easy = "Easy", + Medium = "Medium", + Hard = "Hard" +} + +DifficultySettings = { + [Difficulty.Easy] = { + assebleTime = 2500, + }, + [Difficulty.Medium] = { + assebleTime = 1500, + }, + [Difficulty.Hard] = { + assebleTime = 800, + } +} Noble.Settings.setup({ - difficulty = "Medium", + difficulty = Difficulty.Medium, music = true }) --- Noble.GameData.setup({ --- score = 0 --- }) +Noble.GameData.setup({ + drone1 = 0, + drone2 = 0, + drone3 = 0, + drone4 = 0, + money = 150 +}) playdate.display.setRefreshRate(50) Noble.showFPS = true -Noble.new(Assemble) +Noble.new(Menu) diff --git a/source/pdxinfo b/source/pdxinfo index 63d9758..eecb1a1 100644 --- a/source/pdxinfo +++ b/source/pdxinfo @@ -1,7 +1,7 @@ -name=A Noble Engine Game -author=A Lovely Developer -description=This is a Noble Engine game. -bundleID=com.yourdomain.GameName +name=FPV Game +author=ut3usw +description=This is a FPV Game +bundleID=guru.dead.fpv version=0.0.1 buildNumber=1 imagePath=assets/launcher/ diff --git a/source/scenes/Assemble.lua b/source/scenes/Assemble.lua index 48dae11..bb95dc8 100644 --- a/source/scenes/Assemble.lua +++ b/source/scenes/Assemble.lua @@ -3,23 +3,12 @@ class("Assemble").extends(BaseScene) local scene = Assemble local font = Graphics.font.new('assets/fonts/Mini Sans 2X') +local fontMed = Graphics.font.new('assets/fonts/onyx_9') local allButtons = { "A", "B", "DOWN", "LEFT", "RIGHT", "UP" } -local function screenShake(shakeTime, shakeMagnitude) - local shakeTimer = playdate.timer.new(shakeTime, shakeMagnitude, 0) - shakeTimer.updateCallback = function(timer) - local magnitude = math.floor(timer.value) - local shakeX = math.random(-magnitude, magnitude) - local shakeY = math.random(-magnitude, magnitude) - playdate.display.setOffset(shakeX, shakeY) - end - shakeTimer.timerEndedCallback = function() - playdate.display.setOffset(0, 0) - end -end - function scene:popCode(button) + scene.menuConfirmSound:stop() if scene.tickTimer.paused then scene.droneParts = scene:loadDrone(1, #scene.code) scene.tickTimer:start() @@ -30,12 +19,14 @@ function scene:popCode(button) scene.tickTimer:reset() scene.dronePartIndex = scene.dronePartIndex + 1 - local particle = ParticlePoly(200, 190 + 8) + local particle = ParticlePoly(200, 185) particle:setThickness(2) particle:setSize(1, 2) particle:setSpeed(1, 3) particle:setColour(Graphics.kColorXOR) particle:add(5) + scene.dY = 5 + scene.menuConfirmSound:play(1) else self.buttonTimeout = self.buttonTimeout - 5 scene.code[1] = scene:randomButton() @@ -62,6 +53,7 @@ function scene:drawBackground() end local screwDriver = Graphics.image.new('assets/sprites/assemble/sd.png') +local solder = Graphics.image.new('assets/images/solder.png') function scene:loadButtons() local buttons = {} @@ -90,22 +82,30 @@ function scene:setValues() table.insert(scene.code, scene:randomButton()) end + scene.difficulty = Noble.Settings.get("difficulty") + scene.buttons = scene:loadButtons() scene.droneParts = {} scene.dronePartIndex = 0 + scene.dY = 5 + + scene.buttonTimeout = 100 + + scene.timeToClick = DifficultySettings[scene.difficulty].assebleTime + + scene.menuConfirmSound = playdate.sound.fileplayer.new("assets/audio/confirm") + self.aKey = Graphics.image.new("assets/sprites/buttons/A") end function scene:init() scene.super.init(self) scene:setValues() - scene.buttonTimeout = 100 - - scene.progressBar = ProgressBar(200, 170, 50, 5) + scene.progressBar = ProgressBar(200, 175, 50, 5) scene.progressBar:set(self.buttonTimeout) scene.progressBar:setVisible(false) - scene.tickTimer = playdate.timer.new(2500, self.buttonTimeout, 0, playdate.easingFunctions.linear) + scene.tickTimer = playdate.timer.new(scene.timeToClick, self.buttonTimeout, 0, playdate.easingFunctions.linear) scene.tickTimer.updateCallback = function(timer) scene.buttonTimeout = timer.value scene.progressBar:set(scene.buttonTimeout) @@ -132,14 +132,40 @@ function round(number) return formatted end +local elapsedTime = 0 function scene:update() scene.super.update(self) + elapsedTime = elapsedTime + 1 / playdate.display.getRefreshRate() + + local sddy = 4 * math.sin(10 * elapsedTime) + local sdy = 4 * math.sin(7 * elapsedTime) + local sddx = 2 * math.cos(5 * elapsedTime) + + if scene.tickTimer.paused then + Noble.Text.draw("Assemble the drone!", 200, 110, Noble.Text.ALIGN_CENTER, false, font) + end if #scene.code == 0 then - Noble.Text.draw("WIN!", 200, 110, Noble.Text.ALIGN_CENTER, false, font) + local dy = 1 * math.sin(10 * elapsedTime) + + Noble.Transition.setDefaultProperties(Noble.Transition.SpotlightMask, { + x = 325, + y = 95, + xEnd = 96, + yEnd = 100, + invert = false + }) + scene.inputHandler = { + AButtonDown = function() + Noble.transition(Game, nil, Noble.Transition.SpotlightMask) + scene.menuConfirmSound:play(1) + end + } + Noble.Input.setHandler(scene.inputHandler) + self.aKey:draw(200, 170 + dy) + Noble.Text.draw("Start Mission", 218, 175, Noble.Text.ALIGN_LEFT, false, fontMed) self.progressBar:remove() self.tickTimer:remove() - scene.inputHandler = {} return end @@ -148,18 +174,23 @@ function scene:update() self.progressBar:remove() self.tickTimer:remove() screenShake(100, 5) - scene.inputHandler = {} + Noble.Input.setEnabled(false) return end - screwDriver:draw(300, 100) + screwDriver:draw(300 + sddx, 100 + sddy) + solder:draw(0, 100 + sdy) if scene.droneParts ~= nil and scene.dronePartIndex ~= nil and scene.dronePartIndex > 0 and #scene.droneParts > 0 then scene.droneParts[scene.dronePartIndex]:draw(100, 20) end - Graphics.drawLine(200, 175, 200, 185) - Graphics.drawLine(200, 212, 200, 222) + Graphics.drawLine(180, 185, 192, 185) + Graphics.drawLine(208, 185, 220, 185) + + if scene.dY > 0 then + scene.dY = self.dY - 0.5 + end for i = 1, #scene.code do local button = scene.buttons[scene.code[i]] @@ -171,7 +202,9 @@ function scene:update() local t = (i - 1) / (#scene.code - first) local opaque = playdate.math.lerp(1, 0.3, t) --TODO: not the best solution - button:drawFaded(200 + ((i - 1) * 16) - 8, 190, opaque, playdate.graphics.image.kDitherTypeBayer2x2) + local y = 185 + ((i - 1) * 16) - 8 + scene.dY + + button:drawFaded(192, y, opaque, playdate.graphics.image.kDitherTypeBayer2x2) end end diff --git a/source/scenes/DroneSelection.lua b/source/scenes/DroneSelection.lua new file mode 100644 index 0000000..e238fed --- /dev/null +++ b/source/scenes/DroneSelection.lua @@ -0,0 +1,117 @@ +DroneSelection = {} +class("DroneSelection").extends(BaseScene) +local scene = DroneSelection + +local fontSimple = Graphics.font.new('assets/fonts/peridot_7') +local fontMed = Graphics.font.new('assets/fonts/onyx_9') +local fontBig = Graphics.font.new('assets/fonts/diamond_20') + +scene.inputHandler = { + AButtonDown = function() + scene.menuConfirmSound:play(1) + Noble.transition(Assemble) + end, + BButtonDown = function() end, + downButtonDown = function() + scene.menuSelSound:play(1) + if scene.menuIndex < 4 then + scene.menuIndex = scene.menuIndex + 1 + else + scene.menuIndex = 1 + end + end, + leftButtonDown = function() end, + rightButtonDown = function() end, + upButtonDown = function() + scene.menuSelSound:play(1) + if scene.menuIndex > 1 then + scene.menuIndex = scene.menuIndex - 1 + else + scene.menuIndex = 4 + end + end, +} + +function scene:setValues() + self.dronesPreview = {} + self.background = Graphics.image.new("assets/sprites/selectionBg1") + self.dronesPreview[1] = Graphics.image.new("assets/sprites/assemble/1/8.png") + + self.aKey = Graphics.image.new("assets/sprites/buttons/A") + + scene.menuSelSound = playdate.sound.fileplayer.new("assets/audio/menu_select") + scene.menuSelSound:setVolume(0.5) + + scene.menuConfirmSound = playdate.sound.fileplayer.new("assets/audio/confirm") + -- scene.menuConfirmSound:setVolume(0.5) + + scene.unknownDrone = Graphics.image.new("assets/images/unk.png") + + self.menuIndex = 1 +end + +function scene:init() + scene.super.init(self) + scene:setValues() +end + +function scene:start() + scene.super.start(self) + + self.optionsMenu:addMenuItem("Main Menu", function() Noble.transition(Menu) end) + Noble.showFPS = false +end + +function scene:enter() + scene.super.enter(self) + + scene.selectionAnim = Selection(23, 54) +end + +local elapsedTime = 0 +function scene:update() + scene.super.update(self) + Noble.Text.draw("Select Drone", 200, 10, Noble.Text.ALIGN_CENTER, false, fontMed) + scene.selectionAnim:moveTo(23, 54 + (self.menuIndex - 1) * 46) + + elapsedTime = elapsedTime + 1 / playdate.display.getRefreshRate() + local dy = 1 * math.sin(10 * elapsedTime) + + local offset = 42 + + for i = 1, #Drones do + if Drones[i].locked == true then + Noble.Text.draw("UNAVAILABLE", 47, offset + 7, Noble.Text.ALIGN_LEFT, false, fontMed) + Noble.Text.draw("?", 16, offset + 4, Noble.Text.ALIGN_LEFT, false, fontBig) + else + Drones[i].preview:draw(6, offset) + + Noble.Text.draw(Drones[i].name, 49, offset - 3, Noble.Text.ALIGN_LEFT, false, fontMed) + Noble.Text.draw("Price:", 49, offset + 15, Noble.Text.ALIGN_LEFT, false, fontSimple) + Noble.Text.draw("$" .. Drones[i].price, 103, offset + 15, Noble.Text.ALIGN_LEFT, false, fontSimple) + end + offset = offset + 46 + end + + if Drones[self.menuIndex].locked == false then + self.aKey:draw(330, 170 + dy) -- A key + Noble.Text.draw("Assemble", 348, 175, Noble.Text.ALIGN_LEFT, false, fontSimple) -- Assemble text + + Graphics.drawTextInRect(Drones[self.menuIndex].description, 135, 200, 255, 100, nil, nil, nil, fontSimple) -- Description + Drones[self.menuIndex].full:draw(160, 35) -- Drone preview (full size) + else + Graphics.drawTextInRect("Unavailable right now", 135, 200, 255, 100, nil, nil, nil, fontSimple) + scene.unknownDrone:draw(184, 35) + end +end + +function scene:exit() + scene.super.exit(self) + + Noble.showFPS = false +end + +function scene:finish() + scene.super.finish(self) + playdate.display.setScale(1) +end diff --git a/source/scenes/Game.lua b/source/scenes/Game.lua index 0708385..62b7fd8 100644 --- a/source/scenes/Game.lua +++ b/source/scenes/Game.lua @@ -78,7 +78,7 @@ function scene:spawnBaleba() return end - --scene.balebas[balebaCount + 1] = Baleba(math.random(410, 900), math.random(10, 210), scene.player, true) + scene.balebas[balebaCount + 1] = Baleba(math.random(410, 900), math.random(10, 210), scene.player, true) end function scene:enter() @@ -96,9 +96,9 @@ function scene:enter() scene:spawnBaleba() end - --scene.helloAudio:play(1) + scene.helloAudio:play(1) if scene.musicEnabled then - --scene.levelAudio:play(0) + scene.levelAudio:play(0) end end @@ -164,7 +164,9 @@ end function scene:exit() scene.super.exit(self) - scene.tank:remove() + if scene.tank ~= nil then + scene.tank:remove() + end scene.telemLostSound:stop() scene.levelAudio:stop() scene.balebaSpawner:remove() diff --git a/source/scenes/Menu.lua b/source/scenes/Menu.lua index 07a9369..00e0f18 100644 --- a/source/scenes/Menu.lua +++ b/source/scenes/Menu.lua @@ -2,10 +2,8 @@ Menu = {} class("Menu").extends(BaseScene) local scene = Menu - - function scene:setValues() - self.background = Graphics.image.new("assets/images/background2") + self.background = Graphics.image.new("assets/images/menuBg") self.color1 = Graphics.kColorBlack self.color2 = Graphics.kColorWhite @@ -26,9 +24,12 @@ function scene:init() local menuSelSound = playdate.sound.fileplayer.new("assets/audio/menu_select") menuSelSound:setVolume(0.5) + local menuConfirmSound = playdate.sound.fileplayer.new("assets/audio/confirm") + -- menuConfirmSound:setVolume(0.5) + self:setValues() - self.menu = Noble.Menu.new(false, Noble.Text.ALIGN_CENTER, false, self.color2, 4,6,0, Noble.Text.FONT_SMALL) + self.menu = Noble.Menu.new(false, Noble.Text.ALIGN_CENTER, false, self.color2, 4, 6, 0, Noble.Text.FONT_SMALL) self:setupMenu(self.menu) @@ -56,10 +57,10 @@ function scene:init() end end, AButtonDown = function() + menuConfirmSound:play(1) self.menu:click() end } - end function scene:enter() @@ -86,13 +87,12 @@ function scene:update() Graphics.setColor(self.color1) Graphics.setDitherPattern(0.2, Graphics.image.kDitherTypeScreen) - Graphics.fillRoundRect(200-38, 160-8, 75, 60, 15) + Graphics.fillRoundRect(200 - 38, 160 - 8, 75, 60, 15) self.menu:draw(200, 160) - logo_image:draw(120, 55) + -- logo_image:draw(120, 55) Graphics.setColor(Graphics.kColorBlack) - end function scene:exit() @@ -102,8 +102,8 @@ function scene:exit() end function scene:setupMenu(__menu) - __menu:addItem("Start", function() Noble.transition(Game, nil, Noble.Transition.DipToWhite) end) - __menu:addItem("Tutorial", function() return end) - __menu:addItem("Credits", function() return end) + __menu:addItem("Start", function() Noble.transition(DroneSelection, nil, Noble.Transition.DipToWhite) end) + __menu:addItem("Tutorial", function() return end) + __menu:addItem("Credits", function() return end) __menu:select("Start") -end \ No newline at end of file +end diff --git a/source/scripts/player.lua b/source/scripts/player.lua index 922a915..3c8ba37 100644 --- a/source/scripts/player.lua +++ b/source/scripts/player.lua @@ -12,7 +12,7 @@ function Player:init(x, y) self.animation:addState("down", 1, 7) self.animation.down.frameDuration = 6 self.animation:addState("boom", 15, 21) - self.animation.boom.frameDuration = 10 + self.animation.boom.frameDuration = 6 self.animation.boom.loop = false self.animation:setState("down") @@ -173,7 +173,7 @@ function Player:handleMovementAndCollisions() self:boom() return elseif collisionTag == 154 then -- Baleba - --self:boom(collisionObject) + self:boom(collisionObject) return elseif collisionTag == 2 then -- Tank self:boom() diff --git a/source/scripts/selectionSprite.lua b/source/scripts/selectionSprite.lua new file mode 100644 index 0000000..57ad7ba --- /dev/null +++ b/source/scripts/selectionSprite.lua @@ -0,0 +1,18 @@ +Selection = {} +class("Selection").extends(NobleSprite) + +function Selection:init(x, y) + Selection.super.init(self, "assets/sprites/selectionanim", true) + + -- Animation properties + self.animation:addState("run", 1, 11) + self.animation.run.frameDuration = 1 + + self.animation:setState("run") + + -- Collision properties + self:setZIndex(ZIndex.alert) + self:setSize(41, 40) + self:add() + self:moveTo(x or 0, y or 0) +end diff --git a/source/utilities/utils.lua b/source/utilities/utils.lua new file mode 100644 index 0000000..fdb286c --- /dev/null +++ b/source/utilities/utils.lua @@ -0,0 +1,17 @@ +function round(number) + local formatted = string.format("%.2f", number) + return formatted +end + +function screenShake(shakeTime, shakeMagnitude) + local shakeTimer = playdate.timer.new(shakeTime, shakeMagnitude, 0) + shakeTimer.updateCallback = function(timer) + local magnitude = math.floor(timer.value) + local shakeX = math.random(-magnitude, magnitude) + local shakeY = math.random(-magnitude, magnitude) + playdate.display.setOffset(shakeX, shakeY) + end + shakeTimer.timerEndedCallback = function() + playdate.display.setOffset(0, 0) + end +end