整理代码,新增string扩展模块,把一些小模块合并进string和table扩展模块中
This commit is contained in:
@@ -40,7 +40,7 @@ return function(L,t)
|
|||||||
T=type(v)
|
T=type(v)
|
||||||
if T=="number"then v=tostring(v)
|
if T=="number"then v=tostring(v)
|
||||||
elseif T=="string"then v="\""..v.."\""
|
elseif T=="string"then v="\""..v.."\""
|
||||||
elseif T=="table"then v=DUMPTABLE(v,t+1)
|
elseif T=="table"then v=TABLE.dump(v,t+1)
|
||||||
elseif T=="boolean"then v=tostring(v)
|
elseif T=="boolean"then v=tostring(v)
|
||||||
else error("Error data type!")
|
else error("Error data type!")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ function FILE.save(data,name,mode)
|
|||||||
if not mode then mode=""end
|
if not mode then mode=""end
|
||||||
if type(data)=="table"then
|
if type(data)=="table"then
|
||||||
if mode:find("l")then
|
if mode:find("l")then
|
||||||
data=DUMPTABLE(data)
|
data=TABLE.dump(data)
|
||||||
if not data then
|
if not data then
|
||||||
LOG.print(name.." "..text.saveError.."dump error","error")
|
LOG.print(name.." "..text.saveError.."dump error","error")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -13,14 +13,10 @@ MDRAW=require"Zframework.mDraw"
|
|||||||
mText=MDRAW.simpX
|
mText=MDRAW.simpX
|
||||||
mDraw=MDRAW.draw
|
mDraw=MDRAW.draw
|
||||||
|
|
||||||
-- UPPERCHAR=require"Zframework.upperChar"
|
|
||||||
JSON=require"Zframework.json"
|
JSON=require"Zframework.json"
|
||||||
DUMPTABLE=require"Zframework.dumpTable"
|
|
||||||
URLENCODE=require"Zframework.urlEncode"
|
|
||||||
|
|
||||||
TABLE=require"Zframework.tableExtend"
|
TABLE=require"Zframework.tableExtend"
|
||||||
SPLITSTR=require"Zframework.splitStr"
|
STRING=require"Zframework.stringExtend"
|
||||||
TIMESTR=require"Zframework.timeStr"
|
|
||||||
|
|
||||||
VIB= require"Zframework.vibrate"
|
VIB= require"Zframework.vibrate"
|
||||||
SFX= require"Zframework.sfx"
|
SFX= require"Zframework.sfx"
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
local find,sub=string.find,string.sub
|
|
||||||
return function(s,sep,regex)
|
|
||||||
local L={}
|
|
||||||
local p1,p2=1--start,target
|
|
||||||
if regex then
|
|
||||||
while p1<=#s do
|
|
||||||
p2=find(s,sep,p1)or #s+1
|
|
||||||
L[#L+1]=sub(s,p1,p2-1)
|
|
||||||
p1=p2+#sep
|
|
||||||
end
|
|
||||||
else
|
|
||||||
while p1<=#s do
|
|
||||||
p2=find(s,sep,p1,true)or #s+1
|
|
||||||
L[#L+1]=sub(s,p1,p2-1)
|
|
||||||
p1=p2+#sep
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return L
|
|
||||||
end
|
|
||||||
77
Zframework/stringExtend.lua
Normal file
77
Zframework/stringExtend.lua
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
local STRING={}
|
||||||
|
local int,format=math.floor,string.format
|
||||||
|
local find,sub,upper=string.find,string.sub,string.upper
|
||||||
|
|
||||||
|
do--function STRING.shiftChar(c)
|
||||||
|
local shiftMap={
|
||||||
|
["1"]="!",["2"]="@",["3"]="#",["4"]="$",["5"]="%",
|
||||||
|
["6"]="^",["7"]="&",["8"]="*",["9"]="(",["0"]=")",
|
||||||
|
["`"]="~",["-"]="_",["="]="+",
|
||||||
|
["["]="{",["]"]="}",["\\"]="|",
|
||||||
|
[";"]=":",["'"]="\"",
|
||||||
|
[","]="<",["."]=">",["/"]="?",
|
||||||
|
}
|
||||||
|
function STRING.shiftChar(c)
|
||||||
|
return shiftMap[c]or upper(c)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function STRING.split(s,sep,regex)
|
||||||
|
local L={}
|
||||||
|
local p1,p2=1--start,target
|
||||||
|
if regex then
|
||||||
|
while p1<=#s do
|
||||||
|
p2=find(s,sep,p1)or #s+1
|
||||||
|
L[#L+1]=sub(s,p1,p2-1)
|
||||||
|
p1=p2+#sep
|
||||||
|
end
|
||||||
|
else
|
||||||
|
while p1<=#s do
|
||||||
|
p2=find(s,sep,p1,true)or #s+1
|
||||||
|
L[#L+1]=sub(s,p1,p2-1)
|
||||||
|
p1=p2+#sep
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return L
|
||||||
|
end
|
||||||
|
|
||||||
|
function STRING.simpEmailCheck(e)
|
||||||
|
e=STRING.split(e,"@")
|
||||||
|
if #e~=2 then return false end
|
||||||
|
if e[1]:sub(-1)=="."or e[2]:sub(-1)=="."then return false end
|
||||||
|
local e1,e2=STRING.split(e[1],"."),STRING.split(e[2],".")
|
||||||
|
if #e1*#e2==0 then return false end
|
||||||
|
for _,v in next,e1 do if #v==0 then return false end end
|
||||||
|
for _,v in next,e2 do if #v==0 then return false end end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function STRING.time(s)
|
||||||
|
if s<60 then
|
||||||
|
return format("%.3f\"",s)
|
||||||
|
elseif s<3600 then
|
||||||
|
return format("%d'%05.2f\"",int(s/60),s%60)
|
||||||
|
else
|
||||||
|
local h=int(s/3600)
|
||||||
|
return format("%d:%.2d'%05.2f\"",h,int(s/60%60),s%60)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
do--function STRING.urlEncode(str)
|
||||||
|
local rshift=bit.rshift
|
||||||
|
local b16={[0]="0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}
|
||||||
|
function STRING.urlEncode(str)
|
||||||
|
local out=""
|
||||||
|
for i=1,#str do
|
||||||
|
if str:sub(i,i):match("[a-zA-Z0-9]")then
|
||||||
|
out=out..str:sub(i,i)
|
||||||
|
else
|
||||||
|
local b=str:byte(i)
|
||||||
|
out=out.."%"..b16[rshift(b,4)]..b16[b%16]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return out
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return STRING
|
||||||
@@ -73,4 +73,60 @@ function TABLE.reIndex(org)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--Dump a simple lua table
|
||||||
|
do--function TABLE.dump(L,t)
|
||||||
|
local find=string.find
|
||||||
|
local tabs={
|
||||||
|
[0]="",
|
||||||
|
"\t",
|
||||||
|
"\t\t",
|
||||||
|
"\t\t\t",
|
||||||
|
"\t\t\t\t",
|
||||||
|
"\t\t\t\t\t",
|
||||||
|
}
|
||||||
|
function dump(L,t)
|
||||||
|
local s
|
||||||
|
if t then
|
||||||
|
s="{\n"
|
||||||
|
else
|
||||||
|
s="return{\n"
|
||||||
|
t=1
|
||||||
|
if type(L)~="table"then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local count=1
|
||||||
|
for k,v in next,L do
|
||||||
|
local T=type(k)
|
||||||
|
if T=="number"then
|
||||||
|
if k==count then
|
||||||
|
k=""
|
||||||
|
count=count+1
|
||||||
|
else
|
||||||
|
k="["..k.."]="
|
||||||
|
end
|
||||||
|
elseif T=="string"then
|
||||||
|
if find(k,"[^0-9a-zA-Z_]")then
|
||||||
|
k="[\""..k.."\"]="
|
||||||
|
else
|
||||||
|
k=k.."="
|
||||||
|
end
|
||||||
|
elseif T=="boolean"then k="["..k.."]="
|
||||||
|
else error("Error key type!")
|
||||||
|
end
|
||||||
|
T=type(v)
|
||||||
|
if T=="number"then v=tostring(v)
|
||||||
|
elseif T=="string"then v="\""..v.."\""
|
||||||
|
elseif T=="table"then v=dump(v,t+1)
|
||||||
|
elseif T=="boolean"then v=tostring(v)
|
||||||
|
else error("Error data type!")
|
||||||
|
end
|
||||||
|
s=s..tabs[t]..k..v..",\n"
|
||||||
|
end
|
||||||
|
return s..tabs[t-1].."}"
|
||||||
|
end
|
||||||
|
TABLE.dump=dump
|
||||||
|
end
|
||||||
|
|
||||||
return TABLE
|
return TABLE
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
local int,format=math.floor,string.format
|
|
||||||
return function(s)
|
|
||||||
if s<60 then
|
|
||||||
return format("%.3f\"",s)
|
|
||||||
elseif s<3600 then
|
|
||||||
return format("%d'%05.2f\"",int(s/60),s%60)
|
|
||||||
else
|
|
||||||
local h=int(s/3600)
|
|
||||||
return format("%d:%.2d'%05.2f\"",h,int(s/60%60),s%60)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
local upper=string.upper
|
|
||||||
local upperList={
|
|
||||||
["1"]="!",["2"]="@",["3"]="#",["4"]="$",["5"]="%",
|
|
||||||
["6"]="^",["7"]="&",["8"]="*",["9"]="(",["0"]=")",
|
|
||||||
["`"]="~",["-"]="_",["="]="+",
|
|
||||||
["["]="{",["]"]="}",["\\"]="|",
|
|
||||||
[";"]=":",["'"]="\"",
|
|
||||||
[","]="<",["."]=">",["/"]="?",
|
|
||||||
}
|
|
||||||
return function(c)
|
|
||||||
return upperList[c]or upper(c)
|
|
||||||
end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
local rshift=bit.rshift
|
|
||||||
local b16={[0]="0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}
|
|
||||||
return function(str)
|
|
||||||
local out=""
|
|
||||||
for i=1,#str do
|
|
||||||
if str:sub(i,i):match("[a-zA-Z0-9]")then
|
|
||||||
out=out..str:sub(i,i)
|
|
||||||
else
|
|
||||||
local b=str:byte(i)
|
|
||||||
out=out.."%"..b16[rshift(b,4)]..b16[b%16]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return out
|
|
||||||
end
|
|
||||||
@@ -129,7 +129,7 @@ return{--返回一个table,你也可以在之前定义一些常量或者函数
|
|||||||
PLY.draw.drawTargetLine(P,r)--使用自带的境界高度线绘制函数
|
PLY.draw.drawTargetLine(P,r)--使用自带的境界高度线绘制函数
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,--游戏结束时需要保存的本局关键信息
|
score=function(P)return{P.stat.time,P.stat.piece}end,--游戏结束时需要保存的本局关键信息
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,--把score返回的数据显示出来的方法
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,--把score返回的数据显示出来的方法
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)--计算评级
|
getRank=function(P)--计算评级
|
||||||
if P.stat.row<40 then return end--你总得打完40行对吧,否则直接return空掉,成绩都不记录
|
if P.stat.row<40 then return end--你总得打完40行对吧,否则直接return空掉,成绩都不记录
|
||||||
|
|||||||
@@ -4,12 +4,9 @@ local gc=love.graphics
|
|||||||
local gc_setColor,gc_setLineWidth,gc_setShader=gc.setColor,gc.setLineWidth,gc.setShader
|
local gc_setColor,gc_setLineWidth,gc_setShader=gc.setColor,gc.setLineWidth,gc.setShader
|
||||||
local gc_push,gc_pop,gc_origin,gc_translate=gc.push,gc.pop,gc.origin,gc.translate
|
local gc_push,gc_pop,gc_origin,gc_translate=gc.push,gc.pop,gc.origin,gc.translate
|
||||||
local gc_draw,gc_rectangle,gc_circle=gc.draw,gc.rectangle,gc.circle
|
local gc_draw,gc_rectangle,gc_circle=gc.draw,gc.rectangle,gc.circle
|
||||||
local max,int,rnd=math.max,math.floor,math.random
|
local int,rnd=math.floor,math.random
|
||||||
local sin=math.sin
|
|
||||||
local sub=string.sub
|
|
||||||
local char,byte=string.char,string.byte
|
local char,byte=string.char,string.byte
|
||||||
local ins,rem=table.insert,table.remove
|
local ins,rem=table.insert,table.remove
|
||||||
local YIELD=YIELD
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -257,14 +254,17 @@ function copyQuestArgs()
|
|||||||
ENV.sequence
|
ENV.sequence
|
||||||
return str
|
return str
|
||||||
end
|
end
|
||||||
function pasteQuestArgs(str)
|
do--function pasteQuestArgs(str)
|
||||||
if #str<4 then return end
|
local sub=string.sub
|
||||||
local ENV=CUSTOMENV
|
function pasteQuestArgs(str)
|
||||||
ENV.holdCount= byte(str,1)-48
|
if #str<4 then return end
|
||||||
ENV.ospin= byte(str,2)~=90
|
local ENV=CUSTOMENV
|
||||||
ENV.missionKill= byte(str,3)~=90
|
ENV.holdCount= byte(str,1)-48
|
||||||
ENV.sequence= sub(str,4)
|
ENV.ospin= byte(str,2)~=90
|
||||||
return true
|
ENV.missionKill= byte(str,3)~=90
|
||||||
|
ENV.sequence= sub(str,4)
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -467,7 +467,6 @@ end
|
|||||||
|
|
||||||
--Game
|
--Game
|
||||||
function generateLine(hole)
|
function generateLine(hole)
|
||||||
-- return 2^10-1-2^(hole-1)
|
|
||||||
return 1023-2^(hole-1)
|
return 1023-2^(hole-1)
|
||||||
end
|
end
|
||||||
function freshDate(mode)
|
function freshDate(mode)
|
||||||
@@ -500,16 +499,6 @@ function legalGameTime()--Check if today's playtime is legal
|
|||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
function legalEmail(e)
|
|
||||||
e=SPLITSTR(e,"@")
|
|
||||||
if #e~=2 then return false end
|
|
||||||
if e[1]:sub(-1)=="."or e[2]:sub(-1)=="."then return false end
|
|
||||||
local e1,e2=SPLITSTR(e[1],"."),SPLITSTR(e[2],".")
|
|
||||||
if #e1*#e2==0 then return false end
|
|
||||||
for _,v in next,e1 do if #v==0 then return false end end
|
|
||||||
for _,v in next,e2 do if #v==0 then return false end end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
function mergeStat(stat,delta)--Merge delta stat. to global stat.
|
function mergeStat(stat,delta)--Merge delta stat. to global stat.
|
||||||
for k,v in next,delta do
|
for k,v in next,delta do
|
||||||
@@ -690,6 +679,7 @@ do--function dumpBasicConfig()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
do--function resetGameData(args)
|
do--function resetGameData(args)
|
||||||
|
local YIELD=YIELD
|
||||||
local function tick_showMods()
|
local function tick_showMods()
|
||||||
local time=0
|
local time=0
|
||||||
while true do
|
while true do
|
||||||
@@ -790,36 +780,39 @@ do--function resetGameData(args)
|
|||||||
collectgarbage()
|
collectgarbage()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function checkWarning()
|
do--function checkWarning()
|
||||||
local P1=PLAYERS[1]
|
local max=math.max
|
||||||
if P1.alive then
|
function checkWarning()
|
||||||
if P1.frameRun%26==0 then
|
local P1=PLAYERS[1]
|
||||||
local F=P1.field
|
if P1.alive then
|
||||||
local height=0--Max height of row 4~7
|
if P1.frameRun%26==0 then
|
||||||
for x=4,7 do
|
local F=P1.field
|
||||||
for y=#F,1,-1 do
|
local height=0--Max height of row 4~7
|
||||||
if F[y][x]>0 then
|
for x=4,7 do
|
||||||
if y>height then
|
for y=#F,1,-1 do
|
||||||
height=y
|
if F[y][x]>0 then
|
||||||
|
if y>height then
|
||||||
|
height=y
|
||||||
|
end
|
||||||
|
break
|
||||||
end
|
end
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
GAME.warnLVL0=math.log(height-(P1.gameEnv.fieldH-5)+P1.atkBuffer.sum*.8)
|
||||||
end
|
end
|
||||||
GAME.warnLVL0=math.log(height-(P1.gameEnv.fieldH-5)+P1.atkBuffer.sum*.8)
|
local _=GAME.warnLVL
|
||||||
|
if _<GAME.warnLVL0 then
|
||||||
|
_=_*.95+GAME.warnLVL0*.05
|
||||||
|
elseif _>0 then
|
||||||
|
_=max(_-.026,0)
|
||||||
|
end
|
||||||
|
GAME.warnLVL=_
|
||||||
|
elseif GAME.warnLVL>0 then
|
||||||
|
GAME.warnLVL=max(GAME.warnLVL-.026,0)
|
||||||
end
|
end
|
||||||
local _=GAME.warnLVL
|
if GAME.warnLVL>1.126 and P1.frameRun%30==0 then
|
||||||
if _<GAME.warnLVL0 then
|
SFX.fplay("warning",SETTING.sfx_warn)
|
||||||
_=_*.95+GAME.warnLVL0*.05
|
|
||||||
elseif _>0 then
|
|
||||||
_=max(_-.026,0)
|
|
||||||
end
|
end
|
||||||
GAME.warnLVL=_
|
|
||||||
elseif GAME.warnLVL>0 then
|
|
||||||
GAME.warnLVL=max(GAME.warnLVL-.026,0)
|
|
||||||
end
|
|
||||||
if GAME.warnLVL>1.126 and P1.frameRun%30==0 then
|
|
||||||
SFX.fplay("warning",SETTING.sfx_warn)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -987,6 +980,7 @@ do--function drawFWM()
|
|||||||
--等Techmino发展到一定程度之后会解除这个限制
|
--等Techmino发展到一定程度之后会解除这个限制
|
||||||
--最后,别把藏在这里的东西截图/复制出去哦~
|
--最后,别把藏在这里的东西截图/复制出去哦~
|
||||||
--感谢您对Techmino的支持!!!
|
--感谢您对Techmino的支持!!!
|
||||||
|
local sin=math.sin
|
||||||
local setFont,TIME,mStr=setFont,TIME,mStr
|
local setFont,TIME,mStr=setFont,TIME,mStr
|
||||||
function drawFWM()
|
function drawFWM()
|
||||||
local t=TIME()
|
local t=TIME()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
return SPLITSTR([=[
|
return STRING.split([=[
|
||||||
Gameplay:
|
Gameplay:
|
||||||
The system will provide you with tetrominoes (4-block pieces),
|
The system will provide you with tetrominoes (4-block pieces),
|
||||||
with a total of 7 types, and the player needs to control them
|
with a total of 7 types, and the player needs to control them
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
return SPLITSTR([=[
|
return STRING.split([=[
|
||||||
游戏方法:
|
游戏方法:
|
||||||
系统会提供的一个个四连骨牌("方块",总共7种)
|
系统会提供的一个个四连骨牌("方块",总共7种)
|
||||||
玩家需要控制(左右移动和旋转90,180,270度)这些骨牌直到下落到场地底部,锁定
|
玩家需要控制(左右移动和旋转90,180,270度)这些骨牌直到下落到场地底部,锁定
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ return{
|
|||||||
mText(drawableText.nextWave,69,380)
|
mText(drawableText.nextWave,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ return{
|
|||||||
mText(drawableText.nextWave,69,380)
|
mText(drawableText.nextWave,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ return{
|
|||||||
mText(drawableText.atk,69,380)
|
mText(drawableText.atk,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ return{
|
|||||||
mText(drawableText.atk,69,380)
|
mText(drawableText.atk,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ return{
|
|||||||
mText(drawableText.atk,69,380)
|
mText(drawableText.atk,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ return{
|
|||||||
mText(drawableText.atk,69,380)
|
mText(drawableText.atk,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
score=function(P)return{math.min(math.floor(P.stat.atk),100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return{
|
|||||||
mStr(P.stat.clears[4],69,340)
|
mStr(P.stat.clears[4],69,340)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ return{
|
|||||||
gc.draw(IMG.electric,124,106,0,2.6)
|
gc.draw(IMG.electric,124,106,0,2.6)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ return{
|
|||||||
gc.draw(IMG.electric,124,106,0,2.6)
|
gc.draw(IMG.electric,124,106,0,2.6)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ return{
|
|||||||
gc.draw(IMG.electric,124,106,0,2.6)
|
gc.draw(IMG.electric,124,106,0,2.6)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ return{
|
|||||||
gc.draw(IMG.electric,124,106,0,2.6)
|
gc.draw(IMG.electric,124,106,0,2.6)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ return{
|
|||||||
mStr(P.stat.clears[4],69,340)
|
mStr(P.stat.clears[4],69,340)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,40),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,40),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ return{
|
|||||||
mText(drawableText.maxcmb,69,450)
|
mText(drawableText.maxcmb,69,450)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.modeData.maxCombo,100),P.stat.time}end,
|
score=function(P)return{math.min(P.modeData.maxCombo,100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Combo "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Combo "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.modeData.maxCombo
|
local L=P.modeData.maxCombo
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ return{
|
|||||||
mText(drawableText.maxcmb,69,450)
|
mText(drawableText.maxcmb,69,450)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.modeData.maxCombo,100),P.stat.time}end,
|
score=function(P)return{math.min(P.modeData.maxCombo,100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Combo "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Combo "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ return{
|
|||||||
mText(drawableText.rpm,69,380)
|
mText(drawableText.rpm,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ return{
|
|||||||
mText(drawableText.rpm,69,380)
|
mText(drawableText.rpm,69,380)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ return{
|
|||||||
mStr(100-P.stat.dig,69,265)
|
mStr(100-P.stat.dig,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.dig<100 then return end
|
if P.stat.dig<100 then return end
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ return{
|
|||||||
mStr(10-P.stat.dig,69,265)
|
mStr(10-P.stat.dig,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.dig<10 then return end
|
if P.stat.dig<10 then return end
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ return{
|
|||||||
mStr(400-P.stat.dig,69,265)
|
mStr(400-P.stat.dig,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.dig<400 then return end
|
if P.stat.dig<400 then return end
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ return{
|
|||||||
mStr(40-P.stat.dig,69,265)
|
mStr(40-P.stat.dig,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.dig<40 then return end
|
if P.stat.dig<40 then return end
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ return{
|
|||||||
mStr(R>=0 and R or 0,69,265)
|
mStr(R>=0 and R or 0,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,100),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ return{
|
|||||||
mStr(R>=0 and R or 0,69,265)
|
mStr(R>=0 and R or 0,69,265)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
|
score=function(P)return{min(P.stat.row,100),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."P "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)
|
comp=function(a,b)
|
||||||
return a[1]>b[1]or(a[1]==b[1]and a[2]<b[2])
|
return a[1]>b[1]or(a[1]==b[1]and a[2]<b[2])
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."P "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)
|
comp=function(a,b)
|
||||||
return a[1]>b[1]or(a[1]==b[1]and a[2]<b[2])
|
return a[1]>b[1]or(a[1]==b[1]and a[2]<b[2])
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."P "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local S=P.modeData.pt
|
local S=P.modeData.pt
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ return{
|
|||||||
gc.rectangle("fill",25,375,90,4)
|
gc.rectangle("fill",25,375,90,4)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.result=="WIN"and 260 or P.modeData.pt,P.stat.time}end,
|
score=function(P)return{P.result=="WIN"and 260 or P.modeData.pt,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."P "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local p=P.modeData.pt
|
local p=P.modeData.pt
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ return{
|
|||||||
mText(drawableText.pc,69,432)
|
mText(drawableText.pc,69,432)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.pc,P.stat.time}end,
|
score=function(P)return{P.stat.pc,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." PCs "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." PCs "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.pc
|
local L=P.stat.pc
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ return{
|
|||||||
mText(drawableText.pc,69,432)
|
mText(drawableText.pc,69,432)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.pc,P.stat.time}end,
|
score=function(P)return{P.stat.pc,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." PCs "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." PCs "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.pc
|
local L=P.stat.pc
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return{
|
|||||||
mText(drawableText.pc,69,432)
|
mText(drawableText.pc,69,432)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.pc,P.stat.time}end,
|
score=function(P)return{P.stat.pc,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." PCs "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." PCs "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.pc
|
local L=P.stat.pc
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ return{
|
|||||||
mText(drawableText.pc,69,412)
|
mText(drawableText.pc,69,412)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.pc,P.stat.time}end,
|
score=function(P)return{P.stat.pc,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." PCs "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." PCs "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.pc
|
local L=P.stat.pc
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ return{
|
|||||||
mText(drawableText.pc,69,412)
|
mText(drawableText.pc,69,412)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.pc,P.stat.time}end,
|
score=function(P)return{P.stat.pc,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." PCs "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." PCs "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.pc
|
local L=P.stat.pc
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ return{
|
|||||||
gc.circle("line",69,200,30+45*beat)
|
gc.circle("line",69,200,30+45*beat)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ return{
|
|||||||
gc.circle("line",69,200,30+45*beat)
|
gc.circle("line",69,200,30+45*beat)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ return{
|
|||||||
gc.circle("line",69,200,30+45*beat)
|
gc.circle("line",69,200,30+45*beat)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Lines "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.row
|
local L=P.stat.row
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,1,true,10000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,1,true,10000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.piece,P.stat.time}end,
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Pieces "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,2,true,16000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,2,true,16000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.piece,P.stat.time}end,
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Pieces "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,26000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,26000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.piece,P.stat.time}end,
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Pieces "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,1,true,13000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,1,true,13000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.piece,P.stat.time}end,
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Pieces "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,40000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,40000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.piece,P.stat.time}end,
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Pieces "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("9S",4))
|
PLY.newAIPlayer(2,AIBUILDER("9S",4))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time}end,
|
score=function(P)return{P.stat.time}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1])end,
|
scoreDisp=function(D)return STRING.time(D[1])end,
|
||||||
comp=function(a,b)return a[1]<b[1]end,
|
comp=function(a,b)return a[1]<b[1]end,
|
||||||
getRank=function(P)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("9S",6))
|
PLY.newAIPlayer(2,AIBUILDER("9S",6))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time}end,
|
score=function(P)return{P.stat.time}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1])end,
|
scoreDisp=function(D)return STRING.time(D[1])end,
|
||||||
comp=function(a,b)return a[1]<b[1]end,
|
comp=function(a,b)return a[1]<b[1]end,
|
||||||
getRank=function(P)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",6,2,true,30000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",6,2,true,30000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time}end,
|
score=function(P)return{P.stat.time}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1])end,
|
scoreDisp=function(D)return STRING.time(D[1])end,
|
||||||
comp=function(a,b)return a[1]<b[1]end,
|
comp=function(a,b)return a[1]<b[1]end,
|
||||||
getRank=function(P)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("9S",5))
|
PLY.newAIPlayer(2,AIBUILDER("9S",5))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time}end,
|
score=function(P)return{P.stat.time}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1])end,
|
scoreDisp=function(D)return STRING.time(D[1])end,
|
||||||
comp=function(a,b)return a[1]<b[1]end,
|
comp=function(a,b)return a[1]<b[1]end,
|
||||||
getRank=function(P)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return{
|
|||||||
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,50000))
|
PLY.newAIPlayer(2,AIBUILDER("CC",7,3,true,50000))
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time}end,
|
score=function(P)return{P.stat.time}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1])end,
|
scoreDisp=function(D)return STRING.time(D[1])end,
|
||||||
comp=function(a,b)return a[1]<b[1]end,
|
comp=function(a,b)return a[1]<b[1]end,
|
||||||
getRank=function(P)
|
getRank=function(P)
|
||||||
if P.result=="WIN"then
|
if P.result=="WIN"then
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or(a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<40 then return end
|
if P.stat.row<40 then return end
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or(a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<40 then return end
|
if P.stat.row<40 then return end
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<1000 then return end
|
if P.stat.row<1000 then return end
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<100 then return end
|
if P.stat.row<100 then return end
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<10 then return end
|
if P.stat.row<10 then return end
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<20 then return end
|
if P.stat.row<20 then return end
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<400 then return end
|
if P.stat.row<400 then return end
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ return{
|
|||||||
PLY.draw.drawTargetLine(P,r)
|
PLY.draw.drawTargetLine(P,r)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.time,P.stat.piece}end,
|
score=function(P)return{P.stat.time,P.stat.piece}end,
|
||||||
scoreDisp=function(D)return TIMESTR(D[1]).." "..D[2].." Pieces"end,
|
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,
|
||||||
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
if P.stat.row<40 then return end
|
if P.stat.row<40 then return end
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ return{
|
|||||||
mText(drawableText.wave,69,375)
|
mText(drawableText.wave,69,375)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ return{
|
|||||||
mText(drawableText.wave,69,375)
|
mText(drawableText.wave,69,375)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ return{
|
|||||||
mText(drawableText.wave,69,375)
|
mText(drawableText.wave,69,375)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ return{
|
|||||||
mText(drawableText.wave,69,375)
|
mText(drawableText.wave,69,375)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ return{
|
|||||||
mText(drawableText.wave,69,375)
|
mText(drawableText.wave,69,375)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
score=function(P)return{P.modeData.wave,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Waves "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Waves "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local W=P.modeData.wave
|
local W=P.modeData.wave
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ return{
|
|||||||
mText(drawableText.eff,69,363)
|
mText(drawableText.eff,69,363)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
score=function(P)return{P.stat.atk<=200 and math.floor(P.stat.atk)or 200,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].." Attack "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].." Attack "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local L=P.stat.atk
|
local L=P.stat.atk
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ return{
|
|||||||
mText(drawableText.tsd,69,315)
|
mText(drawableText.tsd,69,315)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."TSD "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."TSD "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local T=P.modeData.tsd
|
local T=P.modeData.tsd
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ return{
|
|||||||
mText(drawableText.tsd,69,315)
|
mText(drawableText.tsd,69,315)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."TSD "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."TSD "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local T=P.modeData.tsd
|
local T=P.modeData.tsd
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ return{
|
|||||||
mText(drawableText.tsd,69,315)
|
mText(drawableText.tsd,69,315)
|
||||||
end,
|
end,
|
||||||
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
score=function(P)return{P.modeData.tsd,P.stat.time}end,
|
||||||
scoreDisp=function(D)return D[1].."TSD "..TIMESTR(D[2])end,
|
scoreDisp=function(D)return D[1].."TSD "..STRING.time(D[2])end,
|
||||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[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)
|
getRank=function(P)
|
||||||
local T=P.modeData.tsd
|
local T=P.modeData.tsd
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ function scene.keyDown(key)
|
|||||||
LOG.print(text.exportSuccess,COLOR.G)
|
LOG.print(text.exportSuccess,COLOR.G)
|
||||||
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
|
elseif key=="v"and kb.isDown("lctrl","rctrl")or key=="cV"then
|
||||||
local str=sys.getClipboardText()
|
local str=sys.getClipboardText()
|
||||||
local args=SPLITSTR(str:sub((str:find(":")or 0)+1),"!")
|
local args=STRING.split(str:sub((str:find(":")or 0)+1),"!")
|
||||||
if #args<4 then goto THROW_fail end
|
if #args<4 then goto THROW_fail end
|
||||||
if not(
|
if not(
|
||||||
pasteQuestArgs(args[1])and
|
pasteQuestArgs(args[1])and
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
local function login()
|
local function login()
|
||||||
local email= WIDGET.active.email.value
|
local email= WIDGET.active.email.value
|
||||||
local password= WIDGET.active.password.value
|
local password= WIDGET.active.password.value
|
||||||
if not legalEmail(email)then
|
if not STRING.simpEmailCheck(email)then
|
||||||
LOG.print(text.wrongEmail)return
|
LOG.print(text.wrongEmail)return
|
||||||
elseif #password==0 then
|
elseif #password==0 then
|
||||||
LOG.print(text.noPassword)return
|
LOG.print(text.noPassword)return
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ end
|
|||||||
|
|
||||||
function scene.socketRead(mes)
|
function scene.socketRead(mes)
|
||||||
local cmd=mes:sub(1,1)
|
local cmd=mes:sub(1,1)
|
||||||
local args=SPLITSTR(mes:sub(2),";")
|
local args=STRING.split(mes:sub(2),";")
|
||||||
if cmd=="J"or cmd=="L"then
|
if cmd=="J"or cmd=="L"then
|
||||||
textBox:push{
|
textBox:push{
|
||||||
COLOR.lR,args[1],
|
COLOR.lR,args[1],
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ function scene.sceneInit(org)
|
|||||||
|
|
||||||
local frameLostRate=(S.frame/S.time/60-1)*100
|
local frameLostRate=(S.frame/S.time/60-1)*100
|
||||||
form={
|
form={
|
||||||
{COLOR.Z,TIMESTR(S.time),COLOR[frameLostRate>10 and"R"or frameLostRate>3 and"Y"or"H"],format(" (%.2f%%)",frameLostRate)},
|
{COLOR.Z,STRING.time(S.time),COLOR[frameLostRate>10 and"R"or frameLostRate>3 and"Y"or"H"],format(" (%.2f%%)",frameLostRate)},
|
||||||
format("%d/%d/%d",S.key,S.rotate,S.hold),
|
format("%d/%d/%d",S.key,S.rotate,S.hold),
|
||||||
format("%d %.2fPPS",S.piece,S.piece/S.time),
|
format("%d %.2fPPS",S.piece,S.piece/S.time),
|
||||||
format("%d(%d) %.2fLPM",S.row,S.dig,S.row/S.time*60),
|
format("%d(%d) %.2fLPM",S.row,S.dig,S.row/S.time*60),
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ local function register()
|
|||||||
local password2=WIDGET.active.password2.value
|
local password2=WIDGET.active.password2.value
|
||||||
if #username==0 then
|
if #username==0 then
|
||||||
LOG.print(text.noUsername)return
|
LOG.print(text.noUsername)return
|
||||||
elseif not legalEmail(email)then
|
elseif not STRING.simpEmailCheck(email)then
|
||||||
LOG.print(text.wrongEmail)return
|
LOG.print(text.wrongEmail)return
|
||||||
elseif #password==0 or #password2==0 then
|
elseif #password==0 or #password2==0 then
|
||||||
LOG.print(text.noPassword)return
|
LOG.print(text.noPassword)return
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ local function dumpCB(T)
|
|||||||
"string","base64",
|
"string","base64",
|
||||||
love.data.compress(
|
love.data.compress(
|
||||||
"string","zlib",
|
"string","zlib",
|
||||||
DUMPTABLE(T)
|
TABLE.dump(T)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ function scene.sceneInit()
|
|||||||
item={
|
item={
|
||||||
S.run,
|
S.run,
|
||||||
S.game,
|
S.game,
|
||||||
TIMESTR(S.time),
|
STRING.time(S.time),
|
||||||
S.key.." "..S.rotate.." "..S.hold,
|
S.key.." "..S.rotate.." "..S.hold,
|
||||||
S.piece.." "..S.row.." "..int(S.atk),
|
S.piece.." "..S.row.." "..int(S.atk),
|
||||||
S.recv.." "..S.off.." "..S.pend,
|
S.recv.." "..S.off.." "..S.pend,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
return SPLITSTR([=[
|
return STRING.split([=[
|
||||||
未来模式:
|
未来模式:
|
||||||
无尽PC挑战; 简单极简练习; 任务生存; 对称; 无摩擦; 连击练习; 拼方形
|
无尽PC挑战; 简单极简练习; 任务生存; 对称; 无摩擦; 连击练习; 拼方形
|
||||||
极简教程/考试; 大爆炸; 音游模式; 跑酷; 术语问答; 养成玩法; 收集向抽奖玩法
|
极简教程/考试; 大爆炸; 音游模式; 跑酷; 术语问答; 养成玩法; 收集向抽奖玩法
|
||||||
|
|||||||
Reference in New Issue
Block a user