From 5f62127f285407128c8ec26e5475549dfe68ecb8 Mon Sep 17 00:00:00 2001 From: MrZ_26 Date: Fri, 14 Feb 2020 00:22:15 +0800 Subject: [PATCH] 0.8.6 --- SFX/enter.ogg | Bin 0 -> 20132 bytes conf.lua | 2 +- dataList.lua | 33 +++++++++--------- font.ttf | Bin 971176 -> 972288 bytes list.lua | 2 +- main.lua | 69 ++++++++++++++++++++++--------------- modes/blind_easy.lua | 4 +-- modes/blind_hard.lua | 4 +-- modes/blind_lunatic.lua | 4 +-- modes/blind_normal.lua | 4 +-- modes/blind_ultimate.lua | 4 +-- modes/classic_fast.lua | 2 +- modes/dig_hard.lua | 2 +- modes/dig_ultimate.lua | 2 +- modes/drought_lunatic.lua | 2 +- modes/drought_normal.lua | 2 +- modes/infinite_dig.lua | 2 +- modes/marathon_hard.lua | 4 +-- modes/marathon_normal.lua | 4 +-- modes/sprint_1000.lua | 2 +- modes/sprint_40.lua | 2 +- modes/survivor_easy.lua | 1 - modes/survivor_hard.lua | 1 - modes/survivor_lunatic.lua | 1 - modes/survivor_normal.lua | 1 - modes/tech_hard+.lua | 13 +++---- modes/tech_hard.lua | 13 +++---- modes/tech_lunatic+.lua | 13 +++---- modes/tech_lunatic.lua | 13 +++---- modes/tech_normal+.lua | 13 +++---- modes/tech_normal.lua | 13 +++---- modes/tech_ultimate+.lua | 13 +++---- modes/tech_ultimate.lua | 13 +++---- paint.lua | 6 ++-- scene.lua | 21 ++++++----- toolfunc.lua | 9 ++--- updateLog.lua | 7 ++++ widgetList.lua | 2 +- 38 files changed, 164 insertions(+), 139 deletions(-) create mode 100644 SFX/enter.ogg diff --git a/SFX/enter.ogg b/SFX/enter.ogg new file mode 100644 index 0000000000000000000000000000000000000000..95ec9cb86443acb47e9f6f722ae85c2a4cc9a532 GIT binary patch literal 20132 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 local function gameOver() local M=curMode - if M.score then + local R=M.getRank + if R then local P=players[1] + R=R(P)--new rank + if R then + local r=modeRanks[M.id]--old rank + if R>r then + modeRanks[M.id]=R + if r==0 then + for i=1,#M.unlock do + local m=M.unlock[i] + modeRanks[m]=modes[m].score and 0 or 6 + end + end + end + end local D=M.score(P) local L=M.records local p=#L--排名数-1 @@ -45,22 +59,9 @@ local function gameOver() if L[11]then L[11]=nil end saveRecord(M.saveFileName,L) end - local R=M.getRank(P)--new rank - if R then - local r=modeRanks[M.id]--old rank - if R>r then - modeRanks[M.id]=R - if r==0 then - for i=1,#M.unlock do - local m=M.unlock[i] - modeRanks[m]=modes[m].score and 0 or 6 - end - end - end - end end end--Save record -local function die(P) +local function die(P)--Same thing when win/lose,not really die! P.alive=false P.control=false P.timing=false @@ -76,7 +77,7 @@ local function die(P) P.visTime[i][j]=min(P.visTime[i][j],20) end end -end--Same thing when win/lose/finish +end Event={} function Event.reach_winCheck(P) if P.stat.row>=P.gameEnv.target then diff --git a/font.ttf b/font.ttf index d7b363c896a6cca8dad5d2018ba3a0a597790c72..80f345347deda8bda73b61b040561b79c46e6c1b 100644 GIT binary patch delta 20683 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 TFSd&Byb7bm_Iu~}PB8%hk;F%+ delta 19708 zcmW-odt6iX|Hoh3&bG7dps3iFij)kC43mnI6qO1Ujf@OaixL%;5(Sl;G8rPuK<+oW zGsd{X28c>VMMX(PhKYtsg_o3!k_wFq^Y`la$CJTXF41H zx1rhsJUaxud}7P`UEu(9m~h&}QQQ)`d-J`225W(j#$cC#kWK4@rw%>fMqdYcCWHoc zfxVU6qr@d-TSQFkKYrAb6#$<8pufBB96G&za&wy>~W5OrQ#OL%oGTwRn`fbl` zY6{ss8xvj_0~GIuhwX}3_QyP5Ojz2+q#KYijOg~uN7haBx&@tr;z0kEiA(+)FTDLl zTGrrPwZnfw6C93AliijbaZzl1>Ti3L%Ze7*-YU?Yl{;e;!`nA5;y0mpk zt553-tq4Ket?Oxz=)}<#NjpEdwnVTQ0PmZ!w&1`MTv)%jYehwS3a@am$A- z@3pkI9B(<+a>}%QEvZp1cCA#IEmbY8B zv}|e#Zdupzddn* zr|m;qhppXq)YfKewKdzUwkDg!R%xrSmD>t!1-8SsJewiMmTk+jW!f@qX|_YQ1Gas( zcw3w;))r%nwnf?^Y+<(Tws&m7whgv*wl{5owiULQY<@Oh+Y;M6+mkkD+jQGB+kLjF zHmyx<6Ko2b+&XUk)B2nB7i+)uto5|D*V<+M#QMJVJ?l|xjkU^Zu~u45)^cl!wb)u@ zEihOQTXU^B)@*Br^^i5inrz)~-Dfpe_geMV2rgGp#PxhpZ1;r(364 z@3-D#ooaQkPPFQ*8mrnWZ@Sa;N7L_3hF_X~Y#MC(zUjNBi%sX7dYZm$`l9Kxrcawb zYI?uvy{31Y+MA9y9cgN5vNbg|RX0^Ml{b|(6*c8FWjCcar8Ffs?Qe=`+R+r&w6*D- zrnj5kY+Bp2rfF5vqNW8+9!;~GW;M-ha%q~;^k9=i)1)S`@lNC4jej=&+IXq)eB;^1 zGmYOE8aoU zx`wq4uQjY}@NZbq@Jxe8gG+y{x z^;z|a^@jS``knP})ce-YtM{mXvi^zsIrX#aAFF?`etP|V_4n30)K99nub)t_u2xFuGJ?j3fyHz(@_gmda-LG}m>VB-dQg^QIY+Ya7>AJ7#dg{Kc`?#*N?t{7`buD!j zb*8%fx}3TULtT1Za-Fd*zAmmVwC?S?kh(2(o9b58t*l#8x2SG@om<_ky8G&6b*LSy zy;l1}?aA5`wQaSnwPm%3Yh!AktesQ)cs?8O<~R9n!K8vn(Ug4nxvY8HT!G!)av`lsq|tNW^tRXhpJ~(J6BJu zexUmP>Z#RJswY=Zs-9q|)>W&kRn^LBp=!M9cGWLcKUH0>8mKy3^?B8as&}i}tBzG2 zt!k-iuCi9uSJhV4R8?15sw%5Ws|u>Js`gdwu3BBSs>;9W<*MaXOR8R|dcJBw)x4@_ zs^(NZUiCT8%PvcpCD`(&lIl;WotT)G)Bh5R_hH!JJd8_#ybBKAfd6PNV zywSYgyw3cVInexu`E~PJ^J?>}=9T7G%rBY!%)aI&=I70e%=69j%%0}CW)Jf$v#Z&~ zJj3j4o@Tz!JlQ5wVebkLM&+HcaEVokeEQKkq}m?_k>)%1=j#I)A*n#u5r$^mCrsqrx zO$$s z{!FSFR~nm#fN!az)wQvVY2M zmyMSFR(7-O=dv4R-<1uNT_`(O)?3z7_GQ`UW!+_6WgnEiS9Y|luB^PQpe(N}tL#u& zQrW>WeOYu_R9QsXj$skOAG)KZ#KYAoGT zy18_H>070*mo6=Rp>$#Cf>N*2Ii<5orV%OrC#V*Cui|;9(QZ!ohN73&^!$sGME*E`QbiU|Z(W#;@iasyuD0;W(c+t_K z=Awq8$|6%yana$TtfJ&1W6^=4#G-vghN8ViyNe==B8tL`LW{N*Z7h1L$PifcdePdV z)kUury;AgY(TbvFMN5hn6wNJqs>r?Q@gmnEm!b!XrWQ>pvM-uYBo%3kG(|$;SmEu$ zKMH>>94@?4_S@=caXN6sb9~ZV49x1dHHWXGBmKGKl<`w1? zW))@@rWK|Z9x6;Ij4Rw-7*!Zi7-}foTDYZfL*ZM6Zxp^>xU$f@a8coXh5swOr*KN4 zU7@_-PQmSh-wTEdekwR$&{uG#;8ekv1)mq3EcmqGy#i}NLqTPMsUWW)tsu1^sUWss zL&3U&*9!a#<`;MtJXP>;!Hj}Q1aKPbL4=+Ew^svw2 z=MNiZA9guBPfGOsJ|-Msd^BYCzw zYhHDpC9fi{ByVS4c-}jCA$dW0Z{!8!t;qAuTbj4Pkmr^6Ox{y@GxF}w`(K_ePn)OA z9nWpgJ(hbkw=K6mw>q~lw;(q!H#avkH!atYyEk`h?z-INxyy2w=02C}p6i@@Z_ZfG zP|mrWBRPhgJvqB`cIIr&c`;{s&a#}PInU>K=Pb&ZpEED#*_^pKkLS4NJe)HlXIhR^ zjzi9*95F|kZ5YcQ$-bF=Bm1Z9AG0rIU(7zA{cZN??60#=Wp`(v%>Fd{gY1s%6WQ(A zt=SFP)!CKV<=K0(qp~BjcV%zM-jKa2+b7#Q`_XLI?3vjv*$-vi$@(Yj*Q}qihO(|_ zUCFwfbt&tItbwdkSv^@_W_4$Mmi1}YCs`d??`73yRb&-s9?LwM*^+6_EY3{NOv{YVjL6)X8J@W{b5rJ9nXhH8%Jj=zp1CyBGxOn0$IN>& z?KAo_zRft7@l{4=#)*t$8HTou=8T#QQ$|ikNXC|o%^90AHfF5P2+CNO5t#9M#+r*htp@KyQDj(Pfu5+E7N7^NE=Q2C2ctEO4>l$#k31)-==+>c08>$ zts$*Etu(D5Ejev%+N)_x(jH8^FYVs632CY{dFpuTSn6o%Z>cv^hf=Smo=^Qc^{dn` zQ$J6AFSR+-El%G>>q+Cn+A?0Gqg_QFt-=>^R`6lJ-l%A9? zQck9HrF@cNO=(D}PpM6*NGVP!NXbiyONmX1O4*jOHRbJ;RVgb|UQY2#@kv>f;+67r z%4|c*BPkE0+?R51iet*;6#En@MVI`0@~_Fm$v-FGNFGYQlzbui+vIb}CzEZ-*5tb`~ z*l#>#{Mh)B@r2QAEHM@t^Ni`nL&hXyf-%mx*BD`Z$N08!vvH$wgK?E{v2l*^aigno zrg4VxKI6T{sm6&$JEO`dGa~73(!WW6CEZT?C21(>deW7oOG)1+4J3V=bSCLk(#fRG zr1uR;?z;WMV|(uEed0 zTM{=XzLmHt@x{cYiAxd}CweE&O?)Qt>BJ`!A5WZ`s7=%)suNZF|J{FQ|DXG>?!U7C z+x@5ZzrVk7f7$-R{dxOC4EtZ&|J;6;{m%RE+wZV{^8QKtwfi;u#r>-N%Kh?$@q|AT zeoOc{;YPx>gewW(C-f$KozRo;e!_bRO$qf0riAQ-^n`;6yAxs(HYaRIcsyZZ!h{6v zzTSOb?>n{cvwg?*we2h3H)WqL{@Hksco^;)?il_y{AKvlaNBUp@Q2}d!-&D~i{Xah zC&P8akA^FTONQ?Z1BQ!+3x@NCe#5thvxYvy8N)Y*(}rHd*M?JuZo^5#$A*s#ord=f zCk*X|V}>R}oxx(rG#CxBhIisF#GQ}(Htt;9*|@&AGjXTlzKZ)I?(?|rxRY_8#&yMg z68CZ32XQCjj>lQ!8sci=a^te%5)5&><09j>$GsD`J}xM3UEJ!p*Wy;jy&Sh9?xnaF zfj=#R+?F?EP`?rM+kNezvz^Z{6OSy(axF{U7?@^*8lD>4)^! z^;h**^q2Jm`iuGt`hNYl`g8g-`mgn;^k3*d(Rb=U(7&(m&>ztf%ET@(9CtbgpwvCCqo#!iWy96QOdCoCo~=GB-LF)zj}kMWIJ8uLQTb1~jA&&JG+ zc{;`;=Bb!jG0rg$#5l!FiJ2H9#pq(RG3ppqj1VJ_kwyO-eLH$2`eyX6(Kn(mM_-Em zF8bT(v(dfLpGJQeeI(i%T^+qJdO`I3=y}o4M$e6YCfXzViRee8U8844-yf}wRz)kK z40ogcjT(>oJL-1S&rvs`u19?r)f?3v^=Z_{QJqo8qH3cmqD)a`QAJS&Q8`ijqT-`s zqN1WAqjp4vN4*pEcGTvmwNY!L7DstUxkk;5dMIjo)U+tas0mSak$**wMP7@%5Lppv ziY$#Rh&&wW82P`*dm^VsIzw2PD?wUO#br6E!taX#W)#Oa8hh>{53i02}_BNj%? zkC+$X88J7)Bf>pmPQ>F8ZV``0JhE%mu7F*y?pnFaf7i>qR_uCl*YaJk0cZ?9;HWu#dtPb%wng)*f~=tSzi1tSPK8tRO5SY+u+LVavmO!@R>h!=4HA2zz4t z`1Y~w!`r{v{=xRl?Wx;iw(o*$N?Cpdp16?l@xpK>J>^>8PQd79$Su-G#cnd?FZ_!YL1UwZ>dFEEcq=8XgM z$pZQpP;()hSj3z~R{`%#;JFwW@H`uMfyNiOipB20lK;>HOPRE^AMh<8UBEIY!WAs{ zAn}BSU-TxOfL|>c1YRluR)q6&vm0SE{?zq10k8NF#;>IRRr+6Lt$7@ zuTgBZNEo!nk#qxV8T7h8@P;R06M-!DW(4pS{cptp>wK|$r!MaMK+ED z!4_bX3$R%rEV{*)i~u3@zfFyI44(Yc4s2y$DA^VRY-iB+Q6Q`f2+ss|gaSK5fL(er z21IZk$)b_mj-oBv0f_kzHXFmDyQ#CM1Bmq?-GH9)`cYsn_2P(uO~x}nzMtFs27v?y z?Dqr`DRRISIOs@vfg}nV=}Yz_oxmX{(gUQLfHeBj8-a{?Ak!bnawo$;PB@Uu+&sqQ zGv+WGFJO~}%q?Vm5gRLR21?jiX%~-w8H38(0h13<5doN8fJ%@)z|sa(1&{%thW=VN z(gW0ydJE9NB8?PpiUF+j+5CWJZ=l5sX!Qk-uuvN{j#B>^n>wBgw2uHMf`Iorf%jc` z{6BCYqriv5KxaRHk6>pXGvJe8po_jPCV$F;pOKR#K(`V2oJGE1kuR9{_1t-!5T=WM9TuBG; zodSoA9+BEGj$h4i1>AE447+}{9 z*@OtlCi;^R$n43a4#+0!d3`N`%z^%?sgT_h583}H;K%~^219nAHyMM>$rG{%e90hW z)2>1`ojJ}!kUdD>4C+4=1er@SWHVXsVdg#JZ-C6z1+qs$7(B}a*<-}57P8r#Kh6f+ z9U*&yD||8(vZq+UqaU(o7(bUQ@eG3O*+j_ZU2Qn|lFXS&q3p*fNM7%>Fd(H#0 z=iMQD!3#1UZu@jXwm22CC4P`CHLT$uCi>Fh%c9F@Ts8pN@?6MX3?yTa`MHsJ!tIy* z2^(0^4%y3$_g@3qD^A1+*-8*V@TC0a4Tf-c~S{C9J zPWA=^1DX7$FJ!#B$=0!l*0Y)QLy&Dqg={0YH;zIUY=Uf4IAoh$A=}~x zSqO7O81r@sWbYI}wzU_sP;b%?*)|s4?oOx|#=LOq?1<;_-{}Y0E+5DuxQa*$L>VEA zk%%W@(r#zc4cVShG6-2LV`4e#gGeW2dz}f#xB$}56>)`zL^1+dd^}|PTu29G39f`q z@3%mfNPpruWCsFx{0~t4pa)^MN#5itWJb=7T!oQA$v$KdvJ^dJyaLJ&HA0rUhOj^y zn@YDQU65tap2;RMsguP5*(S(x97rc*xzxy|MjmbX!H^yH;?J1WDlpJl$YO=LkQIrf z8M0!ouy_EnlB+>L_H_ z0NHg9$cCIC`^f^?4HINP4?^~fMA+c3Oup$0*+@8Kzpa7ncl!UJ@GY+R)&OL;{Ye32 zf3kr;*}zyJWPh>HU$p%lKv;uUP}x5{kd3!Pc85Cu(tp>$jk}GI!-sT0F6)C_&QZ|@ zx!?i0(hG8xGZ}?kZGl`|1G$Da%?RY$0?2hCkW2L2*^^$#CuBlCk=VNv>P`xVd@}u$ zyC9zu4!MIXpUv^{9?0i3L++jm`4gRxKS}#j z{g8WfL;iFh4Dz}5kb8zh{%jEB^J*dYVi7NY!hi*AZlOThAYVkAw+k7E{5c9dZ-V>< zCqhvl<}EIOd+_$?m$K%e}hc~(*I^Cy$=OE8bL}C|^MyR0D>yt1IiJ_$MX8V%n+StT1|TnOhP=#` zP_(=aa#J{=uY&VRN5VZ)B|u(X0(ngbIG2s+_r`Yk=&5-x9@M*?>;}7|naLD-_CqG*P`8hUqj@#b`LEi5`SoC}V8pbuZ8>$lkSW`{x3!D4nToUDCA>MC<4eh6iRm}RDmRw zaIUT;SD_HQq0mG?p>-pTQ0O@7+M$q|p|F#P5sC={DS=`lum1{rM=0#+oJ4`ibWU*~ znNT?RkzOdK(sqwK>4)NfsZj8lPjRm|8HM7$Mkwwdgu;nDz~a*epqNfQKKCh{IXYA4 zL5?$gpm>O}GpRW<7m9}^!k9-&3{bebks&A^W!JM9JgW~1H<9R}n9Xr^KNOFTKrv?= z3ikmhcokDTNuJ{TX+ZIe2NZK%q44DRtQQpX)<7|z^ZBDtcnv|Zz!!>zB4O^LU?{w4 zd#)Rb=NbFFp&g1BhN1Aug<`Q0iX~hfuU-mYu4Wm1FN%bTew_2!Pw`SO6e}!Hyc`6D zKj*KcLh-626an^7@L5msngbN8-Jw{+X4VEm@p>o}ZwRCSia_SP=>x@EEc{j<6zf>i z5X2(uxv?P;ij7PRc7kG)D-@eKZqY*#(htQu4BpxXMQ8^U+bFbs0E%$#wH?k->~tW^ z=Y>iUK_Ua7i1LFXx&(^dEW9TMidYvY^ubW`@rMBZyX94uPVC+NIu5l(j)o&gM*Ps)7xeO+5aUy--;Cp{S;@hDo(UP}EU`k4%aN7H!l+ z(L@m|n`&k=EsapL20?M86N)zaj#B&>g^x4mT{d*07K-<%)6oOP2O?oyrv$}Ew0*+Z zu3#uWH9_&25sH%rCVkGy7tK)gctP4KoJ zCmj$3KL|>H2r3bRn*SP3-3~zZU`IdCe_>)c41zr;lRP2tDMgsVq$y(% z90nmwWzszq{$D2q$9M?$njqZo48e&44|qVBmIz_GHw0%Ed@u;YjBp4KSs=KKLzv0D zhxHI1q2HDEM;!*2y1irTkuf;%E9SmU&S*wTeI^*83KzI{m z9Kt$B2tgEB&%ztLA#CJc2zG<8iT2I@5Vkl#2oXpZgtyr&A2x)oJrF`WA#A6{_Av|gyVgM9gN6{vpy*HtF|`o*pdswBK#1jB9{^!*E`&JR3`~qSLD-iHA)x>Q zU#Wz|0SE_}d$19LQ6T*gQbHgc>VS~Sm~ zCkTa!5Q?~6!WEQ8Kq#ZI$qzzB7lcXyg2fX;l@Ek!7UJnD)HXw?YlqOlh454rntCDF zydg9*x1|rl5eY)u7=&Z?5ROx`JqW_P^qt6s(BaMF|2_+TFa)8~8Nx?y5I*jN(B%t( z&jrFsZhy|EzF>hK7CyzoU;9Jo^@ebobH0QKeMSi9)48%21*O6XN+AeJ zWh#`a4k!)kaVW(;D77MCfHt0VL8%KT-B3yqP}+HrTqq~FkrF5;g0w?vUkl|VfpDB$ z0Ob_sOc{jIfiY7(Nk5eLSfKo$J264&=ugI=yqEU-7<<1x3`!>!c4~(50dF!2<@5k3 zooRDs;Dd=!&M1KLp?D}=C^8d-E8)4Ve1zMN^g`)sg7Q(u%%b39jB)cLBT&w!Z;m7Q zoI>b(!i5Y#`6QcriZwhK_q4Bpf4ZQ2CJ4&8o=|#vL;0*1l=EE47?k{aty~a7SaczM z3mc(aWUbC0~p z9KMJs{R~{;OCppj{-X`bm+AB`fbx|9C|9!JtL!ph4V0@mzGj4SwF6H}q{FO=JYpxn-aVGIoCxFZnCogq-}a)UC0g(I08ISOS|E|k3AD`Uc; z+-(o#9#<%1SxD~;CGYvlIOZBS#&<%wk4+~~Ct(E2{k1&)2Sg|j^g(%W5XvNq8A&ob zOd+WhN{fIpox;5DD>IqQ`@S-p!a4R(=B7fKmk4G4RVWL*pezi4vd9I>V){yapezl7 zvWyLv8=*86Kw04rrP&+GN@`fR0LvJUf7LLQ)g~xw^ibBaXk9Oq^%QKBplo8NRu-|* z-y8#F3;jnZ&ilUdXcv^n*lfEal<&Gh$@{+Yy?!V=sP{n-lpl^j*-1W5gz}ScD0$yk zeoBp#B9z^0p!~cK$}bH}?#YDmD+ZqGfwI>g%F`ZDe#3%iIQB8Pk44T>_*^fP{fs~F z3*`mo3`kIZN73(D;QLM}e-Ow3l!I*g5*xVePP(DI;s@nbYF(wykMv)o)^*x{qTg_X z1%BqnZ~&CQSfISg0wXN&+Ypq$w?p|y8>o(k2R zT&Udppn8H$JUIfD2Rrr{gX$SKLgBfzdk#W1kM?;S=Tm2aJ5+ooP%UKqq7JCMo1uD+ z&AlKI+I$$ZxEHD=9G5mi<;(9ss$~ICEzg9?&jG5J;-TVoK;=){EB;We420@c#sqL& z#qM8Y63>6t8WU7&+o5_xfGW@)sy8E`;(4!HM_W)gRO>lz=!I(I7*w0+-%PzNMyNt^ zp?bRjs;#tzIznaG<^a|9P^iL6pbBTgjt;1HIYSi@3{_+hR8bU)rY&Xwsy%K{#j=oo z6skD-49!sSIY70K{saqDiGb<=^A2`FmDCAUGUq8iP#toIDwQ#5j8A7nnF3T<%*)pE z_~)=_o-}Z68$i z_E0snLDfX8)Uee;)yzVz?NA-*hUzGr;Jshf&IP>d2h|DcyvMkXQ6B#fDAef=)kj@W zeLM)&CnHdO8V=QGB~W!cL-n~HsxL;N>IsDEt8u8l7NP3(h3a$%RA(61*8|nLHBfyU z3{`(8R2M>^y4VaAPfgYLjZppIL#R7Q+oepXE_*?B1%#SE^88o*NP%m5sIF6FC=sfk zEKuEG=RXfX^$UZ4Wx<>5euOc<1wi#XbN+~dYLsz2EmgPsq55+Os=r*I`kV3pctbVL zLU&4_y6X!y2B4OwLaoSzS_p@l_kOi16l%2zYJ=DTwWbSdohQ_iGt_)GS5Ih%dSW-! zlK}N(SE#4dLOqqXd&Z%5q~N_2xSv7~Fn&65rp63+s2^Gb^-RXkEP(pqOsF4egZfc7 z!UksbLjBlPsAu~_{Wx{z1VHWX1B3brC#awFAw5t(#bACMRC@$M{d73g&ro1)Jk*{{ zdX@?EIL=Rm+Uq|kvXFU;1gLo{RzD{~{XBUg25KJ@)Qj2Vl1`|7+2At9EoaV))Z?49 zdIjTOCjRjTs9(`Ty)qc;S2+f-^Hp6?zcvc>8bH0)3F_C~p?)JC>cA4H-=giU5vYSW z4;q4cJsV!naYHTC8|e==LcPfo>dj<}D`CM9@^&}W?^vMT8Ub~vH`Ln#px*9B4C7FT z2SU9g1nQj~Q15DnI)WmRdZ?oq#M`QRHyhYvf;u)6YJE7=yq&5Iy-@G#fjWUXi5^fN zU`~<~q2K6CI-yQ>g*qjWj6i*ev8j5}4Rsp*X%U1PhIH<(3@@lNL71Gyglrbb=5ER{ zL7mIQJO<`-uN+wKJJcrnE7(lM0MzDws4K^zuJVJrx)JIc z7Urp{u6KmGL4ulhS9N0tkAD-LR(4~{g}PY}HNX3*TWLGOf=9ieKIRAYagOcm`rQJk zPf+N+0jS>(fcgW*cCwj|#-RTAD%4#OP=DG9^=B-8k`11Wfx4Sx_XyOV)Bi;v)L%M5 z-SZzIWQfQAt3Iet4MY941?t`|s87d3{S8<14U3#%Vjt&cO;Des|J!k>``N&Gi6j#G zdA_SJumPU)>VXodzw?Irdy%9<&2wM<1AT*oP+uaK8FR%G>Z>kvZgzvH3)hq~ieq2{}Q`d=5)2K8M%M7Tqg1wfR0LNv$+AS!wx3Y`#@5fD{G?F>=0 zC$$hYeh{^s>ja3BKSVnph!dDRF%Y6X1txhzoa_W~iUULkK%5!`@gBzg&lRGhNcth( z$L;&6>*NdZfpCb^sp-u5gYhtkGio8aP++Db#D{~)IK)RfA-Xd7Q3^hq3vrea;$v=P z45C{*#MvzJxEI7Z9T43|AU-h&@k!dB>VxRP_@}!e&SjCg96hP^Y#YRR1rX;mhmZ8) z0*TPRkl%mAMRa&`@;nPXe-+{jO!DEln6@R{URn#$*9dVL$K@dqUo=7VuVuyV9-Vj z#9(f3iify4k^e<<4a5*5#J9PkcQ|gPEi@G3wqA%~A%r>M?GSgc;LZSuySRW|+#`{} z5TooNMpGxI03xp+;_fksu@Xc*?Ry1?acg+&{RzLriTnH@CNOC~MH4e29t6ZBM~KE$ zh$$RXMj@uMK$3Azm;+yx0iwI|<_VF%W;~f_TXX;$@0n z>4W$q3-I}9 zrg%W(Pyh|TlxzOy2aO|R?;V5YeotteI-r?m56$#=Xq@|?nGpbuOAItKX*WC)0S)ib znpxe@xH&*Gdk~sAzR*132+fm?(0DNE>3(QCK(o=4G(r>1m`y>@Z03AR05l;uY&D^@^Y*LR&N^Yd|7*foWJfMEe6!W;(nAw53{6xZG|}$R#Be3M z$sQv#vGnOF&eKP;w-1`Q2<|>MW}t99WA=4HlfWkS)1Jt<10d8oNO)V;82zA0_8{ZX zq%i+b3^b{HE!LzZLX+-D+M&tlfF`pRnk*K~4uB@d0h(NYG73$;2Q-I6pebN{VF@%v zELg(4(oSf~x}h<#;R;`9%oMKlhQ`9!D(Y8fLQ@j~O>HAIb)AA#mw7Czwz&3i2Lz7I4Xu+a|(q2cfQnvVvc`Gk30 z5;UJWK=WBGG~Jwk&h0N4_a)~&CNc)iSH94k5(({JUxlXElgIxwMZR%_=8Ox;gr<-4 zv)n!x4$Zf@(DVmEbDkm>X&=x-^F5&XAq1Mi7-%kY`wAPnO2KQ+qz{_wUC<1bK=V^7 zG&j6SFEl>~k*m-QTcG)c4gAsw4ZnnIZpQHVk1%n>1kGRR^?~LV18=c` z+uXiA2F)1fe}QyE^EYjOv)DgZp&74*=8hL>gXUjq{o4u6T{eGr7+RSKt=tP*g*_RA zR>*`_=?kq&A_LH>4T=0ihu8?M#saO@lZ->Fqg`Sm--@*p=$mMS);KnowEpAJu5^T!*97e<&R+|Kb~PJX>j&-Y_Rzku2HL;?Xy5FE zc3md4K||1P=z%s^gmx3{n>i0*{@ec0zT*My))Ht#S#ulz{g-xo2()1m>4Y{s9NHc1 zcqavS`9d4vPKKe4q;OOlw9zJLW4OJ$AKE?L(DIR7t7qI^K+DH+t-%A@cpt)sc|Fi3 z)Iz&I7uv)EXb-Spk`Y>CBecmw(5Cc4o5~A_mbX=HdMdOT>?*Sj+H4BsxImlB-IeDD zZN3+@hv_dEgtm|(MI4K}p)H|E=@_)-ENWt0MIf}5j?h|YuNsH8rVrY>PH5{H(`X{2 z&^Gl$Yt=(*ON6$WHbYAzw5_?&9=Qr_TLH93J)u1&L3{i^hM{d|m+w;Kgaz97;-T#b zh4y`leCR;hq3w);_9Jg-KMsQSlR;>^sPkDkv?tkUcMr6mbNqtimtD~Iu%WN$KgGCS zXJ}8m@c4g2!7~gx>kaL>PH6kR2n+C>*ItwelLnady#VbGzR(T^KzoTrFULcBWev1f z+2A$CU8BzRAZUj|p#6#CjX`LCCVYa{{$fwMq5ZWH+MCQBVf+Yd{?^Fj|GN>|KbSD; z4(%-l-Wr4Ub~Chp_ChGl z(yl6jPMrvyMkJlkX$PQ_yrHuTfNnx4bQ2w+vp2*;H;F-$>6qdQokIk4Q@f%2AE0ym zkE_t#+YjA+UC=pk?$i$50~Y9}#X~n;51lh}9}IzRMh|okaodH(XLA0q3A#tdpnKF4 zx>@efJ;tJL9nj5Y6LUPEa}R{>3FaG~WWlEx=rIJ{)8o+1^(CXwJ!?;Lp_}gwoficc zu;3z!dACFNya3$`Ea1Z!AI2wTfykO>{1nsu8*G7jAq77THK?rj!-hqkRw(1n&jx2+Sp?bHZo{06Yh-ziO?Oa zg)WJOjPxasL6=eh-60lA?SwAf9l8u}=rS$PWed>da3Q(O$zx1De+t(f?uD*Ug06@Z z`#@JhTWKzIWj)ZDJfW+Iht50%T_wA&ViVQA(ABVDEyp?!=;~deYw&}vF_a8K*TkaM zQRr;V&^32M*Xjt}5ijW4f}lIfxMOVScpG%>!(7-2CchU9UB^}E-p_^ZgFfg!q_eXF zx{vLl`-HwO@)<=wW5*|b$S8E(Cg?tohwh6+=)R==D~Yfe&u!h;q?e1}o3!p5U+B&_ zK-b3x&U!$1&I!72NxvI(=RJ7*F9^_GC=c0u|I-iM9R~hO=iMGiXoDmhgQN(8#QU|RY=@+Fgd|FkG@g*O zZjf}jkfcsX6SzIG1d=^-Ci|07NK-l>IfO%+8Vug>2qSd zlYxaExC&`nH>BxwI5Y4;GNTsKLlknMeI^S$%*01n#B~tTEQ&rB1j&s8kBgAzunBi} zNKa7o$u*FkqR+z*($hvV4(XX@NOOs2Af#uVAkF)a9!T>uAsM_HAuV9Bg$!6!0?C^K z&ryKS^U@13kbJ@+Ew(^f>P$u;E#rK-2Vvtcc0uy%g!Ixdq!ojZ{MpPa-jH}+ORu^T z+E>{_dX4kdevsDCw$>lg>jjYB=z#R50}Rqzbn>1p1&u@6z~GH69GnYjQxBxgEWG6^ zq>ye%Z+Al43P_<2khZab?Gy`hgcKeDX$KqKIS6SNiC}zG2&8Ck?{4ZNd-o~Yla7gd7LBj`3`j819jzaoKAj6P8))xI^mmgmiWd zVf?umNZ%Gf>SwKfHgdiP(uHnF7y14t4Rk>I-V4$XOdc$ObSZ-LLAvY>=}Hi!t0G~s zAB~W%v6<_fUmt}uGz95}Bcz`>A7<?B{<+0j0s7IqT{VQ1e1yUE;k@POS^7cv67|HZ@3(FD8u++cTq5E+1-Q!4BpVBQ16 zu$#slX9JxNQhY`X>>l!mor@lJJm2je4uRbx7TCEq!tPPpXBEKiu`bxn7Gd|eAMD%# zyC)oB_oNT(p6Z3&(=0UC2s=+F*zs$Z-8^5|%^!r_0?rq9z|K1rcD!xd`MAJti34ed z-BLDX@Z}$#({{@{VfW%V>|WvuR`kQpKLU0uDbCxoU4S?2Rx$21ci63_eGQvh%lOwB zA83KyTePoZ!$EzpTTdGwyX`j7&&O`N5Zd1!gxyv)!PC}myFcv0s2T1+MzF|k2OYcE zRV0aG!DuG!=HA%D)x~nIABNpt3+(vC$}VmMcJZ|DV{!uis@C7H*G zq_f5H<7bN%`h`i8E-HvXlte|;$0uDB$DNW+kBLM>v_yCO^qAyy`S{cUyN%mqPafaB zY{FI<#~+tZaFQt;fShjQapgJ$Vg2zgzX>7tANL5EP&oPc**z07b;q|IoG|vt@om-# O-7d!$oSE>6{Qm$~KVNA8 diff --git a/list.lua b/list.lua index ae4af514..f07248e2 100644 --- a/list.lua +++ b/list.lua @@ -58,7 +58,7 @@ blockColor={ } sfx={ "welcome", - "click", + "click","enter", "error","error_long", --Stereo sfxs(cannot set position) "button","swipe", diff --git a/main.lua b/main.lua index 1411a2c3..1a4713c8 100644 --- a/main.lua +++ b/main.lua @@ -253,13 +253,19 @@ function mouseClick.mode(x,y,k) local _=cam.sel if not cam.sel or x<920 then local __=onMode(x,y) - if __ and _~=__ then - SFX("click") - cam.moving=true - _=modes[__] - cam.x,cam.y=_.x*cam.k+180,_.y*cam.k + if _~=__ then + if __ then + SFX("click") + cam.moving=true + _=modes[__] + cam.x=_.x*cam.k+180 + cam.y=_.y*cam.k + cam.sel=__ + else + cam.sel=nil + cam.x=cam.x-180 + end end - cam.sel=__ end cam.keyCtrl=false end @@ -470,9 +476,11 @@ function keyDown.setting_key(key) for y=1,20 do if setting.keyMap[l][y]==key then setting.keyMap[l][y]="" + goto L end end end + ::L:: setting.keyMap[s.board][s.kb]=key SFX("reach",.5) s.kS=false @@ -515,31 +523,33 @@ function gamepadDown.setting_key(key) for y=1,20 do if setting.keyMap[l][y]==key then setting.keyMap[l][y]="" + goto L end end end + ::L:: setting.keyMap[8+s.board][s.js]=key SFX("reach",.5) s.jS=false elseif key=="start"then s.jS=true SFX("lock",.5) - elseif key=="up"then + elseif key=="dpup"then if s.js>1 then s.js=s.js-1 SFX("move",.5) end - elseif key=="down"then + elseif key=="dpdown"then if s.js<20 then s.js=s.js+1 SFX("move",.5) end - elseif key=="left"then + elseif key=="dpleft"then if s.board>1 then s.board=s.board-1 SFX("rotate",.5) end - elseif key=="right"then + elseif key=="dpright"then if s.board<8 then s.board=s.board+1 SFX("rotate",.5) @@ -647,7 +657,7 @@ function touchMove.play(id,x,y,dx,dy) end end function keyDown.play(key) - if key=="escape"and not scene.swapping then + if key=="escape"then (frame<180 and back or pauseGame)() return end @@ -745,7 +755,7 @@ local function widgetControl_key(i) widget_sel=select(2,next(Widget[scene.cur])) end elseif i=="space"or i=="return"then - if not scene.swapping and widget_sel then + if widget_sel then widgetPress(widget_sel) end elseif i=="left"or i=="right"then @@ -769,10 +779,8 @@ local function widgetControl_gamepad(i) widget_sel=select(2,next(Widget[scene.cur])) end elseif i=="start"then - if not scene.swapping and widget_sel then - if not scene.swapping and widget_sel then - widgetPress(widget_sel) - end + if widget_sel then + widgetPress(widget_sel) end elseif i=="dpleft"or i=="dpright"then if widget_sel then @@ -789,8 +797,9 @@ local function widgetControl_gamepad(i) end local lastX,lastY--last clickDown pos function love.mousepressed(x,y,k,t,num) + mouseShow=true if devMode>0 then print(x,y)end - if t then return end + if t or scene.swapping then return end mx,my=xOy:inverseTransformPoint(x,y) if mouseDown[scene.cur]then mouseDown[scene.cur](mx,my,k) @@ -798,16 +807,16 @@ function love.mousepressed(x,y,k,t,num) scene.back() end if k==1 then - if widget_sel and not scene.swapping then + if widget_sel then widgetPress(widget_sel,mx,my) end end lastX=mx lastY=my - mouseShow=true end function love.mousemoved(x,y,dx,dy,t) - if t then return end + mouseShow=true + if t or scene.swapping then return end mx,my=xOy:inverseTransformPoint(x,y) dx,dy=dx/scr.k,dy/scr.k if mouseMove[scene.cur]then @@ -824,10 +833,9 @@ function love.mousemoved(x,y,dx,dy,t) end end end - mouseShow=true end function love.mousereleased(x,y,k,t,num) - if t then return end + if t or scene.swapping then return end mx,my=xOy:inverseTransformPoint(x,y) if mouseUp[scene.cur]then mouseUp[scene.cur](mx,my,k) @@ -837,11 +845,13 @@ function love.mousereleased(x,y,k,t,num) end end function love.wheelmoved(x,y) + if scene.swapping then return end if wheelMoved[scene.cur]then wheelMoved[scene.cur](x,y)end end function love.touchpressed(id,x,y) mouseShow=false + if scene.swapping then return end if not touching then touching=id love.touchmoved(id,x,y,0,0) @@ -853,6 +863,7 @@ function love.touchpressed(id,x,y) end end function love.touchmoved(id,x,y,dx,dy) + if scene.swapping then return end x,y=xOy:inverseTransformPoint(x,y) if touchMove[scene.cur]then touchMove[scene.cur](id,x,y,dx/scr.k,dy/scr.k) @@ -873,10 +884,11 @@ function love.touchmoved(id,x,y,dx,dy) end end function love.touchreleased(id,x,y) + if scene.swapping then return end x,y=xOy:inverseTransformPoint(x,y) if id==touching then touching=nil - if widget_sel and not scene.swapping then + if widget_sel then widgetPress(widget_sel,x,y) end widget_sel=nil @@ -890,6 +902,7 @@ function love.touchreleased(id,x,y) end function love.keypressed(i) mouseShow=false + if scene.swapping then return end if i=="f8"then devMode=0 elseif i=="f9"then devMode=1 elseif i=="f10"then devMode=2 @@ -926,6 +939,7 @@ function love.keypressed(i) end end function love.keyreleased(i) + if scene.swapping then return end if keyUp[scene.cur]then keyUp[scene.cur](i)end end @@ -939,6 +953,7 @@ local keyMirror={ } function love.gamepadpressed(joystick,i) mouseShow=false + if scene.swapping then return end if gamepadDown[scene.cur]then gamepadDown[scene.cur](i) elseif keyDown[scene.cur]then keyDown[scene.cur](keyMirror[i]or i) elseif i=="back"then scene.back() @@ -946,6 +961,7 @@ function love.gamepadpressed(joystick,i) end end function love.gamepadreleased(joystick,i) + if scene.swapping then return end if gamepadUp[scene.cur]then gamepadUp[scene.cur](i) end end @@ -1170,8 +1186,6 @@ function love.run() for N,a,b,c,d,e in POLL()do if N=="quit"then destroyPlayers() - saveStat() - saveSetting() goto END elseif love[N]then love[N](a,b,c,d,e) @@ -1206,7 +1220,7 @@ local F=love.filesystem if F.getInfo("data")then F.write("data.dat",F.read("data")) F.remove("data") -end +end if F.getInfo("userdata")then F.write("data.dat",F.read("userdata")) F.remove("userdata") @@ -1223,7 +1237,6 @@ end FILE={ data=F.newFile("data.dat"), setting=F.newFile("setting.dat"), - vk=F.newFile("vk"), } if F.getInfo("data.dat")then loadStat()end if F.getInfo("setting.dat")then @@ -1234,5 +1247,5 @@ else setting.VKSwitch=false end math.randomseed(os.time()*626) -swapLanguage(setting.lang) +changeLanguage(setting.lang) changeBlockSkin(setting.skin) \ No newline at end of file diff --git a/modes/blind_easy.lua b/modes/blind_easy.lua index d5c038b8..cd5ae7fd 100644 --- a/modes/blind_easy.lua +++ b/modes/blind_easy.lua @@ -34,11 +34,11 @@ return{ mStr(P.stat.clear_4,-82,340) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=140 and 5 or diff --git a/modes/blind_hard.lua b/modes/blind_hard.lua index 8d147077..bf96b97b 100644 --- a/modes/blind_hard.lua +++ b/modes/blind_hard.lua @@ -36,11 +36,11 @@ return{ mStr(P.stat.clear_4,-82,340) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=150 and 5 or diff --git a/modes/blind_lunatic.lua b/modes/blind_lunatic.lua index 56069532..219b652c 100644 --- a/modes/blind_lunatic.lua +++ b/modes/blind_lunatic.lua @@ -36,11 +36,11 @@ return{ mStr(P.stat.clear_4,-82,340) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=180 and 5 or diff --git a/modes/blind_normal.lua b/modes/blind_normal.lua index 549ac654..da759eaa 100644 --- a/modes/blind_normal.lua +++ b/modes/blind_normal.lua @@ -35,11 +35,11 @@ return{ mStr(P.stat.clear_4,-82,340) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=150 and 5 or diff --git a/modes/blind_ultimate.lua b/modes/blind_ultimate.lua index eef4f4ae..d0a0fed8 100644 --- a/modes/blind_ultimate.lua +++ b/modes/blind_ultimate.lua @@ -37,12 +37,12 @@ return{ mStr(P.stat.clear_4,-82,340) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or L>=100 and 4 or L>=50 and 3 or L>=26 and 2 or diff --git a/modes/classic_fast.lua b/modes/classic_fast.lua index 3e4618a2..0e9ef577 100644 --- a/modes/classic_fast.lua +++ b/modes/classic_fast.lua @@ -54,7 +54,7 @@ return{ gc.rectangle("fill",-125,375,90,4) end, score=function(P)return{P.stat.row,P.stat.score}end, - scoreDisp=function(D)return D[1].." Rows "..D[2]end, + scoreDisp=function(D)return D[1].." Lines "..D[2]end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]>b[2]end, getRank=function(P) local L=P.stat.row diff --git a/modes/dig_hard.lua b/modes/dig_hard.lua index a25d58f2..591f5c5f 100644 --- a/modes/dig_hard.lua +++ b/modes/dig_hard.lua @@ -40,7 +40,7 @@ return{ mDraw(drawableText.wave,-82,375) end, score=function(P)return{P.modeData.event,P.stat.row}end, - scoreDisp=function(D)return D[1].." Waves "..D[2].." Rows"end, + scoreDisp=function(D)return D[1].." Waves "..D[2].." Lines"end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]b[1]or a[1]==b[1]and a[2]=0 and R or 0,-82,280) end, score=function(P)return{P.stat.row<=100 and P.stat.row or 100,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=0 and R or 0,-82,280) end, score=function(P)return{P.stat.row<=100 and P.stat.row or 100,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]b[1]end, getRank=function(P) local L=P.modeData.point diff --git a/modes/marathon_hard.lua b/modes/marathon_hard.lua index 6d45608a..eeb00329 100644 --- a/modes/marathon_hard.lua +++ b/modes/marathon_hard.lua @@ -37,11 +37,11 @@ return{ gc.rectangle("fill",-125,375,90,4) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=200 and 5 or diff --git a/modes/marathon_normal.lua b/modes/marathon_normal.lua index 46e90c59..af981b3b 100644 --- a/modes/marathon_normal.lua +++ b/modes/marathon_normal.lua @@ -46,11 +46,11 @@ return{ gc.rectangle("fill",-125,375,90,4) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 then local T=P.stat.time return T<=180 and 5 or diff --git a/modes/sprint_1000.lua b/modes/sprint_1000.lua index a56505b3..4b10115d 100644 --- a/modes/sprint_1000.lua +++ b/modes/sprint_1000.lua @@ -50,4 +50,4 @@ return{ T<=2200 and 2 or T<=3000 and 1 end, -} \ No newline at end of file +} \ No newline at end of file diff --git a/modes/sprint_40.lua b/modes/sprint_40.lua index 2e3e2c6b..5bdcb28a 100644 --- a/modes/sprint_40.lua +++ b/modes/sprint_40.lua @@ -48,6 +48,6 @@ return{ T<=32 and 4 or T<=40 and 3 or T<=60 and 2 or - T<=100 and 1 + T<=120 and 1 end, } \ No newline at end of file diff --git a/modes/survivor_easy.lua b/modes/survivor_easy.lua index 2319372f..c74e4a16 100644 --- a/modes/survivor_easy.lua +++ b/modes/survivor_easy.lua @@ -19,7 +19,6 @@ return{ env={ drop=30,lock=45, freshLimit=10, - visible="time", task=function(P) if not P.control then return end P.modeData.counter=P.modeData.counter+1 diff --git a/modes/survivor_hard.lua b/modes/survivor_hard.lua index fe39d8cb..7bc77150 100644 --- a/modes/survivor_hard.lua +++ b/modes/survivor_hard.lua @@ -19,7 +19,6 @@ return{ env={ drop=30,lock=45, freshLimit=10, - visible="time", task=function(P) if not P.control then return end P.modeData.counter=P.modeData.counter+1 diff --git a/modes/survivor_lunatic.lua b/modes/survivor_lunatic.lua index 0fba16a7..49dc9a58 100644 --- a/modes/survivor_lunatic.lua +++ b/modes/survivor_lunatic.lua @@ -19,7 +19,6 @@ return{ env={ drop=30,lock=45, freshLimit=10, - visible="time", task=function(P) if not P.control then return end P.modeData.counter=P.modeData.counter+1 diff --git a/modes/survivor_normal.lua b/modes/survivor_normal.lua index 2349ee08..36dafbe0 100644 --- a/modes/survivor_normal.lua +++ b/modes/survivor_normal.lua @@ -19,7 +19,6 @@ return{ env={ drop=30,lock=45, freshLimit=10, - visible="time", task=function(P) if not P.control then return end P.modeData.counter=P.modeData.counter+1 diff --git a/modes/tech_hard+.lua b/modes/tech_hard+.lua index 09b5c21f..ba6fbc6f 100644 --- a/modes/tech_hard+.lua +++ b/modes/tech_hard+.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_ultimate(P) if #P.cleared>0 and P.lastClear<10 or P.lastClear==74 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=126 and 4 or + L>=90 and 3 or + L>=60 and 2 or + L>=30 and 1 end, } \ No newline at end of file diff --git a/modes/tech_hard.lua b/modes/tech_hard.lua index 6fb0cadf..7e280139 100644 --- a/modes/tech_hard.lua +++ b/modes/tech_hard.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_easy(P) if #P.cleared>0 and P.b2b<40 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=126 and 4 or + L>=90 and 3 or + L>=60 and 2 or + L>=30 and 1 end, } \ No newline at end of file diff --git a/modes/tech_lunatic+.lua b/modes/tech_lunatic+.lua index 050ad58c..99dd215d 100644 --- a/modes/tech_lunatic+.lua +++ b/modes/tech_lunatic+.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_ultimate(P) if #P.cleared>0 and P.lastClear<10 or P.lastClear==74 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=140 and 4 or + L>=90 and 3 or + L>=60 and 2 or + L>=30 and 1 end, } \ No newline at end of file diff --git a/modes/tech_lunatic.lua b/modes/tech_lunatic.lua index 38eaae37..e433066f 100644 --- a/modes/tech_lunatic.lua +++ b/modes/tech_lunatic.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_hard(P) if #P.cleared>0 and P.lastClear<10 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=140 and 4 or + L>=90 and 3 or + L>=60 and 2 or + L>=30 and 1 end, } \ No newline at end of file diff --git a/modes/tech_normal+.lua b/modes/tech_normal+.lua index a101d19c..35be1546 100644 --- a/modes/tech_normal+.lua +++ b/modes/tech_normal+.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_ultimate(P) if #P.cleared>0 and P.lastClear<10 or P.lastClear==74 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=126 and 4 or + L>=80 and 3 or + L>=50 and 2 or + L>=20 and 1 end, } \ No newline at end of file diff --git a/modes/tech_normal.lua b/modes/tech_normal.lua index 68b9e967..f251c779 100644 --- a/modes/tech_normal.lua +++ b/modes/tech_normal.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_easy(P) if #P.cleared>0 and P.b2b<40 then Event.lose(P) @@ -39,15 +40,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=126 and 4 or + L>=80 and 3 or + L>=50 and 2 or + L>=20 and 1 end, } \ No newline at end of file diff --git a/modes/tech_ultimate+.lua b/modes/tech_ultimate+.lua index cee1a581..2c2c9262 100644 --- a/modes/tech_ultimate+.lua +++ b/modes/tech_ultimate+.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_ultimate(P) if #P.cleared>0 and P.lastClear<10 or P.lastClear==74 then Event.lose(P) @@ -40,15 +41,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=150 and 4 or + L>=100 and 3 or + L>=70 and 2 or + L>=40 and 1 end, } \ No newline at end of file diff --git a/modes/tech_ultimate.lua b/modes/tech_ultimate.lua index d66175b4..dce71e41 100644 --- a/modes/tech_ultimate.lua +++ b/modes/tech_ultimate.lua @@ -1,3 +1,4 @@ +local format=string.format local function tech_check_hard(P) if #P.cleared>0 and P.lastClear<10 then Event.lose(P) @@ -40,15 +41,15 @@ return{ mDraw(drawableText.eff,-82,475) end, score=function(P)return{P.stat.row<=200 and P.stat.row or 200,P.stat.time}end, - scoreDisp=function(D)return D[1].." Rows "..toTime(D[2])end, + scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end, comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]=200 and 5 or + L>=150 and 4 or + L>=100 and 3 or + L>=70 and 2 or + L>=40 and 1 end, } \ No newline at end of file diff --git a/paint.lua b/paint.lua index e2916af2..2d76b65f 100644 --- a/paint.lua +++ b/paint.lua @@ -213,7 +213,7 @@ function Pnt.mode() local M=MM[_] if R[_]then gc.setLineWidth(8) - gc.setColor(1,1,1,.15) + gc.setColor(1,1,1,.2) for _=1,#M.unlock do local m=M.unlock[_] if R[m]then @@ -223,8 +223,8 @@ function Pnt.mode() end local S=M.size - local d=((M.x-(cam.x1-180)/cam.k1)^2+(M.y-cam.y1/cam.k1)^2)^.5 - if d<600 then S=S*(1.3-d*0.0005) end + local d=((M.x-(cam.x1+(cam.sel and -180 or 0))/cam.k1)^2+(M.y-cam.y1/cam.k1)^2)^.55 + if d<500 then S=S*(1.25-d*0.0005) end gc.setColor(modeRankColor[modeRanks[M.id]]) if M.shape==1 then--Rectangle gc.rectangle("fill",M.x-S,M.y-S,2*S,2*S) diff --git a/scene.lua b/scene.lua index b6368221..9f4f029e 100644 --- a/scene.lua +++ b/scene.lua @@ -47,7 +47,7 @@ local sceneInit={ end end, mode=function() - curBG="none" + curBG="glow" BGM("blank") destroyPlayers() mapCam.zoomK=scene.swap.tar=="mode"and 5 or 1 @@ -236,7 +236,8 @@ function scene.push(tar,style) end end function scene.pop() - scene.seq={} + local _=scene.seq + _[#_-1]=nil end function scene.swapTo(tar,style) local S=scene.swap @@ -253,15 +254,13 @@ function scene.swapTo(tar,style) end end function scene.back() - if not scene.swapping then - if backFunc[scene.cur] then backFunc[scene.cur]()end - --func when scene end - local m=#scene.seq - if m>0 then - scene.swapTo(scene.seq[m-1],scene.seq[m]) - scene.seq[m],scene.seq[m-1]=nil - --Poll&Back to preScene - end + if backFunc[scene.cur] then backFunc[scene.cur]()end + --func when scene end + local m=#scene.seq + if m>0 then + scene.swapTo(scene.seq[m-1],scene.seq[m]) + scene.seq[m],scene.seq[m-1]=nil + --Poll&Back to preScene end end return scene \ No newline at end of file diff --git a/toolfunc.lua b/toolfunc.lua index 5fca84ba..43b61672 100644 --- a/toolfunc.lua +++ b/toolfunc.lua @@ -20,7 +20,7 @@ end function toTime(s) if s<60 then - return format("%.2fs",s) + return format("%.3fs",s) elseif s<3600 then return format("%dm%.2fs",int(s/60),s%60) else @@ -95,7 +95,7 @@ local drawableTextLoad={ "noScore", "highScore", } -function swapLanguage(l) +function changeLanguage(l) text=require("language/"..langID[l]) for S,L in next,Widget do for N,W in next,L do @@ -305,6 +305,7 @@ function loadGame(M) drawableText.levelName:set(M.level[lang]) needResetGameData=true scene.swapTo("play","fade_togame") + SFX("enter") end function resetPartGameData() gameResult=false @@ -614,8 +615,8 @@ function saveSetting() F:flush() F:close() if _ then - TEXT(text.settingSaved,640,360,80,"appear") + TEXT(text.settingSaved,370,330,30,"appear") else - TEXT(text.settingSavingError..mes,640,360,40,"appear",.4) + TEXT(text.settingSavingError.."123",370,350,20,"appear",.3) end end \ No newline at end of file diff --git a/updateLog.lua b/updateLog.lua index 01399c11..9dd374e3 100644 --- a/updateLog.lua +++ b/updateLog.lua @@ -35,12 +35,19 @@ Future outlook: more FXs & 3d features & animations Encrypt source code(compile to byte code) 0.8.6: + gamepad can adjust key + add SFX when enter game + map GUI little adjusted + event system little changed(no ctrl when scene swapping) + bug fixed(rank system,some mode error when enter) +0.8.5-: mode map!Brandly new GUI for mode selecting mode unlock system,not that scary for noob every mode has rank calculating method(may some mistakes/inappropriate number) save 10 best recoreds for each mode can save/share custom map now new mode:Big Bang + button appearance changed better widget performence many bug fixed 0.8.4: diff --git a/widgetList.lua b/widgetList.lua index 07fb04ae..cc76dbab 100644 --- a/widgetList.lua +++ b/widgetList.lua @@ -142,7 +142,7 @@ local Widget={ stat= newButton(370,460,200,160,C.lightCyan, 43,function()scene.push()scene.swapTo("stat")end, nil,"lang"), lang= newButton(150,610,160,100,C.lightGreen, 45,function() setting.lang=setting.lang%#langName+1 - swapLanguage(setting.lang) + changeLanguage(setting.lang) TEXT(text.lang,370,610,50,"appear",1.6) end,nil,"quit"), quit= newButton(590,460,200,160,C.lightGrey, 55,function()VOICE("bye")scene.swapTo("quit","slowFade")end,nil,"play"),