整理代码习惯,常量字符串改用单引号,可能有遗漏
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
local printf=love.graphics.printf
|
||||
local draw=love.graphics.draw
|
||||
local aDraw={}
|
||||
function aDraw.str(obj,x,y)printf(obj,x-626,y,1252,"center")end
|
||||
function aDraw.str(obj,x,y)printf(obj,x-626,y,1252,'center')end
|
||||
function aDraw.simpX(obj,x,y)draw(obj,x-obj:getWidth()*.5,y)end
|
||||
function aDraw.simpY(obj,x,y)draw(obj,x,y-obj:getHeight()*.5)end
|
||||
function aDraw.X(obj,x,y,a,k)draw(obj,x,y,a,k,nil,obj:getWidth()*.5,0)end
|
||||
|
||||
@@ -46,7 +46,7 @@ function BGM.init(list)
|
||||
for i=1,count do
|
||||
local file="media/BGM/"..list[i]..".ogg"
|
||||
if love.filesystem.getInfo(file)then
|
||||
Sources[list[i]]=love.audio.newSource(file,"stream")
|
||||
Sources[list[i]]=love.audio.newSource(file,'stream')
|
||||
Sources[list[i]]:setLooping(true)
|
||||
Sources[list[i]]:setVolume(0)
|
||||
else
|
||||
|
||||
@@ -19,19 +19,19 @@ local cmds={
|
||||
|
||||
draw="draw",
|
||||
dLine="line",
|
||||
fRect=function(...)gc.rectangle("fill",...)end,
|
||||
dRect=function(...)gc.rectangle("line",...)end,
|
||||
fCirc=function(...)gc.circle("fill",...)end,
|
||||
dCirc=function(...)gc.circle("line",...)end,
|
||||
fPoly=function(...)gc.polygon("fill",...)end,
|
||||
dPoly=function(...)gc.polygon("line",...)end,
|
||||
fRect=function(...)gc.rectangle('fill',...)end,
|
||||
dRect=function(...)gc.rectangle('line',...)end,
|
||||
fCirc=function(...)gc.circle('fill',...)end,
|
||||
dCirc=function(...)gc.circle('line',...)end,
|
||||
fPoly=function(...)gc.polygon('fill',...)end,
|
||||
dPoly=function(...)gc.polygon('line',...)end,
|
||||
|
||||
dPie=function(...)gc.arc("line",...)end,
|
||||
dArc=function(...)gc.arc("line","open",...)end,
|
||||
dBow=function(...)gc.arc("line","closed",...)end,
|
||||
fPie=function(...)gc.arc("fill",...)end,
|
||||
fArc=function(...)gc.arc("fill","open",...)end,
|
||||
fBow=function(...)gc.arc("fill","closed",...)end,
|
||||
dPie=function(...)gc.arc('line',...)end,
|
||||
dArc=function(...)gc.arc('line','open',...)end,
|
||||
dBow=function(...)gc.arc('line','closed',...)end,
|
||||
fPie=function(...)gc.arc('fill',...)end,
|
||||
fArc=function(...)gc.arc('fill','open',...)end,
|
||||
fBow=function(...)gc.arc('fill','closed',...)end,
|
||||
}
|
||||
return function(L)
|
||||
gc.push()
|
||||
@@ -42,13 +42,13 @@ return function(L)
|
||||
gc.setLineWidth(1)
|
||||
for i=3,#L do
|
||||
local cmd=L[i][1]
|
||||
if type(cmd)=="boolean"and cmd then
|
||||
if type(cmd)=='boolean'and cmd then
|
||||
table.remove(L[i],1)
|
||||
cmd=L[i][1]
|
||||
end
|
||||
if type(cmd)=="string"then
|
||||
if type(cmd)=='string'then
|
||||
local func=cmds[cmd]
|
||||
if type(func)=="string"then func=gc[func]end
|
||||
if type(func)=='string'then func=gc[func]end
|
||||
if func then
|
||||
func(unpack(L[i],2))
|
||||
else
|
||||
|
||||
@@ -14,34 +14,34 @@ return function(L,t)
|
||||
else
|
||||
s="return{\n"
|
||||
t=1
|
||||
if type(L)~="table"then
|
||||
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 T=='number'then
|
||||
if k==count then
|
||||
k=""
|
||||
count=count+1
|
||||
else
|
||||
k="["..k.."]="
|
||||
end
|
||||
elseif T=="string"then
|
||||
elseif T=='string'then
|
||||
if find(k,"[^0-9a-zA-Z_]")then
|
||||
k="[\""..k.."\"]="
|
||||
else
|
||||
k=k.."="
|
||||
end
|
||||
elseif T=="boolean"then k="["..k.."]="
|
||||
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=TABLE.dump(v,t+1)
|
||||
elseif T=="boolean"then v=tostring(v)
|
||||
if T=='number'then v=tostring(v)
|
||||
elseif T=='string'then v="\""..v.."\""
|
||||
elseif T=='table'then v=TABLE.dump(v,t+1)
|
||||
elseif T=='boolean'then v=tostring(v)
|
||||
else error("Error data type!")
|
||||
end
|
||||
s=s..tabs[t]..k..v..",\n"
|
||||
|
||||
@@ -3,7 +3,7 @@ local FILE={}
|
||||
function FILE.load(name)
|
||||
if fs.getInfo(name)then
|
||||
local F=fs.newFile(name)
|
||||
if F:open("r")then
|
||||
if F:open'r'then
|
||||
local s=F:read()
|
||||
F:close()
|
||||
if s:sub(1,6)=="return"then
|
||||
@@ -26,17 +26,17 @@ function FILE.load(name)
|
||||
end
|
||||
function FILE.save(data,name,mode)
|
||||
if not mode then mode=""end
|
||||
if type(data)=="table"then
|
||||
if mode:find("l")then
|
||||
if type(data)=='table'then
|
||||
if mode:find'l'then
|
||||
data=TABLE.dump(data)
|
||||
if not data then
|
||||
LOG.print(name.." "..text.saveError.."dump error","error")
|
||||
LOG.print(name.." "..text.saveError.."dump error",'error')
|
||||
return
|
||||
end
|
||||
else
|
||||
data=JSON.encode(data)
|
||||
if not data then
|
||||
LOG.print(name.." "..text.saveError.."json error","error")
|
||||
LOG.print(name.." "..text.saveError.."json error",'error')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -45,16 +45,16 @@ function FILE.save(data,name,mode)
|
||||
end
|
||||
|
||||
local F=fs.newFile(name)
|
||||
F:open("w")
|
||||
F:open'w'
|
||||
local success,mes=F:write(data)
|
||||
F:flush()F:close()
|
||||
if success then
|
||||
if not mode:find("q")then
|
||||
if not mode:find'q'then
|
||||
LOG.print(text.saveDone,COLOR.G)
|
||||
end
|
||||
else
|
||||
LOG.print(text.saveError..(mes or"unknown error"),"error")
|
||||
LOG.print(debug.traceback(),"error")
|
||||
LOG.print(text.saveError..(mes or"unknown error"),'error')
|
||||
LOG.print(debug.traceback(),'error')
|
||||
end
|
||||
end
|
||||
return FILE
|
||||
@@ -12,7 +12,7 @@ function IMG.init(list)
|
||||
local function load(skip)
|
||||
local loaded=0
|
||||
for k,v in next,list do
|
||||
if type(v)=="string"then
|
||||
if type(v)=='string'then
|
||||
IMG[k]=love.graphics.newImage("media/image/"..v)
|
||||
else
|
||||
for i=1,#v do
|
||||
|
||||
@@ -66,12 +66,12 @@ local devMode
|
||||
local infoCanvas=gc.newCanvas(108,27)
|
||||
local function updatePowerInfo()
|
||||
local state,pow=love.system.getPowerInfo()
|
||||
gc.setCanvas(infoCanvas)gc_push("transform")gc.origin()
|
||||
gc.setCanvas(infoCanvas)gc_push('transform')gc.origin()
|
||||
gc.clear(0,0,0,.25)
|
||||
if state~="unknown"then
|
||||
if state~='unknown'then
|
||||
gc.setLineWidth(4)
|
||||
local charging=state=="charging"
|
||||
if state=="nobattery"then
|
||||
local charging=state=='charging'
|
||||
if state=='nobattery'then
|
||||
gc_setColor(1,1,1)
|
||||
gc.setLineWidth(2)
|
||||
gc.line(74,SCR.safeX+5,100,22)
|
||||
@@ -82,7 +82,7 @@ local function updatePowerInfo()
|
||||
elseif pow<26 then gc_setColor(1,0,0)
|
||||
else gc_setColor(.5,0,1)
|
||||
end
|
||||
gc_rectangle("fill",76,6,pow*.22,14)
|
||||
gc_rectangle('fill',76,6,pow*.22,14)
|
||||
if pow<100 then
|
||||
setFont(15)
|
||||
gc_setColor(0,0,0)
|
||||
@@ -281,12 +281,12 @@ function love.joystickremoved(JS)
|
||||
end
|
||||
end
|
||||
local keyMirror={
|
||||
dpup="up",
|
||||
dpdown="down",
|
||||
dpleft="left",
|
||||
dpright="right",
|
||||
start="return",
|
||||
back="escape",
|
||||
dpup='up',
|
||||
dpdown='down',
|
||||
dpleft='left',
|
||||
dpright='right',
|
||||
start='return',
|
||||
back='escape',
|
||||
}
|
||||
function love.gamepadpressed(_,i)
|
||||
mouseShow=false
|
||||
@@ -330,7 +330,7 @@ function love.lowmemory()
|
||||
if TIME()-lastGCtime>6.26 then
|
||||
collectgarbage()
|
||||
lastGCtime=TIME()
|
||||
LOG.print("[auto GC] low MEM 设备内存过低","warn")
|
||||
LOG.print("[auto GC] low MEM 设备内存过低",'warn')
|
||||
end
|
||||
end
|
||||
function love.resize(w,h)
|
||||
@@ -343,7 +343,7 @@ end
|
||||
function love.focus(f)
|
||||
if f then
|
||||
love.timer.step()
|
||||
elseif SCN.cur=="game"and SETTING.autoPause then
|
||||
elseif SCN.cur=='game'and SETTING.autoPause then
|
||||
pauseGame()
|
||||
end
|
||||
end
|
||||
@@ -377,7 +377,7 @@ function love.errorhandler(msg)
|
||||
gc.reset()
|
||||
|
||||
if LOADED and #ERRDATA<3 then
|
||||
BG.set("none")
|
||||
BG.set('none')
|
||||
local scn=SCN and SCN.cur or"NULL"
|
||||
ERRDATA[#ERRDATA+1]={mes=err,scene=scn}
|
||||
|
||||
@@ -398,7 +398,7 @@ function love.errorhandler(msg)
|
||||
local res,threadErr
|
||||
repeat
|
||||
res,threadErr=resume(loopThread)
|
||||
until status(loopThread)=="dead"
|
||||
until status(loopThread)=='dead'
|
||||
if not res then
|
||||
love.errorhandler(threadErr)
|
||||
return
|
||||
@@ -413,15 +413,15 @@ function love.errorhandler(msg)
|
||||
while true do
|
||||
love.event.pump()
|
||||
for E,a,b in love.event.poll()do
|
||||
if E=="quit"or a=="escape"then
|
||||
if E=='quit'or a=='escape'then
|
||||
destroyPlayers()
|
||||
return true
|
||||
elseif E=="resize"then
|
||||
elseif E=='resize'then
|
||||
SCR.resize(a,b)
|
||||
end
|
||||
end
|
||||
gc.clear(.3,.5,.9)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc.replaceTransform(xOy)
|
||||
setFont(100)gc_print(":(",100,0,0,1.2)
|
||||
setFont(40)gc.printf(errorMsg,100,160,SCR.w0-100)
|
||||
@@ -439,7 +439,7 @@ function love.errorhandler(msg)
|
||||
end
|
||||
end
|
||||
local WS=WS
|
||||
local WSnames={"app","user","play","stream","chat"}
|
||||
local WSnames={'app','user','play','stream','chat'}
|
||||
local WScolor={
|
||||
{1,.5,.5,.7},
|
||||
{1,.8,.3,.7},
|
||||
@@ -479,8 +479,8 @@ function love.run()
|
||||
|
||||
--Scene Launch
|
||||
while #SCN.stack>0 do SCN.pop()end
|
||||
SCN.push("quit","slowFade")
|
||||
SCN.init(#ERRDATA==0 and"load"or"error")
|
||||
SCN.push('quit','slowFade')
|
||||
SCN.init(#ERRDATA==0 and'load'or'error')
|
||||
|
||||
return function()
|
||||
local _
|
||||
@@ -494,7 +494,7 @@ function love.run()
|
||||
for N,a,b,c,d,e in POLL()do
|
||||
if love[N]then
|
||||
love[N](a,b,c,d,e)
|
||||
elseif N=="quit"then
|
||||
elseif N=='quit'then
|
||||
destroyPlayers()
|
||||
return a or true
|
||||
end
|
||||
@@ -522,7 +522,7 @@ function love.run()
|
||||
--Draw background
|
||||
BG.draw()
|
||||
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc.replaceTransform(xOy)
|
||||
|
||||
--Draw scene contents
|
||||
@@ -539,7 +539,7 @@ function love.run()
|
||||
_=SCS[R][0]
|
||||
gc_draw(TEXTURE.miniBlock[R],mx,my,t%3.14159265359*4,16,16,_[2]+.5,#BLOCKS[R][0]-_[1]-.5)
|
||||
gc_setColor(1,1,1)
|
||||
gc_draw(TEXTURE[ms.isDown(1)and"cursor_hold"or"cursor"],mx,my,nil,nil,nil,8,8)
|
||||
gc_draw(TEXTURE[ms.isDown(1)and'cursor_hold'or'cursor'],mx,my,nil,nil,nil,8,8)
|
||||
end
|
||||
SYSFX.draw()
|
||||
TEXT.draw()
|
||||
@@ -577,31 +577,31 @@ function love.run()
|
||||
ins(frameTimeList,1,dt)rem(frameTimeList,126)
|
||||
gc_setColor(1,1,1,.3)
|
||||
for i=1,#frameTimeList do
|
||||
gc_rectangle("fill",150+2*i,_-20,2,-frameTimeList[i]*4000)
|
||||
gc_rectangle('fill',150+2*i,_-20,2,-frameTimeList[i]*4000)
|
||||
end
|
||||
|
||||
--Websocket status
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc.translate(SCR.w,SCR.h-100)
|
||||
gc.scale(SCR.k)
|
||||
for i=1,5 do
|
||||
local status=WS.status(WSnames[i])
|
||||
gc_setColor(WScolor[i])
|
||||
gc_rectangle("fill",0,20*i,-80,-20)
|
||||
if status=="dead"then
|
||||
gc_rectangle('fill',0,20*i,-80,-20)
|
||||
if status=='dead'then
|
||||
gc_setColor(1,1,1)
|
||||
gc_draw(TEXTURE.ws_dead,-20,20*i-20)
|
||||
elseif status=="connecting"then
|
||||
elseif status=='connecting'then
|
||||
gc_setColor(1,1,1,.5+.3*sin(t*6.26))
|
||||
gc_draw(TEXTURE.ws_connecting,-20,20*i-20)
|
||||
elseif status=="running"then
|
||||
elseif status=='running'then
|
||||
gc_setColor(1,1,1)
|
||||
gc_draw(TEXTURE.ws_running,-20,20*i-20)
|
||||
end
|
||||
local t1,t2,t3=WS.getTimers(WSnames[i])
|
||||
gc_setColor(1,1,1,t1)gc_rectangle("fill",-60,20*i,-20,-20)
|
||||
gc_setColor(0,1,0,t2)gc_rectangle("fill",-40,20*i,-20,-20)
|
||||
gc_setColor(1,0,0,t3)gc_rectangle("fill",-20,20*i,-20,-20)
|
||||
gc_setColor(1,1,1,t1)gc_rectangle('fill',-60,20*i,-20,-20)
|
||||
gc_setColor(0,1,0,t2)gc_rectangle('fill',-40,20*i,-20,-20)
|
||||
gc_setColor(1,0,0,t3)gc_rectangle('fill',-20,20*i,-20,-20)
|
||||
end
|
||||
gc_pop()
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ local function encode_table(val, stack)
|
||||
-- Treat as array -- check keys are valid and it is not sparse
|
||||
local n = 0
|
||||
for k in pairs(val) do
|
||||
if type(k) ~= "number" then
|
||||
if type(k) ~= 'number' then
|
||||
error("invalid table: mixed or invalid key types")
|
||||
end
|
||||
n = n + 1
|
||||
@@ -77,7 +77,7 @@ local function encode_table(val, stack)
|
||||
else
|
||||
-- Treat as an object
|
||||
for k, v in pairs(val) do
|
||||
if type(k) ~= "string" then
|
||||
if type(k) ~= 'string' then
|
||||
error("invalid table: mixed or invalid key types")
|
||||
end
|
||||
ins(res, encode(k, stack) .. ":" .. encode(v, stack))
|
||||
@@ -100,11 +100,11 @@ local function encode_number(val)
|
||||
end
|
||||
|
||||
local type_func_map = {
|
||||
["nil"] = encode_nil,
|
||||
["table"] = encode_table,
|
||||
["string"] = encode_string,
|
||||
["number"] = encode_number,
|
||||
["boolean"] = tostring
|
||||
['nil'] = encode_nil,
|
||||
['table'] = encode_table,
|
||||
['string'] = encode_string,
|
||||
['number'] = encode_number,
|
||||
['boolean'] = tostring
|
||||
}
|
||||
|
||||
encode = function(val, stack)
|
||||
@@ -119,7 +119,7 @@ function json.encode(val)
|
||||
if a then
|
||||
return b
|
||||
elseif LOG then
|
||||
LOG.print(text.jsonError..": "..(b or"uknErr"),"warn")
|
||||
LOG.print(text.jsonError..": "..(b or"uknErr"),'warn')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -336,7 +336,7 @@ function parse(str, idx)
|
||||
end
|
||||
|
||||
local function decode(str)
|
||||
if type(str) ~= "string" then
|
||||
if type(str) ~= 'string' then
|
||||
error("expected argument of type string, got " .. type(str))
|
||||
end
|
||||
local res, idx = parse(str, next_char(str, 1, space_chars, true))
|
||||
@@ -349,7 +349,7 @@ function json.decode(str)
|
||||
if a then
|
||||
return b
|
||||
elseif LOG then
|
||||
LOG.print(text.jsonError..": "..(b or"uknErr"),"warn")
|
||||
LOG.print(text.jsonError..": "..(b or"uknErr"),'warn')
|
||||
end
|
||||
end
|
||||
return json
|
||||
@@ -2,9 +2,9 @@ local LANG={}
|
||||
function LANG.init(langList,publicText)--Attention, calling this will destory all initializing methods, create a LANG.set()!
|
||||
local function langFallback(T0,T)
|
||||
for k,v in next,T0 do
|
||||
if type(v)=="table"and not v.refuseCopy then--refuseCopy: just copy pointer, not contents
|
||||
if type(v)=='table'and not v.refuseCopy then--refuseCopy: just copy pointer, not contents
|
||||
if not T[k]then T[k]={}end
|
||||
if type(T[k])=="table"then langFallback(v,T[k])end
|
||||
if type(T[k])=='table'then langFallback(v,T[k])end
|
||||
elseif not T[k]then
|
||||
T[k]=v
|
||||
end
|
||||
@@ -26,7 +26,7 @@ function LANG.init(langList,publicText)--Attention, calling this will destory al
|
||||
end
|
||||
|
||||
--Metatable:__call for table:getTip
|
||||
if type(rawget(L,"getTip"))=="table"then
|
||||
if type(rawget(L,"getTip"))=='table'then
|
||||
setmetatable(L.getTip,tipMeta)
|
||||
end
|
||||
|
||||
|
||||
@@ -49,14 +49,14 @@ local function draw(L)
|
||||
render(L.shadowCanvas,0,0,0,1,L.size)
|
||||
|
||||
--Ready to final render
|
||||
setShader()setCanvas()gc.setBlendMode("add")
|
||||
setShader()setCanvas()gc.setBlendMode('add')
|
||||
|
||||
--Render to screes
|
||||
gc.setColor(r,g,b,a)
|
||||
render(L.renderCanvas,X,Y+L.size,0,1,-1)
|
||||
|
||||
--Reset
|
||||
gc.setBlendMode("alpha")
|
||||
gc.setBlendMode('alpha')
|
||||
end
|
||||
|
||||
local LIGHT={}
|
||||
|
||||
@@ -4,7 +4,7 @@ return function(name,libName)
|
||||
if r1 and r2 then
|
||||
return r2
|
||||
else
|
||||
LOG.print("Cannot load "..name..": "..(r2 or r3),"warn",COLOR.R)
|
||||
LOG.print("Cannot load "..name..": "..(r2 or r3),'warn',COLOR.R)
|
||||
end
|
||||
elseif SYSTEM=="Android"then
|
||||
local fs=love.filesystem
|
||||
@@ -12,35 +12,35 @@ return function(name,libName)
|
||||
|
||||
local libFunc=package.loadlib(SAVEDIR.."/lib/"..libName.Android,libName.libFunc)
|
||||
if libFunc then
|
||||
LOG.print(name.." lib loaded","warn",COLOR.G)
|
||||
LOG.print(name.." lib loaded",'warn',COLOR.G)
|
||||
else
|
||||
for i=1,#platform do
|
||||
local soFile=fs.read("data","libAndroid/"..platform[i].."/"..libName.Android)
|
||||
local soFile=fs.read('data',"libAndroid/"..platform[i].."/"..libName.Android)
|
||||
if soFile then
|
||||
local success,message=fs.write("lib/"..libName.Android,soFile)
|
||||
if success then
|
||||
libFunc,message=package.loadlib(SAVEDIR.."/lib/"..libName.Android,libName.libFunc)
|
||||
if libFunc then
|
||||
LOG.print(name.." lib loaded","warn",COLOR.G)
|
||||
LOG.print(name.." lib loaded",'warn',COLOR.G)
|
||||
break
|
||||
else
|
||||
LOG.print("Cannot load "..name..": "..message,"warn",COLOR.R)
|
||||
LOG.print("Cannot load "..name..": "..message,'warn',COLOR.R)
|
||||
end
|
||||
else
|
||||
LOG.print("Write "..name.."-"..platform[i].." to saving failed: "..message,"warn",COLOR.R)
|
||||
LOG.print("Write "..name.."-"..platform[i].." to saving failed: "..message,'warn',COLOR.R)
|
||||
end
|
||||
else
|
||||
LOG.print("Read "..name.."-"..platform[i].." failed","warn",COLOR.R)
|
||||
LOG.print("Read "..name.."-"..platform[i].." failed",'warn',COLOR.R)
|
||||
end
|
||||
end
|
||||
if not libFunc then
|
||||
LOG.print("Cannot load "..name,"warn",COLOR.R)
|
||||
LOG.print("Cannot load "..name,'warn',COLOR.R)
|
||||
return
|
||||
end
|
||||
end
|
||||
return libFunc()
|
||||
else
|
||||
LOG.print("No "..name.." for "..SYSTEM,"warn",COLOR.R)
|
||||
LOG.print("No "..name.." for "..SYSTEM,'warn',COLOR.R)
|
||||
return
|
||||
end
|
||||
return true
|
||||
|
||||
@@ -38,21 +38,21 @@ end
|
||||
function LOG.print(text,T,C)--text,type/time,color
|
||||
local time
|
||||
local his
|
||||
if T=="warn"then
|
||||
if T=='warn'then
|
||||
C=C or COLOR.Y
|
||||
his=true
|
||||
time=180
|
||||
elseif T=="error"then
|
||||
elseif T=='error'then
|
||||
C=C or COLOR.R
|
||||
his=true
|
||||
time=210
|
||||
elseif T=="message"then
|
||||
elseif T=='message'then
|
||||
C=C or COLOR.N
|
||||
his=true
|
||||
elseif type(T)=="number"then
|
||||
elseif type(T)=='number'then
|
||||
C=C or COLOR.Z
|
||||
time=T
|
||||
elseif type(T)=="table"then
|
||||
elseif type(T)=='table'then
|
||||
C=T
|
||||
elseif not C then
|
||||
C=COLOR.Z
|
||||
|
||||
@@ -11,7 +11,7 @@ local _internal={}-- list of internal profiler functions
|
||||
|
||||
local getInfo=debug.getinfo
|
||||
function profile.hooker(event,line,info)
|
||||
info=info or getInfo(2,"fnS")
|
||||
info=info or getInfo(2,'fnS')
|
||||
local f=info.func
|
||||
if _internal[f]then return end-- ignore the profiler itself
|
||||
if info.name then _labeled[f]=info.name end-- get the function name if available
|
||||
@@ -27,10 +27,10 @@ function profile.hooker(event,line,info)
|
||||
_tcalled[f]=nil
|
||||
end
|
||||
if event=="tail call"then
|
||||
local prev=getInfo(3,"fnS")
|
||||
profile.hooker("return",line,prev)
|
||||
profile.hooker("call",line,info)
|
||||
elseif event=="call"then
|
||||
local prev=getInfo(3,'fnS')
|
||||
profile.hooker('return',line,prev)
|
||||
profile.hooker('call',line,info)
|
||||
elseif event=='call'then
|
||||
_tcalled[f]=clock()
|
||||
else
|
||||
_ncalls[f]=_ncalls[f]+1
|
||||
@@ -43,7 +43,7 @@ function profile.start()
|
||||
jit.off()
|
||||
jit.flush()
|
||||
end
|
||||
debug.sethook(profile.hooker,"cr")
|
||||
debug.sethook(profile.hooker,'cr')
|
||||
end
|
||||
|
||||
--- Stops collecting data.
|
||||
@@ -68,7 +68,7 @@ function profile.stop()
|
||||
lookup[id]=f
|
||||
end
|
||||
end
|
||||
collectgarbage("collect")
|
||||
collectgarbage()
|
||||
end
|
||||
|
||||
--- Resets all collected data.
|
||||
@@ -78,7 +78,7 @@ function profile.reset()
|
||||
_telapsed[f]=0
|
||||
_tcalled[f]=nil
|
||||
end
|
||||
collectgarbage("collect")
|
||||
collectgarbage()
|
||||
end
|
||||
|
||||
local function _comp(a,b)
|
||||
@@ -151,7 +151,7 @@ end
|
||||
|
||||
-- store all internal profiler functions
|
||||
for _,v in next,profile do
|
||||
_internal[v]=type(v)=="function"
|
||||
_internal[v]=type(v)=='function'
|
||||
end
|
||||
|
||||
return profile
|
||||
|
||||
@@ -85,7 +85,7 @@ function SCN.push(tar,style)
|
||||
if not SCN.swapping then
|
||||
local m=#SCN.stack
|
||||
SCN.stack[m+1]=tar or SCN.cur
|
||||
SCN.stack[m+2]=style or"fade"
|
||||
SCN.stack[m+2]=style or'fade'
|
||||
end
|
||||
end
|
||||
function SCN.pop()
|
||||
@@ -94,46 +94,46 @@ function SCN.pop()
|
||||
end
|
||||
|
||||
local swap={
|
||||
none={1,0,NULL},--swapTime, changeTime, drawFunction
|
||||
none={1,0,function()end},--swapTime, changeTime, drawFunction
|
||||
flash={8,1,function()gc.clear(1,1,1)end},
|
||||
fade={30,15,function(t)
|
||||
t=t>15 and 2-t/15 or t/15
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
end},
|
||||
fade_togame={120,20,function(t)
|
||||
t=t>20 and(120-t)/100 or t/20
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
end},
|
||||
slowFade={180,90,function(t)
|
||||
t=t>90 and 2-t/90 or t/90
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
end},
|
||||
swipeL={30,15,function(t)
|
||||
t=t/30
|
||||
gc.setColor(.1,.1,.1,1-abs(t-.5))
|
||||
t=t*t*(3-2*t)*2-1
|
||||
gc.rectangle("fill",t*SCR.w,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',t*SCR.w,0,SCR.w,SCR.h)
|
||||
end},
|
||||
swipeR={30,15,function(t)
|
||||
t=t/30
|
||||
gc.setColor(.1,.1,.1,1-abs(t-.5))
|
||||
t=t*t*(2*t-3)*2+1
|
||||
gc.rectangle("fill",t*SCR.w,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',t*SCR.w,0,SCR.w,SCR.h)
|
||||
end},
|
||||
swipeD={30,15,function(t)
|
||||
t=t/30
|
||||
gc.setColor(.1,.1,.1,1-abs(t-.5))
|
||||
t=t*t*(2*t-3)*2+1
|
||||
gc.rectangle("fill",0,t*SCR.h,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,t*SCR.h,SCR.w,SCR.h)
|
||||
end},
|
||||
}--Scene swapping animations
|
||||
function SCN.swapTo(tar,style)--Parallel scene swapping, cannot back
|
||||
if scenes[tar]then
|
||||
if not SCN.swapping and tar~=SCN.cur then
|
||||
if not style then style="fade"end
|
||||
if not style then style='fade'end
|
||||
SCN.swapping=true
|
||||
local S=SCN.stat
|
||||
S.tar,S.style=tar,style
|
||||
@@ -141,7 +141,7 @@ function SCN.swapTo(tar,style)--Parallel scene swapping, cannot back
|
||||
S.time,S.mid,S.draw=s[1],s[2],s[3]
|
||||
end
|
||||
else
|
||||
LOG.print("No Scene: "..tar,"warn")
|
||||
LOG.print("No Scene: "..tar,'warn')
|
||||
end
|
||||
end
|
||||
function SCN.go(tar,style)--Normal scene swapping, can back
|
||||
@@ -149,7 +149,7 @@ function SCN.go(tar,style)--Normal scene swapping, can back
|
||||
SCN.push()
|
||||
SCN.swapTo(tar,style)
|
||||
else
|
||||
LOG.print("No Scene: "..tar,"warn")
|
||||
LOG.print("No Scene: "..tar,'warn')
|
||||
end
|
||||
end
|
||||
function SCN.back()
|
||||
|
||||
@@ -15,7 +15,7 @@ function SFX.init(list)
|
||||
for i=1,count do
|
||||
local N="media/SFX/"..list[i]..".ogg"
|
||||
if love.filesystem.getInfo(N)then
|
||||
Sources[list[i]]={love.audio.newSource(N,"static")}
|
||||
Sources[list[i]]={love.audio.newSource(N,'static')}
|
||||
else
|
||||
LOG.print("No SFX file: "..N,5,COLOR.O)
|
||||
end
|
||||
@@ -76,7 +76,7 @@ function SFX.init(list)
|
||||
end
|
||||
function SFX.reset()
|
||||
for _,L in next,Sources do
|
||||
if type(L)=="table"then
|
||||
if type(L)=='table'then
|
||||
for i=#L,1,-1 do
|
||||
if not L[i]:isPlaying()then
|
||||
rem(L,i)
|
||||
|
||||
@@ -75,32 +75,32 @@ function FXdraw.tap(S)
|
||||
local t=S.t
|
||||
setWidth(2)
|
||||
setColor(1,1,1,1-t)
|
||||
gc.circle("line",S.x,S.y,t*(2-t)*30)
|
||||
gc.circle('line',S.x,S.y,t*(2-t)*30)
|
||||
setColor(1,1,1,(1-t)*.5)
|
||||
gc.circle("fill",S.x,S.y,t*30)
|
||||
gc.circle('fill',S.x,S.y,t*30)
|
||||
|
||||
setColor(1,1,1,1-t)
|
||||
for i=1,10 do
|
||||
local p=S.ptc[i]
|
||||
local T=t^.5
|
||||
gc.rectangle("fill",p[1]*(1-T)+p[3]*T-5,p[2]*(1-T)+p[4]*T-5,11,11)
|
||||
gc.rectangle('fill',p[1]*(1-T)+p[3]*T-5,p[2]*(1-T)+p[4]*T-5,11,11)
|
||||
end
|
||||
end
|
||||
function FXdraw.ripple(S)
|
||||
local t=S.t
|
||||
setWidth(2)
|
||||
setColor(1,1,1,1-t)
|
||||
gc.circle("line",S.x,S.y,t*(2-t)*S.r)
|
||||
gc.circle('line',S.x,S.y,t*(2-t)*S.r)
|
||||
end
|
||||
function FXdraw.rectRipple(S)
|
||||
setWidth(6)
|
||||
setColor(1,1,1,1-S.t)
|
||||
local r=(10*S.t)^1.2
|
||||
gc.rectangle("line",S.x-r,S.y-r,S.w+2*r,S.h+2*r)
|
||||
gc.rectangle('line',S.x-r,S.y-r,S.w+2*r,S.h+2*r)
|
||||
end
|
||||
function FXdraw.shade(S)
|
||||
setColor(S.r,S.g,S.b,1-S.t)
|
||||
gc.rectangle("fill",S.x,S.y,S.w,S.h,2)
|
||||
gc.rectangle('fill',S.x,S.y,S.w,S.h,2)
|
||||
end
|
||||
function FXdraw.cell(S)
|
||||
setColor(1,1,1,1-S.t)
|
||||
|
||||
@@ -5,7 +5,7 @@ local TABLE={}
|
||||
function TABLE.shift(org)
|
||||
local L={}
|
||||
for i=1,#org do
|
||||
if type(org[i])~="table"then
|
||||
if type(org[i])~='table'then
|
||||
L[i]=org[i]
|
||||
else
|
||||
L[i]=TABLE.shift(org[i])
|
||||
@@ -18,7 +18,7 @@ end
|
||||
function TABLE.copy(org)
|
||||
local L={}
|
||||
for k,v in next,org do
|
||||
if type(v)~="table"then
|
||||
if type(v)~='table'then
|
||||
L[k]=v
|
||||
else
|
||||
L[k]=TABLE.copy(v)
|
||||
@@ -31,7 +31,7 @@ end
|
||||
function TABLE.update(new,old)
|
||||
for k,v in next,new do
|
||||
if type(v)==type(old[k])then
|
||||
if type(v)=="table"then
|
||||
if type(v)=='table'then
|
||||
TABLE.update(v,old[k])
|
||||
else
|
||||
old[k]=v
|
||||
@@ -45,7 +45,7 @@ function TABLE.complete(new,old)
|
||||
for k,v in next,new do
|
||||
if old[k]==nil then
|
||||
old[k]=v
|
||||
elseif type(v)=="table"and type(old[k])=="table"then
|
||||
elseif type(v)=='table'and type(old[k])=='table'then
|
||||
TABLE.complete(v,old[k])
|
||||
end
|
||||
end
|
||||
@@ -68,7 +68,7 @@ end
|
||||
--Re-index string value of a table
|
||||
function TABLE.reIndex(org)
|
||||
for k,v in next,org do
|
||||
if type(v)=="string"then
|
||||
if type(v)=='string'then
|
||||
org[k]=org[v]
|
||||
end
|
||||
end
|
||||
@@ -92,34 +92,34 @@ do--function TABLE.dump(L,t)
|
||||
else
|
||||
s="return{\n"
|
||||
t=1
|
||||
if type(L)~="table"then
|
||||
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 T=='number'then
|
||||
if k==count then
|
||||
k=""
|
||||
count=count+1
|
||||
else
|
||||
k="["..k.."]="
|
||||
end
|
||||
elseif T=="string"then
|
||||
elseif T=='string'then
|
||||
if find(k,"[^0-9a-zA-Z_]")then
|
||||
k="[\""..k.."\"]="
|
||||
else
|
||||
k=k.."="
|
||||
end
|
||||
elseif T=="boolean"then k="["..k.."]="
|
||||
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)
|
||||
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"
|
||||
|
||||
@@ -9,7 +9,7 @@ end
|
||||
function TASK.update()
|
||||
for i=#tasks,1,-1 do
|
||||
local T=tasks[i]
|
||||
if status(T.thread)=="dead"then
|
||||
if status(T.thread)=='dead'then
|
||||
rem(tasks,i)
|
||||
else
|
||||
assert(resume(T.thread))
|
||||
@@ -19,7 +19,7 @@ end
|
||||
function TASK.new(code,...)
|
||||
local thread=coroutine.create(code)
|
||||
resume(thread,...)
|
||||
if status(thread)~="dead"then
|
||||
if status(thread)~='dead'then
|
||||
tasks[#tasks+1]={
|
||||
thread=thread,
|
||||
code=code,
|
||||
|
||||
@@ -19,21 +19,21 @@ function textFX.fly(t)
|
||||
mStr(t.text,t.x+(t.c-.5)^3*300,t.y-t.font*.7)
|
||||
end
|
||||
function textFX.stretch(t)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc_translate(t.x,t.y)
|
||||
if t.c<.3 then gc_scale((.3-t.c)*1.6+1,1)end
|
||||
mStr(t.text,0,-t.font*.7)
|
||||
gc_pop()
|
||||
end
|
||||
function textFX.drive(t)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc_translate(t.x,t.y)
|
||||
if t.c<.3 then gc_shear((.3-t.c)*2,0)end
|
||||
mStr(t.text,0,-t.font*.7)
|
||||
gc_pop()
|
||||
end
|
||||
function textFX.spin(t)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc_translate(t.x,t.y)
|
||||
if t.c<.3 then
|
||||
gc_rotate((.3-t.c)^2*4)
|
||||
@@ -49,7 +49,7 @@ function textFX.flicker(t)
|
||||
mStr(t.text,t.x,t.y-t.font*.7)
|
||||
end
|
||||
function textFX.zoomout(t)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
local k=t.c^.5*.1+1
|
||||
gc_translate(t.x,t.y)
|
||||
gc_scale(k,k)
|
||||
@@ -57,7 +57,7 @@ function textFX.zoomout(t)
|
||||
gc_pop()
|
||||
end
|
||||
function textFX.beat(t)
|
||||
gc_push("transform")
|
||||
gc_push('transform')
|
||||
gc_translate(t.x,t.y)
|
||||
if t.c<.3 then
|
||||
local k=1.3-t.c^2/.3
|
||||
@@ -85,7 +85,7 @@ function TEXT.show(text,x,y,font,style,spd,stop)
|
||||
font=int(font/5)*5 or 40, --Font
|
||||
spd=(spd or 1)/60, --Timing speed(1=last 1 sec)
|
||||
stop=stop, --Stop time(sustained text)
|
||||
draw=textFX[style or"appear"]or error("unavailable type:"..style), --Draw method
|
||||
draw=textFX[style or'appear']or error("unavailable type:"..style), --Draw method
|
||||
}
|
||||
end
|
||||
function TEXT.getText(text,x,y,font,style,spd,stop)--Another version of TEXT.show(), but only return text object, need manual management
|
||||
@@ -97,7 +97,7 @@ function TEXT.getText(text,x,y,font,style,spd,stop)--Another version of TEXT.sho
|
||||
font=int(font/5)*5 or 40,
|
||||
spd=(spd or 1)/60,
|
||||
stop=stop,
|
||||
draw=textFX[style or"appear"]or error("unavailable type:"..style),
|
||||
draw=textFX[style or'appear']or error("unavailable type:"..style),
|
||||
}
|
||||
end
|
||||
function TEXT.update(list)
|
||||
|
||||
@@ -12,7 +12,7 @@ function THEME.calculate(Y,M,D)
|
||||
return
|
||||
--Christmas
|
||||
M=="12"and math.abs(D-25)<4 and
|
||||
"xmas"or
|
||||
'xmas'or
|
||||
|
||||
--Spring festival
|
||||
M<"03"and math.abs((({
|
||||
@@ -25,49 +25,49 @@ function THEME.calculate(Y,M,D)
|
||||
42,32,50,39,28,46,35,24,43,33,
|
||||
21,40,
|
||||
})[Y-2000]or -26)-((M-1)*31+D))<6 and
|
||||
"sprfes"or
|
||||
'sprfes'or
|
||||
|
||||
--April fool's day
|
||||
M=="04"and D=="01"and
|
||||
"fool"or
|
||||
'fool'or
|
||||
|
||||
--Z day (Feb./Mar./Apr./May./June. 26)
|
||||
D=="26"and(
|
||||
M=="01"or M=="02"and"zday1"or
|
||||
M=="03"or M=="04"and"zday2"or
|
||||
M=="05"or M=="06"and"zday3"
|
||||
M=="01"or M=="02"and'zday1'or
|
||||
M=="03"or M=="04"and'zday2'or
|
||||
M=="05"or M=="06"and'zday3'
|
||||
)or
|
||||
|
||||
"classic"
|
||||
'classic'
|
||||
end
|
||||
|
||||
function THEME.set(theme)
|
||||
if theme=="classic"then
|
||||
BG.setDefault("space")
|
||||
if theme=='classic'then
|
||||
BG.setDefault('space')
|
||||
BGM.setDefault("blank")
|
||||
elseif theme=="xmas"then
|
||||
BG.setDefault("snow")
|
||||
BGM.setDefault("xmas")
|
||||
elseif theme=='xmas'then
|
||||
BG.setDefault('snow')
|
||||
BGM.setDefault('xmas')
|
||||
LOG.print("==============",COLOR.R)
|
||||
LOG.print("Merry Christmas!",COLOR.Z)
|
||||
LOG.print("==============",COLOR.R)
|
||||
elseif theme=="sprfes"then
|
||||
BG.setDefault("firework")
|
||||
elseif theme=='sprfes'then
|
||||
BG.setDefault('firework')
|
||||
BGM.setDefault("spring festival")
|
||||
LOG.print(" ★☆☆★",COLOR.R)
|
||||
LOG.print("新年快乐!",COLOR.Z)
|
||||
LOG.print(" ★☆☆★",COLOR.R)
|
||||
elseif theme=="zday1"then
|
||||
BG.setDefault("lanterns")
|
||||
elseif theme=='zday1'then
|
||||
BG.setDefault('lanterns')
|
||||
BGM.setDefault("empty")
|
||||
elseif theme=="zday2"then
|
||||
BG.setDefault("lanterns")
|
||||
elseif theme=='zday2'then
|
||||
BG.setDefault('lanterns')
|
||||
BGM.setDefault("overzero")
|
||||
elseif theme=="zday3"then
|
||||
BG.setDefault("lanterns")
|
||||
elseif theme=='zday3'then
|
||||
BG.setDefault('lanterns')
|
||||
BGM.setDefault("vacuum")
|
||||
elseif theme=="fool"then
|
||||
BG.setDefault("blockrain")
|
||||
elseif theme=='fool'then
|
||||
BG.setDefault('blockrain')
|
||||
BGM.setDefault("how feeling")
|
||||
else
|
||||
return
|
||||
|
||||
@@ -54,7 +54,7 @@ do--Connect
|
||||
repeat
|
||||
res,err=SOCK:receive("*l")
|
||||
if not res then readCHN:push(err)return end
|
||||
if not ctLen and res:find"length"then
|
||||
if not ctLen and res:find("length")then
|
||||
ctLen=tonumber(res:match"%d+")
|
||||
end
|
||||
until res==""
|
||||
@@ -87,7 +87,7 @@ local _send do
|
||||
local mask_str=char(unpack(mask_key))
|
||||
|
||||
function _send(op,message)
|
||||
]]..(debug:find"S"and""or"--")..[[print((">> %s[%d]:%s"):format(threadName,#message,message))
|
||||
]]..(debug:find'S'and""or"--")..[[print((">> %s[%d]:%s"):format(threadName,#message,message))
|
||||
--Message type
|
||||
SOCK:send(char(bor(0x80,op)))
|
||||
|
||||
@@ -154,7 +154,7 @@ while true do--Running
|
||||
if s then
|
||||
res=s
|
||||
elseif p then--UNF head
|
||||
]]..(debug:find"R"and""or"--")..[[print(("<< %s[%d/%d]:%s"):format(threadName,#p,length,#p<50 and p or p:sub(1,50)))
|
||||
]]..(debug:find'R'and""or"--")..[[print(("<< %s[%d/%d]:%s"):format(threadName,#p,length,#p<50 and p or p:sub(1,50)))
|
||||
UFF=true
|
||||
sBuffer=sBuffer..p
|
||||
length=length-#p
|
||||
@@ -166,11 +166,11 @@ while true do--Running
|
||||
else
|
||||
local s,e,p=SOCK:receive(length)
|
||||
if s then
|
||||
]]..(debug:find"R"and""or"--")..[[print(("<< %s(%d):%s"):format(threadName,length,#s<50 and s or s:sub(1,50)))
|
||||
]]..(debug:find'R'and""or"--")..[[print(("<< %s(%d):%s"):format(threadName,length,#s<50 and s or s:sub(1,50)))
|
||||
sBuffer=sBuffer..s
|
||||
length=length-#s
|
||||
elseif p then
|
||||
]]..(debug:find"R"and""or"--")..[[print(("<< %s(%d):%s"):format(threadName,length,#p<50 and p or p:sub(1,50)))
|
||||
]]..(debug:find'R'and""or"--")..[[print(("<< %s(%d):%s"):format(threadName,length,#p<50 and p or p:sub(1,50)))
|
||||
sBuffer=sBuffer..p
|
||||
length=length-#p
|
||||
end
|
||||
@@ -181,13 +181,13 @@ while true do--Running
|
||||
break
|
||||
end
|
||||
end
|
||||
]]..(debug:find"R"and""or"--")..[[print(("<< %s[(%d)]:%s"):format(threadName,#res,#res<800 and res or res:sub(1,150).."\n...\n"..res:sub(-150)))
|
||||
]]..(debug:find'R'and""or"--")..[[print(("<< %s[(%d)]:%s"):format(threadName,#res,#res<800 and res or res:sub(1,150).."\n...\n"..res:sub(-150)))
|
||||
|
||||
--React
|
||||
if op==8 then--8=close
|
||||
readCHN:push(op)
|
||||
SOCK:close()
|
||||
if type(res)=="string"then
|
||||
if type(res)=='string'then
|
||||
res=JSON.decode(res)
|
||||
readCHN:push(res and res.reason or"WS Error")
|
||||
else
|
||||
@@ -196,21 +196,21 @@ while true do--Running
|
||||
elseif op==0 then--0=continue
|
||||
lBuffer=lBuffer..res
|
||||
if fin then
|
||||
]]..(debug:find"M"and""or"--")..[[print("FIN=1 (c")
|
||||
]]..(debug:find'M'and""or"--")..[[print("FIN=1 (c")
|
||||
readCHN:push(lBuffer)
|
||||
lBuffer=""
|
||||
else
|
||||
]]..(debug:find"M"and""or"--")..[[print("FIN=0 (c")
|
||||
]]..(debug:find'M'and""or"--")..[[print("FIN=0 (c")
|
||||
end
|
||||
else
|
||||
readCHN:push(op)
|
||||
if fin then
|
||||
]]..(debug:find"M"and""or"--")..[[print("OP: "..op.."\tFIN=1")
|
||||
]]..(debug:find'M'and""or"--")..[[print("OP: "..op.."\tFIN=1")
|
||||
readCHN:push(res)
|
||||
else
|
||||
]]..(debug:find"M"and""or"--")..[[print("OP: "..op.."\tFIN=0")
|
||||
]]..(debug:find'M'and""or"--")..[[print("OP: "..op.."\tFIN=0")
|
||||
sBuffer=res
|
||||
]]..(debug:find"M"and""or"--")..[[print("START pack: "..res)
|
||||
]]..(debug:find'M'and""or"--")..[[print("START pack: "..res)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -223,7 +223,7 @@ local wsList=setmetatable({},{
|
||||
__index=function(l,k)
|
||||
local ws={
|
||||
real=false,
|
||||
status="dead",
|
||||
status='dead',
|
||||
lastPongTime=timer(),
|
||||
sendTimer=0,
|
||||
alertTimer=0,
|
||||
@@ -244,7 +244,7 @@ function WS.connect(name,subPath,body)
|
||||
lastPingTime=0,
|
||||
lastPongTime=timer(),
|
||||
pingInterval=26,
|
||||
status="connecting",--connecting, running, dead
|
||||
status='connecting',--connecting, running, dead
|
||||
sendTimer=0,
|
||||
alertTimer=0,
|
||||
pongTimer=0,
|
||||
@@ -259,7 +259,7 @@ end
|
||||
|
||||
function WS.status(name)
|
||||
local ws=wsList[name]
|
||||
return ws.status or"dead"
|
||||
return ws.status or'dead'
|
||||
end
|
||||
|
||||
function WS.getTimers(name)
|
||||
@@ -286,12 +286,12 @@ local OPcode={
|
||||
pong=10,
|
||||
}
|
||||
local OPname={
|
||||
[0]="continue",
|
||||
[1]="text",
|
||||
[2]="binary",
|
||||
[8]="close",
|
||||
[9]="ping",
|
||||
[10]="pong",
|
||||
[0]='continue',
|
||||
[1]='text',
|
||||
[2]='binary',
|
||||
[8]='close',
|
||||
[9]='ping',
|
||||
[10]='pong',
|
||||
}
|
||||
function WS.send(name,message,op)
|
||||
local ws=wsList[name]
|
||||
@@ -308,7 +308,7 @@ function WS.read(name)
|
||||
if ws.real and ws.readCHN:getCount()>=2 then
|
||||
local op=ws.readCHN:pop()
|
||||
local message=ws.readCHN:pop()
|
||||
if op==8 then ws.status="dead"end--8=close
|
||||
if op==8 then ws.status='dead'end--8=close
|
||||
ws.lastPongTime=timer()
|
||||
ws.pongTimer=1
|
||||
return message,OPname[op]or op
|
||||
@@ -320,7 +320,7 @@ function WS.close(name)
|
||||
if ws.real then
|
||||
ws.sendCHN:push(8)--close
|
||||
ws.sendCHN:push("")
|
||||
ws.status="dead"
|
||||
ws.status='dead'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -329,20 +329,20 @@ function WS.update(dt)
|
||||
for name,ws in next,wsList do
|
||||
if ws.real then
|
||||
ws.triggerCHN:push(0)
|
||||
if ws.status=="connecting"then
|
||||
if ws.status=='connecting'then
|
||||
local mes=ws.readCHN:pop()
|
||||
if mes then
|
||||
if mes=="success"then
|
||||
ws.status="running"
|
||||
ws.status='running'
|
||||
ws.lastPingTime=time
|
||||
ws.lastPongTime=time
|
||||
ws.pongTimer=1
|
||||
else
|
||||
ws.status="dead"
|
||||
LOG.print(text.wsFailed..": "..(mes=="timeout"and text.netTimeout or mes),"warn")
|
||||
ws.status='dead'
|
||||
LOG.print(text.wsFailed..": "..(mes=="timeout"and text.netTimeout or mes),'warn')
|
||||
end
|
||||
end
|
||||
elseif ws.status=="running"then
|
||||
elseif ws.status=='running'then
|
||||
if time-ws.lastPingTime>ws.pingInterval then
|
||||
ws.sendCHN:push(9)
|
||||
ws.sendCHN:push("")--ping
|
||||
|
||||
@@ -16,7 +16,7 @@ local widgetMetatable={
|
||||
}
|
||||
|
||||
local text={
|
||||
type="text",
|
||||
type='text',
|
||||
mustHaveText=true,
|
||||
alpha=0,
|
||||
}
|
||||
@@ -34,16 +34,16 @@ function text:draw()
|
||||
if self.alpha>0 then
|
||||
local c=self.color
|
||||
gc.setColor(c[1],c[2],c[3],self.alpha)
|
||||
if self.align=="M"then
|
||||
if self.align=='M'then
|
||||
mDraw_X(self.obj,self.x,self.y)
|
||||
elseif self.align=="L"then
|
||||
elseif self.align=='L'then
|
||||
gc.draw(self.obj,self.x,self.y)
|
||||
elseif self.align=="R"then
|
||||
elseif self.align=='R'then
|
||||
gc.draw(self.obj,self.x-self.obj:getWidth(),self.y)
|
||||
end
|
||||
end
|
||||
end
|
||||
function WIDGET.newText(D)--name,x,y[,fText][,color][,font=30][,align="M"][,hide]
|
||||
function WIDGET.newText(D)--name,x,y[,fText][,color][,font=30][,align='M'][,hide]
|
||||
local _={
|
||||
name= D.name,
|
||||
x= D.x,
|
||||
@@ -52,7 +52,7 @@ function WIDGET.newText(D)--name,x,y[,fText][,color][,font=30][,align="M"][,hide
|
||||
fText= D.fText,
|
||||
color= D.color and(COLOR[D.color]or D.color)or COLOR.Z,
|
||||
font= D.font or 30,
|
||||
align= D.align or"M",
|
||||
align= D.align or'M',
|
||||
hideCon=D.hide,
|
||||
}
|
||||
for k,v in next,text do _[k]=v end
|
||||
@@ -62,10 +62,10 @@ function WIDGET.newText(D)--name,x,y[,fText][,color][,font=30][,align="M"][,hide
|
||||
end
|
||||
|
||||
local image={
|
||||
type="image",
|
||||
type='image',
|
||||
}
|
||||
function image:reset()
|
||||
if type(self.img)=="string"then
|
||||
if type(self.img)=='string'then
|
||||
self.img=IMG[self.img]
|
||||
end
|
||||
end
|
||||
@@ -90,7 +90,7 @@ function WIDGET.newImage(D)--name[,img(name)],x,y[,ang][,k][,hide]
|
||||
end
|
||||
|
||||
local button={
|
||||
type="button",
|
||||
type='button',
|
||||
mustHaveText=true,
|
||||
ATV=0,--Activating time(0~8)
|
||||
}
|
||||
@@ -98,7 +98,7 @@ function button:reset()
|
||||
self.ATV=0
|
||||
end
|
||||
function button:setObject(obj)
|
||||
if type(obj)=="string"or type(obj)=="number"then
|
||||
if type(obj)=='string'or type(obj)=='number'then
|
||||
self.obj=gc.newText(getFont(self.font),obj)
|
||||
elseif obj then
|
||||
self.obj=obj
|
||||
@@ -139,16 +139,16 @@ function button:draw()
|
||||
local c=self.color
|
||||
local r,g,b=c[1],c[2],c[3]
|
||||
gc.setColor(.2+r*.8,.2+g*.8,.2+b*.8,.7)
|
||||
gc.rectangle("fill",x-ATV,y-ATV,w+2*ATV,h+2*ATV)
|
||||
gc.rectangle('fill',x-ATV,y-ATV,w+2*ATV,h+2*ATV)
|
||||
if ATV>0 then
|
||||
gc.setLineWidth(4)
|
||||
gc.setColor(1,1,1,ATV*.125)
|
||||
gc.rectangle("line",x-ATV+2,y-ATV+2,w+2*ATV-4,h+2*ATV-4)
|
||||
gc.rectangle('line',x-ATV+2,y-ATV+2,w+2*ATV-4,h+2*ATV-4)
|
||||
end
|
||||
local obj=self.obj
|
||||
local y0=y+h*.5-ATV*.5
|
||||
gc.setColor(1,1,1,.2+ATV*.05)
|
||||
if self.align=="M"then
|
||||
if self.align=='M'then
|
||||
local x0=x+w*.5
|
||||
mDraw(obj,x0-2,y0-2)
|
||||
mDraw(obj,x0-2,y0+2)
|
||||
@@ -156,7 +156,7 @@ function button:draw()
|
||||
mDraw(obj,x0+2,y0+2)
|
||||
gc.setColor(r*.5,g*.5,b*.5)
|
||||
mDraw(obj,x0,y0)
|
||||
elseif self.align=="L"then
|
||||
elseif self.align=='L'then
|
||||
local edge=self.edge
|
||||
mDraw_Y(obj,x+edge-2,y0-2)
|
||||
mDraw_Y(obj,x+edge-2,y0+2)
|
||||
@@ -164,7 +164,7 @@ function button:draw()
|
||||
mDraw_Y(obj,x+edge+2,y0+2)
|
||||
gc.setColor(r*.5,g*.5,b*.5)
|
||||
mDraw_Y(obj,x+edge,y0)
|
||||
elseif self.align=="R"then
|
||||
elseif self.align=='R'then
|
||||
local x0=x+w-self.edge-obj:getWidth()
|
||||
mDraw_Y(obj,x0-2,y0-2)
|
||||
mDraw_Y(obj,x0-2,y0+2)
|
||||
@@ -180,9 +180,9 @@ end
|
||||
function button:press(_,_,k)
|
||||
self.code(k)
|
||||
self:FX()
|
||||
if self.sound then SFX.play("button")end
|
||||
if self.sound then SFX.play('button')end
|
||||
end
|
||||
function WIDGET.newButton(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true][,align="M"][,edge=0],code[,hide]
|
||||
function WIDGET.newButton(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true][,align='M'][,edge=0],code[,hide]
|
||||
if not D.h then D.h=D.w end
|
||||
local _={
|
||||
name= D.name,
|
||||
@@ -203,7 +203,7 @@ function WIDGET.newButton(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=tr
|
||||
fText= D.fText,
|
||||
color= D.color and(COLOR[D.color]or D.color)or COLOR.Z,
|
||||
font= D.font or 30,
|
||||
align= D.align or"M",
|
||||
align= D.align or'M',
|
||||
edge= D.edge or 0,
|
||||
sound= D.sound~=false,
|
||||
code= D.code,
|
||||
@@ -215,7 +215,7 @@ function WIDGET.newButton(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=tr
|
||||
end
|
||||
|
||||
local key={
|
||||
type="key",
|
||||
type='key',
|
||||
mustHaveText=true,
|
||||
ATV=0,--Activating time(0~4)
|
||||
}
|
||||
@@ -223,7 +223,7 @@ function key:reset()
|
||||
self.ATV=0
|
||||
end
|
||||
function key:setObject(obj)
|
||||
if type(obj)=="string"or type(obj)=="number"then
|
||||
if type(obj)=='string'or type(obj)=='number'then
|
||||
self.obj=gc.newText(getFont(self.font),obj)
|
||||
elseif obj then
|
||||
self.obj=obj
|
||||
@@ -254,18 +254,18 @@ function key:draw()
|
||||
local r,g,b=c[1],c[2],c[3]
|
||||
|
||||
gc.setColor(1,1,1,ATV*.125)
|
||||
gc.rectangle("fill",x,y,w,h)
|
||||
gc.rectangle('fill',x,y,w,h)
|
||||
|
||||
gc.setColor(.2+r*.8,.2+g*.8,.2+b*.8,.7)
|
||||
gc.setLineWidth(4)
|
||||
gc.rectangle("line",x,y,w,h)
|
||||
gc.rectangle('line',x,y,w,h)
|
||||
|
||||
gc.setColor(r,g,b,1.2)
|
||||
if self.align=="M"then
|
||||
if self.align=='M'then
|
||||
mDraw(self.obj,x+w*.5,y+h*.5)
|
||||
elseif self.align=="L"then
|
||||
elseif self.align=='L'then
|
||||
mDraw_Y(self.obj,x+self.edge,y+h*.5)
|
||||
elseif self.align=="R"then
|
||||
elseif self.align=='R'then
|
||||
mDraw_Y(self.obj,x+w-self.edge-self.obj:getWidth(),y+h*.5)
|
||||
end
|
||||
end
|
||||
@@ -274,9 +274,9 @@ function key:getInfo()
|
||||
end
|
||||
function key:press(_,_,k)
|
||||
self.code(k)
|
||||
if self.sound then SFX.play("key")end
|
||||
if self.sound then SFX.play('key')end
|
||||
end
|
||||
function WIDGET.newKey(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true][,align="M"][,edge=0],code[,hide]
|
||||
function WIDGET.newKey(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true][,align='M'][,edge=0],code[,hide]
|
||||
if not D.h then D.h=D.w end
|
||||
local _={
|
||||
name= D.name,
|
||||
@@ -298,7 +298,7 @@ function WIDGET.newKey(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true]
|
||||
color= D.color and(COLOR[D.color]or D.color)or COLOR.Z,
|
||||
font= D.font or 30,
|
||||
sound= D.sound~=false,
|
||||
align= D.align or"M",
|
||||
align= D.align or'M',
|
||||
edge= D.edge or 0,
|
||||
code= D.code,
|
||||
hide= D.hide,
|
||||
@@ -309,7 +309,7 @@ function WIDGET.newKey(D)--name,x,y,w[,h][,fText][,color][,font=30][,sound=true]
|
||||
end
|
||||
|
||||
local switch={
|
||||
type="switch",
|
||||
type='switch',
|
||||
mustHaveText=true,
|
||||
ATV=0,--Activating time(0~8)
|
||||
CHK=0,--Check alpha(0~6)
|
||||
@@ -341,7 +341,7 @@ function switch:draw()
|
||||
--Checked
|
||||
if ATV>0 then
|
||||
gc.setColor(1,1,1,ATV*.08)
|
||||
gc.rectangle("fill",x,y,50,50)
|
||||
gc.rectangle('fill',x,y,50,50)
|
||||
end
|
||||
if self.CHK>0 then
|
||||
gc.setColor(.9,1,.9,self.CHK/6)
|
||||
@@ -352,7 +352,7 @@ function switch:draw()
|
||||
--Frame
|
||||
gc.setLineWidth(4)
|
||||
gc.setColor(1,1,1,.6+ATV*.05)
|
||||
gc.rectangle("line",x,y,50,50)
|
||||
gc.rectangle('line',x,y,50,50)
|
||||
|
||||
--Drawable
|
||||
gc.setColor(self.color)
|
||||
@@ -363,7 +363,7 @@ function switch:getInfo()
|
||||
end
|
||||
function switch:press()
|
||||
self.code()
|
||||
if self.sound then SFX.play("move")end
|
||||
if self.sound then SFX.play('move')end
|
||||
end
|
||||
function WIDGET.newSwitch(D)--name,x,y[,fText][,color][,font=30][,sound=true][,disp],code,hide
|
||||
local _={
|
||||
@@ -390,7 +390,7 @@ function WIDGET.newSwitch(D)--name,x,y[,fText][,color][,font=30][,sound=true][,d
|
||||
end
|
||||
|
||||
local slider={
|
||||
type="slider",
|
||||
type='slider',
|
||||
ATV=0,--Activating time(0~8)
|
||||
TAT=0,--Text activating time(0~180)
|
||||
pos=0,--Position shown
|
||||
@@ -463,12 +463,12 @@ function slider:draw()
|
||||
local cx=x+(x2-x)*self.pos/self.unit
|
||||
local bx,by,bw,bh=cx-10-ATV*.5,y-16-ATV,20+ATV,32+2*ATV
|
||||
gc.setColor(.8,.8,.8)
|
||||
gc.rectangle("fill",bx,by,bw,bh)
|
||||
gc.rectangle('fill',bx,by,bw,bh)
|
||||
|
||||
if ATV>0 then
|
||||
gc.setLineWidth(2)
|
||||
gc.setColor(1,1,1,ATV*.16)
|
||||
gc.rectangle("line",bx+1,by+1,bw-2,bh-2)
|
||||
gc.rectangle('line',bx+1,by+1,bw-2,bh-2)
|
||||
end
|
||||
if self.TAT>0 and self.show then
|
||||
setFont(25)
|
||||
@@ -552,7 +552,7 @@ function WIDGET.newSlider(D)--name,x,y,w[,fText][,color][,unit][,smooth][,font=3
|
||||
_.smooth=_.unit<=1
|
||||
end
|
||||
if D.show then
|
||||
if type(D.show)=="function"then
|
||||
if type(D.show)=='function'then
|
||||
_.show=D.show
|
||||
else
|
||||
_.show=sliderShowFunc[D.show]
|
||||
@@ -570,7 +570,7 @@ function WIDGET.newSlider(D)--name,x,y,w[,fText][,color][,unit][,smooth][,font=3
|
||||
end
|
||||
|
||||
local selector={
|
||||
type="selector",
|
||||
type='selector',
|
||||
mustHaveText=true,
|
||||
ATV=8,--Activating time(0~4)
|
||||
select=0,--Selected item ID
|
||||
@@ -588,7 +588,7 @@ function selector:reset()
|
||||
end
|
||||
end
|
||||
self.hide=true
|
||||
LOG.print("Selector "..self.name.." dead, disp= "..tostring(V),"warn")
|
||||
LOG.print("Selector "..self.name.." dead, disp= "..tostring(V),'warn')
|
||||
end
|
||||
function selector:isAbove(x,y)
|
||||
return
|
||||
@@ -619,7 +619,7 @@ function selector:draw()
|
||||
|
||||
gc.setColor(1,1,1,.6+ATV*.1)
|
||||
gc.setLineWidth(3)
|
||||
gc.rectangle("line",x,y,w,60)
|
||||
gc.rectangle('line',x,y,w,60)
|
||||
|
||||
gc.setColor(1,1,1,.2+ATV*.1)
|
||||
local t=(TIME()%.5)^.5
|
||||
@@ -667,7 +667,7 @@ function selector:press(x)
|
||||
self.code(self.list[s])
|
||||
self.select=s
|
||||
self.selText=self.list[s]
|
||||
if self.sound then SFX.play("prerotate")end
|
||||
if self.sound then SFX.play('prerotate')end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -684,7 +684,7 @@ function selector:arrowKey(isLeft)
|
||||
self.code(self.list[s])
|
||||
self.select=s
|
||||
self.selText=self.list[s]
|
||||
if self.sound then SFX.play("prerotate")end
|
||||
if self.sound then SFX.play('prerotate')end
|
||||
end
|
||||
function WIDGET.newSelector(D)--name,x,y,w[,fText][,color][,sound=true],list,disp,code,hide
|
||||
local _={
|
||||
@@ -717,7 +717,7 @@ function WIDGET.newSelector(D)--name,x,y,w[,fText][,color][,sound=true],list,dis
|
||||
end
|
||||
|
||||
local inputBox={
|
||||
type="inputBox",
|
||||
type='inputBox',
|
||||
keepFocus=true,
|
||||
ATV=0,--Activating time(0~4)
|
||||
value="",--Text contained
|
||||
@@ -754,11 +754,11 @@ function inputBox:draw()
|
||||
local ATV=self.ATV
|
||||
|
||||
gc.setColor(1,1,1,ATV*.1)
|
||||
gc.rectangle("fill",x,y,w,h)
|
||||
gc.rectangle('fill',x,y,w,h)
|
||||
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(4)
|
||||
gc.rectangle("line",x,y,w,h)
|
||||
gc.rectangle('line',x,y,w,h)
|
||||
|
||||
--Drawable
|
||||
setFont(self.font)
|
||||
@@ -770,7 +770,7 @@ function inputBox:draw()
|
||||
gc.print("*",x-5+self.font*.5*i,y+h*.5-self.font*.7)
|
||||
end
|
||||
else
|
||||
gc.printf(self.value,x+10,y,self.w,"left")
|
||||
gc.printf(self.value,x+10,y,self.w)
|
||||
setFont(self.font-10)
|
||||
if WIDGET.sel==self then
|
||||
gc.print(EDITING,x+10,y+12-self.font*1.4)
|
||||
@@ -795,10 +795,10 @@ function inputBox:keypress(k)
|
||||
p=p-1
|
||||
end
|
||||
t=sub(t,1,p-1)
|
||||
SFX.play("lock")
|
||||
SFX.play('lock')
|
||||
elseif k=="delete"then
|
||||
t=""
|
||||
SFX.play("hold")
|
||||
SFX.play('hold')
|
||||
end
|
||||
self.value=t
|
||||
end
|
||||
@@ -829,7 +829,7 @@ function WIDGET.newInputBox(D)--name,x,y,w[,h][,font=30][,secret][,regex],hide
|
||||
end
|
||||
|
||||
local textBox={
|
||||
type="textBox",
|
||||
type='textBox',
|
||||
scrollPos=0,--Which line display at bottom
|
||||
scrollPix=0,--Hidden wheel move value
|
||||
sure=0,--Sure-timer for clear history
|
||||
@@ -899,7 +899,7 @@ end
|
||||
function textBox:clear()
|
||||
self.texts={}
|
||||
self.scrollPos=0
|
||||
SFX.play("fall")
|
||||
SFX.play('fall')
|
||||
end
|
||||
function textBox:draw()
|
||||
local x,y,w,h=self.x,self.y,self.w,self.h
|
||||
@@ -910,19 +910,19 @@ function textBox:draw()
|
||||
|
||||
--Background
|
||||
gc.setColor(0,0,0,.3)
|
||||
gc.rectangle("fill",x,y,w,h)
|
||||
gc.rectangle('fill',x,y,w,h)
|
||||
|
||||
--Frame
|
||||
gc.setLineWidth(4)
|
||||
gc.setColor(1,1,WIDGET.sel==self and 0 or 1)
|
||||
gc.rectangle("line",x,y,w,h)
|
||||
gc.rectangle('line',x,y,w,h)
|
||||
|
||||
--Slider
|
||||
if #texts>cap then
|
||||
gc.setLineWidth(2)
|
||||
gc.rectangle("line",x-25,y,20,h)
|
||||
gc.rectangle('line',x-25,y,20,h)
|
||||
local len=max(h*cap/#texts,26)
|
||||
gc.rectangle("fill",x-22,y+(h-len-6)*(scroll-cap)/(#texts-cap)+3,14,len)
|
||||
gc.rectangle('fill',x-22,y+(h-len-6)*(scroll-cap)/(#texts-cap)+3,14,len)
|
||||
end
|
||||
|
||||
gc.setColor(1,1,1)
|
||||
@@ -930,7 +930,7 @@ function textBox:draw()
|
||||
--Clear button
|
||||
if not self.fix then
|
||||
mStr(self.sure>0 and"?"or"X",x+w-20,y-1)
|
||||
gc.rectangle("line",x+w-40,y,40,40)
|
||||
gc.rectangle('line',x+w-40,y,40,40)
|
||||
end
|
||||
|
||||
--Texts
|
||||
@@ -1004,7 +1004,7 @@ function WIDGET.set(list)
|
||||
for i=1,#list do
|
||||
list[i]:reset()
|
||||
end
|
||||
if SCN.cur~="custom_field"then
|
||||
if SCN.cur~='custom_field'then
|
||||
local colorList=THEME.getThemeColor()
|
||||
if not colorList then return end
|
||||
local rnd=math.random
|
||||
@@ -1025,7 +1025,7 @@ function WIDGET.setLang(widgetText)
|
||||
t=W.name or"##"
|
||||
W.color=COLOR.dV
|
||||
end
|
||||
if type(t)=="string"and W.font then
|
||||
if type(t)=='string'and W.font then
|
||||
t=gc.newText(getFont(W.font),t)
|
||||
end
|
||||
W.obj=t
|
||||
@@ -1054,7 +1054,7 @@ end
|
||||
function WIDGET.drag(x,y,dx,dy)
|
||||
local W=WIDGET.sel
|
||||
if not W then return end
|
||||
if W.type=="slider"or W.type=="textBox"then
|
||||
if W.type=='slider'or W.type=='textBox'then
|
||||
W:drag(x,y,dx,dy)
|
||||
elseif not W:isAbove(x,y)then
|
||||
WIDGET.sel=false
|
||||
@@ -1063,7 +1063,7 @@ end
|
||||
function WIDGET.release(x,y)
|
||||
local W=WIDGET.sel
|
||||
if not W then return end
|
||||
if W.type=="slider"then
|
||||
if W.type=='slider'then
|
||||
W:release(x,y)
|
||||
end
|
||||
end
|
||||
@@ -1073,7 +1073,7 @@ function WIDGET.keyPressed(k)
|
||||
elseif kb.isDown("lshift","lalt","lctrl")and(k=="left"or k=="right")then
|
||||
--When hold [↑], control slider with left/right
|
||||
local W=WIDGET.sel
|
||||
if W and W.type=="slider"or W.type=="selector"then
|
||||
if W and W.type=='slider'or W.type=='selector'then
|
||||
W:arrowKey(k=="left")
|
||||
end
|
||||
elseif k=="up"or k=="down"or k=="left"or k=="right"then
|
||||
@@ -1116,19 +1116,19 @@ function WIDGET.keyPressed(k)
|
||||
end
|
||||
else
|
||||
local W=WIDGET.sel
|
||||
if W and W.type=="inputBox"then
|
||||
if W and W.type=='inputBox'then
|
||||
W:keypress(k)
|
||||
end
|
||||
end
|
||||
end
|
||||
function WIDGET.textinput(texts)
|
||||
local W=WIDGET.sel
|
||||
if W and W.type=="inputBox"then
|
||||
if W and W.type=='inputBox'then
|
||||
if not W.regex or texts:match(W.regex)then
|
||||
WIDGET.sel.value=WIDGET.sel.value..texts
|
||||
SFX.play("move")
|
||||
SFX.play('move')
|
||||
else
|
||||
SFX.play("finesseError",.3)
|
||||
SFX.play('finesseError',.3)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1146,9 +1146,9 @@ function WIDGET.gamepadPressed(i)
|
||||
elseif i=="a"or i=="b"then
|
||||
local W=WIDGET.sel
|
||||
if W then
|
||||
if W.type=="button"or W.type=="key"then
|
||||
if W.type=='button'or W.type=='key'then
|
||||
WIDGET.press()
|
||||
elseif W.type=="slider"then
|
||||
elseif W.type=='slider'then
|
||||
local p=W.disp()
|
||||
local P=i=="left"and(p>0 and p-1)or p<W.unit and p+1
|
||||
if p==P or not P then return end
|
||||
|
||||
4
conf.lua
4
conf.lua
@@ -4,7 +4,7 @@ VERSION={
|
||||
name="午 Noon",
|
||||
}
|
||||
function love.conf(t)
|
||||
t.identity="Techmino"--Saving folder
|
||||
t.identity='Techmino'--Saving folder
|
||||
t.version="11.1"
|
||||
t.gammacorrect=false
|
||||
t.appendidentity=true--Search files in source then in save directory
|
||||
@@ -21,7 +21,7 @@ function love.conf(t)
|
||||
W.minwidth,W.minheight=640,360
|
||||
W.borderless=false
|
||||
W.resizable=true
|
||||
W.fullscreentype="desktop"--"exclusive"
|
||||
W.fullscreentype='desktop'--'exclusive'
|
||||
W.fullscreen=false
|
||||
W.vsync=0--Unlimited FPS
|
||||
W.msaa=false--Num of samples to use with multi-sampled antialiasing
|
||||
|
||||
@@ -115,8 +115,8 @@ return{--返回一个table,你也可以在之前定义一些常量或者函数
|
||||
color=COLOR.green,--颜色
|
||||
env={--模式环境变量
|
||||
drop=60,lock=60,
|
||||
dropPiece=function(P)if P.stat.row>=40 then P:win("finish")end end,
|
||||
bg="bg2",bgm="race",
|
||||
dropPiece=function(P)if P.stat.row>=40 then P:win('finish')end end,
|
||||
bg='bg2',bgm='race',
|
||||
},
|
||||
load=function()--生成玩家
|
||||
PLY.newPlayer(1)--1是玩家编号,默认用户控制1号玩家
|
||||
|
||||
20
main.lua
20
main.lua
@@ -35,7 +35,7 @@ love.mouse.setVisible(false)
|
||||
--Delete all files from too old version
|
||||
function CLEAR(root)
|
||||
for _,name in next,fs.getDirectoryItems(root or"")do
|
||||
if fs.getRealDirectory(name)==SAVEDIR and fs.getInfo(name).type~="directory"then
|
||||
if fs.getRealDirectory(name)==SAVEDIR and fs.getInfo(name).type~='directory'then
|
||||
fs.remove(name)
|
||||
end
|
||||
end
|
||||
@@ -46,7 +46,7 @@ for _,v in next,{"conf","record","replay","cache","lib"}do
|
||||
local info=fs.getInfo(v)
|
||||
if not info then
|
||||
fs.createDirectory(v)
|
||||
elseif info.type~="directory"then
|
||||
elseif info.type~='directory'then
|
||||
fs.remove(v)
|
||||
fs.createDirectory(v)
|
||||
end
|
||||
@@ -239,13 +239,13 @@ do
|
||||
local needSave
|
||||
local autoRestart
|
||||
|
||||
if type(STAT.version)~="number"then
|
||||
if type(STAT.version)~='number'then
|
||||
STAT.version=0
|
||||
needSave=true
|
||||
end
|
||||
if STAT.version<1300 then
|
||||
STAT.frame=math.floor(STAT.time*60)
|
||||
STAT.lastPlay="sprint_10l"
|
||||
STAT.lastPlay='sprint_10l'
|
||||
RANKS.sprintFix=nil
|
||||
RANKS.sprintLock=nil
|
||||
needSave=true
|
||||
@@ -292,7 +292,7 @@ do
|
||||
if RANKS.infinite then RANKS.infinite=6 end
|
||||
if RANKS.infinite_dig then RANKS.infinite_dig=6 end
|
||||
for k in next,RANKS do
|
||||
if type(k)=="number"then
|
||||
if type(k)=='number'then
|
||||
RANKS[k]=nil
|
||||
needSave=true
|
||||
end
|
||||
@@ -305,7 +305,7 @@ do
|
||||
end
|
||||
v="record/"..v
|
||||
if fs.getInfo(v..".dat")then
|
||||
fs.write("record/"..k.."rec",fs.read(v..".dat"))
|
||||
fs.write("record/"..k..".rec",fs.read(v..".dat"))
|
||||
fs.remove(v..".dat")
|
||||
end
|
||||
if fs.getInfo(v..".rec")then
|
||||
@@ -319,11 +319,11 @@ do
|
||||
end
|
||||
|
||||
if needSave then
|
||||
FILE.save(SETTING,"conf/settings","q")
|
||||
FILE.save(RANKS,"conf/unlock","q")
|
||||
FILE.save(STAT,"conf/data","q")
|
||||
FILE.save(SETTING,"conf/settings",'q')
|
||||
FILE.save(RANKS,"conf/unlock",'q')
|
||||
FILE.save(STAT,"conf/data",'q')
|
||||
end
|
||||
if autoRestart then
|
||||
love.event.quit("restart")
|
||||
love.event.quit('restart')
|
||||
end
|
||||
end
|
||||
@@ -1,17 +1,17 @@
|
||||
local AISpeed={60,50,40,30,20,14,10,6,4,3}
|
||||
return function(type,speedLV,next,hold,node)
|
||||
if type=="CC"then
|
||||
if type=='CC'then
|
||||
if not hold then hold=false else hold=true end
|
||||
return{
|
||||
type="CC",
|
||||
type='CC',
|
||||
next=next,
|
||||
hold=hold,
|
||||
delta=AISpeed[speedLV],
|
||||
node=node,
|
||||
}
|
||||
elseif type=="9S"then
|
||||
elseif type=='9S'then
|
||||
return{
|
||||
type="9S",
|
||||
type='9S',
|
||||
delta=math.floor(AISpeed[speedLV]),
|
||||
hold=hold,
|
||||
}
|
||||
|
||||
10
parts/ai.lua
10
parts/ai.lua
@@ -7,13 +7,13 @@ local yield=coroutine.yield
|
||||
-- 11~13:LL,RR,DD
|
||||
local blockPos={4,4,4,4,4,5,4}
|
||||
-------------------------------------------------Cold clear
|
||||
local _CC=LOADLIB("CC",{
|
||||
local _CC=LOADLIB('CC',{
|
||||
Windows="CCloader",
|
||||
Linux="CCloader",
|
||||
Android="libCCloader.so",
|
||||
libFunc="luaopen_CCloader",
|
||||
})cc=nil
|
||||
if type(_CC)=="table"then
|
||||
if type(_CC)=='table'then
|
||||
local CCblockID={6,5,4,3,2,1,0}
|
||||
CC={
|
||||
getConf= _CC.get_default_config ,--()options,weights
|
||||
@@ -62,7 +62,7 @@ if type(_CC)=="table"then
|
||||
CC.fastWeights(wei)
|
||||
CC.setHold(opt,P.AIdata.hold)
|
||||
CC.set20G(opt,P.AIdata._20G)
|
||||
CC.setBag(opt,P.AIdata.bag=="bag")
|
||||
CC.setBag(opt,P.AIdata.bag=='bag')
|
||||
CC.setNode(opt,P.AIdata.node)
|
||||
P.AI_bot=CC.new(opt,wei)
|
||||
CC.free(opt)CC.free(wei)
|
||||
@@ -200,7 +200,7 @@ local function getScore(field,cb,cy)
|
||||
end
|
||||
-------------------------------------------------
|
||||
return{
|
||||
["9S"]=function(P,keys)
|
||||
['9S']=function(P,keys)
|
||||
while true do
|
||||
--Thinking
|
||||
yield()
|
||||
@@ -275,7 +275,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
["CC"]=CC and function(P,keys)
|
||||
['CC']=CC and function(P,keys)
|
||||
while true do
|
||||
--Start thinking
|
||||
yield()
|
||||
|
||||
@@ -18,7 +18,7 @@ end
|
||||
function back.draw()
|
||||
shader:send("t",t)
|
||||
gc.setShader(shader)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
end
|
||||
return back
|
||||
@@ -7,7 +7,7 @@ local X,Y,K
|
||||
function back.init()
|
||||
if not video then
|
||||
video=gc.newVideo("parts/backgrounds/badapple.ogv",{false})
|
||||
video:setFilter("linear","linear")
|
||||
video:setFilter('linear','linear')
|
||||
video:play()
|
||||
end
|
||||
back.resize()
|
||||
|
||||
@@ -17,7 +17,7 @@ end
|
||||
function back.draw()
|
||||
shader:send("t",t)
|
||||
gc.setShader(shader)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
end
|
||||
return back
|
||||
@@ -17,7 +17,7 @@ end
|
||||
function back.draw()
|
||||
shader:send("t",t)
|
||||
gc.setShader(shader)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
end
|
||||
return back
|
||||
@@ -38,7 +38,7 @@ function back.update()
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.1,.1,.1)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.translate(SCR.w/2,SCR.h/2)
|
||||
|
||||
@@ -52,11 +52,11 @@ function back.draw()
|
||||
--Blackhole
|
||||
gc.scale(SCR.rad/1600)
|
||||
gc.setColor(0,0,0)
|
||||
gc.circle("fill",0,0,157)
|
||||
gc.circle('fill',0,0,157)
|
||||
gc.setLineWidth(6)
|
||||
for i=0,15 do
|
||||
gc.setColor(0,0,0,1-i*.0666)
|
||||
gc.circle("line",0,0,160+6*i)
|
||||
gc.circle('line',0,0,160+6*i)
|
||||
end
|
||||
gc.scale(1600/SCR.rad)
|
||||
gc.pop()
|
||||
|
||||
@@ -33,7 +33,7 @@ function back.update()
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.15,.15,.15)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.setColor(1,1,1,.4)
|
||||
for i=1,#mino do
|
||||
|
||||
@@ -41,7 +41,7 @@ function back.update()
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.15,.15,.15)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
for i=1,#mino do
|
||||
local C=mino[i]
|
||||
|
||||
@@ -39,7 +39,7 @@ function back.update()
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.15,.15,.15)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.translate(SCR.w/2,SCR.h/2)
|
||||
for i=1,#mino do
|
||||
|
||||
@@ -62,16 +62,16 @@ function back.update(dt)
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.1,.1,.1)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.setLineWidth(6)
|
||||
for i=1,#squares do
|
||||
local S=squares[i]
|
||||
local c=S.color
|
||||
gc.setColor(c[1],c[2],c[3],.6)
|
||||
rectangle("line",S.x,S.y,S.size,S.size)
|
||||
rectangle('line',S.x,S.y,S.size,S.size)
|
||||
gc.setColor(c)
|
||||
rectangle("fill",S.x,S.y,S.size,S.size)
|
||||
rectangle('fill',S.x,S.y,S.size,S.size)
|
||||
end
|
||||
gc.pop()
|
||||
end
|
||||
|
||||
@@ -39,25 +39,25 @@ function back.update()
|
||||
end
|
||||
end
|
||||
function back.draw()
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.translate(SCR.w/2,SCR.h/2+20*sin(t*.02))
|
||||
gc.scale(SCR.k)
|
||||
gc.clear(.1,.1,.1)
|
||||
gc.setLineWidth(320)
|
||||
gc.setColor(.3,.2,.3)
|
||||
gc.arc("line","open",0,420,500,-.8*3.1416,-.2*3.1416)
|
||||
gc.arc('line','open',0,420,500,-.8*3.1416,-.2*3.1416)
|
||||
|
||||
gc.setLineWidth(4)
|
||||
gc.setColor(.7,.5,.65)
|
||||
gc.arc("line","open",0,420,660,-.799*3.1416,-.201*3.1416)
|
||||
gc.arc("line","open",0,420,340,-.808*3.1416,-.192*3.1416)
|
||||
gc.arc('line','open',0,420,660,-.799*3.1416,-.201*3.1416)
|
||||
gc.arc('line','open',0,420,340,-.808*3.1416,-.192*3.1416)
|
||||
gc.line(-281,224,-530,30.5)
|
||||
gc.line(281,224,530,30.5)
|
||||
|
||||
gc.setLineWidth(6)
|
||||
gc.setColor(.55,.5,.6)
|
||||
for i=1,8 do
|
||||
polygon("line",fan[i])
|
||||
polygon('line',fan[i])
|
||||
end
|
||||
|
||||
gc.setLineWidth(2)
|
||||
@@ -65,7 +65,7 @@ function back.draw()
|
||||
gc.origin()
|
||||
for i=1,#petal do
|
||||
local P=petal[i]
|
||||
ellipse("fill",P.x,P.y,P.rx,P.ry)
|
||||
ellipse('fill',P.x,P.y,P.rx,P.ry)
|
||||
end
|
||||
gc.pop()
|
||||
end
|
||||
|
||||
@@ -33,7 +33,7 @@ function back.update(dt)
|
||||
if time>1 then
|
||||
local x,y,color=F.x,F.y,F.color
|
||||
if F.big then
|
||||
SFX.play("fall",.5)
|
||||
SFX.play('fall',.5)
|
||||
for _=1,rnd(62,126)do
|
||||
ins(particle,{
|
||||
x=x,y=y,
|
||||
@@ -44,7 +44,7 @@ function back.update(dt)
|
||||
})
|
||||
end
|
||||
else
|
||||
SFX.play("clear_1",.4)
|
||||
SFX.play('clear_1',.4)
|
||||
for _=1,rnd(16,26)do
|
||||
ins(particle,{
|
||||
x=x,y=y,
|
||||
@@ -76,12 +76,12 @@ function back.update(dt)
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.1,.1,.1)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
for i=1,#firework do
|
||||
local F=firework[i]
|
||||
gc.setColor(F.color)
|
||||
circle("fill",F.x,F.y,F.big and 8 or 4)
|
||||
circle('fill',F.x,F.y,F.big and 8 or 4)
|
||||
end
|
||||
gc.setLineWidth(3)
|
||||
for i=1,#particle do
|
||||
|
||||
@@ -38,7 +38,7 @@ function back.update(dt)
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.1,.1,.1)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.setColor(1,1,1)
|
||||
local img=IMG.lanterns
|
||||
|
||||
@@ -14,14 +14,14 @@ function back.update(dt)
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.15,.15,.15)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
local k=SCR.k
|
||||
gc.scale(k)
|
||||
local Y=ceil(SCR.h/80/k)
|
||||
for x=1,ceil(SCR.w/80/k)do
|
||||
for y=1,Y do
|
||||
gc.setColor(1,1,1,sin(x+matrixT[x][y]*t)*.1+.1)
|
||||
gc.rectangle("fill",80*x,80*y,-80,-80)
|
||||
gc.rectangle('fill',80*x,80*y,-80,-80)
|
||||
end
|
||||
end
|
||||
gc.pop()
|
||||
|
||||
@@ -18,7 +18,7 @@ end
|
||||
function back.draw()
|
||||
shader:send("t",t)
|
||||
gc.setShader(shader)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
end
|
||||
return back
|
||||
@@ -18,7 +18,7 @@ end
|
||||
function back.draw()
|
||||
shader:send("t",t)
|
||||
gc.setShader(shader)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
end
|
||||
return back
|
||||
@@ -39,12 +39,12 @@ function back.update()
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.2,.2,.2)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.setColor(.7,.7,.7)
|
||||
gc.origin()
|
||||
for i=1,#snow do
|
||||
local P=snow[i]
|
||||
ellipse("fill",P.x,P.y,P.rx,P.ry)
|
||||
ellipse('fill',P.x,P.y,P.rx,P.ry)
|
||||
end
|
||||
gc.pop()
|
||||
end
|
||||
|
||||
@@ -36,7 +36,7 @@ function back.draw()
|
||||
gc.translate(-10,-10)
|
||||
gc.setColor(.8,.8,.8)
|
||||
for i=1,1260,5 do
|
||||
rectangle("fill",stars[i+1],stars[i+2],stars[i],stars[i])
|
||||
rectangle('fill',stars[i+1],stars[i+2],stars[i],stars[i])
|
||||
end
|
||||
gc.translate(10,10)
|
||||
end
|
||||
|
||||
@@ -34,7 +34,7 @@ function back.draw()
|
||||
for i=1,#ring do
|
||||
local r=ring[i]^2/12
|
||||
gc.setLineWidth(30-15/(r+.5))
|
||||
gc.rectangle("line",W*.5-W*r/2,H*.5-H*r/2,W*r,H*r)
|
||||
gc.rectangle('line',W*.5-W*r/2,H*.5-H*r/2,W*r,H*r)
|
||||
end
|
||||
end
|
||||
function back.discard()
|
||||
|
||||
@@ -18,7 +18,7 @@ function back.draw()
|
||||
else
|
||||
gc.clear(.1,.1,.1)
|
||||
end
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.translate(SCR.w/2,SCR.h/2+20*sin(t*.02))
|
||||
gc.scale(SCR.k)
|
||||
gc.scale(1.1626,1.26)
|
||||
|
||||
@@ -17,12 +17,12 @@ local W,H
|
||||
function back.init()
|
||||
bar=gc.newCanvas(41,1)
|
||||
gc.setCanvas(bar)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
for x=0,20 do
|
||||
gc.setColor(1,1,1,x/11)
|
||||
gc.rectangle("fill",x,0,1,1)
|
||||
gc.rectangle("fill",41-x,0,1,1)
|
||||
gc.rectangle('fill',x,0,1,1)
|
||||
gc.rectangle('fill',41-x,0,1,1)
|
||||
end
|
||||
gc.pop()
|
||||
gc.setCanvas()
|
||||
|
||||
@@ -98,7 +98,7 @@ function DATA.copyBoard(page)--Copy the [page] board
|
||||
end
|
||||
str=str..S
|
||||
end
|
||||
return data.encode("string","base64",data.compress("string","zlib",str))
|
||||
return data.encode('string','base64',data.compress('string','zlib',str))
|
||||
end
|
||||
function DATA.copyBoards()
|
||||
local out={}
|
||||
@@ -114,10 +114,10 @@ function DATA.pasteBoard(str,page)--Paste [str] data to [page] board
|
||||
local _,__
|
||||
|
||||
--Decode
|
||||
str=str:sub(str:find"%S",str:find".%s-$")
|
||||
_,str=pcall(data.decode,"string","base64",str)
|
||||
str=str:sub(str:find("%S"),str:find(".%s-$"))
|
||||
_,str=pcall(data.decode,'string','base64',str)
|
||||
if not _ then return end
|
||||
_,str=pcall(data.decompress,"string","zlib",str)
|
||||
_,str=pcall(data.decompress,'string','zlib',str)
|
||||
if not _ then return end
|
||||
|
||||
local fX,fY=1,1--*ptr for Field(r*10+(c-1))
|
||||
@@ -381,7 +381,7 @@ do--function DATA.saveRecording()
|
||||
JSON.encode(getModList()).."\n"..
|
||||
DATA.dumpRecording(GAME.rep)
|
||||
|
||||
love.filesystem.write(fileName,fileHead.."\n"..data.compress("string","zlib",fileBody))
|
||||
love.filesystem.write(fileName,fileHead.."\n"..data.compress('string','zlib',fileBody))
|
||||
ins(REPLAY,fileName)
|
||||
FILE.save(REPLAY,"conf/replay")
|
||||
return true
|
||||
|
||||
@@ -66,7 +66,7 @@ end
|
||||
function royaleLevelup()
|
||||
GAME.stage=GAME.stage+1
|
||||
local spd
|
||||
TEXT.show(text.royale_remain:gsub("$1",#PLY_ALIVE),640,200,40,"beat",.3)
|
||||
TEXT.show(text.royale_remain:gsub("$1",#PLY_ALIVE),640,200,40,'beat',.3)
|
||||
if GAME.stage==2 then
|
||||
spd=30
|
||||
elseif GAME.stage==3 then
|
||||
@@ -74,7 +74,7 @@ function royaleLevelup()
|
||||
for _,P in next,PLY_ALIVE do
|
||||
P.gameEnv.garbageSpeed=.6
|
||||
end
|
||||
if PLAYERS[1].alive then BGM.play("cruelty")end
|
||||
if PLAYERS[1].alive then BGM.play('cruelty')end
|
||||
elseif GAME.stage==4 then
|
||||
spd=10
|
||||
for _,P in next,PLY_ALIVE do
|
||||
@@ -87,7 +87,7 @@ function royaleLevelup()
|
||||
end
|
||||
elseif GAME.stage==6 then
|
||||
spd=3
|
||||
if PLAYERS[1].alive then BGM.play("final")end
|
||||
if PLAYERS[1].alive then BGM.play('final')end
|
||||
end
|
||||
for _,P in next,PLY_ALIVE do
|
||||
P.gameEnv.drop=spd
|
||||
@@ -113,12 +113,12 @@ function generateLine(hole)
|
||||
end
|
||||
function freshDate(mode)
|
||||
if not mode then mode=""end
|
||||
local date=os.date("%Y/%m/%d")
|
||||
local date=os.date"%Y/%m/%d"
|
||||
if STAT.date~=date then
|
||||
STAT.date=date
|
||||
STAT.todayTime=0
|
||||
if not mode:find("q")then
|
||||
LOG.print(text.newDay,"message")
|
||||
if not mode:find'q'then
|
||||
LOG.print(text.newDay,'message')
|
||||
end
|
||||
return true
|
||||
end
|
||||
@@ -132,10 +132,10 @@ function legalGameTime()--Check if today's playtime is legal
|
||||
if STAT.todayTime<14400 then
|
||||
return true
|
||||
elseif STAT.todayTime<21600 then
|
||||
LOG.print(text.playedLong,"warning")
|
||||
LOG.print(text.playedLong,'warn')
|
||||
return true
|
||||
else
|
||||
LOG.print(text.playedTooMuch,"warning")
|
||||
LOG.print(text.playedTooMuch,'warn')
|
||||
return false
|
||||
end
|
||||
end
|
||||
@@ -144,8 +144,8 @@ end
|
||||
|
||||
function mergeStat(stat,delta)--Merge delta stat. to global stat.
|
||||
for k,v in next,delta do
|
||||
if type(v)=="table"then
|
||||
if type(stat[k])=="table"then
|
||||
if type(v)=='table'then
|
||||
if type(stat[k])=='table'then
|
||||
mergeStat(stat[k],v)
|
||||
end
|
||||
else
|
||||
@@ -172,7 +172,7 @@ function destroyPlayers()--Destroy all player objects, restore freerows and free
|
||||
FREEROW.discard(rem(P.field))
|
||||
FREEROW.discard(rem(P.visTime))
|
||||
end
|
||||
if P.AI_mode=="CC"then
|
||||
if P.AI_mode=='CC'then
|
||||
CC.free(P.bot_opt)
|
||||
CC.free(P.bot_wei)
|
||||
CC.destroy(P.AI_bot)
|
||||
@@ -198,7 +198,7 @@ function pauseGame()
|
||||
if not(GAME.result or GAME.replaying)then
|
||||
GAME.pauseCount=GAME.pauseCount+1
|
||||
end
|
||||
SCN.swapTo("pause","none")
|
||||
SCN.swapTo('pause','none')
|
||||
end
|
||||
end
|
||||
function applyCustomGame()--Apply CUSTOMENV, BAG, MISSION
|
||||
@@ -226,11 +226,11 @@ function loadGame(M,ifQuickPlay,ifNet)--Load a mode and go to game scene
|
||||
GAME.init=true
|
||||
GAME.net=ifNet
|
||||
if ifNet then
|
||||
SCN.go("net_game","swipeD")
|
||||
SCN.go('net_game','swipeD')
|
||||
else
|
||||
drawableText.modeName:set(text.modes[M][1].." "..text.modes[M][2])
|
||||
SCN.go("game",ifQuickPlay and"swipeD"or"fade_togame")
|
||||
SFX.play("enter")
|
||||
SCN.go('game',ifQuickPlay and'swipeD'or'fade_togame')
|
||||
SFX.play('enter')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -242,7 +242,7 @@ function initPlayerPosition(sudden)--Set initial position for every player
|
||||
end
|
||||
end
|
||||
|
||||
local method=sudden and"setPosition"or"movePosition"
|
||||
local method=sudden and'setPosition'or'movePosition'
|
||||
L[1][method](L[1],340,75,1)
|
||||
if #L<=5 then
|
||||
if L[2]then L[2][method](L[2],965,390,.5)end
|
||||
@@ -314,7 +314,7 @@ do--function resetGameData(args)
|
||||
if time%20==0 then
|
||||
local M=GAME.mod[time/20]
|
||||
if M then
|
||||
TEXT.show(M.id,700+(time-20)%120*4,36,45,"spin",.5)
|
||||
TEXT.show(M.id,700+(time-20)%120*4,36,45,'spin',.5)
|
||||
else
|
||||
return
|
||||
end
|
||||
@@ -332,12 +332,12 @@ do--function resetGameData(args)
|
||||
--Graphic
|
||||
"block","ghost","center","smooth","grid","bagLine",
|
||||
"lockFX","dropFX","moveFX","clearFX","splashFX","shakeFX","atkFX",
|
||||
"text","score","warn","highCam","nextPos",
|
||||
"text","score",'warn',"highCam","nextPos",
|
||||
}
|
||||
local function copyGameSetting()
|
||||
local S={}
|
||||
for _,key in next,gameSetting do
|
||||
if type(SETTING[key])=="table"then
|
||||
if type(SETTING[key])=='table'then
|
||||
S[key]=TABLE.shift(SETTING[key])
|
||||
else
|
||||
S[key]=SETTING[key]
|
||||
@@ -355,12 +355,12 @@ do--function resetGameData(args)
|
||||
GAME.result=false
|
||||
GAME.warnLVL0=0
|
||||
GAME.warnLVL=0
|
||||
if args:find("r")then
|
||||
if args:find'r'then
|
||||
GAME.frameStart=0
|
||||
GAME.recording=false
|
||||
GAME.replaying=1
|
||||
else
|
||||
GAME.frameStart=args:find("n")and 0 or 150-SETTING.reTime*15
|
||||
GAME.frameStart=args:find'n'and 0 or 150-SETTING.reTime*15
|
||||
GAME.seed=seed or math.random(1046101471,2662622626)
|
||||
GAME.pauseTime=0
|
||||
GAME.pauseCount=0
|
||||
@@ -375,7 +375,7 @@ do--function resetGameData(args)
|
||||
|
||||
destroyPlayers()
|
||||
GAME.curMode.load()
|
||||
initPlayerPosition(args:find("q"))
|
||||
initPlayerPosition(args:find'q')
|
||||
VK.restore()
|
||||
if GAME.modeEnv.task then
|
||||
for i=1,#PLAYERS do
|
||||
@@ -384,7 +384,7 @@ do--function resetGameData(args)
|
||||
end
|
||||
BG.set(GAME.modeEnv.bg)
|
||||
local bgm=GAME.modeEnv.bgm
|
||||
BGM.play(type(bgm)=="string"and bgm or type(bgm)=="table"and bgm[math.random(#bgm)])
|
||||
BGM.play(type(bgm)=='string'and bgm or type(bgm)=='table'and bgm[math.random(#bgm)])
|
||||
|
||||
TEXT.clear()
|
||||
if GAME.modeEnv.royaleMode then
|
||||
@@ -404,7 +404,7 @@ do--function resetGameData(args)
|
||||
if GAME.setting.allowMod then
|
||||
TASK.new(tick_showMods)
|
||||
end
|
||||
SFX.play("ready")
|
||||
SFX.play('ready')
|
||||
collectgarbage()
|
||||
end
|
||||
end
|
||||
@@ -482,14 +482,14 @@ do--function drawSelfProfile()
|
||||
local textObject,scaleK,width,offY
|
||||
function drawSelfProfile()
|
||||
local selfAvatar=USERS.getAvatar(USER.uid)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.translate(1280,0)
|
||||
|
||||
--Draw avatar
|
||||
gc.setLineWidth(2)
|
||||
gc.setColor(.3,.3,.3,.8)gc.rectangle("fill",-300,0,300,80)
|
||||
gc.setColor(1,1,1)gc.rectangle("line",-300,0,300,80)
|
||||
gc.rectangle("line",-73,7,66,66,2)
|
||||
gc.setColor(.3,.3,.3,.8)gc.rectangle('fill',-300,0,300,80)
|
||||
gc.setColor(1,1,1)gc.rectangle('line',-300,0,300,80)
|
||||
gc.rectangle('line',-73,7,66,66,2)
|
||||
gc.draw(selfAvatar,-72,8,nil,.5)
|
||||
|
||||
--Draw username
|
||||
@@ -505,18 +505,18 @@ do--function drawSelfProfile()
|
||||
--Draw lv. & xp.
|
||||
gc.draw(TEXTURE.lvIcon[USER.lv],-295,50)
|
||||
gc.line(-270,55,-80,55,-80,70,-270,70)
|
||||
gc.rectangle("fill",-210,55,150*USER.xp/USER.lv/USER.lv,15)
|
||||
gc.rectangle('fill',-210,55,150*USER.xp/USER.lv/USER.lv,15)
|
||||
|
||||
gc.pop()
|
||||
end
|
||||
end
|
||||
function drawWarning()
|
||||
if SETTING.warn and GAME.warnLVL>0 then
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
SHADER.warning:send("level",GAME.warnLVL)
|
||||
gc.setShader(SHADER.warning)
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.setShader()
|
||||
gc.pop()
|
||||
end
|
||||
|
||||
@@ -4,94 +4,94 @@ local function disableKey(P,key)
|
||||
end
|
||||
MODOPT={--Mod options
|
||||
{no=0,id="NX",name="next",
|
||||
key="q",x=80,y=230,color="O",
|
||||
key="q",x=80,y=230,color='O',
|
||||
list={0,1,2,3,4,5,6},
|
||||
func=function(P,O)P.gameEnv.nextCount=O end,
|
||||
},
|
||||
{no=1,id="HL",name="hold",
|
||||
key="w",x=200,y=230,color="O",
|
||||
key="w",x=200,y=230,color='O',
|
||||
list={0,1,2,3,4,5,6},
|
||||
func=function(P,O)P.gameEnv.holdCount=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=2,id="FL",name="hideNext",
|
||||
key="e",x=320,y=230,color="A",
|
||||
key="e",x=320,y=230,color='A',
|
||||
list={1,2,3,4,5},
|
||||
func=function(P,O)P.gameEnv.nextStartPos=O +1 end,
|
||||
},
|
||||
{no=3,id="IH",name="infHold",
|
||||
key="r",x=440,y=230,color="A",
|
||||
key="r",x=440,y=230,color='A',
|
||||
func=function(P)P.gameEnv.infHold=true end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=4,id="HB",name="hideBlock",
|
||||
key="y",x=680,y=230,color="V",
|
||||
key="y",x=680,y=230,color='V',
|
||||
func=function(P)P.gameEnv.block=false end,
|
||||
},
|
||||
{no=5,id="HG",name="hideGhost",
|
||||
key="u",x=800,y=230,color="V",
|
||||
key="u",x=800,y=230,color='V',
|
||||
func=function(P)P.gameEnv.ghost=false end,
|
||||
},
|
||||
{no=6,id="HD",name="hidden",
|
||||
key="i",x=920,y=230,color="P",
|
||||
list={"easy","slow","medium","fast","none"},
|
||||
key="i",x=920,y=230,color='P',
|
||||
list={'easy','slow','medium','fast','none'},
|
||||
func=function(P,O)P.gameEnv.visible=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=7,id="HB",name="hideBoard",
|
||||
key="o",x=1040,y=230,color="P",
|
||||
list={"down","up","all"},
|
||||
key="o",x=1040,y=230,color='P',
|
||||
list={'down','up','all'},
|
||||
func=function(P,O)P.gameEnv.hideBoard=O end,
|
||||
},
|
||||
{no=8,id="FB",name="flipBoard",
|
||||
key="p",x=1160,y=230,color="J",
|
||||
list={"U-D","L-R","180"},
|
||||
key="p",x=1160,y=230,color='J',
|
||||
list={'U-D','L-R','180'},
|
||||
func=function(P,O)P.gameEnv.flipBoard=O end,
|
||||
},
|
||||
|
||||
{no=9,id="DT",name="dropDelay",
|
||||
key="a",x=140,y=350,color="R",
|
||||
key="a",x=140,y=350,color='R',
|
||||
list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
||||
func=function(P,O)P.gameEnv.drop=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=10,id="LT",name="lockDelay",
|
||||
key="s",x=260,y=350,color="R",
|
||||
key="s",x=260,y=350,color='R',
|
||||
list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
||||
func=function(P,O)P.gameEnv.lock=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=11,id="ST",name="waitDelay",
|
||||
key="d",x=380,y=350,color="R",
|
||||
key="d",x=380,y=350,color='R',
|
||||
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||
func=function(P,O)P.gameEnv.wait=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=12,id="CT",name="fallDelay",
|
||||
key="f",x=500,y=350,color="R",
|
||||
key="f",x=500,y=350,color='R',
|
||||
list={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
||||
func=function(P,O)P.gameEnv.fall=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=13,id="LF",name="life",
|
||||
key="j",x=860,y=350,color="Y",
|
||||
key="j",x=860,y=350,color='Y',
|
||||
list={0,1,2,3,5,10,15,26,42,87,500},
|
||||
func=function(P,O)P.gameEnv.life=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=14,id="FB",name="forceB2B",
|
||||
key="k",x=980,y=350,color="Y",
|
||||
key="k",x=980,y=350,color='Y',
|
||||
func=function(P)P.gameEnv.b2bKill=true end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=15,id="PF",name="forceFinesse",
|
||||
key="l",x=1100,y=350,color="Y",
|
||||
key="l",x=1100,y=350,color='Y',
|
||||
func=function(P)P.gameEnv.fineKill=true end,
|
||||
unranked=true,
|
||||
},
|
||||
|
||||
{no=16,id="TL",name="tele",
|
||||
key="z",x=200,y=470,color="lH",
|
||||
key="z",x=200,y=470,color='lH',
|
||||
func=function(P)
|
||||
P.gameEnv.das,P.gameEnv.arr=0,0
|
||||
P.gameEnv.sddas,P.gameEnv.sdarr=0,0
|
||||
@@ -99,7 +99,7 @@ MODOPT={--Mod options
|
||||
unranked=true,
|
||||
},
|
||||
{no=17,id="FX",name="noRotation",
|
||||
key="x",x=320,y=470,color="lH",
|
||||
key="x",x=320,y=470,color='lH',
|
||||
func=function(P)
|
||||
disableKey(P,3)
|
||||
disableKey(P,4)
|
||||
@@ -108,7 +108,7 @@ MODOPT={--Mod options
|
||||
unranked=true,
|
||||
},
|
||||
{no=18,id="GL",name="noMove",
|
||||
key="c",x=440,y=470,color="lH",
|
||||
key="c",x=440,y=470,color='lH',
|
||||
func=function(P)
|
||||
disableKey(P,1)disableKey(P,2)
|
||||
disableKey(P,11)disableKey(P,12)
|
||||
@@ -118,21 +118,21 @@ MODOPT={--Mod options
|
||||
unranked=true,
|
||||
},
|
||||
{no=19,id="CS",name="customSeq",
|
||||
key="b",x=680,y=470,color="B",
|
||||
list={"bag","his4","c2","rnd","mess","reverb"},
|
||||
key="b",x=680,y=470,color='B',
|
||||
list={'bag','his4','c2','rnd','mess','reverb'},
|
||||
func=function(P,O)P.gameEnv.sequence=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=20,id="PS",name="pushSpeed",
|
||||
key="n",x=800,y=470,color="B",
|
||||
key="n",x=800,y=470,color='B',
|
||||
list={.5,1,2,3,5,15,1e99},
|
||||
func=function(P,O)P.gameEnv.pushSpeed=O end,
|
||||
unranked=true,
|
||||
},
|
||||
{no=21,id="BN",name="boneBlock",
|
||||
key="m",x=920,y=470,color="B",
|
||||
list={"on","off"},
|
||||
func=function(P,O)P.gameEnv.bone=O=="on"end,
|
||||
key="m",x=920,y=470,color='B',
|
||||
list={'on','off'},
|
||||
func=function(P,O)P.gameEnv.bone=O=='on'end,
|
||||
},
|
||||
}
|
||||
for i=1,#MODOPT do
|
||||
@@ -212,7 +212,7 @@ customEnv0={
|
||||
bone=false,
|
||||
|
||||
--Rule
|
||||
sequence="bag",
|
||||
sequence='bag',
|
||||
fieldH=20,
|
||||
|
||||
ospin=true,
|
||||
@@ -220,7 +220,7 @@ customEnv0={
|
||||
b2bKill=false,
|
||||
easyFresh=true,
|
||||
deepDrop=false,
|
||||
visible="show",
|
||||
visible='show',
|
||||
freshLimit=1e99,
|
||||
|
||||
|
||||
@@ -230,8 +230,8 @@ customEnv0={
|
||||
missionKill=false,
|
||||
|
||||
--Else
|
||||
bg="blockfall",
|
||||
bgm="infinite",
|
||||
bg='blockfall',
|
||||
bgm='infinite',
|
||||
}
|
||||
CUSTOMENV=FILE.load("conf/customEnv")--gameEnv for cutsom game
|
||||
if not CUSTOMENV or CUSTOMENV.version~=VERSION.code then CUSTOMENV=TABLE.copy(customEnv0)end
|
||||
@@ -240,7 +240,7 @@ SETTING={--Settings
|
||||
das=10,arr=2,dascut=0,
|
||||
sddas=0,sdarr=2,
|
||||
ihs=true,irs=true,ims=true,
|
||||
RS="TRS",
|
||||
RS='TRS',
|
||||
swap=true,
|
||||
|
||||
--System
|
||||
@@ -292,7 +292,7 @@ SETTING={--Settings
|
||||
stereo=.7,
|
||||
vib=0,
|
||||
voc=0,
|
||||
cv="miya",
|
||||
cv='miya',
|
||||
|
||||
--Virtualkey
|
||||
VKSFX=.2,--SFX volume
|
||||
@@ -321,7 +321,7 @@ else
|
||||
send=0,recv=0,pend=0,off=0,
|
||||
clear={},spin={},
|
||||
pc=0,hpc=0,b2b=0,b3b=0,score=0,
|
||||
lastPlay="sprint_10l",--Last played mode ID
|
||||
lastPlay='sprint_10l',--Last played mode ID
|
||||
date=false,
|
||||
todayTime=0,
|
||||
}for i=1,29 do STAT.clear[i]={0,0,0,0,0,0}STAT.spin[i]={0,0,0,0,0,0,0}end
|
||||
|
||||
@@ -6,7 +6,7 @@ local noKickSet,noKickSet_180,pushZero do
|
||||
noKickSet_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
|
||||
function pushZero(t)
|
||||
for _,L in next,t do
|
||||
if type(L)=="table"then
|
||||
if type(L)=='table'then
|
||||
for _,v in next,L do
|
||||
if not v[1]or v[1][1]~=0 or v[1][2]~=0 then
|
||||
table.insert(v,1,map[0][0])
|
||||
@@ -26,9 +26,9 @@ end
|
||||
|
||||
--Make all vec point to the same vec
|
||||
local function collectSet(set)
|
||||
if type(set)~="table"then return end
|
||||
if type(set)~='table'then return end
|
||||
for _,list in next,set do
|
||||
if type(list[1])=="string"then
|
||||
if type(list[1])=='string'then
|
||||
vecStrConv(list)
|
||||
end
|
||||
end
|
||||
@@ -136,12 +136,12 @@ do
|
||||
},--T
|
||||
function(P,d)
|
||||
if P.gameEnv.easyFresh then
|
||||
P:freshBlock("fresh")
|
||||
P:freshBlock('fresh')
|
||||
end
|
||||
if P.gameEnv.ospin then
|
||||
local x,y=P.curX,P.curY
|
||||
if y==P.ghoY and((P:solid(x-1,y)or P:solid(x-1,y+1)))and(P:solid(x+2,y)or P:solid(x+2,y+1))then
|
||||
if P.sound then SFX.play("rotatekick",nil,P:getCenterX()*.15)end
|
||||
if P.sound then SFX.play('rotatekick',nil,P:getCenterX()*.15)end
|
||||
P.spinSeq=P.spinSeq%100*10+d
|
||||
if P.spinSeq<100 then return end
|
||||
for i=1,#OspinList do
|
||||
@@ -164,18 +164,18 @@ do
|
||||
P.cur.dir,P.cur.sc=dir,SCS[id][dir]
|
||||
P.spinLast=2
|
||||
P.stat.rotate=P.stat.rotate+1
|
||||
P:freshBlock("move")
|
||||
P:freshBlock('move')
|
||||
P.spinSeq=0
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
if P.sound then SFX.play("rotate",nil,P:getCenterX()*.15)end
|
||||
if P.sound then SFX.play('rotate',nil,P:getCenterX()*.15)end
|
||||
P.spinSeq=0
|
||||
end
|
||||
else
|
||||
if P.sound then SFX.play("rotate",nil,P:getCenterX()*.15)end
|
||||
if P.sound then SFX.play('rotate',nil,P:getCenterX()*.15)end
|
||||
end
|
||||
end,--O
|
||||
{
|
||||
@@ -286,19 +286,19 @@ do
|
||||
[31]={"+0-1","+1+0"},
|
||||
},--W
|
||||
function(P,d)
|
||||
if P.type=="human"then SFX.play("rotate",nil,P:getCenterX()*.15)end
|
||||
if P.type=='human'then SFX.play('rotate',nil,P:getCenterX()*.15)end
|
||||
local kickData=XspinList[d]
|
||||
for test=1,#kickData do
|
||||
local x,y=P.curX+kickData[test][1],P.curY+kickData[test][2]
|
||||
if not P:ifoverlap(P.cur.bk,x,y)then
|
||||
P.curX,P.curY=x,y
|
||||
P.spinLast=1
|
||||
P:freshBlock("move")
|
||||
P:freshBlock('move')
|
||||
P.stat.rotate=P.stat.rotate+1
|
||||
return
|
||||
end
|
||||
end
|
||||
P:freshBlock("fresh")
|
||||
P:freshBlock('fresh')
|
||||
end,--X
|
||||
{
|
||||
[01]={"-1+0","-1+1","+0-3","-1+1","-1+2","+0+1"},
|
||||
|
||||
@@ -665,97 +665,97 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"Sprint", "10L", "Clear 10 lines!"},
|
||||
["sprint_20l"]= {"Sprint", "20L", "Clear 20 lines!"},
|
||||
["sprint_40l"]= {"Sprint", "40L", "Clear 40 lines!"},
|
||||
["sprint_100l"]= {"Sprint", "100L", "Clear 100 lines!"},
|
||||
["sprint_400l"]= {"Sprint", "400L", "Clear 400 lines!"},
|
||||
["sprint_1000l"]= {"Sprint", "1000L", "Clear 1000 lines!"},
|
||||
["sprintPenta"]= {"Sprint", "PENTOMINO", "40L with 18 pentominoes."},
|
||||
["sprintMPH"]= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
||||
["dig_10l"]= {"Dig", "10L", "Dig 10 garbage lines."},
|
||||
["dig_40l"]= {"Dig", "40L", "Dig 40 garbage lines."},
|
||||
["dig_100l"]= {"Dig", "100L", "Dig 100 garbage lines."},
|
||||
["dig_400l"]= {"Dig", "400L", "Dig 400 garbage lines."},
|
||||
["dig_1000l"]= {"Dig", "1000L", "Dig 1000 garbage lines."},
|
||||
["drought_n"]= {"Drought", "100L", "There are no I-pieces."},
|
||||
["drought_l"]= {"Drought", "100L", "W T F"},
|
||||
["marathon_n"]= {"Marathon", "NORMAL", "200-line marathon with accelerating speed."},
|
||||
["marathon_h"]= {"Marathon", "HARD", "200-line high-speed marathon."},
|
||||
["solo_e"]= {"Battle", "EASY", "Defeat the AI!"},
|
||||
["solo_n"]= {"Battle", "NORMAL", "Defeat the AI!"},
|
||||
["solo_h"]= {"Battle", "HARD", "Defeat the AI!"},
|
||||
["solo_l"]= {"Battle", "LUNATIC", "Defeat the AI!"},
|
||||
["solo_u"]= {"Battle", "ULTIMATE", "Defeat the AI!"},
|
||||
["techmino49_e"]= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins."},
|
||||
["techmino49_h"]= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins."},
|
||||
["techmino49_u"]= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins."},
|
||||
["techmino99_e"]= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins."},
|
||||
["techmino99_h"]= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins."},
|
||||
["techmino99_u"]= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins."},
|
||||
["round_e"]= {"Turn-Based", "EASY", "Chess mode"},
|
||||
["round_n"]= {"Turn-Based", "NORMAL", "Chess mode"},
|
||||
["round_h"]= {"Turn-Based", "HARD", "Chess mode"},
|
||||
["round_l"]= {"Turn-Based", "LUNATIC", "Chess mode"},
|
||||
["round_u"]= {"Turn-Based", "ULTIMATE", "Chess mode"},
|
||||
["master_beginner"]= {"Master", "LUNATIC", "For 20G beginners."},
|
||||
["master_advance"]= {"Master", "ULTIMATE", "For 20G pros."},
|
||||
["master_final"]= {"Master", "FINAL", "20G and beyond."},
|
||||
["master_phantasm"]= {"Master", "PHANTASM", "???"},
|
||||
["master_extra"]= {"GrandMaster", "EXTRA", "An eternity shorter than an instant."},
|
||||
["rhythm_e"]= {"Rhythm", "EASY", "200-line low-BPM rhythm marathon."},
|
||||
["rhythm_h"]= {"Rhythm", "HARD", "200-line medium BPM rhythm marathon"},
|
||||
["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-BPM rhythm marathon."},
|
||||
["blind_e"]= {"Blind", "HALF", "For novices."},
|
||||
["blind_n"]= {"Blind", "ALL", "For intermediates."},
|
||||
["blind_h"]= {"Blind", "SUDDEN", "For the experienced."},
|
||||
["blind_l"]= {"Blind", "SUDDEN+", "For professionals."},
|
||||
["blind_u"]= {"Blind", "?", "Are you ready?"},
|
||||
["blind_wtf"]= {"Blind", "WTF", "You're not ready."},
|
||||
["classic_fast"]= {"Classic", "CTWC", "High-speed classic mode."},
|
||||
["survivor_e"]= {"Survivor", "EASY", "How long can you survive?"},
|
||||
["survivor_n"]= {"Survivor", "NORMAL", "How long can you survive?"},
|
||||
["survivor_h"]= {"Survivor", "HARD", "How long can you survive?"},
|
||||
["survivor_l"]= {"Survivor", "LUNATIC", "How long can you survive?"},
|
||||
["survivor_u"]= {"Survivor", "ULTIMATE", "How long can you survive?"},
|
||||
["attacker_h"]= {"Attacker", "HARD", "Practice Offense!"},
|
||||
["attacker_u"]= {"Attacker", "ULTIMATE", "Practice Offense!"},
|
||||
["defender_n"]= {"Defender", "NORMAL", "Practice Defense!"},
|
||||
["defender_l"]= {"Defender", "LUNATIC", "Practice Defense!"},
|
||||
["dig_h"]= {"Driller", "HARD", "Digging practice!"},
|
||||
["dig_u"]= {"Driller", "ULTIMATE", "Digging practice!"},
|
||||
["bigbang"]= {"Big Bang", "EASY", "All-spin tutorial!\n[Under construction]"},
|
||||
["c4wtrain_n"]= {"C4W Training", "NORMAL", "Infinite combos."},
|
||||
["c4wtrain_l"]= {"C4W Training", "LUNATIC", "Infinite combos."},
|
||||
["pctrain_n"]= {"PC Training", "NORMAL", "Perfect Clear Practice."},
|
||||
["pctrain_l"]= {"PC Training", "LUNATIC", "Harder Perfect Clear Practice."},
|
||||
["pc_n"]= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"},
|
||||
["pc_h"]= {"PC Challenge", "HARD", "Get PCs within 100 lines!"},
|
||||
["pc_l"]= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"},
|
||||
["tech_n"]= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"},
|
||||
["tech_n_plus"]= {"Tech", "NORMAL+", "Spins & PCs only."},
|
||||
["tech_h"]= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"},
|
||||
["tech_h_plus"]= {"Tech", "HARD+", "Spins & PCs only."},
|
||||
["tech_l"]= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"},
|
||||
["tech_l_plus"]= {"Tech", "LUNATIC+", "Spins & PCs only."},
|
||||
["tech_finesse"]= {"Tech", "FINESSE", "No finesse faults!"},
|
||||
["tech_finesse_f"]= {"Tech", "FINESSE+", "No normal clears and finesse faults!"},
|
||||
["tsd_e"]= {"TSD Challenge", "EASY", "T-Spin Doubles only!"},
|
||||
["tsd_h"]= {"TSD Challenge", "HARD", "T-Spin Doubles only!"},
|
||||
["tsd_u"]= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"},
|
||||
["backfire_n"]= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines."},
|
||||
["backfire_h"]= {"Backfire", "HARD", "Hold back the backfiring garbage lines."},
|
||||
["backfire_l"]= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines."},
|
||||
["backfire_u"]= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines."},
|
||||
["zen"]= {"Zen", "200", "A 200-line run without a time limit."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "A 2-minute score attack."},
|
||||
["infinite"]= {"Infinite", "", "It's just a sandbox."},
|
||||
["infinite_dig"]= {"Infinite: Dig", "", "Dig-diggi-dug."},
|
||||
["sprintFix"]= {"Sprint", "NO LEFT/RIGHT"},
|
||||
["sprintLock"]= {"Sprint", "NO ROTATIONS"},
|
||||
["marathon_bfmax"]= {"Marathon", "ULTIMATE"},
|
||||
["custom_clear"]= {"Custom", "NORMAL"},
|
||||
["custom_puzzle"]= {"Custom", "PUZZLE"},
|
||||
['sprint_10l']= {"Sprint", "10L", "Clear 10 lines!"},
|
||||
['sprint_20l']= {"Sprint", "20L", "Clear 20 lines!"},
|
||||
['sprint_40l']= {"Sprint", "40L", "Clear 40 lines!"},
|
||||
['sprint_100l']= {"Sprint", "100L", "Clear 100 lines!"},
|
||||
['sprint_400l']= {"Sprint", "400L", "Clear 400 lines!"},
|
||||
['sprint_1000l']= {"Sprint", "1000L", "Clear 1000 lines!"},
|
||||
['sprintPenta']= {"Sprint", "PENTOMINO", "40L with 18 pentominoes."},
|
||||
['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
||||
['dig_10l']= {"Dig", "10L", "Dig 10 garbage lines."},
|
||||
['dig_40l']= {"Dig", "40L", "Dig 40 garbage lines."},
|
||||
['dig_100l']= {"Dig", "100L", "Dig 100 garbage lines."},
|
||||
['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines."},
|
||||
['dig_1000l']= {"Dig", "1000L", "Dig 1000 garbage lines."},
|
||||
['drought_n']= {"Drought", "100L", "There are no I-pieces."},
|
||||
['drought_l']= {"Drought", "100L", "W T F"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with accelerating speed."},
|
||||
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon."},
|
||||
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},
|
||||
['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"},
|
||||
['solo_h']= {"Battle", "HARD", "Defeat the AI!"},
|
||||
['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"},
|
||||
['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"},
|
||||
['techmino49_e']= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins."},
|
||||
['techmino49_h']= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins."},
|
||||
['techmino49_u']= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins."},
|
||||
['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins."},
|
||||
['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins."},
|
||||
['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins."},
|
||||
['round_e']= {"Turn-Based", "EASY", "Chess mode"},
|
||||
['round_n']= {"Turn-Based", "NORMAL", "Chess mode"},
|
||||
['round_h']= {"Turn-Based", "HARD", "Chess mode"},
|
||||
['round_l']= {"Turn-Based", "LUNATIC", "Chess mode"},
|
||||
['round_u']= {"Turn-Based", "ULTIMATE", "Chess mode"},
|
||||
['master_beginner']= {"Master", "LUNATIC", "For 20G beginners."},
|
||||
['master_advance']= {"Master", "ULTIMATE", "For 20G pros."},
|
||||
['master_final']= {"Master", "FINAL", "20G and beyond."},
|
||||
['master_phantasm']= {"Master", "PHANTASM", "???"},
|
||||
['master_extra']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant."},
|
||||
['rhythm_e']= {"Rhythm", "EASY", "200-line low-BPM rhythm marathon."},
|
||||
['rhythm_h']= {"Rhythm", "HARD", "200-line medium BPM rhythm marathon"},
|
||||
['rhythm_u']= {"Rhythm", "ULTIMATE", "200-line high-BPM rhythm marathon."},
|
||||
['blind_e']= {"Blind", "HALF", "For novices."},
|
||||
['blind_n']= {"Blind", "ALL", "For intermediates."},
|
||||
['blind_h']= {"Blind", "SUDDEN", "For the experienced."},
|
||||
['blind_l']= {"Blind", "SUDDEN+", "For professionals."},
|
||||
['blind_u']= {"Blind", "?", "Are you ready?"},
|
||||
['blind_wtf']= {"Blind", "WTF", "You're not ready."},
|
||||
['classic_fast']= {"Classic", "CTWC", "High-speed classic mode."},
|
||||
['survivor_e']= {"Survivor", "EASY", "How long can you survive?"},
|
||||
['survivor_n']= {"Survivor", "NORMAL", "How long can you survive?"},
|
||||
['survivor_h']= {"Survivor", "HARD", "How long can you survive?"},
|
||||
['survivor_l']= {"Survivor", "LUNATIC", "How long can you survive?"},
|
||||
['survivor_u']= {"Survivor", "ULTIMATE", "How long can you survive?"},
|
||||
['attacker_h']= {"Attacker", "HARD", "Practice Offense!"},
|
||||
['attacker_u']= {"Attacker", "ULTIMATE", "Practice Offense!"},
|
||||
['defender_n']= {"Defender", "NORMAL", "Practice Defense!"},
|
||||
['defender_l']= {"Defender", "LUNATIC", "Practice Defense!"},
|
||||
['dig_h']= {"Driller", "HARD", "Digging practice!"},
|
||||
['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"},
|
||||
['bigbang']= {"Big Bang", "EASY", "All-spin tutorial!\n[Under construction]"},
|
||||
['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos."},
|
||||
['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos."},
|
||||
['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear Practice."},
|
||||
['pctrain_l']= {"PC Training", "LUNATIC", "Harder Perfect Clear Practice."},
|
||||
['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"},
|
||||
['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"},
|
||||
['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"},
|
||||
['tech_n']= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_n_plus']= {"Tech", "NORMAL+", "Spins & PCs only."},
|
||||
['tech_h']= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_h_plus']= {"Tech", "HARD+", "Spins & PCs only."},
|
||||
['tech_l']= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"},
|
||||
['tech_l_plus']= {"Tech", "LUNATIC+", "Spins & PCs only."},
|
||||
['tech_finesse']= {"Tech", "FINESSE", "No finesse faults!"},
|
||||
['tech_finesse_f']= {"Tech", "FINESSE+", "No normal clears and finesse faults!"},
|
||||
['tsd_e']= {"TSD Challenge", "EASY", "T-Spin Doubles only!"},
|
||||
['tsd_h']= {"TSD Challenge", "HARD", "T-Spin Doubles only!"},
|
||||
['tsd_u']= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"},
|
||||
['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines."},
|
||||
['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines."},
|
||||
['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines."},
|
||||
['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines."},
|
||||
['zen']= {'Zen', "200", "A 200-line run without a time limit."},
|
||||
['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack."},
|
||||
['infinite']= {'infinite', "", "It's just a sandbox."},
|
||||
['infinite_dig']= {"Infinite: Dig", "", "Dig-diggi-dug."},
|
||||
['sprintFix']= {"Sprint", "NO LEFT/RIGHT"},
|
||||
['sprintLock']= {"Sprint", "NO ROTATIONS"},
|
||||
['marathon_bfmax']= {"Marathon", "ULTIMATE"},
|
||||
['custom_clear']= {"Custom", "NORMAL"},
|
||||
['custom_puzzle']= {"Custom", "PUZZLE"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
'Free-to-play block stacking game with a Battle Royale mode!',
|
||||
|
||||
@@ -577,96 +577,96 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"Sprint", "10L", "Nettoyez 10 lignes !"},
|
||||
["sprint_20l"]= {"Sprint", "20L", "Nettoyez 20 lignes !"},
|
||||
["sprint_40l"]= {"Sprint", "40L", "Nettoyez 40 lignes !"},
|
||||
["sprint_100l"]= {"Sprint", "100L", "Nettoyez 100 lignes !"},
|
||||
["sprint_400l"]= {"Sprint", "400L", "Nettoyez 400 lignes !"},
|
||||
["sprint_1000l"]= {"Sprint", "1000L", "Nettoyez 1000 lignes !"},
|
||||
["sprintPenta"]= {"Sprint", "Pentomino", "40 lignes avec 18 pentominos."},
|
||||
["sprintMPH"]= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
||||
["dig_10l"]= {"Dig", "10L", "Creusez 10 lines"},
|
||||
["dig_40l"]= {"Dig", "40L", "Creusez 40 lines"},
|
||||
["dig_100l"]= {"Dig", "100L", "Creusez 100 lines"},
|
||||
["dig_400l"]= {"Dig", "400L", "Creusez 400 lines"},
|
||||
["dig_1000l"]= {"Dig", "1000L", "Creusez 1000 lines"},
|
||||
["drought_n"]= {"Drought", "100L", "Pas de pièce I !"},
|
||||
["drought_l"]= {"Drought", "100L", "WTF ??!!"},
|
||||
["marathon_n"]= {"Marathon", "NORMAL", "Marathon de 200 lignes."},
|
||||
["marathon_h"]= {"Marathon", "DIFFICILE", "Marathon de 200 lignes à très haute vitesse"},
|
||||
["solo_e"]= {"Battle", "FACILE", "Battez l'IA !"},
|
||||
["solo_n"]= {"Battle", "NORMAL", "Battez l'IA !"},
|
||||
["solo_h"]= {"Battle", "DIFFICILE", "Battez l'IA !"},
|
||||
["solo_l"]= {"Battle", "LUNATIQUE", "Battez l'IA !"},
|
||||
["solo_u"]= {"Battle", "ULTIME", "Battez l'IA !"},
|
||||
["techmino49_e"]= {"Tech 49", "FACILE", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
["techmino49_h"]= {"Tech 49", "DIFFICILE", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
["techmino49_u"]= {"Tech 49", "ULTIME", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
["techmino99_e"]= {"Tech 99", "FACILE", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
["techmino99_h"]= {"Tech 99", "DIFFICILE", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
["techmino99_u"]= {"Tech 99", "ULTIMe", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
["round_e"]= {"Tour à tour", "FACILE", "Mode échecs"},
|
||||
["round_n"]= {"Tour à tour", "NORMAL", "Mode échecs"},
|
||||
["round_h"]= {"Tour à tour", "DIFFICILE", "Mode échecs"},
|
||||
["round_l"]= {"Tour à tour", "LUNATIQUE", "Mode échecs"},
|
||||
["round_u"]= {"Tour à tour", "ULTIME", "Mode échecs"},
|
||||
["master_beginner"]= {"Master", "LUNATIQUE", "Pour les débutants en 20G."},
|
||||
["master_advance"]= {"Master", "ULTIME", "Challenge 20G pro !"},
|
||||
["master_final"]= {"Master", "FINAL", "20G : Un point final impossible à atteindre !"},
|
||||
-- ["master_phantasm"]= {"Mester", "FANTASMA", "20G: ???"},
|
||||
["master_extra"]= {"GrandMaster", "EXTRA", "Tentez de devenir un Grandmaster."},
|
||||
-- ["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
|
||||
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
|
||||
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
|
||||
["blind_e"]= {"Aveugle", "MOITIE", "Pour les novices."},
|
||||
["blind_n"]= {"Aveugle", "TOUT", "Pour les joueurs intermédiaires."},
|
||||
["blind_h"]= {"Aveugle", "SOUDAIN", "Pour les bons jooeurs."},
|
||||
["blind_l"]= {"Aveugle", "SOUDAIN+", "Pour les pros."},
|
||||
["blind_u"]= {"Aveugle", "?", "Êtes-vous prêt ?"},
|
||||
["blind_wtf"]= {"Aveugle", "WTF", "Vous n'êtes pas prêt."},
|
||||
["classic_fast"]= {"Classic", "CTWC", "Un mode classique rapide."},
|
||||
["survivor_e"]= {"Survivor", "FACILE", "Pendant combien de temps survivrez-vous ?"},
|
||||
["survivor_n"]= {"Survivor", "NORMAL", "Pendant combien de temps survivrez-vous ?"},
|
||||
["survivor_h"]= {"Survivor", "DIFFICILE", "Pendant combien de temps survivrez-vous ?"},
|
||||
["survivor_l"]= {"Survivor", "LUNATIQUE", "Pendant combien de temps survivrez-vous ?"},
|
||||
["survivor_u"]= {"Survivor", "ULTIME", "Pendant combien de temps survivrez-vous ?"},
|
||||
["attacker_h"]= {"Attaquant", "DIFFICILE", "Soyez offensifs !"},
|
||||
["attacker_u"]= {"Attaquant", "ULTIME", "Soyez offensifs !"},
|
||||
["defender_n"]= {"Défendant", "NORMAL", "Soyez défensifs !"},
|
||||
["defender_l"]= {"Défendant", "LUNATIQUE", "Soyez défensifs !"},
|
||||
["dig_h"]= {"Perceuse", "DIFFICILE", "Essayez de creuser !"},
|
||||
["dig_u"]= {"Perceuse", "ULTIME", "Essayez de creuser !"},
|
||||
["bigbang"]= {"Big Bang", "FACILE", "Tutoriel All-Spin\nEn construction..."},
|
||||
["c4wtrain_n"]= {"Mode essai C4W", "NORMAL", "Combos infinis."},
|
||||
["c4wtrain_l"]= {"Mode essai C4W", "LUNATIQUE", "Combos infinis."},
|
||||
["pctrain_n"]= {"Mode essai PC", "NORMAL", "Mode Perfect Clear simple"},
|
||||
["pctrain_l"]= {"Mode essai PC", "LUNATIQUE", "Mode Perfect Clear dur"},
|
||||
["pc_n"]= {"PC Challenge", "NORMAL", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
["pc_h"]= {"PC Challenge", "DIFFICILE", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
["pc_l"]= {"PC Challenge", "LUNATIQUE", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
["tech_n"]= {"Tech", "NORMAL", "Gardez le B2B !"},
|
||||
["tech_n_plus"]= {"Tech", "NORMAL+", "Spin & PC uniquement"},
|
||||
["tech_h"]= {"Tech", "DIFFICILE", "Gardez le B2B !"},
|
||||
["tech_h_plus"]= {"Tech", "HARD+", "Spin & PC uniquement"},
|
||||
["tech_l"]= {"Tech", "LUNATIQUE", "Gardez le B2B !"},
|
||||
["tech_l_plus"]= {"Tech", "LUNATIQUE+", "Spin & PC uniquement"},
|
||||
["tech_finesse"]= {"Tech", "FINESSE", "Pas d'erreurs de finesse !"},
|
||||
["tech_finesse_f"]= {"Tech", "FINESSE+", "Pas de nettoyages normaux, Pas d'erreurs de finesse !"},
|
||||
["tsd_e"]= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"},
|
||||
["tsd_h"]= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"},
|
||||
["tsd_u"]= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"},
|
||||
-- ["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200", "200 lignes sans limites de temps."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "2 minutes pour avoir le meilleur score."},
|
||||
["infinite"]= {"Infini", "", "Mode tranquile."},
|
||||
["infinite_dig"]= {"Infini : Dig", "", "Creuser, creuser, creuser."},
|
||||
["sprintFix"]= {"Sprint", "Sans gauche/droite"},
|
||||
["sprintLock"]= {"Sprint", "Sans rotation"},
|
||||
["marathon_bfmax"]= {"Marathon", "ULTIME"},
|
||||
["custom_clear"]= {"Perso.", "NORMAL"},
|
||||
["custom_puzzle"]= {"Perso.", "PUZZLE"},
|
||||
['sprint_10l']= {"Sprint", "10L", "Nettoyez 10 lignes !"},
|
||||
['sprint_20l']= {"Sprint", "20L", "Nettoyez 20 lignes !"},
|
||||
['sprint_40l']= {"Sprint", "40L", "Nettoyez 40 lignes !"},
|
||||
['sprint_100l']= {"Sprint", "100L", "Nettoyez 100 lignes !"},
|
||||
['sprint_400l']= {"Sprint", "400L", "Nettoyez 400 lignes !"},
|
||||
['sprint_1000l']= {"Sprint", "1000L", "Nettoyez 1000 lignes !"},
|
||||
['sprintPenta']= {"Sprint", "Pentomino", "40 lignes avec 18 pentominos."},
|
||||
['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
||||
['dig_10l']= {"Dig", "10L", "Creusez 10 lines"},
|
||||
['dig_40l']= {"Dig", "40L", "Creusez 40 lines"},
|
||||
['dig_100l']= {"Dig", "100L", "Creusez 100 lines"},
|
||||
['dig_400l']= {"Dig", "400L", "Creusez 400 lines"},
|
||||
['dig_1000l']= {"Dig", "1000L", "Creusez 1000 lines"},
|
||||
['drought_n']= {"Drought", "100L", "Pas de pièce I !"},
|
||||
['drought_l']= {"Drought", "100L", "WTF ??!!"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "Marathon de 200 lignes."},
|
||||
['marathon_h']= {"Marathon", "DIFFICILE", "Marathon de 200 lignes à très haute vitesse"},
|
||||
['solo_e']= {"Battle", "FACILE", "Battez l'IA !"},
|
||||
['solo_n']= {"Battle", "NORMAL", "Battez l'IA !"},
|
||||
['solo_h']= {"Battle", "DIFFICILE", "Battez l'IA !"},
|
||||
['solo_l']= {"Battle", "LUNATIQUE", "Battez l'IA !"},
|
||||
['solo_u']= {"Battle", "ULTIME", "Battez l'IA !"},
|
||||
['techmino49_e']= {"Tech 49", "FACILE", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
['techmino49_h']= {"Tech 49", "DIFFICILE", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
['techmino49_u']= {"Tech 49", "ULTIME", "Bataille de 49 joueurs.\nLe dernier en vie gagne."},
|
||||
['techmino99_e']= {"Tech 99", "FACILE", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
['techmino99_h']= {"Tech 99", "DIFFICILE", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
['techmino99_u']= {"Tech 99", "ULTIMe", "Bataille de 99 joueurs.\nLe dernier en vie gagne."},
|
||||
['round_e']= {"Tour à tour", "FACILE", "Mode échecs"},
|
||||
['round_n']= {"Tour à tour", "NORMAL", "Mode échecs"},
|
||||
['round_h']= {"Tour à tour", "DIFFICILE", "Mode échecs"},
|
||||
['round_l']= {"Tour à tour", "LUNATIQUE", "Mode échecs"},
|
||||
['round_u']= {"Tour à tour", "ULTIME", "Mode échecs"},
|
||||
['master_beginner']= {"Master", "LUNATIQUE", "Pour les débutants en 20G."},
|
||||
['master_advance']= {"Master", "ULTIME", "Challenge 20G pro !"},
|
||||
['master_final']= {"Master", "FINAL", "20G : Un point final impossible à atteindre !"},
|
||||
-- ['master_phantasm']= {"Mester", "FANTASMA", "20G: ???"},
|
||||
['master_extra']= {"GrandMaster", "EXTRA", "Tentez de devenir un Grandmaster."},
|
||||
-- ['rhythm_e']= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
|
||||
-- ['rhythm_h']= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
|
||||
-- ['rhythm_u']= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
|
||||
['blind_e']= {"Aveugle", "MOITIE", "Pour les novices."},
|
||||
['blind_n']= {"Aveugle", "TOUT", "Pour les joueurs intermédiaires."},
|
||||
['blind_h']= {"Aveugle", "SOUDAIN", "Pour les bons jooeurs."},
|
||||
['blind_l']= {"Aveugle", "SOUDAIN+", "Pour les pros."},
|
||||
['blind_u']= {"Aveugle", "?", "Êtes-vous prêt ?"},
|
||||
['blind_wtf']= {"Aveugle", "WTF", "Vous n'êtes pas prêt."},
|
||||
['classic_fast']= {"Classic", "CTWC", "Un mode classique rapide."},
|
||||
['survivor_e']= {"Survivor", "FACILE", "Pendant combien de temps survivrez-vous ?"},
|
||||
['survivor_n']= {"Survivor", "NORMAL", "Pendant combien de temps survivrez-vous ?"},
|
||||
['survivor_h']= {"Survivor", "DIFFICILE", "Pendant combien de temps survivrez-vous ?"},
|
||||
['survivor_l']= {"Survivor", "LUNATIQUE", "Pendant combien de temps survivrez-vous ?"},
|
||||
['survivor_u']= {"Survivor", "ULTIME", "Pendant combien de temps survivrez-vous ?"},
|
||||
['attacker_h']= {"Attaquant", "DIFFICILE", "Soyez offensifs !"},
|
||||
['attacker_u']= {"Attaquant", "ULTIME", "Soyez offensifs !"},
|
||||
['defender_n']= {"Défendant", "NORMAL", "Soyez défensifs !"},
|
||||
['defender_l']= {"Défendant", "LUNATIQUE", "Soyez défensifs !"},
|
||||
['dig_h']= {"Perceuse", "DIFFICILE", "Essayez de creuser !"},
|
||||
['dig_u']= {"Perceuse", "ULTIME", "Essayez de creuser !"},
|
||||
['bigbang']= {"Big Bang", "FACILE", "Tutoriel All-Spin\nEn construction..."},
|
||||
['c4wtrain_n']= {"Mode essai C4W", "NORMAL", "Combos infinis."},
|
||||
['c4wtrain_l']= {"Mode essai C4W", "LUNATIQUE", "Combos infinis."},
|
||||
['pctrain_n']= {"Mode essai PC", "NORMAL", "Mode Perfect Clear simple"},
|
||||
['pctrain_l']= {"Mode essai PC", "LUNATIQUE", "Mode Perfect Clear dur"},
|
||||
['pc_n']= {"PC Challenge", "NORMAL", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
['pc_h']= {"PC Challenge", "DIFFICILE", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
['pc_l']= {"PC Challenge", "LUNATIQUE", "Obtenez un PC dans les prochaines 100 lignes !"},
|
||||
['tech_n']= {"Tech", "NORMAL", "Gardez le B2B !"},
|
||||
['tech_n_plus']= {"Tech", "NORMAL+", "Spin & PC uniquement"},
|
||||
['tech_h']= {"Tech", "DIFFICILE", "Gardez le B2B !"},
|
||||
['tech_h_plus']= {"Tech", "HARD+", "Spin & PC uniquement"},
|
||||
['tech_l']= {"Tech", "LUNATIQUE", "Gardez le B2B !"},
|
||||
['tech_l_plus']= {"Tech", "LUNATIQUE+", "Spin & PC uniquement"},
|
||||
['tech_finesse']= {"Tech", "FINESSE", "Pas d'erreurs de finesse !"},
|
||||
['tech_finesse_f']= {"Tech", "FINESSE+", "Pas de nettoyages normaux, Pas d'erreurs de finesse !"},
|
||||
['tsd_e']= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"},
|
||||
['tsd_h']= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"},
|
||||
['tsd_u']= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"},
|
||||
-- ['backfire_n']= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ['backfire_h']= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ['backfire_l']= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ['backfire_u']= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
['zen']= {'Zen', "200", "200 lignes sans limites de temps."},
|
||||
['ultra']= {'Ultra', "EXTRA", "2 minutes pour avoir le meilleur score."},
|
||||
['infinite']= {"Infini", "", "Mode tranquile."},
|
||||
['infinite_dig']= {"Infini : Dig", "", "Creuser, creuser, creuser."},
|
||||
['sprintFix']= {"Sprint", "Sans gauche/droite"},
|
||||
['sprintLock']= {"Sprint", "Sans rotation"},
|
||||
['marathon_bfmax']= {"Marathon", "ULTIME"},
|
||||
['custom_clear']= {"Perso.", "NORMAL"},
|
||||
['custom_puzzle']= {"Perso.", "PUZZLE"},
|
||||
},
|
||||
}
|
||||
@@ -662,97 +662,97 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"Sprint", "10L", "Limpe 10 linhas!"},
|
||||
["sprint_20l"]= {"Sprint", "20L", "Limpe 20 linhas!"},
|
||||
["sprint_40l"]= {"Sprint", "40L", "Limpe 40 linhas!"},
|
||||
["sprint_100l"]= {"Sprint", "100L", "Limpe 100 linhas!"},
|
||||
["sprint_400l"]= {"Sprint", "400L", "Limpe 400 linhas!"},
|
||||
["sprint_1000l"]= {"Sprint", "1000L", "Limpe 1000 linhas!"},
|
||||
["sprintPenta"]= {"Sprint", "PENTOMINO", "Limpe 40 linhas com 18 pentominoes."},
|
||||
["sprintMPH"]= {"Sprint", "MPH", "SemMem.\nSemPrévia\nSemSegurar"},
|
||||
["dig_10l"]= {"Cave", "10L", "Cave 10 linhas de lixo."},
|
||||
["dig_40l"]= {"Cave", "40L", "Cave 40 linhas de lixo."},
|
||||
["dig_100l"]= {"Cave", "100L", "Cave 100 linhas de lixo."},
|
||||
["dig_400l"]= {"Cave", "400L", "Cave 400 linhas de lixo."},
|
||||
["dig_1000l"]= {"Cave", "1000L", "Cave 1000 linhas de lixo."},
|
||||
["drought_n"]= {"Drought", "100L", "Sem peça I !"},
|
||||
["drought_l"]= {"Drought", "100L", "WTF"},
|
||||
["marathon_n"]= {"Maratona", "NORMAL", "200-line Maratona com velocidade aumentando."},
|
||||
["marathon_h"]= {"Maratona", "DIFÍCIL", "200-line Maratona com velocidade alta."},
|
||||
["solo_e"]= {"Batalha", "FÁCIL", "Derrote a inteligência!"},
|
||||
["solo_n"]= {"Batalha", "NORMAL", "Derrote a inteligência!"},
|
||||
["solo_h"]= {"Batalha", "DIFÍCIL", "Derrote a inteligência!"},
|
||||
["solo_l"]= {"Batalha", "LUNATICO", "Defeat the AI!"},
|
||||
["solo_u"]= {"Batalha", "ULTIMATE", "Defeat the AI!"},
|
||||
["techmino49_e"]= {"Tech 49", "FÁCIL", "Batalha de 49 jogadores.\nO último vence"},
|
||||
["techmino49_h"]= {"Tech 49", "DIFÍCIL", "Batalha de 49 jogadores.\nO último vence."},
|
||||
["techmino49_u"]= {"Tech 49", "ULTIMATE", "Batalha de 49 jogadores.\nO último vence."},
|
||||
["techmino99_e"]= {"Tech 99", "FÁCIL", "Batalha de 99 jogadores.\nO último vence."},
|
||||
["techmino99_h"]= {"Tech 99", "DIFÍCIL", "Batalha de 99 jogadores.\nO último vence."},
|
||||
["techmino99_u"]= {"Tech 99", "ULTIMATE", "Batalha de 99 jogadores.\nO último vence."},
|
||||
["round_e"]= {"Baseado Turnos", "FÁCIL", "Modo xadrez"},
|
||||
["round_n"]= {"Baseado Turnos", "NORMAL", "Modo xadrez"},
|
||||
["round_h"]= {"Baseado Turnos", "DIFÍCIL", "Modo xadrez"},
|
||||
["round_l"]= {"Baseado Turnos", "LUNÁTICO", "Modo xadrez"},
|
||||
["round_u"]= {"Baseado Turnos", "ULTIMATE", "Modo xadrez"},
|
||||
["master_beginner"]= {"Mestre", "LUNÁTICO", "Pra iniciantes de 20G."},
|
||||
["master_advance"]= {"Mestre", "ULTIMATE", "Desafio 20G profissional!"},
|
||||
["master_final"]= {"Mestre", "FINAL", "20G: Final inalcançável!"},
|
||||
["master_phantasm"]= {"Mestre", "FANTASMA", "20G: ???"},
|
||||
["master_extra"]= {"GrandMaster", "EXTRA", "Para ser um Grand Master, aceite \nesse desafio."},
|
||||
-- ["rhythm_e"]= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
|
||||
-- ["rhythm_h"]= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
|
||||
-- ["rhythm_u"]= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
|
||||
["blind_e"]= {"Cego", "METADE", "Para novatos."},
|
||||
["blind_n"]= {"Cego", "TUDO", "Para intermediários."},
|
||||
["blind_h"]= {"Cego", "DE REPENTE", "Para experientes."},
|
||||
["blind_l"]= {"Cego", "DE REPENTE+", "For professionals."},
|
||||
["blind_u"]= {"Cego", "?", "Are you ready?"},
|
||||
["blind_wtf"]= {"Cego", "WTF", "You're not ready."},
|
||||
["classic_fast"]= {"Clássico", "CTWC", "Modo clássico rápido. "},
|
||||
["survivor_e"]= {"Sobrevivente", "FACIL", "Por quanto sobrevive?"},
|
||||
["survivor_n"]= {"Sobrevivente", "NORMAL", "Por quanto sobrevive?"},
|
||||
["survivor_h"]= {"Sobrevivente", "DIFÍCIL", "Por quanto sobrevive?"},
|
||||
["survivor_l"]= {"Sobrevivente", "LUNÁTICO", "Por quanto sobrevive?"},
|
||||
["survivor_u"]= {"Sobrevivente", "ULTIMATE", "Por quanto sobrevive?"},
|
||||
["attacker_h"]= {"Atacante", "DIFÍCIL", "Prática de ofensiva!"},
|
||||
["attacker_u"]= {"Atacante", "ULTIMATE", "Prática de ofensiva!"},
|
||||
["defender_n"]= {"Defensor", "NORMAL", "Prática de defensiva!"},
|
||||
["defender_l"]= {"Defensor", "LUNÁTICO", "Prática de defensiva!"},
|
||||
["dig_h"]= {"Cavador", "DIFÍCIL", "Prática de cavar!"},
|
||||
["dig_u"]= {"Cavador", "ULTIMATE", "Prática de cavar!"},
|
||||
["bigbang"]= {"Big Bang", "FÁCIL", "Tutorial de todos giros!\n[Em construção]"},
|
||||
["c4wtrain_n"]= {"Treinamento C4W", "NORMAL", "Combos infinitos."},
|
||||
["c4wtrain_l"]= {"Treinamento C4W", "LUNÁTICO", "Combos infinitos."},
|
||||
["pctrain_n"]= {"Treinamento PC", "NORMAL", "Modo simples de limpeza perfeita."},
|
||||
["pctrain_l"]= {"Treinamento PC", "LUNÁTICO", "Modo duro de limpeza perfeita."},
|
||||
["pc_n"]= {"Desafio PC", "NORMAL", "Obtenha PCs em 100 linhas!"},
|
||||
["pc_h"]= {"Desafio PC", "DIFÍCIL", "Obtenha PCs em 100 linhas!"},
|
||||
["pc_l"]= {"Desafio PC", "LUNÁTICO", "Obteha PCs em 100 linhas!"},
|
||||
["tech_n"]= {"Tech", "NORMAL", "Não quebre o B2B!"},
|
||||
["tech_n_plus"]= {"Tech", "NORMAL+", "Apenas spins e PC"},
|
||||
["tech_h"]= {"Tech", "HARD", "Keep the B2B chain!"},
|
||||
["tech_h_plus"]= {"Tech", "HARD+", "Apenas spins e PC"},
|
||||
["tech_l"]= {"Tech", "LUNÁTICO", "Não quebre o B2B!"},
|
||||
["tech_l_plus"]= {"Tech", "LUNÁTICO+", "Apenas spins e PC"},
|
||||
["tech_finesse"]= {"Tech", "FINESSE", "Não erre a destreza!"},
|
||||
["tech_finesse_f"]= {"Tech", "FINESSE+", "Sem limpas normais, não erre a destreza!"},
|
||||
["tsd_e"]= {"Desafio TSD", "FÁCIL", "Apenas T-spin-doubles!"},
|
||||
["tsd_h"]= {"Desafio TSD", "DIFÍCIL", "Apenas T-spin-doubles!"},
|
||||
["tsd_u"]= {"Desafio TSD", "ULTIMATE", "Apenas T-spin-doubles!"},
|
||||
-- ["backfire_n"]= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ["backfire_h"]= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ["backfire_l"]= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ["backfire_u"]= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
["zen"]= {"Zen", "200", "200 linhas sem um limite de tempo."},
|
||||
["ultra"]= {"Ultra", "EXTRA", "Pegue a maior pontuação em 2 minutos."},
|
||||
["infinite"]= {"Infinito", "", "Modo Sandbox."},
|
||||
["infinite_dig"]= {"Infinito:Cave", "", "Cava, Cava, Cava."},
|
||||
["sprintFix"]= {"Sprint", "SEM ESQUERDA/DIREITA"},
|
||||
["sprintLock"]= {"Sprint", "SEM ROTAÇÃO"},
|
||||
["marathon_bfmax"]= {"Maratona", "ULTIMATE"},
|
||||
["custom_clear"]= {"Custom", "NORMAL"},
|
||||
["custom_puzzle"]= {"Custom", "PUZZLE"},
|
||||
['sprint_10l']= {"Sprint", "10L", "Limpe 10 linhas!"},
|
||||
['sprint_20l']= {"Sprint", "20L", "Limpe 20 linhas!"},
|
||||
['sprint_40l']= {"Sprint", "40L", "Limpe 40 linhas!"},
|
||||
['sprint_100l']= {"Sprint", "100L", "Limpe 100 linhas!"},
|
||||
['sprint_400l']= {"Sprint", "400L", "Limpe 400 linhas!"},
|
||||
['sprint_1000l']= {"Sprint", "1000L", "Limpe 1000 linhas!"},
|
||||
['sprintPenta']= {"Sprint", "PENTOMINO", "Limpe 40 linhas com 18 pentominoes."},
|
||||
['sprintMPH']= {"Sprint", "MPH", "SemMem.\nSemPrévia\nSemSegurar"},
|
||||
['dig_10l']= {"Cave", "10L", "Cave 10 linhas de lixo."},
|
||||
['dig_40l']= {"Cave", "40L", "Cave 40 linhas de lixo."},
|
||||
['dig_100l']= {"Cave", "100L", "Cave 100 linhas de lixo."},
|
||||
['dig_400l']= {"Cave", "400L", "Cave 400 linhas de lixo."},
|
||||
['dig_1000l']= {"Cave", "1000L", "Cave 1000 linhas de lixo."},
|
||||
['drought_n']= {"Drought", "100L", "Sem peça I !"},
|
||||
['drought_l']= {"Drought", "100L", "WTF"},
|
||||
['marathon_n']= {"Maratona", "NORMAL", "200-line Maratona com velocidade aumentando."},
|
||||
['marathon_h']= {"Maratona", "DIFÍCIL", "200-line Maratona com velocidade alta."},
|
||||
['solo_e']= {"Batalha", "FÁCIL", "Derrote a inteligência!"},
|
||||
['solo_n']= {"Batalha", "NORMAL", "Derrote a inteligência!"},
|
||||
['solo_h']= {"Batalha", "DIFÍCIL", "Derrote a inteligência!"},
|
||||
['solo_l']= {"Batalha", "LUNATICO", "Defeat the AI!"},
|
||||
['solo_u']= {"Batalha", "ULTIMATE", "Defeat the AI!"},
|
||||
['techmino49_e']= {"Tech 49", "FÁCIL", "Batalha de 49 jogadores.\nO último vence"},
|
||||
['techmino49_h']= {"Tech 49", "DIFÍCIL", "Batalha de 49 jogadores.\nO último vence."},
|
||||
['techmino49_u']= {"Tech 49", "ULTIMATE", "Batalha de 49 jogadores.\nO último vence."},
|
||||
['techmino99_e']= {"Tech 99", "FÁCIL", "Batalha de 99 jogadores.\nO último vence."},
|
||||
['techmino99_h']= {"Tech 99", "DIFÍCIL", "Batalha de 99 jogadores.\nO último vence."},
|
||||
['techmino99_u']= {"Tech 99", "ULTIMATE", "Batalha de 99 jogadores.\nO último vence."},
|
||||
['round_e']= {"Baseado Turnos", "FÁCIL", "Modo xadrez"},
|
||||
['round_n']= {"Baseado Turnos", "NORMAL", "Modo xadrez"},
|
||||
['round_h']= {"Baseado Turnos", "DIFÍCIL", "Modo xadrez"},
|
||||
['round_l']= {"Baseado Turnos", "LUNÁTICO", "Modo xadrez"},
|
||||
['round_u']= {"Baseado Turnos", "ULTIMATE", "Modo xadrez"},
|
||||
['master_beginner']= {"Mestre", "LUNÁTICO", "Pra iniciantes de 20G."},
|
||||
['master_advance']= {"Mestre", "ULTIMATE", "Desafio 20G profissional!"},
|
||||
['master_final']= {"Mestre", "FINAL", "20G: Final inalcançável!"},
|
||||
['master_phantasm']= {"Mestre", "FANTASMA", "20G: ???"},
|
||||
['master_extra']= {"GrandMaster", "EXTRA", "Para ser um Grand Master, aceite \nesse desafio."},
|
||||
-- ['rhythm_e']= {"Rhythm", "EASY", "200-line low-bpm rhythm marathon."},
|
||||
-- ['rhythm_h']= {"Rhythm", "HARD", "200-line medium-bpm rhythm marathon"},
|
||||
-- ['rhythm_u']= {"Rhythm", "ULTIMATE", "200-line high-bpm rhythm marathon."},
|
||||
['blind_e']= {"Cego", "METADE", "Para novatos."},
|
||||
['blind_n']= {"Cego", "TUDO", "Para intermediários."},
|
||||
['blind_h']= {"Cego", "DE REPENTE", "Para experientes."},
|
||||
['blind_l']= {"Cego", "DE REPENTE+", "For professionals."},
|
||||
['blind_u']= {"Cego", "?", "Are you ready?"},
|
||||
['blind_wtf']= {"Cego", "WTF", "You're not ready."},
|
||||
['classic_fast']= {"Clássico", "CTWC", "Modo clássico rápido. "},
|
||||
['survivor_e']= {"Sobrevivente", "FACIL", "Por quanto sobrevive?"},
|
||||
['survivor_n']= {"Sobrevivente", "NORMAL", "Por quanto sobrevive?"},
|
||||
['survivor_h']= {"Sobrevivente", "DIFÍCIL", "Por quanto sobrevive?"},
|
||||
['survivor_l']= {"Sobrevivente", "LUNÁTICO", "Por quanto sobrevive?"},
|
||||
['survivor_u']= {"Sobrevivente", "ULTIMATE", "Por quanto sobrevive?"},
|
||||
['attacker_h']= {"Atacante", "DIFÍCIL", "Prática de ofensiva!"},
|
||||
['attacker_u']= {"Atacante", "ULTIMATE", "Prática de ofensiva!"},
|
||||
['defender_n']= {"Defensor", "NORMAL", "Prática de defensiva!"},
|
||||
['defender_l']= {"Defensor", "LUNÁTICO", "Prática de defensiva!"},
|
||||
['dig_h']= {"Cavador", "DIFÍCIL", "Prática de cavar!"},
|
||||
['dig_u']= {"Cavador", "ULTIMATE", "Prática de cavar!"},
|
||||
['bigbang']= {"Big Bang", "FÁCIL", "Tutorial de todos giros!\n[Em construção]"},
|
||||
['c4wtrain_n']= {"Treinamento C4W", "NORMAL", "Combos infinitos."},
|
||||
['c4wtrain_l']= {"Treinamento C4W", "LUNÁTICO", "Combos infinitos."},
|
||||
['pctrain_n']= {"Treinamento PC", "NORMAL", "Modo simples de limpeza perfeita."},
|
||||
['pctrain_l']= {"Treinamento PC", "LUNÁTICO", "Modo duro de limpeza perfeita."},
|
||||
['pc_n']= {"Desafio PC", "NORMAL", "Obtenha PCs em 100 linhas!"},
|
||||
['pc_h']= {"Desafio PC", "DIFÍCIL", "Obtenha PCs em 100 linhas!"},
|
||||
['pc_l']= {"Desafio PC", "LUNÁTICO", "Obteha PCs em 100 linhas!"},
|
||||
['tech_n']= {"Tech", "NORMAL", "Não quebre o B2B!"},
|
||||
['tech_n_plus']= {"Tech", "NORMAL+", "Apenas spins e PC"},
|
||||
['tech_h']= {"Tech", "HARD", "Keep the B2B chain!"},
|
||||
['tech_h_plus']= {"Tech", "HARD+", "Apenas spins e PC"},
|
||||
['tech_l']= {"Tech", "LUNÁTICO", "Não quebre o B2B!"},
|
||||
['tech_l_plus']= {"Tech", "LUNÁTICO+", "Apenas spins e PC"},
|
||||
['tech_finesse']= {"Tech", "FINESSE", "Não erre a destreza!"},
|
||||
['tech_finesse_f']= {"Tech", "FINESSE+", "Sem limpas normais, não erre a destreza!"},
|
||||
['tsd_e']= {"Desafio TSD", "FÁCIL", "Apenas T-spin-doubles!"},
|
||||
['tsd_h']= {"Desafio TSD", "DIFÍCIL", "Apenas T-spin-doubles!"},
|
||||
['tsd_u']= {"Desafio TSD", "ULTIMATE", "Apenas T-spin-doubles!"},
|
||||
-- ['backfire_n']= {"Backfire", "NORMAL", "Self-send garbages"},
|
||||
-- ['backfire_h']= {"Backfire", "HARD", "Self-send garbages"},
|
||||
-- ['backfire_l']= {"Backfire", "LUNATIC", "Self-send garbages"},
|
||||
-- ['backfire_u']= {"Backfire", "ULTIMATE", "Self-send garbages"},
|
||||
['zen']= {'Zen', "200", "200 linhas sem um limite de tempo."},
|
||||
['ultra']= {'Ultra', "EXTRA", "Pegue a maior pontuação em 2 minutos."},
|
||||
['infinite']= {"Infinito", "", "Modo Sandbox."},
|
||||
['infinite_dig']= {"Infinito:Cave", "", "Cava, Cava, Cava."},
|
||||
['sprintFix']= {"Sprint", "SEM ESQUERDA/DIREITA"},
|
||||
['sprintLock']= {"Sprint", "SEM ROTAÇÃO"},
|
||||
['marathon_bfmax']= {"Maratona", "ULTIMATE"},
|
||||
['custom_clear']= {"Custom", "NORMAL"},
|
||||
['custom_puzzle']= {"Custom", "PUZZLE"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
'Jogo de blocos gratis com um modo Battle Royale!',
|
||||
|
||||
@@ -576,95 +576,95 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"Sprint", "10L", "¡Limpia 10 líneas!"},
|
||||
["sprint_20l"]= {"Sprint", "20L", "¡Limpia 20 líneas!"},
|
||||
["sprint_40l"]= {"Sprint", "40L", "¡Limpia 40 líneas!"},
|
||||
["sprint_100l"]= {"Sprint", "100L", "¡Limpia 100 líneas!"},
|
||||
["sprint_400l"]= {"Sprint", "400L", "¡Limpia 400 líneas!"},
|
||||
["sprint_1000l"]= {"Sprint", "1000L", "¡Limpia 1000 líneas!"},
|
||||
["sprintPenta"]= {"Sprint", "Pentominos", "¡Limpia 40 líneas con los 18 pentominos distintos!"},
|
||||
["sprintMPH"]= {"Sprint", "MPH", "Memoryless (sin memoria)\nPreviewless (sin pzas. siguientes)\nHoldless (sin reserva)."},
|
||||
["dig_10l"]= {"Queso", "10L", "Limpia 10 líneas de queso."},
|
||||
["dig_40l"]= {"Queso", "40L", "Limpia 40 líneas de queso."},
|
||||
["dig_100l"]= {"Queso", "100L", "Limpia 100 líneas de queso."},
|
||||
["dig_400l"]= {"Queso", "400L", "Limpia 400 líneas de queso."},
|
||||
["dig_1000l"]= {"Queso", "1000L", "Limpia 1000 líneas de queso."},
|
||||
["drought_n"]= {"Sequía", "100L", "¡Sin piezas I!"},
|
||||
["drought_l"]= {"Sequía", "100L", "Guat de foc..."},
|
||||
["marathon_n"]= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
|
||||
["marathon_h"]= {"Maratón", "Difícil", "Maratón de 200 líneas a velocidad máxima."},
|
||||
["solo_e"]= {"VS.", "Fácil", "¡Derrota a la CPU!"},
|
||||
["solo_n"]= {"VS.", "Normal", "¡Derrota a la CPU!"},
|
||||
["solo_h"]= {"VS.", "Difícil", "¡Derrota a la CPU!"},
|
||||
["solo_l"]= {"VS.", "Lunático", "¡Derrota a la CPU!"},
|
||||
["solo_u"]= {"VS.", "Supremo", "¡Derrota a la CPU!"},
|
||||
["techmino49_e"]= {"Tech 49", "Fácil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
["techmino49_h"]= {"Tech 49", "Difícil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
["techmino49_u"]= {"Tech 49", "Supremo", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
["techmino99_e"]= {"Tech 99", "Fácil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
["techmino99_h"]= {"Tech 99", "Difícil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
["techmino99_u"]= {"Tech 99", "Supremo", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
["round_e"]= {"Por Turnos", "Fácil", "Modo ajedrez."},
|
||||
["round_n"]= {"Por Turnos", "Normal", "Modo ajedrez."},
|
||||
["round_h"]= {"Por Turnos", "Difícil", "Modo ajedrez."},
|
||||
["round_l"]= {"Por Turnos", "Lunático", "Modo ajedrez."},
|
||||
["round_u"]= {"Por Turnos", "Supremo", "Modo ajedrez."},
|
||||
["master_beginner"]= {"Master", "Lunático", "Para principiantes en 20G"},
|
||||
["master_advance"]= {"Master", "Supremo", "¡Desafío profesional de 20G!"},
|
||||
["master_final"]= {"Master", "FINAL", "El verdadero 20G Supremo: el final es inalcanzable."},
|
||||
["master_extra"]= {"GrandMaster", "EXTRA", "Para ser un gran maestro, acepta este desafío"},
|
||||
["rhythm_e"]= {"Al Ritmo", "Fácil", "Maratón rítmica de 200 líneas con bajo bpm."},
|
||||
["rhythm_h"]= {"Al Ritmo", "Difícil", "Maratón rítmica de 200 líneas con bpm moderado."},
|
||||
["rhythm_u"]= {"Al Ritmo", "Supremo", "Maratón rítmica de 200 líneas con bpm elevado."},
|
||||
["blind_e"]= {"A Ciegas", "Parcial", "Para novatos."},
|
||||
["blind_n"]= {"A Ciegas", "Total", "Para jugadores intermedios."},
|
||||
["blind_h"]= {"A Ciegas", "Inmediato", "Para jugadores experimentados"},
|
||||
["blind_l"]= {"A Ciegas", "Inmediato+", "Para profesionales."},
|
||||
["blind_u"]= {"A Ciegas", "?", "¿Estás preparado?"},
|
||||
["blind_wtf"]= {"A Ciegas", "Guat de Foc", "No, no lo estás."},
|
||||
["classic_fast"]= {"Clásico", "CTWC", "Modo clásico con alta velocidad."},
|
||||
["survivor_e"]= {"Supervivencia", "Fácil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
["survivor_n"]= {"Supervivencia", "Normal", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
["survivor_h"]= {"Supervivencia", "Difícil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
["survivor_l"]= {"Supervivencia", "Lunático", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
["survivor_u"]= {"Supervivencia", "Supremo", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
["attacker_h"]= {"Atacante", "Difícil", "¡Practica la ofensiva!"},
|
||||
["attacker_u"]= {"Atacante", "Supremo", "¡Practica la ofensiva!"},
|
||||
["defender_n"]= {"Defensor", "Normal", "¡Practica la defensa!"},
|
||||
["defender_l"]= {"Defensor", "Lunático", "¡Practica la defensa!"},
|
||||
["dig_h"]= {"Downstack", "Difícil", "¡Practica el downstackeo!"},
|
||||
["dig_u"]= {"Downstack", "Supremo", "¡Practica el downstackeo!"},
|
||||
["bigbang"]= {"Big Bang", "Fácil", "¡Tutorial de All-spins!\n[No finalizado]"},
|
||||
["c4wtrain_n"]= {"Entrenar C4W", "Normal", "Combos infinitos."},
|
||||
["c4wtrain_l"]= {"Entrenar C4W", "Lunático", "Combos infinitos."},
|
||||
["pctrain_n"]= {"Entrenar PC", "Normal", "Modo sencillo para practicar Perfect Clears."},
|
||||
["pctrain_l"]= {"Entrenar PC", "Lunático", "Modo duro para practicar Perfect Clears."},
|
||||
["pc_n"]= {"Desafío de PCs", "Normal", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
["pc_h"]= {"Desafío de PCs", "Difícil", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
["pc_l"]= {"Desafío de PCs", "Lunático", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
["tech_n"]= {"Tech", "Normal", "¡Mantén el B2B!"},
|
||||
["tech_n_plus"]= {"Tech", "Normal+", "¡Sólo se permiten Spins y PCs!"},
|
||||
["tech_h"]= {"Tech", "Difícil", "¡Mantén el B2B!"},
|
||||
["tech_h_plus"]= {"Tech", "Difícil+", "¡Sólo se permiten Spins y PCs!"},
|
||||
["tech_l"]= {"Tech", "Lunático", "¡Mantén el B2B!"},
|
||||
["tech_l_plus"]= {"Tech", "Lunático+", "¡Sólo se permiten Spins y PCs!"},
|
||||
["tech_finesse"]= {"Tech", "Finesse", "¡No cometas errores de Finesse!"},
|
||||
["tech_finesse_f"]= {"Tech", "Finesse+", "Sin errores de finesse, ¡pero tampoco clears normales!"},
|
||||
["tsd_e"]= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
["tsd_h"]= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
["tsd_u"]= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
["backfire_n"]= {"Retorno", "Normal", "Lidia con tus propias líneas basura."},
|
||||
["backfire_h"]= {"Retorno", "Difícil", "Lidia con tus propias líneas basura."},
|
||||
["backfire_l"]= {"Retorno", "Lunático", "Lidia con tus propias líneas basura."},
|
||||
["backfire_u"]= {"Retorno", "Supremo", "Lidia con tus propias líneas basura."},
|
||||
["zen"]= {"Zen", "200L", "200 líneas sin límite de tiempo."},
|
||||
["ultra"]= {"Ultra", "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
|
||||
["infinite"]= {"Infinito", "", "Modo Sandbox."},
|
||||
["infinite_dig"]= {"Infinito: Queso", "", "Limpia, limpia, más limpia que tú."},
|
||||
["sprintFix"]= {"Sprint", "Sin mover a Izq./Der."},
|
||||
["sprintLock"]= {"Sprint", "Sin rotar"},
|
||||
["marathon_bfmax"]= {"Maratón", "Supremo"},
|
||||
["custom_clear"]= {"Personalizado", "Normal"},
|
||||
["custom_puzzle"]= {"Personalizado", "Puzzle"},
|
||||
['sprint_10l']= {"Sprint", "10L", "¡Limpia 10 líneas!"},
|
||||
['sprint_20l']= {"Sprint", "20L", "¡Limpia 20 líneas!"},
|
||||
['sprint_40l']= {"Sprint", "40L", "¡Limpia 40 líneas!"},
|
||||
['sprint_100l']= {"Sprint", "100L", "¡Limpia 100 líneas!"},
|
||||
['sprint_400l']= {"Sprint", "400L", "¡Limpia 400 líneas!"},
|
||||
['sprint_1000l']= {"Sprint", "1000L", "¡Limpia 1000 líneas!"},
|
||||
['sprintPenta']= {"Sprint", "Pentominos", "¡Limpia 40 líneas con los 18 pentominos distintos!"},
|
||||
['sprintMPH']= {"Sprint", "MPH", "Memoryless (sin memoria)\nPreviewless (sin pzas. siguientes)\nHoldless (sin reserva)."},
|
||||
['dig_10l']= {"Queso", "10L", "Limpia 10 líneas de queso."},
|
||||
['dig_40l']= {"Queso", "40L", "Limpia 40 líneas de queso."},
|
||||
['dig_100l']= {"Queso", "100L", "Limpia 100 líneas de queso."},
|
||||
['dig_400l']= {"Queso", "400L", "Limpia 400 líneas de queso."},
|
||||
['dig_1000l']= {"Queso", "1000L", "Limpia 1000 líneas de queso."},
|
||||
['drought_n']= {"Sequía", "100L", "¡Sin piezas I!"},
|
||||
['drought_l']= {"Sequía", "100L", "Guat de foc..."},
|
||||
['marathon_n']= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
|
||||
['marathon_h']= {"Maratón", "Difícil", "Maratón de 200 líneas a velocidad máxima."},
|
||||
['solo_e']= {"VS.", "Fácil", "¡Derrota a la CPU!"},
|
||||
['solo_n']= {"VS.", "Normal", "¡Derrota a la CPU!"},
|
||||
['solo_h']= {"VS.", "Difícil", "¡Derrota a la CPU!"},
|
||||
['solo_l']= {"VS.", "Lunático", "¡Derrota a la CPU!"},
|
||||
['solo_u']= {"VS.", "Supremo", "¡Derrota a la CPU!"},
|
||||
['techmino49_e']= {"Tech 49", "Fácil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
['techmino49_h']= {"Tech 49", "Difícil", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
['techmino49_u']= {"Tech 49", "Supremo", "Batalla de 49 jugadores. ¡El último en pie gana!"},
|
||||
['techmino99_e']= {"Tech 99", "Fácil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
['techmino99_h']= {"Tech 99", "Difícil", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
['techmino99_u']= {"Tech 99", "Supremo", "Batalla de 99 jugadores. ¡El último en pie gana!"},
|
||||
['round_e']= {"Por Turnos", "Fácil", "Modo ajedrez."},
|
||||
['round_n']= {"Por Turnos", "Normal", "Modo ajedrez."},
|
||||
['round_h']= {"Por Turnos", "Difícil", "Modo ajedrez."},
|
||||
['round_l']= {"Por Turnos", "Lunático", "Modo ajedrez."},
|
||||
['round_u']= {"Por Turnos", "Supremo", "Modo ajedrez."},
|
||||
['master_beginner']= {"Master", "Lunático", "Para principiantes en 20G"},
|
||||
['master_advance']= {"Master", "Supremo", "¡Desafío profesional de 20G!"},
|
||||
['master_final']= {"Master", "FINAL", "El verdadero 20G Supremo: el final es inalcanzable."},
|
||||
['master_extra']= {"GrandMaster", "EXTRA", "Para ser un gran maestro, acepta este desafío"},
|
||||
['rhythm_e']= {"Al Ritmo", "Fácil", "Maratón rítmica de 200 líneas con bajo bpm."},
|
||||
['rhythm_h']= {"Al Ritmo", "Difícil", "Maratón rítmica de 200 líneas con bpm moderado."},
|
||||
['rhythm_u']= {"Al Ritmo", "Supremo", "Maratón rítmica de 200 líneas con bpm elevado."},
|
||||
['blind_e']= {"A Ciegas", "Parcial", "Para novatos."},
|
||||
['blind_n']= {"A Ciegas", "Total", "Para jugadores intermedios."},
|
||||
['blind_h']= {"A Ciegas", "Inmediato", "Para jugadores experimentados"},
|
||||
['blind_l']= {"A Ciegas", "Inmediato+", "Para profesionales."},
|
||||
['blind_u']= {"A Ciegas", "?", "¿Estás preparado?"},
|
||||
['blind_wtf']= {"A Ciegas", "Guat de Foc", "No, no lo estás."},
|
||||
['classic_fast']= {"Clásico", "CTWC", "Modo clásico con alta velocidad."},
|
||||
['survivor_e']= {"Supervivencia", "Fácil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_n']= {"Supervivencia", "Normal", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_h']= {"Supervivencia", "Difícil", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_l']= {"Supervivencia", "Lunático", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['survivor_u']= {"Supervivencia", "Supremo", "¿Cuánto tiempo podrás sobrevivir?"},
|
||||
['attacker_h']= {"Atacante", "Difícil", "¡Practica la ofensiva!"},
|
||||
['attacker_u']= {"Atacante", "Supremo", "¡Practica la ofensiva!"},
|
||||
['defender_n']= {"Defensor", "Normal", "¡Practica la defensa!"},
|
||||
['defender_l']= {"Defensor", "Lunático", "¡Practica la defensa!"},
|
||||
['dig_h']= {"Downstack", "Difícil", "¡Practica el downstackeo!"},
|
||||
['dig_u']= {"Downstack", "Supremo", "¡Practica el downstackeo!"},
|
||||
['bigbang']= {"Big Bang", "Fácil", "¡Tutorial de All-spins!\n[No finalizado]"},
|
||||
['c4wtrain_n']= {"Entrenar C4W", "Normal", "Combos infinitos."},
|
||||
['c4wtrain_l']= {"Entrenar C4W", "Lunático", "Combos infinitos."},
|
||||
['pctrain_n']= {"Entrenar PC", "Normal", "Modo sencillo para practicar Perfect Clears."},
|
||||
['pctrain_l']= {"Entrenar PC", "Lunático", "Modo duro para practicar Perfect Clears."},
|
||||
['pc_n']= {"Desafío de PCs", "Normal", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
['pc_h']= {"Desafío de PCs", "Difícil", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
['pc_l']= {"Desafío de PCs", "Lunático", "¡Consigue los PCs que puedas en 100 líneas!"},
|
||||
['tech_n']= {"Tech", "Normal", "¡Mantén el B2B!"},
|
||||
['tech_n_plus']= {"Tech", "Normal+", "¡Sólo se permiten Spins y PCs!"},
|
||||
['tech_h']= {"Tech", "Difícil", "¡Mantén el B2B!"},
|
||||
['tech_h_plus']= {"Tech", "Difícil+", "¡Sólo se permiten Spins y PCs!"},
|
||||
['tech_l']= {"Tech", "Lunático", "¡Mantén el B2B!"},
|
||||
['tech_l_plus']= {"Tech", "Lunático+", "¡Sólo se permiten Spins y PCs!"},
|
||||
['tech_finesse']= {"Tech", "Finesse", "¡No cometas errores de Finesse!"},
|
||||
['tech_finesse_f']= {"Tech", "Finesse+", "Sin errores de finesse, ¡pero tampoco clears normales!"},
|
||||
['tsd_e']= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
['tsd_h']= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
['tsd_u']= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"},
|
||||
['backfire_n']= {"Retorno", "Normal", "Lidia con tus propias líneas basura."},
|
||||
['backfire_h']= {"Retorno", "Difícil", "Lidia con tus propias líneas basura."},
|
||||
['backfire_l']= {"Retorno", "Lunático", "Lidia con tus propias líneas basura."},
|
||||
['backfire_u']= {"Retorno", "Supremo", "Lidia con tus propias líneas basura."},
|
||||
['zen']= {'Zen', "200L", "200 líneas sin límite de tiempo."},
|
||||
['ultra']= {'Ultra', "Extra", "¡Consigue el mayor puntaje posible en 2 minutos!"},
|
||||
['infinite']= {"Infinito", "", "Modo Sandbox."},
|
||||
['infinite_dig']= {"Infinito: Queso", "", "Limpia, limpia, más limpia que tú."},
|
||||
['sprintFix']= {"Sprint", "Sin mover a Izq./Der."},
|
||||
['sprintLock']= {"Sprint", "Sin rotar"},
|
||||
['marathon_bfmax']= {"Maratón", "Supremo"},
|
||||
['custom_clear']= {"Personalizado", "Normal"},
|
||||
['custom_puzzle']= {"Personalizado", "Puzzle"},
|
||||
},
|
||||
}
|
||||
@@ -187,97 +187,97 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"竞速", "10L", "消10行"},
|
||||
["sprint_20l"]= {"竞速", "20L", "消20行"},
|
||||
["sprint_40l"]= {"竞速", "40L", "消40行"},
|
||||
["sprint_100l"]= {"竞速", "100L", "消100行"},
|
||||
["sprint_400l"]= {"竞速", "400L", "消400行"},
|
||||
["sprint_1000l"]= {"竞速", "1000L", "消1000行"},
|
||||
["sprintPenta"]= {"竞速", "五连块", "离谱"},
|
||||
["sprintMPH"]= {"竞速", "纯净", "听说你反应很快?"},
|
||||
["dig_10l"]= {"挖掘", "10L", "挖10行"},
|
||||
["dig_40l"]= {"挖掘", "40L", "挖40行"},
|
||||
["dig_100l"]= {"挖掘", "100L", "挖100行"},
|
||||
["dig_400l"]= {"挖掘", "400L", "挖400行"},
|
||||
["dig_1000l"]= {"挖掘", "1000L", "挖1000行"},
|
||||
["drought_n"]= {"干旱", "100L", "放轻松,简单得很"},
|
||||
["drought_l"]= {"干旱", "100L", "有趣的要来了"},
|
||||
["marathon_n"]= {"马拉松", "普通", "休闲模式"},
|
||||
["marathon_h"]= {"马拉松", "困难", "休闲模式"},
|
||||
["solo_e"]= {"单挑", "简单", "鲨AI"},
|
||||
["solo_n"]= {"单挑", "普通", "鲨AI"},
|
||||
["solo_h"]= {"单挑", "困难", "鲨AI"},
|
||||
["solo_l"]= {"单挑", "疯狂", "鲨AI"},
|
||||
["solo_u"]= {"单挑", "极限", "鲨AI"},
|
||||
["techmino49_e"]= {"49人混战", "简单", "这我岂不是乱鲨"},
|
||||
["techmino49_h"]= {"49人混战", "困难", "这我岂不是乱鲨"},
|
||||
["techmino49_u"]= {"49人混战", "极限", "你吃鸡率多少?"},
|
||||
["techmino99_e"]= {"99人混战", "简单", "这我岂不是乱鲨"},
|
||||
["techmino99_h"]= {"99人混战", "困难", "这我岂不是乱鲨"},
|
||||
["techmino99_u"]= {"99人混战", "极限", "你吃鸡率多少?"},
|
||||
["round_e"]= {"回合制", "简单", "下棋"},
|
||||
["round_n"]= {"回合制", "普通", "下棋"},
|
||||
["round_h"]= {"回合制", "困难", "下棋"},
|
||||
["round_l"]= {"回合制", "疯狂", "下棋"},
|
||||
["round_u"]= {"回合制", "极限", "下棋"},
|
||||
["master_beginner"]= {"大师", "疯狂", "无脑20G"},
|
||||
["master_advance"]= {"大师", "极限", "简单20G"},
|
||||
["master_final"]= {"大师", "终点", "究极20G:真正的游戏"},
|
||||
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:好玩"},
|
||||
["master_extra"]= {"宗师", "EX", "你行你上"},
|
||||
["rhythm_e"]= {"节奏", "简单", "很无聊的"},
|
||||
["rhythm_h"]= {"节奏", "困难", "好玩么?"},
|
||||
["rhythm_u"]= {"节奏", "极限", "真男人不玩低难度"},
|
||||
["blind_e"]= {"隐形", "半隐", "谁都能玩"},
|
||||
["blind_n"]= {"隐形", "全隐", "稍加练习即可"},
|
||||
["blind_h"]= {"隐形", "瞬隐", "和上一个一样"},
|
||||
["blind_l"]= {"隐形", "瞬隐+", "这个确实挺难的"},
|
||||
["blind_u"]= {"隐形", "啊这", "你准备好了吗"},
|
||||
["blind_wtf"]= {"隐形", "不会吧", "还没准备好"},
|
||||
["classic_fast"]= {"高速经典", "CTWC", "就这?简单"},
|
||||
["survivor_e"]= {"生存", "简单", "这都玩不下去?不会吧"},
|
||||
["survivor_n"]= {"生存", "普通", "呵,这都玩不过?"},
|
||||
["survivor_h"]= {"生存", "困难", "所以呢?"},
|
||||
["survivor_l"]= {"生存", "疯狂", "然后呢?"},
|
||||
["survivor_u"]= {"生存", "极限", "舒服了"},
|
||||
["attacker_h"]= {"进攻", "困难", "进攻练习"},
|
||||
["attacker_u"]= {"进攻", "极限", "进攻练习"},
|
||||
["defender_n"]= {"防守", "普通", "防守练习"},
|
||||
["defender_l"]= {"防守", "疯狂", "防守练习"},
|
||||
["dig_h"]= {"挖掘", "困难", "挖掘练习"},
|
||||
["dig_u"]= {"挖掘", "极限", "挖掘练习"},
|
||||
["bigbang"]= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
["c4wtrain_n"]= {"C4W练习", "普通", "无 限 连 击"},
|
||||
["c4wtrain_l"]= {"C4W练习", "疯狂", "无 限 连 击"},
|
||||
["pctrain_n"]= {"全清训练", "普通", "随便打打"},
|
||||
["pctrain_l"]= {"全清训练", "疯狂", "建议不打"},
|
||||
["pc_n"]= {"全清挑战", "普通", "100行内刷PC"},
|
||||
["pc_h"]= {"全清挑战", "困难", "100行内刷PC"},
|
||||
["pc_l"]= {"全清挑战", "疯狂", "100行内刷PC"},
|
||||
["tech_n"]= {"科研", "普通", "禁止断B2B"},
|
||||
["tech_n_plus"]= {"科研", "普通+", "仅允许spin与PC"},
|
||||
["tech_h"]= {"科研", "困难", "禁止断B2B"},
|
||||
["tech_h_plus"]= {"科研", "困难+", "仅允许spin与PC"},
|
||||
["tech_l"]= {"科研", "疯狂", "禁止断B2B"},
|
||||
["tech_l_plus"]= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
["tech_finesse"]= {"科研", "极简", "强制最简操作"},
|
||||
["tech_finesse_f"]= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
["tsd_e"]= {"TSD挑战", "简单", "刷T2"},
|
||||
["tsd_h"]= {"TSD挑战", "困难", "刷T2"},
|
||||
["tsd_u"]= {"TSD挑战", "极限", "刷T2"},
|
||||
["backfire_n"]= {"自攻自受", "普通", "200攻击很少的,冲冲冲"},
|
||||
["backfire_h"]= {"自攻自受", "困难", "你在害怕什么"},
|
||||
["backfire_l"]= {"自攻自受", "疯狂", "别怂啊,打攻击呀"},
|
||||
["backfire_u"]= {"自攻自受", "极限", "能把自己玩死,不会吧"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "2分钟刷分"},
|
||||
["infinite"]= {"无尽", "", "真的有人会玩这个?"},
|
||||
["infinite_dig"]= {"无尽:挖掘", "", "闲得慌的话来挖"},
|
||||
["sprintFix"]= {"竞速", "无移动"},
|
||||
["sprintLock"]= {"竞速", "无旋转"},
|
||||
["marathon_bfmax"]= {"马拉松", "极限"},
|
||||
["custom_clear"]= {"自定义", "普通"},
|
||||
["custom_puzzle"]= {"自定义", "拼图"},
|
||||
['sprint_10l']= {"竞速", "10L", "消10行"},
|
||||
['sprint_20l']= {"竞速", "20L", "消20行"},
|
||||
['sprint_40l']= {"竞速", "40L", "消40行"},
|
||||
['sprint_100l']= {"竞速", "100L", "消100行"},
|
||||
['sprint_400l']= {"竞速", "400L", "消400行"},
|
||||
['sprint_1000l']= {"竞速", "1000L", "消1000行"},
|
||||
['sprintPenta']= {"竞速", "五连块", "离谱"},
|
||||
['sprintMPH']= {"竞速", "纯净", "听说你反应很快?"},
|
||||
['dig_10l']= {"挖掘", "10L", "挖10行"},
|
||||
['dig_40l']= {"挖掘", "40L", "挖40行"},
|
||||
['dig_100l']= {"挖掘", "100L", "挖100行"},
|
||||
['dig_400l']= {"挖掘", "400L", "挖400行"},
|
||||
['dig_1000l']= {"挖掘", "1000L", "挖1000行"},
|
||||
['drought_n']= {"干旱", "100L", "放轻松,简单得很"},
|
||||
['drought_l']= {"干旱", "100L", "有趣的要来了"},
|
||||
['marathon_n']= {"马拉松", "普通", "休闲模式"},
|
||||
['marathon_h']= {"马拉松", "困难", "休闲模式"},
|
||||
['solo_e']= {"单挑", "简单", "鲨AI"},
|
||||
['solo_n']= {"单挑", "普通", "鲨AI"},
|
||||
['solo_h']= {"单挑", "困难", "鲨AI"},
|
||||
['solo_l']= {"单挑", "疯狂", "鲨AI"},
|
||||
['solo_u']= {"单挑", "极限", "鲨AI"},
|
||||
['techmino49_e']= {"49人混战", "简单", "这我岂不是乱鲨"},
|
||||
['techmino49_h']= {"49人混战", "困难", "这我岂不是乱鲨"},
|
||||
['techmino49_u']= {"49人混战", "极限", "你吃鸡率多少?"},
|
||||
['techmino99_e']= {"99人混战", "简单", "这我岂不是乱鲨"},
|
||||
['techmino99_h']= {"99人混战", "困难", "这我岂不是乱鲨"},
|
||||
['techmino99_u']= {"99人混战", "极限", "你吃鸡率多少?"},
|
||||
['round_e']= {"回合制", "简单", "下棋"},
|
||||
['round_n']= {"回合制", "普通", "下棋"},
|
||||
['round_h']= {"回合制", "困难", "下棋"},
|
||||
['round_l']= {"回合制", "疯狂", "下棋"},
|
||||
['round_u']= {"回合制", "极限", "下棋"},
|
||||
['master_beginner']= {"大师", "疯狂", "无脑20G"},
|
||||
['master_advance']= {"大师", "极限", "简单20G"},
|
||||
['master_final']= {"大师", "终点", "究极20G:真正的游戏"},
|
||||
['master_phantasm']= {"大师", "虚幻", "虚幻20G:好玩"},
|
||||
['master_extra']= {"宗师", "EX", "你行你上"},
|
||||
['rhythm_e']= {"节奏", "简单", "很无聊的"},
|
||||
['rhythm_h']= {"节奏", "困难", "好玩么?"},
|
||||
['rhythm_u']= {"节奏", "极限", "真男人不玩低难度"},
|
||||
['blind_e']= {"隐形", "半隐", "谁都能玩"},
|
||||
['blind_n']= {"隐形", "全隐", "稍加练习即可"},
|
||||
['blind_h']= {"隐形", "瞬隐", "和上一个一样"},
|
||||
['blind_l']= {"隐形", "瞬隐+", "这个确实挺难的"},
|
||||
['blind_u']= {"隐形", "啊这", "你准备好了吗"},
|
||||
['blind_wtf']= {"隐形", "不会吧", "还没准备好"},
|
||||
['classic_fast']= {"高速经典", "CTWC", "就这?简单"},
|
||||
['survivor_e']= {"生存", "简单", "这都玩不下去?不会吧"},
|
||||
['survivor_n']= {"生存", "普通", "呵,这都玩不过?"},
|
||||
['survivor_h']= {"生存", "困难", "所以呢?"},
|
||||
['survivor_l']= {"生存", "疯狂", "然后呢?"},
|
||||
['survivor_u']= {"生存", "极限", "舒服了"},
|
||||
['attacker_h']= {"进攻", "困难", "进攻练习"},
|
||||
['attacker_u']= {"进攻", "极限", "进攻练习"},
|
||||
['defender_n']= {"防守", "普通", "防守练习"},
|
||||
['defender_l']= {"防守", "疯狂", "防守练习"},
|
||||
['dig_h']= {"挖掘", "困难", "挖掘练习"},
|
||||
['dig_u']= {"挖掘", "极限", "挖掘练习"},
|
||||
['bigbang']= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
['c4wtrain_n']= {"C4W练习", "普通", "无 限 连 击"},
|
||||
['c4wtrain_l']= {"C4W练习", "疯狂", "无 限 连 击"},
|
||||
['pctrain_n']= {"全清训练", "普通", "随便打打"},
|
||||
['pctrain_l']= {"全清训练", "疯狂", "建议不打"},
|
||||
['pc_n']= {"全清挑战", "普通", "100行内刷PC"},
|
||||
['pc_h']= {"全清挑战", "困难", "100行内刷PC"},
|
||||
['pc_l']= {"全清挑战", "疯狂", "100行内刷PC"},
|
||||
['tech_n']= {"科研", "普通", "禁止断B2B"},
|
||||
['tech_n_plus']= {"科研", "普通+", "仅允许spin与PC"},
|
||||
['tech_h']= {"科研", "困难", "禁止断B2B"},
|
||||
['tech_h_plus']= {"科研", "困难+", "仅允许spin与PC"},
|
||||
['tech_l']= {"科研", "疯狂", "禁止断B2B"},
|
||||
['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
['tech_finesse']= {"科研", "极简", "强制最简操作"},
|
||||
['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
['tsd_e']= {"TSD挑战", "简单", "刷T2"},
|
||||
['tsd_h']= {"TSD挑战", "困难", "刷T2"},
|
||||
['tsd_u']= {"TSD挑战", "极限", "刷T2"},
|
||||
['backfire_n']= {"自攻自受", "普通", "200攻击很少的,冲冲冲"},
|
||||
['backfire_h']= {"自攻自受", "困难", "你在害怕什么"},
|
||||
['backfire_l']= {"自攻自受", "疯狂", "别怂啊,打攻击呀"},
|
||||
['backfire_u']= {"自攻自受", "极限", "能把自己玩死,不会吧"},
|
||||
['zen']= {"禅", "200", "不限时200行"},
|
||||
['ultra']= {"限时打分", "挑战", "2分钟刷分"},
|
||||
['infinite']= {"无尽", "", "真的有人会玩这个?"},
|
||||
['infinite_dig']= {"无尽:挖掘", "", "闲得慌的话来挖"},
|
||||
['sprintFix']= {"竞速", "无移动"},
|
||||
['sprintLock']= {"竞速", "无旋转"},
|
||||
['marathon_bfmax']= {"马拉松", "极限"},
|
||||
['custom_clear']= {"自定义", "普通"},
|
||||
['custom_puzzle']= {"自定义", "拼图"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
"100apm?你倒是不用开局定式连续打几把",
|
||||
|
||||
@@ -666,97 +666,97 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"竞速", "10L", "消除10行"},
|
||||
["sprint_20l"]= {"竞速", "20L", "消除20行"},
|
||||
["sprint_40l"]= {"竞速", "40L", "消除40行"},
|
||||
["sprint_100l"]= {"竞速", "100L", "消除100行"},
|
||||
["sprint_400l"]= {"竞速", "400L", "消除400行"},
|
||||
["sprint_1000l"]= {"竞速", "1000L", "消除1000行"},
|
||||
["sprintPenta"]= {"竞速", "五连块", "伤脑筋十八块"},
|
||||
["sprintMPH"]= {"竞速", "MPH", "纯随机\n无预览\n无暂存"},
|
||||
["dig_10l"]= {"挖掘", "10L", "挖掘10行"},
|
||||
["dig_40l"]= {"挖掘", "40L", "挖掘40行"},
|
||||
["dig_100l"]= {"挖掘", "100L", "挖掘100行"},
|
||||
["dig_400l"]= {"挖掘", "400L", "挖掘400行"},
|
||||
["dig_1000l"]= {"挖掘", "1000L", "挖掘1000行"},
|
||||
["drought_n"]= {"干旱", "100L", "你I没了"},
|
||||
["drought_l"]= {"干旱", "100L", "后 妈 发 牌"},
|
||||
["marathon_n"]= {"马拉松", "普通", "200行加速马拉松"},
|
||||
["marathon_h"]= {"马拉松", "困难", "200行高速马拉松"},
|
||||
["solo_e"]= {"单挑", "简单", "打败AI"},
|
||||
["solo_n"]= {"单挑", "普通", "打败AI"},
|
||||
["solo_h"]= {"单挑", "困难", "打败AI"},
|
||||
["solo_l"]= {"单挑", "疯狂", "打败AI"},
|
||||
["solo_u"]= {"单挑", "极限", "打败AI"},
|
||||
["techmino49_e"]= {"49人混战", "简单", "49人混战,活到最后"},
|
||||
["techmino49_h"]= {"49人混战", "困难", "49人混战,活到最后"},
|
||||
["techmino49_u"]= {"49人混战", "极限", "49人混战,活到最后"},
|
||||
["techmino99_e"]= {"99人混战", "简单", "99人混战,活到最后"},
|
||||
["techmino99_h"]= {"99人混战", "困难", "99人混战,活到最后"},
|
||||
["techmino99_u"]= {"99人混战", "极限", "99人混战,活到最后"},
|
||||
["round_e"]= {"回合制", "简单", "下棋模式"},
|
||||
["round_n"]= {"回合制", "普通", "下棋模式"},
|
||||
["round_h"]= {"回合制", "困难", "下棋模式"},
|
||||
["round_l"]= {"回合制", "疯狂", "下棋模式"},
|
||||
["round_u"]= {"回合制", "极限", "下棋模式"},
|
||||
["master_beginner"]= {"大师", "疯狂", "20G初心者练习"},
|
||||
["master_advance"]= {"大师", "极限", "上级者20G挑战"},
|
||||
["master_final"]= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:???"},
|
||||
["master_extra"]= {"宗师", "EX", "成为方块大师"},
|
||||
["rhythm_e"]= {"节奏", "简单", "200行低速节奏马拉松"},
|
||||
["rhythm_h"]= {"节奏", "困难", "200行中速节奏马拉松"},
|
||||
["rhythm_u"]= {"节奏", "极限", "200行高速节奏马拉松"},
|
||||
["blind_e"]= {"隐形", "半隐", "不强大脑"},
|
||||
["blind_n"]= {"隐形", "全隐", "挺强大脑"},
|
||||
["blind_h"]= {"隐形", "瞬隐", "很强大脑"},
|
||||
["blind_l"]= {"隐形", "瞬隐+", "最强大脑"},
|
||||
["blind_u"]= {"隐形", "啊这", "你准备好了吗"},
|
||||
["blind_wtf"]= {"隐形", "不会吧", "还没准备好"},
|
||||
["classic_fast"]= {"高速经典", "CTWC", "高速经典"},
|
||||
["survivor_e"]= {"生存", "简单", "你能存活多久?"},
|
||||
["survivor_n"]= {"生存", "普通", "你能存活多久?"},
|
||||
["survivor_h"]= {"生存", "困难", "你能存活多久?"},
|
||||
["survivor_l"]= {"生存", "疯狂", "你能存活多久?"},
|
||||
["survivor_u"]= {"生存", "极限", "你能存活多久?"},
|
||||
["attacker_h"]= {"进攻", "困难", "进攻练习"},
|
||||
["attacker_u"]= {"进攻", "极限", "进攻练习"},
|
||||
["defender_n"]= {"防守", "普通", "防守练习"},
|
||||
["defender_l"]= {"防守", "疯狂", "防守练习"},
|
||||
["dig_h"]= {"挖掘", "困难", "挖掘练习"},
|
||||
["dig_u"]= {"挖掘", "极限", "挖掘练习"},
|
||||
["bigbang"]= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
["c4wtrain_n"]= {"C4W练习", "普通", "无 限 连 击"},
|
||||
["c4wtrain_l"]= {"C4W练习", "疯狂", "无 限 连 击"},
|
||||
["pctrain_n"]= {"全清训练", "普通", "简易PC题库,熟悉全清定式的组合"},
|
||||
["pctrain_l"]= {"全清训练", "疯狂", "困难PC题库,强算力者进"},
|
||||
["pc_n"]= {"全清挑战", "普通", "100行内刷PC"},
|
||||
["pc_h"]= {"全清挑战", "困难", "100行内刷PC"},
|
||||
["pc_l"]= {"全清挑战", "疯狂", "100行内刷PC"},
|
||||
["tech_n"]= {"科研", "普通", "禁止断B2B"},
|
||||
["tech_n_plus"]= {"科研", "普通+", "仅允许spin与PC"},
|
||||
["tech_h"]= {"科研", "困难", "禁止断B2B"},
|
||||
["tech_h_plus"]= {"科研", "困难+", "仅允许spin与PC"},
|
||||
["tech_l"]= {"科研", "疯狂", "禁止断B2B"},
|
||||
["tech_l_plus"]= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
["tech_finesse"]= {"科研", "极简", "强制最简操作"},
|
||||
["tech_finesse_f"]= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
["tsd_e"]= {"TSD挑战", "简单", "你能连续做几个TSD?"},
|
||||
["tsd_h"]= {"TSD挑战", "困难", "你能连续做几个TSD?"},
|
||||
["tsd_u"]= {"TSD挑战", "极限", "你能连续做几个TSD?"},
|
||||
["backfire_n"]= {"Backfire", "普通", "打出100攻击"},
|
||||
["backfire_h"]= {"Backfire", "困难", "打出100攻击"},
|
||||
["backfire_l"]= {"Backfire", "疯狂", "打出100攻击"},
|
||||
["backfire_u"]= {"Backfire", "极限", "打出100攻击"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
["infinite"]= {"无尽", "", "沙盒"},
|
||||
["infinite_dig"]= {"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
["sprintFix"]= {"竞速", "无移动"},
|
||||
["sprintLock"]= {"竞速", "无旋转"},
|
||||
["marathon_bfmax"]= {"马拉松", "极限"},
|
||||
["custom_clear"]= {"自定义", "普通"},
|
||||
["custom_puzzle"]= {"自定义", "拼图"},
|
||||
['sprint_10l']= {"竞速", "10L", "消除10行"},
|
||||
['sprint_20l']= {"竞速", "20L", "消除20行"},
|
||||
['sprint_40l']= {"竞速", "40L", "消除40行"},
|
||||
['sprint_100l']= {"竞速", "100L", "消除100行"},
|
||||
['sprint_400l']= {"竞速", "400L", "消除400行"},
|
||||
['sprint_1000l']= {"竞速", "1000L", "消除1000行"},
|
||||
['sprintPenta']= {"竞速", "五连块", "伤脑筋十八块"},
|
||||
['sprintMPH']= {"竞速", "MPH", "纯随机\n无预览\n无暂存"},
|
||||
['dig_10l']= {"挖掘", "10L", "挖掘10行"},
|
||||
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
||||
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['dig_1000l']= {"挖掘", "1000L", "挖掘1000行"},
|
||||
['drought_n']= {"干旱", "100L", "你I没了"},
|
||||
['drought_l']= {"干旱", "100L", "后 妈 发 牌"},
|
||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
|
||||
['solo_e']= {"单挑", "简单", "打败AI"},
|
||||
['solo_n']= {"单挑", "普通", "打败AI"},
|
||||
['solo_h']= {"单挑", "困难", "打败AI"},
|
||||
['solo_l']= {"单挑", "疯狂", "打败AI"},
|
||||
['solo_u']= {"单挑", "极限", "打败AI"},
|
||||
['techmino49_e']= {"49人混战", "简单", "49人混战,活到最后"},
|
||||
['techmino49_h']= {"49人混战", "困难", "49人混战,活到最后"},
|
||||
['techmino49_u']= {"49人混战", "极限", "49人混战,活到最后"},
|
||||
['techmino99_e']= {"99人混战", "简单", "99人混战,活到最后"},
|
||||
['techmino99_h']= {"99人混战", "困难", "99人混战,活到最后"},
|
||||
['techmino99_u']= {"99人混战", "极限", "99人混战,活到最后"},
|
||||
['round_e']= {"回合制", "简单", "下棋模式"},
|
||||
['round_n']= {"回合制", "普通", "下棋模式"},
|
||||
['round_h']= {"回合制", "困难", "下棋模式"},
|
||||
['round_l']= {"回合制", "疯狂", "下棋模式"},
|
||||
['round_u']= {"回合制", "极限", "下棋模式"},
|
||||
['master_beginner']= {"大师", "疯狂", "20G初心者练习"},
|
||||
['master_advance']= {"大师", "极限", "上级者20G挑战"},
|
||||
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
['master_phantasm']= {"大师", "虚幻", "虚幻20G:???"},
|
||||
['master_extra']= {"宗师", "EX", "成为方块大师"},
|
||||
['rhythm_e']= {"节奏", "简单", "200行低速节奏马拉松"},
|
||||
['rhythm_h']= {"节奏", "困难", "200行中速节奏马拉松"},
|
||||
['rhythm_u']= {"节奏", "极限", "200行高速节奏马拉松"},
|
||||
['blind_e']= {"隐形", "半隐", "不强大脑"},
|
||||
['blind_n']= {"隐形", "全隐", "挺强大脑"},
|
||||
['blind_h']= {"隐形", "瞬隐", "很强大脑"},
|
||||
['blind_l']= {"隐形", "瞬隐+", "最强大脑"},
|
||||
['blind_u']= {"隐形", "啊这", "你准备好了吗"},
|
||||
['blind_wtf']= {"隐形", "不会吧", "还没准备好"},
|
||||
['classic_fast']= {"高速经典", "CTWC", "高速经典"},
|
||||
['survivor_e']= {"生存", "简单", "你能存活多久?"},
|
||||
['survivor_n']= {"生存", "普通", "你能存活多久?"},
|
||||
['survivor_h']= {"生存", "困难", "你能存活多久?"},
|
||||
['survivor_l']= {"生存", "疯狂", "你能存活多久?"},
|
||||
['survivor_u']= {"生存", "极限", "你能存活多久?"},
|
||||
['attacker_h']= {"进攻", "困难", "进攻练习"},
|
||||
['attacker_u']= {"进攻", "极限", "进攻练习"},
|
||||
['defender_n']= {"防守", "普通", "防守练习"},
|
||||
['defender_l']= {"防守", "疯狂", "防守练习"},
|
||||
['dig_h']= {"挖掘", "困难", "挖掘练习"},
|
||||
['dig_u']= {"挖掘", "极限", "挖掘练习"},
|
||||
['bigbang']= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
['c4wtrain_n']= {"C4W练习", "普通", "无 限 连 击"},
|
||||
['c4wtrain_l']= {"C4W练习", "疯狂", "无 限 连 击"},
|
||||
['pctrain_n']= {"全清训练", "普通", "简易PC题库,熟悉全清定式的组合"},
|
||||
['pctrain_l']= {"全清训练", "疯狂", "困难PC题库,强算力者进"},
|
||||
['pc_n']= {"全清挑战", "普通", "100行内刷PC"},
|
||||
['pc_h']= {"全清挑战", "困难", "100行内刷PC"},
|
||||
['pc_l']= {"全清挑战", "疯狂", "100行内刷PC"},
|
||||
['tech_n']= {"科研", "普通", "禁止断B2B"},
|
||||
['tech_n_plus']= {"科研", "普通+", "仅允许spin与PC"},
|
||||
['tech_h']= {"科研", "困难", "禁止断B2B"},
|
||||
['tech_h_plus']= {"科研", "困难+", "仅允许spin与PC"},
|
||||
['tech_l']= {"科研", "疯狂", "禁止断B2B"},
|
||||
['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
['tech_finesse']= {"科研", "极简", "强制最简操作"},
|
||||
['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
['tsd_e']= {"TSD挑战", "简单", "你能连续做几个TSD?"},
|
||||
['tsd_h']= {"TSD挑战", "困难", "你能连续做几个TSD?"},
|
||||
['tsd_u']= {"TSD挑战", "极限", "你能连续做几个TSD?"},
|
||||
['backfire_n']= {"Backfire", "普通", "打出100攻击"},
|
||||
['backfire_h']= {"Backfire", "困难", "打出100攻击"},
|
||||
['backfire_l']= {"Backfire", "疯狂", "打出100攻击"},
|
||||
['backfire_u']= {"Backfire", "极限", "打出100攻击"},
|
||||
['zen']= {"禅", "200", "不限时200行"},
|
||||
['ultra']= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
['infinite']= {"无尽", "", "沙盒"},
|
||||
['infinite_dig']= {"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
['sprintFix']= {"竞速", "无移动"},
|
||||
['sprintLock']= {"竞速", "无旋转"},
|
||||
['marathon_bfmax']= {"马拉松", "极限"},
|
||||
['custom_clear']= {"自定义", "普通"},
|
||||
['custom_puzzle']= {"自定义", "拼图"},
|
||||
},
|
||||
getTip={refuseCopy=true,
|
||||
"...,合群了就会消失,不合群世界毁灭(指game over",
|
||||
|
||||
@@ -139,96 +139,96 @@ return{
|
||||
},
|
||||
},
|
||||
modes={
|
||||
["sprint_10l"]= {"竞速", "10行", "消除10行"},
|
||||
["sprint_20l"]= {"竞速", "20行", "消除20行"},
|
||||
["sprint_40l"]= {"竞速", "40行", "消除40行"},
|
||||
["sprint_100l"]= {"竞速", "100行", "消除100行"},
|
||||
["sprint_400l"]= {"竞速", "400行", "消除400行"},
|
||||
["sprint_1000l"]= {"竞速", "1000行", "消除1000行"},
|
||||
["sprintPenta"]= {"竞速", "五连块", "伤脑筋十八块"},
|
||||
["sprintMPH"]= {"竞速", "纯净", "纯随机\n无预览\n无暂存"},
|
||||
["dig_10l"]= {"挖掘", "10L", "挖掘10行"},
|
||||
["dig_40l"]= {"挖掘", "40L", "挖掘40行"},
|
||||
["dig_100l"]= {"挖掘", "100L", "挖掘100行"},
|
||||
["dig_400l"]= {"挖掘", "400L", "挖掘400行"},
|
||||
["dig_1000l"]= {"挖掘", "1000L", "挖掘1000行"},
|
||||
["drought_n"]= {"干旱", "100行", "你I没了"},
|
||||
["drought_l"]= {"干旱", "100行", "后 妈 发 牌"},
|
||||
["marathon_n"]= {"马拉松", "普通", "200行加速马拉松"},
|
||||
["marathon_h"]= {"马拉松", "困难", "200行高速马拉松"},
|
||||
["solo_e"]= {"单挑", "简单", "打败机器人"},
|
||||
["solo_n"]= {"单挑", "普通", "打败机器人"},
|
||||
["solo_h"]= {"单挑", "困难", "打败机器人"},
|
||||
["solo_l"]= {"单挑", "疯狂", "打败机器人"},
|
||||
["solo_u"]= {"单挑", "极限", "打败机器人"},
|
||||
["techmino49_e"]= {"49人混战", "简单", "49人混战,活到最后"},
|
||||
["techmino49_h"]= {"49人混战", "困难", "49人混战,活到最后"},
|
||||
["techmino49_u"]= {"49人混战", "极限", "49人混战,活到最后"},
|
||||
["techmino99_e"]= {"99人混战", "简单", "99人混战,活到最后"},
|
||||
["techmino99_h"]= {"99人混战", "困难", "99人混战,活到最后"},
|
||||
["techmino99_u"]= {"99人混战", "极限", "99人混战,活到最后"},
|
||||
["round_e"]= {"回合制", "简单", "下棋模式"},
|
||||
["round_n"]= {"回合制", "普通", "下棋模式"},
|
||||
["round_h"]= {"回合制", "困难", "下棋模式"},
|
||||
["round_l"]= {"回合制", "疯狂", "下棋模式"},
|
||||
["round_u"]= {"回合制", "极限", "下棋模式"},
|
||||
["master_beginner"]= {"大师", "疯狂", "20G初心者练习"},
|
||||
["master_advance"]= {"大师", "极限", "上级者20G挑战"},
|
||||
["master_final"]= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
["master_phantasm"]= {"大师", "虚幻", "虚幻20G:???"},
|
||||
["master_extra"]= {"宗师", "EX", "成为方块大师"},
|
||||
["rhythm_e"]= {"节奏", "简单", "200行低速节奏马拉松"},
|
||||
["rhythm_h"]= {"节奏", "困难", "200行中速节奏马拉松"},
|
||||
["rhythm_u"]= {"节奏", "极限", "200行高速节奏马拉松"},
|
||||
["blind_e"]= {"隐形", "半隐", "不强大脑"},
|
||||
["blind_n"]= {"隐形", "全隐", "挺强大脑"},
|
||||
["blind_h"]= {"隐形", "瞬隐", "很强大脑"},
|
||||
["blind_l"]= {"隐形", "瞬隐+", "超强大脑"},
|
||||
["blind_u"]= {"隐形", "啊这", "你准备好了吗"},
|
||||
["blind_wtf"]= {"隐形", "不会吧", "还没准备好"},
|
||||
["classic_fast"]= {"高速经典", "CTWC", "高速经典"},
|
||||
["survivor_e"]= {"生存", "简单", "你能存活多久?"},
|
||||
["survivor_n"]= {"生存", "普通", "你能存活多久?"},
|
||||
["survivor_h"]= {"生存", "困难", "你能存活多久?"},
|
||||
["survivor_l"]= {"生存", "疯狂", "你能存活多久?"},
|
||||
["survivor_u"]= {"生存", "极限", "你能存活多久?"},
|
||||
["attacker_h"]= {"进攻", "困难", "进攻练习"},
|
||||
["attacker_u"]= {"进攻", "极限", "进攻练习"},
|
||||
["defender_n"]= {"防守", "普通", "防守练习"},
|
||||
["defender_l"]= {"防守", "疯狂", "防守练习"},
|
||||
["dig_h"]= {"挖掘", "困难", "挖掘练习"},
|
||||
["dig_u"]= {"挖掘", "极限", "挖掘练习"},
|
||||
["bigbang"]= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
["c4wtrain_n"]= {"中四宽练习", "普通", "无 限 连 击"},
|
||||
["c4wtrain_l"]= {"中四宽练习", "疯狂", "无 限 连 击"},
|
||||
["pctrain_n"]= {"全清训练", "普通", "简易全清题库,熟悉全清定式的组合"},
|
||||
["pctrain_l"]= {"全清训练", "疯狂", "困难PC题库,强算力者进"},
|
||||
["pc_n"]= {"全清挑战", "普通", "100行内刷全清"},
|
||||
["pc_h"]= {"全清挑战", "困难", "100行内刷全清"},
|
||||
["pc_l"]= {"全清挑战", "疯狂", "100行内刷全清"},
|
||||
["tech_n"]= {"科研", "普通", "禁止断B2B"},
|
||||
["tech_n_plus"]= {"科研", "普通+", "仅允许回旋与全清"},
|
||||
["tech_h"]= {"科研", "困难", "禁止断B2B"},
|
||||
["tech_h_plus"]= {"科研", "困难+", "仅允许回旋与全清"},
|
||||
["tech_l"]= {"科研", "疯狂", "禁止断B2B"},
|
||||
["tech_l_plus"]= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
["tech_finesse"]= {"科研", "极简", "强制最简操作"},
|
||||
["tech_finesse_f"]= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
["tsd_e"]= {"T2挑战", "简单", "你能连续做几个T旋双清?"},
|
||||
["tsd_h"]= {"T2挑战", "困难", "你能连续做几个T旋双清?"},
|
||||
["tsd_u"]= {"T2挑战", "极限", "你能连续做几个T旋双清?"},
|
||||
["backfire_n"]= {"自攻自防", "普通", "打出100攻击"},
|
||||
["backfire_h"]= {"自攻自防", "困难", "打出100攻击"},
|
||||
["backfire_l"]= {"自攻自防", "疯狂", "打出100攻击"},
|
||||
["backfire_u"]= {"自攻自防", "极限", "打出100攻击"},
|
||||
["zen"]= {"禅", "200", "不限时200行"},
|
||||
["ultra"]= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
["infinite"]= {"无尽", "", "沙盒"},
|
||||
["infinite_dig"]= {"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
["sprintFix"]= {"竞速", "无移动"},
|
||||
["sprintLock"]= {"竞速", "无旋转"},
|
||||
["marathon_bfmax"]= {"马拉松", "极限"},
|
||||
["custom_clear"]= {"自定义", "普通"},
|
||||
["custom_puzzle"]= {"自定义", "拼图"},
|
||||
['sprint_10l']= {"竞速", "10行", "消除10行"},
|
||||
['sprint_20l']= {"竞速", "20行", "消除20行"},
|
||||
['sprint_40l']= {"竞速", "40行", "消除40行"},
|
||||
['sprint_100l']= {"竞速", "100行", "消除100行"},
|
||||
['sprint_400l']= {"竞速", "400行", "消除400行"},
|
||||
['sprint_1000l']= {"竞速", "1000行", "消除1000行"},
|
||||
['sprintPenta']= {"竞速", "五连块", "伤脑筋十八块"},
|
||||
['sprintMPH']= {"竞速", "纯净", "纯随机\n无预览\n无暂存"},
|
||||
['dig_10l']= {"挖掘", "10L", "挖掘10行"},
|
||||
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
||||
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['dig_1000l']= {"挖掘", "1000L", "挖掘1000行"},
|
||||
['drought_n']= {"干旱", "100行", "你I没了"},
|
||||
['drought_l']= {"干旱", "100行", "后 妈 发 牌"},
|
||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
|
||||
['solo_e']= {"单挑", "简单", "打败机器人"},
|
||||
['solo_n']= {"单挑", "普通", "打败机器人"},
|
||||
['solo_h']= {"单挑", "困难", "打败机器人"},
|
||||
['solo_l']= {"单挑", "疯狂", "打败机器人"},
|
||||
['solo_u']= {"单挑", "极限", "打败机器人"},
|
||||
['techmino49_e']= {"49人混战", "简单", "49人混战,活到最后"},
|
||||
['techmino49_h']= {"49人混战", "困难", "49人混战,活到最后"},
|
||||
['techmino49_u']= {"49人混战", "极限", "49人混战,活到最后"},
|
||||
['techmino99_e']= {"99人混战", "简单", "99人混战,活到最后"},
|
||||
['techmino99_h']= {"99人混战", "困难", "99人混战,活到最后"},
|
||||
['techmino99_u']= {"99人混战", "极限", "99人混战,活到最后"},
|
||||
['round_e']= {"回合制", "简单", "下棋模式"},
|
||||
['round_n']= {"回合制", "普通", "下棋模式"},
|
||||
['round_h']= {"回合制", "困难", "下棋模式"},
|
||||
['round_l']= {"回合制", "疯狂", "下棋模式"},
|
||||
['round_u']= {"回合制", "极限", "下棋模式"},
|
||||
['master_beginner']= {"大师", "疯狂", "20G初心者练习"},
|
||||
['master_advance']= {"大师", "极限", "上级者20G挑战"},
|
||||
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
['master_phantasm']= {"大师", "虚幻", "虚幻20G:???"},
|
||||
['master_extra']= {"宗师", "EX", "成为方块大师"},
|
||||
['rhythm_e']= {"节奏", "简单", "200行低速节奏马拉松"},
|
||||
['rhythm_h']= {"节奏", "困难", "200行中速节奏马拉松"},
|
||||
['rhythm_u']= {"节奏", "极限", "200行高速节奏马拉松"},
|
||||
['blind_e']= {"隐形", "半隐", "不强大脑"},
|
||||
['blind_n']= {"隐形", "全隐", "挺强大脑"},
|
||||
['blind_h']= {"隐形", "瞬隐", "很强大脑"},
|
||||
['blind_l']= {"隐形", "瞬隐+", "超强大脑"},
|
||||
['blind_u']= {"隐形", "啊这", "你准备好了吗"},
|
||||
['blind_wtf']= {"隐形", "不会吧", "还没准备好"},
|
||||
['classic_fast']= {"高速经典", "CTWC", "高速经典"},
|
||||
['survivor_e']= {"生存", "简单", "你能存活多久?"},
|
||||
['survivor_n']= {"生存", "普通", "你能存活多久?"},
|
||||
['survivor_h']= {"生存", "困难", "你能存活多久?"},
|
||||
['survivor_l']= {"生存", "疯狂", "你能存活多久?"},
|
||||
['survivor_u']= {"生存", "极限", "你能存活多久?"},
|
||||
['attacker_h']= {"进攻", "困难", "进攻练习"},
|
||||
['attacker_u']= {"进攻", "极限", "进攻练习"},
|
||||
['defender_n']= {"防守", "普通", "防守练习"},
|
||||
['defender_l']= {"防守", "疯狂", "防守练习"},
|
||||
['dig_h']= {"挖掘", "困难", "挖掘练习"},
|
||||
['dig_u']= {"挖掘", "极限", "挖掘练习"},
|
||||
['bigbang']= {"大爆炸", "简单", "All-spin 入门教程\n未制作完成,落块即通"},
|
||||
['c4wtrain_n']= {"中四宽练习", "普通", "无 限 连 击"},
|
||||
['c4wtrain_l']= {"中四宽练习", "疯狂", "无 限 连 击"},
|
||||
['pctrain_n']= {"全清训练", "普通", "简易全清题库,熟悉全清定式的组合"},
|
||||
['pctrain_l']= {"全清训练", "疯狂", "困难PC题库,强算力者进"},
|
||||
['pc_n']= {"全清挑战", "普通", "100行内刷全清"},
|
||||
['pc_h']= {"全清挑战", "困难", "100行内刷全清"},
|
||||
['pc_l']= {"全清挑战", "疯狂", "100行内刷全清"},
|
||||
['tech_n']= {"科研", "普通", "禁止断B2B"},
|
||||
['tech_n_plus']= {"科研", "普通+", "仅允许回旋与全清"},
|
||||
['tech_h']= {"科研", "困难", "禁止断B2B"},
|
||||
['tech_h_plus']= {"科研", "困难+", "仅允许回旋与全清"},
|
||||
['tech_l']= {"科研", "疯狂", "禁止断B2B"},
|
||||
['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"},
|
||||
['tech_finesse']= {"科研", "极简", "强制最简操作"},
|
||||
['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"},
|
||||
['tsd_e']= {"T2挑战", "简单", "你能连续做几个T旋双清?"},
|
||||
['tsd_h']= {"T2挑战", "困难", "你能连续做几个T旋双清?"},
|
||||
['tsd_u']= {"T2挑战", "极限", "你能连续做几个T旋双清?"},
|
||||
['backfire_n']= {"自攻自防", "普通", "打出100攻击"},
|
||||
['backfire_h']= {"自攻自防", "困难", "打出100攻击"},
|
||||
['backfire_l']= {"自攻自防", "疯狂", "打出100攻击"},
|
||||
['backfire_u']= {"自攻自防", "极限", "打出100攻击"},
|
||||
['zen']= {"禅", "200", "不限时200行"},
|
||||
['ultra']= {"限时打分", "挑战", "在两分钟内尽可能拿到最多的分数"},
|
||||
['infinite']= {"无尽", "", "沙盒"},
|
||||
['infinite_dig']= {"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
['sprintFix']= {"竞速", "无移动"},
|
||||
['sprintLock']= {"竞速", "无旋转"},
|
||||
['marathon_bfmax']= {"马拉松", "极限"},
|
||||
['custom_clear']= {"自定义", "普通"},
|
||||
['custom_puzzle']= {"自定义", "拼图"},
|
||||
},
|
||||
}
|
||||
180
parts/modes.lua
180
parts/modes.lua
@@ -1,119 +1,119 @@
|
||||
return{
|
||||
{name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint1", unlock={"sprint_20l","sprint_40l"}},
|
||||
{name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint1"},
|
||||
{name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={"dig_10l","sprint_100l","marathon_n","sprintPenta","sprintMPH"}},
|
||||
{name="sprint_100l", x=-200, y=-200, size=50,shape=1,icon="sprint2", unlock={"sprint_400l","drought_n"}},
|
||||
{name="sprint_400l", x=-400, y=-200, size=40,shape=1,icon="sprint3", unlock={"sprint_1000l"}},
|
||||
{name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint3"},
|
||||
{name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}},
|
||||
{name='sprint_20l', x=-200, y=0, size=50,shape=1,icon="sprint1"},
|
||||
{name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH'}},
|
||||
{name='sprint_100l', x=-200, y=-200, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}},
|
||||
{name='sprint_400l', x=-400, y=-200, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}},
|
||||
{name='sprint_1000l', x=-600, y=-200, size=40,shape=1,icon="sprint3"},
|
||||
|
||||
{name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="tech"},
|
||||
{name="sprintMPH", x=210, y=-230, size=40,shape=3,icon="tech"},
|
||||
{name='sprintPenta', x=210, y=-370, size=40,shape=3,icon="tech"},
|
||||
{name='sprintMPH', x=210, y=-230, size=40,shape=3,icon="tech"},
|
||||
|
||||
{name="drought_n", x=-400, y=0, size=40,shape=1,icon="drought", unlock={"drought_l"}},
|
||||
{name="drought_l", x=-600, y=0, size=40,shape=1,icon="mess"},
|
||||
{name='drought_n', x=-400, y=0, size=40,shape=1,icon="drought", unlock={'drought_l'}},
|
||||
{name='drought_l', x=-600, y=0, size=40,shape=1,icon="mess"},
|
||||
|
||||
{name="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_40l"}},
|
||||
{name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_100l"}},
|
||||
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_400l"}},
|
||||
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
|
||||
{name='dig_10l', x=-200, y=-400, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l'}},
|
||||
{name='dig_40l', x=-400, y=-400, size=40,shape=1,icon="dig_sprint", unlock={'dig_100l'}},
|
||||
{name='dig_100l', x=-600, y=-400, size=40,shape=1,icon="dig_sprint", unlock={'dig_400l'}},
|
||||
{name='dig_400l', x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
|
||||
|
||||
{name="marathon_n", x=0, y=-600, size=60,shape=1,icon="marathon",unlock={"marathon_h","rhythm_e","solo_e","round_e","blind_e","classic_fast","survivor_e","bigbang","zen"}},
|
||||
{name="marathon_h", x=0, y=-800, size=50,shape=1,icon="marathon",unlock={"master_beginner"}},
|
||||
{name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon",unlock={'marathon_h','rhythm_e','solo_e','round_e','blind_e','classic_fast','survivor_e','bigbang','zen'}},
|
||||
{name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon",unlock={'master_beginner'}},
|
||||
|
||||
{name="solo_e", x=-600, y=-1000,size=40,shape=1,icon="solo", unlock={"solo_n"}},
|
||||
{name="solo_n", x=-800, y=-1000,size=40,shape=1,icon="solo", unlock={"solo_h"}},
|
||||
{name="solo_h", x=-1000,y=-1000,size=40,shape=1,icon="solo", unlock={"solo_l","techmino49_e"}},
|
||||
{name="solo_l", x=-1200,y=-1000,size=40,shape=1,icon="solo", unlock={"solo_u"}},
|
||||
{name="solo_u", x=-1400,y=-1000,size=40,shape=1,icon="solo"},
|
||||
{name='solo_e', x=-600, y=-1000,size=40,shape=1,icon="solo", unlock={'solo_n'}},
|
||||
{name='solo_n', x=-800, y=-1000,size=40,shape=1,icon="solo", unlock={'solo_h'}},
|
||||
{name='solo_h', x=-1000,y=-1000,size=40,shape=1,icon="solo", unlock={'solo_l','techmino49_e'}},
|
||||
{name='solo_l', x=-1200,y=-1000,size=40,shape=1,icon="solo", unlock={'solo_u'}},
|
||||
{name='solo_u', x=-1400,y=-1000,size=40,shape=1,icon="solo"},
|
||||
|
||||
{name="techmino49_e", x=-1100,y=-1200,size=40,shape=1,icon="t49", unlock={"techmino49_h","techmino99_e"}},
|
||||
{name="techmino49_h", x=-1100,y=-1400,size=40,shape=1,icon="t49", unlock={"techmino49_u"}},
|
||||
{name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="t49"},
|
||||
{name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="t99", unlock={"techmino99_h"}},
|
||||
{name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="t99", unlock={"techmino99_u"}},
|
||||
{name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="t99"},
|
||||
{name='techmino49_e', x=-1100,y=-1200,size=40,shape=1,icon="t49", unlock={'techmino49_h','techmino99_e'}},
|
||||
{name='techmino49_h', x=-1100,y=-1400,size=40,shape=1,icon="t49", unlock={'techmino49_u'}},
|
||||
{name='techmino49_u', x=-1100,y=-1600,size=40,shape=1,icon="t49"},
|
||||
{name='techmino99_e', x=-1300,y=-1400,size=40,shape=1,icon="t99", unlock={'techmino99_h'}},
|
||||
{name='techmino99_h', x=-1300,y=-1600,size=40,shape=1,icon="t99", unlock={'techmino99_u'}},
|
||||
{name='techmino99_u', x=-1300,y=-1800,size=40,shape=1,icon="t99"},
|
||||
|
||||
{name="round_e", x=-600, y=-800, size=40,shape=1,icon="round", unlock={"round_n"}},
|
||||
{name="round_n", x=-800, y=-800, size=40,shape=1,icon="round", unlock={"round_h"}},
|
||||
{name="round_h", x=-1000,y=-800, size=40,shape=1,icon="round", unlock={"round_l"}},
|
||||
{name="round_l", x=-1200,y=-800, size=40,shape=1,icon="round", unlock={"round_u"}},
|
||||
{name="round_u", x=-1400,y=-800, size=40,shape=1,icon="round"},
|
||||
{name='round_e', x=-600, y=-800, size=40,shape=1,icon="round", unlock={'round_n'}},
|
||||
{name='round_n', x=-800, y=-800, size=40,shape=1,icon="round", unlock={'round_h'}},
|
||||
{name='round_h', x=-1000,y=-800, size=40,shape=1,icon="round", unlock={'round_l'}},
|
||||
{name='round_l', x=-1200,y=-800, size=40,shape=1,icon="round", unlock={'round_u'}},
|
||||
{name='round_u', x=-1400,y=-800, size=40,shape=1,icon="round"},
|
||||
|
||||
{name="master_beginner",x=0, y=-1000,size=40,shape=1,icon="master", unlock={"master_advance"}},
|
||||
{name="master_advance", x=0, y=-1200,size=40,shape=3,icon="master", unlock={"master_final","master_extra","master_phantasm"}},
|
||||
{name="master_final", x=0, y=-1600,size=40,shape=2,icon="master"},
|
||||
{name="master_phantasm",x=-150, y=-1500,size=40,shape=2,icon="master"},
|
||||
{name="master_extra", x=150, y=-1500,size=40,shape=2,icon="master_ex"},
|
||||
{name='master_beginner',x=0, y=-1000,size=40,shape=1,icon="master", unlock={'master_advance'}},
|
||||
{name='master_advance', x=0, y=-1200,size=40,shape=3,icon="master", unlock={'master_final','master_extra','master_phantasm'}},
|
||||
{name='master_final', x=0, y=-1600,size=40,shape=2,icon="master"},
|
||||
{name='master_phantasm',x=-150, y=-1500,size=40,shape=2,icon="master"},
|
||||
{name='master_extra', x=150, y=-1500,size=40,shape=2,icon="master_ex"},
|
||||
|
||||
{name="rhythm_e", x=-350, y=-1000,size=40,shape=1,icon="rhythm", unlock={"rhythm_h"}},
|
||||
{name="rhythm_h", x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}},
|
||||
{name="rhythm_u", x=-350, y=-1400,size=40,shape=2,icon="rhythm"},
|
||||
{name='rhythm_e', x=-350, y=-1000,size=40,shape=1,icon="rhythm", unlock={'rhythm_h'}},
|
||||
{name='rhythm_h', x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={'rhythm_u'}},
|
||||
{name='rhythm_u', x=-350, y=-1400,size=40,shape=2,icon="rhythm"},
|
||||
|
||||
{name="blind_e", x=150, y=-700, size=40,shape=1,icon="hidden", unlock={"blind_n"}},
|
||||
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="hidden", unlock={"blind_h"}},
|
||||
{name="blind_h", x=150, y=-900, size=35,shape=1,icon="hidden", unlock={"blind_l"}},
|
||||
{name="blind_l", x=150, y=-1000,size=35,shape=3,icon="hidden", unlock={"blind_u"}},
|
||||
{name="blind_u", x=150, y=-1100,size=35,shape=3,icon="hidden", unlock={"blind_wtf"}},
|
||||
{name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="hidden"},
|
||||
{name='blind_e', x=150, y=-700, size=40,shape=1,icon="hidden", unlock={'blind_n'}},
|
||||
{name='blind_n', x=150, y=-800, size=40,shape=1,icon="hidden", unlock={'blind_h'}},
|
||||
{name='blind_h', x=150, y=-900, size=35,shape=1,icon="hidden", unlock={'blind_l'}},
|
||||
{name='blind_l', x=150, y=-1000,size=35,shape=3,icon="hidden", unlock={'blind_u'}},
|
||||
{name='blind_u', x=150, y=-1100,size=35,shape=3,icon="hidden", unlock={'blind_wtf'}},
|
||||
{name='blind_wtf', x=150, y=-1200,size=35,shape=2,icon="hidden"},
|
||||
|
||||
{name="classic_fast", x=-150, y=-950, size=40,shape=2,icon="classic"},
|
||||
{name='classic_fast', x=-150, y=-950, size=40,shape=2,icon="classic"},
|
||||
|
||||
{name="survivor_e", x=300, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_n"}},
|
||||
{name="survivor_n", x=500, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_h","attacker_h","defender_n","dig_h"}},
|
||||
{name="survivor_h", x=700, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_l"}},
|
||||
{name="survivor_l", x=900, y=-600, size=40,shape=3,icon="survivor",unlock={"survivor_u"}},
|
||||
{name="survivor_u", x=1100, y=-600, size=40,shape=2,icon="survivor"},
|
||||
{name='survivor_e', x=300, y=-600, size=40,shape=1,icon="survivor",unlock={'survivor_n'}},
|
||||
{name='survivor_n', x=500, y=-600, size=40,shape=1,icon="survivor",unlock={'survivor_h','attacker_h','defender_n','dig_h'}},
|
||||
{name='survivor_h', x=700, y=-600, size=40,shape=1,icon="survivor",unlock={'survivor_l'}},
|
||||
{name='survivor_l', x=900, y=-600, size=40,shape=3,icon="survivor",unlock={'survivor_u'}},
|
||||
{name='survivor_u', x=1100, y=-600, size=40,shape=2,icon="survivor"},
|
||||
|
||||
{name="attacker_h", x=300, y=-800, size=40,shape=1,icon="attack", unlock={"attacker_u"}},
|
||||
{name="attacker_u", x=300, y=-1000,size=40,shape=1,icon="attack"},
|
||||
{name='attacker_h', x=300, y=-800, size=40,shape=1,icon="attack", unlock={'attacker_u'}},
|
||||
{name='attacker_u', x=300, y=-1000,size=40,shape=1,icon="attack"},
|
||||
|
||||
{name="defender_n", x=500, y=-800, size=40,shape=1,icon="defend", unlock={"defender_l"}},
|
||||
{name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defend"},
|
||||
{name='defender_n', x=500, y=-800, size=40,shape=1,icon="defend", unlock={'defender_l'}},
|
||||
{name='defender_l', x=500, y=-1000,size=40,shape=1,icon="defend"},
|
||||
|
||||
{name="dig_h", x=700, y=-800, size=40,shape=1,icon="dig", unlock={"dig_u"}},
|
||||
{name="dig_u", x=700, y=-1000,size=40,shape=1,icon="dig"},
|
||||
{name='dig_h', x=700, y=-800, size=40,shape=1,icon="dig", unlock={'dig_u'}},
|
||||
{name='dig_u', x=700, y=-1000,size=40,shape=1,icon="dig"},
|
||||
|
||||
{name="bigbang", x=400, y=-400, size=50,shape=1,icon="bigbang", unlock={"c4wtrain_n","pctrain_n","tech_n"}},
|
||||
{name="c4wtrain_n", x=700, y=-400, size=40,shape=1,icon="pc",unlock={"c4wtrain_l"}},
|
||||
{name="c4wtrain_l", x=900, y=-400, size=40,shape=1,icon="pc"},
|
||||
{name='bigbang', x=400, y=-400, size=50,shape=1,icon="bigbang", unlock={'c4wtrain_n','pctrain_n','tech_n'}},
|
||||
{name='c4wtrain_n', x=700, y=-400, size=40,shape=1,icon="pc",unlock={'c4wtrain_l'}},
|
||||
{name='c4wtrain_l', x=900, y=-400, size=40,shape=1,icon="pc"},
|
||||
|
||||
{name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pc", unlock={"pctrain_l","pc_n"}},
|
||||
{name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pc"},
|
||||
{name='pctrain_n', x=700, y=-220, size=40,shape=1,icon="pc", unlock={'pctrain_l','pc_n'}},
|
||||
{name='pctrain_l', x=900, y=-220, size=40,shape=1,icon="pc"},
|
||||
|
||||
{name="pc_n", x=800, y=-100, size=40,shape=1,icon="pc", unlock={"pc_h"}},
|
||||
{name="pc_h", x=1000, y=-100, size=40,shape=3,icon="pc", unlock={"pc_l"}},
|
||||
{name="pc_l", x=1200, y=-100, size=40,shape=2,icon="pc"},
|
||||
{name='pc_n', x=800, y=-100, size=40,shape=1,icon="pc", unlock={'pc_h'}},
|
||||
{name='pc_h', x=1000, y=-100, size=40,shape=3,icon="pc", unlock={'pc_l'}},
|
||||
{name='pc_l', x=1200, y=-100, size=40,shape=2,icon="pc"},
|
||||
|
||||
{name="tech_n", x=400, y=-150, size=40,shape=1,icon="tech", unlock={"tech_n_plus","tech_h","tech_finesse"}},
|
||||
{name="tech_n_plus", x=600, y=160, size=40,shape=3,icon="tech", unlock={"tsd_e","backfire_n"}},
|
||||
{name="tech_h", x=400, y=40, size=40,shape=1,icon="tech", unlock={"tech_h_plus","tech_l"}},
|
||||
{name="tech_h_plus", x=200, y=70, size=35,shape=3,icon="tech"},
|
||||
{name="tech_l", x=400, y=200, size=40,shape=1,icon="tech", unlock={"tech_l_plus"}},
|
||||
{name="tech_l_plus", x=200, y=230, size=35,shape=3,icon="tech"},
|
||||
{name='tech_n', x=400, y=-150, size=40,shape=1,icon="tech", unlock={'tech_n_plus','tech_h','tech_finesse'}},
|
||||
{name='tech_n_plus', x=600, y=160, size=40,shape=3,icon="tech", unlock={'tsd_e','backfire_n'}},
|
||||
{name='tech_h', x=400, y=40, size=40,shape=1,icon="tech", unlock={'tech_h_plus','tech_l'}},
|
||||
{name='tech_h_plus', x=200, y=70, size=35,shape=3,icon="tech"},
|
||||
{name='tech_l', x=400, y=200, size=40,shape=1,icon="tech", unlock={'tech_l_plus'}},
|
||||
{name='tech_l_plus', x=200, y=230, size=35,shape=3,icon="tech"},
|
||||
|
||||
{name="tech_finesse", x=800, y=50, size=40,shape=1,icon="tech", unlock={"tech_finesse_f"}},
|
||||
{name="tech_finesse_f", x=1000, y=50, size=40,shape=1,icon="tech"},
|
||||
{name='tech_finesse', x=800, y=50, size=40,shape=1,icon="tech", unlock={'tech_finesse_f'}},
|
||||
{name='tech_finesse_f', x=1000, y=50, size=40,shape=1,icon="tech"},
|
||||
|
||||
{name="tsd_e", x=800, y=200, size=40,shape=1,icon="tsd", unlock={"tsd_h"}},
|
||||
{name="tsd_h", x=1000, y=200, size=40,shape=1,icon="tsd", unlock={"tsd_u"}},
|
||||
{name="tsd_u", x=1200, y=200, size=40,shape=1,icon="tsd"},
|
||||
{name='tsd_e', x=800, y=200, size=40,shape=1,icon="tsd", unlock={'tsd_h'}},
|
||||
{name='tsd_h', x=1000, y=200, size=40,shape=1,icon="tsd", unlock={'tsd_u'}},
|
||||
{name='tsd_u', x=1200, y=200, size=40,shape=1,icon="tsd"},
|
||||
|
||||
{name="backfire_n", x=800, y=350, size=40,shape=1,icon="backfire",unlock={"backfire_h"}},
|
||||
{name="backfire_h", x=950, y=350, size=40,shape=1,icon="backfire",unlock={"backfire_l"}},
|
||||
{name="backfire_l", x=1100, y=350, size=40,shape=3,icon="backfire",unlock={"backfire_u"}},
|
||||
{name="backfire_u", x=1250, y=350, size=35,shape=2,icon="backfire"},
|
||||
{name='backfire_n', x=800, y=350, size=40,shape=1,icon="backfire",unlock={'backfire_h'}},
|
||||
{name='backfire_h', x=950, y=350, size=40,shape=1,icon="backfire",unlock={'backfire_l'}},
|
||||
{name='backfire_l', x=1100, y=350, size=40,shape=3,icon="backfire",unlock={'backfire_u'}},
|
||||
{name='backfire_u', x=1250, y=350, size=35,shape=2,icon="backfire"},
|
||||
|
||||
{name="zen", x=-800, y=-600, size=40,shape=1,icon="zen", unlock={"ultra","infinite","infinite_dig"}},
|
||||
{name="ultra", x=-1000,y=-400, size=40,shape=1,icon="ultra"},
|
||||
{name="infinite", x=-800, y=-400, size=40,shape=1,icon="infinite"},
|
||||
{name="infinite_dig", x=-1000,y=-600, size=40,shape=1,icon="dig"},
|
||||
{name='zen', x=-800, y=-600, size=40,shape=1,icon="zen", unlock={'ultra','infinite','infinite_dig'}},
|
||||
{name='ultra', x=-1000,y=-400, size=40,shape=1,icon="ultra"},
|
||||
{name='infinite', x=-800, y=-400, size=40,shape=1,icon='infinite'},
|
||||
{name='infinite_dig', x=-1000,y=-600, size=40,shape=1,icon="dig"},
|
||||
|
||||
{name="sprintFix"},
|
||||
{name="sprintLock"},
|
||||
{name="marathon_bfmax"},
|
||||
{name='sprintFix'},
|
||||
{name='sprintLock'},
|
||||
{name='marathon_bfmax'},
|
||||
|
||||
{name="custom_puzzle"},
|
||||
{name="custom_clear"},
|
||||
{name='custom_puzzle'},
|
||||
{name='custom_clear'},
|
||||
|
||||
{name="netBattle"},
|
||||
}
|
||||
@@ -26,16 +26,16 @@ return{
|
||||
D.wave=D.wave+1
|
||||
if D.wave%10==0 then
|
||||
if D.wave==20 then
|
||||
P:showTextF(text.great,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.great,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=3
|
||||
elseif D.wave==50 then
|
||||
P:showTextF(text.maxspeed,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.maxspeed,0,-140,100,'appear',.6)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="rainbow2",bgm="shining terminal",
|
||||
bg='rainbow2',bgm='shining terminal',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -30,19 +30,19 @@ return{
|
||||
D.wave=D.wave+1
|
||||
if D.wave%10==0 then
|
||||
if D.wave==10 then
|
||||
P:showTextF(text.great,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.great,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=4
|
||||
elseif D.wave==20 then
|
||||
P:showTextF(text.awesome,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.awesome,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=5
|
||||
elseif D.wave==30 then
|
||||
P:showTextF(text.maxspeed,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.maxspeed,0,-140,100,'appear',.6)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="rainbow2",bgm="shining terminal",
|
||||
bg='rainbow2',bgm='shining terminal',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -8,10 +8,10 @@ return{
|
||||
P:receive(nil,P.lastPiece.atk,60,generateLine(P:RND(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end,
|
||||
bg="tunnel",bgm="echo",
|
||||
bg='tunnel',bgm='echo',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -8,10 +8,10 @@ return{
|
||||
P:receive(nil,P.lastPiece.atk,30,generateLine(P:RND(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end,
|
||||
bg="blackhole",bgm="echo",
|
||||
bg='blackhole',bgm='echo',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -7,10 +7,10 @@ return{
|
||||
P:receive(nil,P.lastPiece.atk,120,generateLine(P:RND(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end,
|
||||
bg="tunnel",bgm="echo",
|
||||
bg='tunnel',bgm='echo',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -8,10 +8,10 @@ return{
|
||||
P:receive(nil,P.lastPiece.atk,0,generateLine(P:RND(10)))
|
||||
end
|
||||
if P.stat.atk>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end,
|
||||
bg="blackhole",bgm="echo",
|
||||
bg='blackhole',bgm='echo',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
drop=1e99,lock=1e99,
|
||||
holdCount=0,
|
||||
dropPiece=function(P)P:lose()end,
|
||||
bg="bg1",bgm="new era",
|
||||
bg='bg1',bgm='new era',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,10 +3,10 @@ return{
|
||||
color=COLOR.cyan,
|
||||
env={
|
||||
drop=30,lock=45,
|
||||
visible="easy",
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win("finish")end end,
|
||||
visible='easy',
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win('finish')end end,
|
||||
freshLimit=10,
|
||||
bg="glow",bgm="push",
|
||||
bg='glow',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -6,11 +6,11 @@ return{
|
||||
drop=15,lock=45,
|
||||
fall=10,
|
||||
dropFX=0,lockFX=0,
|
||||
visible="none",
|
||||
visible='none',
|
||||
score=false,
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
bg="rgb",bgm="push",
|
||||
bg='rgb',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -7,11 +7,11 @@ return{
|
||||
fall=5,
|
||||
ghost=0,
|
||||
dropFX=0,lockFX=0,
|
||||
visible="none",
|
||||
visible='none',
|
||||
score=false,
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
bg="rgb",bgm="push",
|
||||
bg='rgb',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -5,9 +5,9 @@ return{
|
||||
env={
|
||||
drop=15,lock=45,
|
||||
freshLimit=10,
|
||||
visible="fast",
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win("finish")end end,
|
||||
bg="glow",bgm="push",
|
||||
visible='fast',
|
||||
dropPiece=function(P)if P.stat.row>=200 then P:win('finish')end end,
|
||||
bg='glow',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -6,11 +6,11 @@ return{
|
||||
drop=30,lock=60,
|
||||
block=false,center=0,ghost=0,
|
||||
dropFX=0,lockFX=0,
|
||||
visible="none",
|
||||
visible='none',
|
||||
score=false,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
bg="rgb",bgm="far",
|
||||
bg='rgb',bgm='far',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -7,10 +7,10 @@ return{
|
||||
nextCount=1,
|
||||
block=false,center=0,ghost=0,
|
||||
dropFX=0,lockFX=0,
|
||||
visible="none",
|
||||
dropPiece=function(P)if P.stat.row>=40 then P:win("finish")end end,
|
||||
visible='none',
|
||||
dropPiece=function(P)if P.stat.row>=40 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
bg="none",bgm="far",
|
||||
bg='none',bgm='far',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
@@ -23,19 +23,19 @@ return{
|
||||
if not GAME.result then
|
||||
if GAME.replaying then
|
||||
gc.setColor(.3,.3,.3,.7)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.origin()
|
||||
gc.rectangle("fill",0,0,SCR.w,SCR.h)
|
||||
gc.rectangle('fill',0,0,SCR.w,SCR.h)
|
||||
gc.pop()
|
||||
else
|
||||
gc.clear(.26,.26,.26)
|
||||
--Frame
|
||||
gc.setColor(.5,.5,.5)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
gc.translate(150,0)
|
||||
gc.rectangle("line",-1,-11,302,612)--Boarder
|
||||
gc.rectangle("line",301,-3,15,604)--AtkBuffer boarder
|
||||
gc.rectangle("line",-16,-3,15,604)--B2b bar boarder
|
||||
gc.rectangle('line',-1,-11,302,612)--Boarder
|
||||
gc.rectangle('line',301,-3,15,604)--AtkBuffer boarder
|
||||
gc.rectangle('line',-16,-3,15,604)--B2b bar boarder
|
||||
gc.pop()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ local function check_c4w(P)
|
||||
P.modeData.maxCombo=P.combo
|
||||
end
|
||||
if P.stat.row>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -25,7 +25,7 @@ return{
|
||||
task=function(P)P.modeData.maxCombo=0 end,
|
||||
dropPiece=check_c4w,
|
||||
freshLimit=15,ospin=false,
|
||||
bg="rgb",bgm="oxygen",
|
||||
bg='rgb',bgm='oxygen',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -11,7 +11,7 @@ local function check_c4w(P)
|
||||
P.modeData.maxCombo=P.combo
|
||||
end
|
||||
if P.stat.row>=100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,7 +23,7 @@ return{
|
||||
task=function(P)P.modeData.maxCombo=0 end,
|
||||
dropPiece=check_c4w,
|
||||
freshLimit=15,ospin=false,
|
||||
bg="rgb",bgm="oxygen",
|
||||
bg='rgb',bgm='oxygen',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -10,8 +10,8 @@ return{
|
||||
center=0,ghost=0,
|
||||
drop=3,lock=3,wait=10,fall=25,
|
||||
nextCount=1,holdCount=false,
|
||||
sequence="rnd",
|
||||
RS="Classic",
|
||||
sequence='rnd',
|
||||
RS='Classic',
|
||||
freshLimit=0,
|
||||
face={0,0,2,2,2,0,0},
|
||||
task=function(P)P.modeData.target=10 end,
|
||||
@@ -21,16 +21,16 @@ return{
|
||||
D.target=D.target+10
|
||||
if D.target==110 then
|
||||
P.gameEnv.drop,P.gameEnv.lock=2,2
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
elseif D.target==200 then
|
||||
P.gameEnv.drop,P.gameEnv.lock=1,1
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
else
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="rgb",bgm="magicblock",
|
||||
bg='rgb',bgm='magicblock',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
@@ -44,7 +44,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.stat.row,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{P.stat.score,P.stat.row}end,
|
||||
scoreDisp=function(D)return D[1].." "..D[2].." Lines"end,
|
||||
|
||||
@@ -38,9 +38,9 @@ local function checkClear(P)
|
||||
end
|
||||
setField(P,D.finished+1)
|
||||
SYSFX.newShade(1.4,P.absFieldX,P.absFieldY,300*P.size,610*P.size,.6,.8,.6)
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
else
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -63,12 +63,12 @@ return{
|
||||
PLY.newPlayer(1)
|
||||
local AItype=ENV.opponent:sub(1,2)
|
||||
local AIlevel=tonumber(ENV.opponent:sub(-1))
|
||||
if AItype=="9S"then
|
||||
if AItype=='9S'then
|
||||
ENV.target=nil
|
||||
PLY.newAIPlayer(2,AIBUILDER("9S",2*AIlevel))
|
||||
elseif AItype=="CC"then
|
||||
PLY.newAIPlayer(2,AIBUILDER('9S',2*AIlevel))
|
||||
elseif AItype=='CC'then
|
||||
ENV.target=nil
|
||||
PLY.newAIPlayer(2,AIBUILDER("CC",2*AIlevel-1,math.floor(AIlevel*.5+1),true,20000+5000*AIlevel))
|
||||
PLY.newAIPlayer(2,AIBUILDER('CC',2*AIlevel-1,math.floor(AIlevel*.5+1),true,20000+5000*AIlevel))
|
||||
end
|
||||
|
||||
for _,P in next,PLY_ALIVE do
|
||||
|
||||
@@ -23,11 +23,11 @@ local function puzzleCheck(P)
|
||||
P.field[_],P.visTime[_]=nil
|
||||
end
|
||||
SYSFX.newShade(1.4,P.absFieldX,P.absFieldY,300*P.size,610*P.size,.3,1,.3)
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
D.showMark=0
|
||||
else
|
||||
D.showMark=1
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -43,17 +43,17 @@ return{
|
||||
local ENV=GAME.modeEnv
|
||||
local AItype=ENV.opponent:sub(1,2)
|
||||
local AIlevel=tonumber(ENV.opponent:sub(-1))
|
||||
if AItype=="9S"then
|
||||
PLY.newAIPlayer(2,AIBUILDER("9S",2*AIlevel))
|
||||
elseif AItype=="CC"then
|
||||
PLY.newAIPlayer(2,AIBUILDER("CC",2*AIlevel-1,math.floor(AIlevel*.5+1),true,20000+5000*AIlevel))
|
||||
if AItype=='9S'then
|
||||
PLY.newAIPlayer(2,AIBUILDER('9S',2*AIlevel))
|
||||
elseif AItype=='CC'then
|
||||
PLY.newAIPlayer(2,AIBUILDER('CC',2*AIlevel-1,math.floor(AIlevel*.5+1),true,20000+5000*AIlevel))
|
||||
end
|
||||
end,
|
||||
mesDisp=function(P)
|
||||
setFont(55)
|
||||
mStr(P.stat.row,69,225)
|
||||
mText(drawableText.line,69,290)
|
||||
gc.push("transform")
|
||||
gc.push('transform')
|
||||
PLY.draw.applyFieldOffset(P)
|
||||
if P.modeData.showMark==0 then
|
||||
local mark=TEXTURE.puzzleMark
|
||||
|
||||
@@ -24,15 +24,15 @@ return{
|
||||
if D.wave<=75 then
|
||||
D.rpm=math.floor(144e3/t)*.1
|
||||
if D.wave==25 then
|
||||
P:showTextF(text.great,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.great,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=3
|
||||
P.dropDelay,P.gameEnv.drop=4,4
|
||||
elseif D.wave==50 then
|
||||
P:showTextF(text.awesome,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.awesome,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=4
|
||||
P.dropDelay,P.gameEnv.drop=3,3
|
||||
elseif D.wave==75 then
|
||||
P:showTextF(text.maxspeed,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.maxspeed,0,-140,100,'appear',.6)
|
||||
P.dropDelay,P.gameEnv.drop=2,2
|
||||
end
|
||||
end
|
||||
@@ -40,7 +40,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="rainbow2",bgm="storm",
|
||||
bg='rainbow2',bgm='storm',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -24,23 +24,23 @@ return{
|
||||
if D.wave<=90 then
|
||||
D.rpm=math.floor(108e3/t)*.1
|
||||
if D.wave==25 then
|
||||
P:showTextF(text.great,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.great,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=2
|
||||
P.dropDelay,P.gameEnv.drop=20,20
|
||||
elseif D.wave==50 then
|
||||
P:showTextF(text.awesome,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.awesome,0,-140,100,'appear',.6)
|
||||
P.gameEnv.pushSpeed=3
|
||||
P.dropDelay,P.gameEnv.drop=10,10
|
||||
elseif D.wave==90 then
|
||||
P.dropDelay,P.gameEnv.drop=5,5
|
||||
P:showTextF(text.maxspeed,0,-140,100,"appear",.6)
|
||||
P:showTextF(text.maxspeed,0,-140,100,'appear',.6)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="rainbow2",bgm="storm",
|
||||
bg='rainbow2',bgm='storm',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,7 +3,7 @@ local function check_rise(P)
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
if P.stat.dig==100 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ return{
|
||||
env={
|
||||
pushSpeed=6,
|
||||
dropPiece=check_rise,
|
||||
bg="bg2",bgm="way",
|
||||
bg='bg2',bgm='way',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
local function check_rise(P)
|
||||
if P.stat.dig==10 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,7 +9,7 @@ return{
|
||||
env={
|
||||
pushSpeed=6,
|
||||
dropPiece=check_rise,
|
||||
bg="bg1",bgm="way",
|
||||
bg='bg1',bgm='way',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -3,7 +3,7 @@ local function check_rise(P)
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
if P.stat.dig==400 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ return{
|
||||
env={
|
||||
pushSpeed=6,
|
||||
dropPiece=check_rise,
|
||||
bg="bg2",bgm="way",
|
||||
bg='bg2',bgm='way',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -3,7 +3,7 @@ local function check_rise(P)
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
if P.stat.dig==40 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ return{
|
||||
env={
|
||||
pushSpeed=6,
|
||||
dropPiece=check_rise,
|
||||
bg="bg1",bgm="way",
|
||||
bg='bg1',bgm='way',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -19,7 +19,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="bg2",bgm="down",
|
||||
bg='bg2',bgm='down',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -18,7 +18,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="bg2",bgm="down",
|
||||
bg='bg2',bgm='down',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -75,11 +75,11 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
nextCount=1,holdCount=0,
|
||||
ospin=false,
|
||||
freshLimit=15,
|
||||
bg="blockfall",bgm="reason",
|
||||
bg='blockfall',bgm='reason',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,13 +3,13 @@ return{
|
||||
color=COLOR.green,
|
||||
env={
|
||||
drop=20,lock=60,
|
||||
sequence="bag",
|
||||
sequence='bag',
|
||||
seqData={1,1,2,2,3,3,4,4,5,5,6,6},
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
nextCount=3,
|
||||
ospin=false,
|
||||
freshLimit=15,
|
||||
bg="blockfall",bgm="reason",
|
||||
bg='blockfall',bgm='reason',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
env={
|
||||
drop=1e99,lock=1e99,
|
||||
infHold=true,
|
||||
bg="blockfall",bgm="infinite",
|
||||
bg='blockfall',bgm='infinite',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -3,9 +3,9 @@ local function check_rise(P)
|
||||
if #P.clearedRow==0 then
|
||||
if L>0 then
|
||||
if L<3 then
|
||||
P:showTextF(text.almost,0,-120,80,"beat",.8)
|
||||
P:showTextF(text.almost,0,-120,80,'beat',.8)
|
||||
elseif L<5 then
|
||||
P:showTextF(text.great,0,-120,80,"fly",.8)
|
||||
P:showTextF(text.great,0,-120,80,'fly',.8)
|
||||
end
|
||||
end
|
||||
for _=1,8-L do
|
||||
@@ -13,8 +13,8 @@ local function check_rise(P)
|
||||
end
|
||||
else
|
||||
if L==0 then
|
||||
P:showTextF(text.awesome,0,-120,80,"beat",.6)
|
||||
SFX.play("clear")
|
||||
P:showTextF(text.awesome,0,-120,80,'beat',.6)
|
||||
SFX.play('clear')
|
||||
BG.send(26)
|
||||
for _=1,8 do
|
||||
P:garbageRise(13,1,generateLine(P:RND(10)))
|
||||
@@ -32,7 +32,7 @@ return{
|
||||
infHold=true,
|
||||
dropPiece=check_rise,
|
||||
pushSpeed=1.2,
|
||||
bg="wing",bgm="dream",
|
||||
bg='wing',bgm='dream',
|
||||
},
|
||||
load=function()
|
||||
PLY.newPlayer(1)
|
||||
|
||||
@@ -9,26 +9,26 @@ return{
|
||||
task=function(P)P.modeData.target=10 end,
|
||||
dropPiece=function(P)
|
||||
if P.combo>1 or P.b2b>0 or P.lastPiece.row>1 then
|
||||
if P.combo>1 then P:showText("2x",0,-220,40,"flicker",.3)end
|
||||
if P.b2b>0 then P:showText("spin",0,-160,40,"flicker",.3)end
|
||||
if P.lastPiece.row>1 then P:showText("1+",0,-100,40,"flicker",.3)end
|
||||
if P.combo>1 then P:showText("2x",0,-220,40,'flicker',.3)end
|
||||
if P.b2b>0 then P:showText("spin",0,-160,40,'flicker',.3)end
|
||||
if P.lastPiece.row>1 then P:showText("1+",0,-100,40,'flicker',.3)end
|
||||
P:lose()
|
||||
return
|
||||
end
|
||||
local T=P.modeData.target
|
||||
if P.stat.row>=T then
|
||||
if T==200 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
else
|
||||
T=T+10
|
||||
P.gameEnv.drop=dropSpeed[T/10]
|
||||
P.modeData.target=T
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
end,
|
||||
mindas=7,minarr=1,minsdarr=1,
|
||||
bg="bg2",bgm="sugar fairy",
|
||||
bg='bg2',bgm='sugar fairy',
|
||||
},
|
||||
pauseLimit=true,
|
||||
slowMark=true,
|
||||
@@ -39,7 +39,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.stat.row,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
|
||||
@@ -12,17 +12,17 @@ return{
|
||||
if P.modeData.target==50 then
|
||||
P.gameEnv.drop=.25
|
||||
P.modeData.target=100
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif P.modeData.target==100 then
|
||||
P:set20G(true)
|
||||
P.modeData.target=200
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
else
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="cubes",bgm="push",
|
||||
bg='cubes',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
slowMark=true,
|
||||
@@ -33,7 +33,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.stat.row,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||
|
||||
@@ -10,16 +10,16 @@ return{
|
||||
dropPiece=function(P)
|
||||
if P.stat.row>=P.modeData.target then
|
||||
if P.modeData.target==200 then
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
else
|
||||
P.gameEnv.drop=dropSpeed[P.modeData.target/10]
|
||||
P.modeData.target=P.modeData.target+10
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
end,
|
||||
mindas=7,minarr=1,minsdarr=1,
|
||||
bg="bg2",bgm="push",
|
||||
bg='bg2',bgm='push',
|
||||
},
|
||||
pauseLimit=true,
|
||||
slowMark=true,
|
||||
@@ -30,7 +30,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.stat.row,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{math.min(P.stat.row,200),P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Lines "..STRING.time(D[2])end,
|
||||
|
||||
@@ -14,11 +14,11 @@ local function score(P)
|
||||
D.pt=D.pt+s
|
||||
|
||||
if D.pt%100==99 then
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
elseif D.pt>=D.target then--Level up!
|
||||
s=D.target/100
|
||||
local E=P.gameEnv
|
||||
BG.set(s==1 and"rainbow"or s==2 and"rainbow2"or s==3 and"lightning"or s==4 and"lightning2"or"lightning")
|
||||
BG.set(s==1 and'rainbow'or s==2 and'rainbow2'or s==3 and'lightning'or s==4 and'lightning2'or'lightning')
|
||||
E.lock=death_lock[s]
|
||||
E.wait=death_wait[s]
|
||||
E.fall=death_fall[s]
|
||||
@@ -29,12 +29,12 @@ local function score(P)
|
||||
|
||||
if s==5 then
|
||||
D.pt=500
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
else
|
||||
D.target=D.target+100
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,"fly")
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,'fly')
|
||||
end
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -53,7 +53,7 @@ return{
|
||||
P.modeData.target=100
|
||||
end,
|
||||
freshLimit=15,
|
||||
bg="bg2",bgm="secret7th",
|
||||
bg='bg2',bgm='secret7th',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
@@ -63,7 +63,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.modeData.pt,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||
|
||||
@@ -14,11 +14,11 @@ local function score(P)
|
||||
D.pt=D.pt+s
|
||||
|
||||
if D.pt%100==99 then
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
elseif D.pt>=D.target then--Level up!
|
||||
s=D.target/100
|
||||
local E=P.gameEnv
|
||||
BG.set(s==1 and"bg1"or s==2 and"bg2"or s==3 and"rainbow"or "rainbow2")
|
||||
BG.set(s==1 and'bg1'or s==2 and'bg2'or s==3 and'rainbow'or 'rainbow2')
|
||||
E.lock=rush_lock[s]
|
||||
E.wait=rush_wait[s]
|
||||
E.fall=rush_fall[s]
|
||||
@@ -31,12 +31,12 @@ local function score(P)
|
||||
|
||||
if s==5 then
|
||||
D.pt=500
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
else
|
||||
D.target=D.target+100
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,"fly")
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,'fly')
|
||||
end
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -55,7 +55,7 @@ return{
|
||||
P.modeData.target=100
|
||||
end,
|
||||
freshLimit=15,
|
||||
bg="bg1",bgm="secret8th",
|
||||
bg='bg1',bgm='secret8th',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
@@ -65,7 +65,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.modeData.pt,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||
|
||||
@@ -19,7 +19,7 @@ return{
|
||||
drop=0,lock=15,
|
||||
wait=15,fall=6,
|
||||
nextCount=3,
|
||||
visible="fast",
|
||||
visible='fast',
|
||||
freshLimit=15,
|
||||
dropPiece=score,
|
||||
task=function(P)
|
||||
@@ -30,12 +30,12 @@ return{
|
||||
if P.stat.frame>=3600 then
|
||||
P.modeData.rankScore=math.min(P.modeData.rankScore+16,140)
|
||||
P.modeData.rankName=sectionName[math.floor(P.modeData.rankScore*.1)+1]
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
return
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="blockspace",bgm="far",
|
||||
bg='blockspace',bgm='far',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
|
||||
@@ -11,19 +11,19 @@ local function score(P)
|
||||
D.pt=D.pt+s
|
||||
|
||||
if D.pt%100==99 then
|
||||
SFX.play("blip_1")
|
||||
SFX.play('blip_1')
|
||||
elseif D.pt>=D.target then--Level up!
|
||||
s=D.target/100
|
||||
local E=P.gameEnv
|
||||
if s<4 then
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,"fly")
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,80,'fly')
|
||||
--First 300
|
||||
if s~=1 then E.lock=E.lock-1 end
|
||||
if s~=2 then E.wait=E.wait-1 end
|
||||
if s~=3 then E.fall=E.fall-1 end
|
||||
D.target=D.target+100
|
||||
elseif s<10 then
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,60,"fly",1.26)
|
||||
P:showTextF(text.stage:gsub("$1",s),0,-120,60,'fly',1.26)
|
||||
if s==4 or s==7 then E.das=E.das-1 end
|
||||
s=s%3
|
||||
if s==0 then E.lock=E.lock-1
|
||||
@@ -33,9 +33,9 @@ local function score(P)
|
||||
D.target=D.target+100
|
||||
else
|
||||
D.pt=1000
|
||||
P:win("finish")
|
||||
P:win('finish')
|
||||
end
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -53,7 +53,7 @@ return{
|
||||
end,
|
||||
freshLimit=15,
|
||||
easyFresh=false,bone=true,
|
||||
bg="lightning",bgm="distortion",
|
||||
bg='lightning',bgm='distortion',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
@@ -63,7 +63,7 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.modeData.pt,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
end,
|
||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])end,
|
||||
|
||||
@@ -8,7 +8,7 @@ return{
|
||||
drop=0,lock=15,
|
||||
wait=10,fall=10,
|
||||
nextCount=2,
|
||||
sequence="his4",
|
||||
sequence='his4',
|
||||
task=function(P)P.modeData.target=12 end,
|
||||
dropPiece=function(P)
|
||||
local p=P.modeData.pt+P.lastPiece.row
|
||||
@@ -29,7 +29,7 @@ return{
|
||||
P:setNext(4)
|
||||
|
||||
P.modeData.target=26
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif T==26 then--Stage 3: dig to bottom
|
||||
if not P.holdQueue[1]then P.life=P.life+1 end--1 up if ban hold
|
||||
P.waiting=45
|
||||
@@ -71,7 +71,7 @@ return{
|
||||
P:setNext(5)
|
||||
|
||||
P.modeData.target=42
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif T==42 then--Stage 4: survive in high speed
|
||||
if P.garbageBeneath==0 then
|
||||
P.waiting=30
|
||||
@@ -93,7 +93,7 @@ return{
|
||||
ENV.easyFresh=false
|
||||
|
||||
P.modeData.target=126
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif T==126 then--Stage 6: speed up
|
||||
P.life=P.life+1
|
||||
|
||||
@@ -111,7 +111,7 @@ return{
|
||||
P:setInvisible(180)
|
||||
|
||||
P.modeData.target=226
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif T==226 then--Stage 8: final invisible
|
||||
P.life=P.life+1
|
||||
|
||||
@@ -119,7 +119,7 @@ return{
|
||||
P:setInvisible(90)
|
||||
|
||||
P.modeData.target=259
|
||||
SFX.play("reach")
|
||||
SFX.play('reach')
|
||||
elseif T==259 then--Stage 9: ending
|
||||
P.life=P.life+1
|
||||
for i=1,7 do ENV.skin[i]=math.random(16)end
|
||||
@@ -132,7 +132,7 @@ return{
|
||||
|
||||
P.modeData.target=260
|
||||
p=260
|
||||
SFX.play("blip_2")
|
||||
SFX.play('blip_2')
|
||||
else
|
||||
p=260
|
||||
end
|
||||
@@ -142,7 +142,7 @@ return{
|
||||
mission={4,4,4,64},
|
||||
missionKill=true,
|
||||
freshLimit=12,
|
||||
bg="none",bgm="super7th",
|
||||
bg='none',bgm='super7th',
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
@@ -152,15 +152,15 @@ return{
|
||||
setFont(45)
|
||||
mStr(P.modeData.pt,69,320)
|
||||
mStr(P.modeData.target,69,370)
|
||||
gc.rectangle("fill",25,375,90,4)
|
||||
gc.rectangle('fill',25,375,90,4)
|
||||
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 "..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,
|
||||
getRank=function(P)
|
||||
local p=P.modeData.pt
|
||||
return
|
||||
P.result=="WIN"and 5 or
|
||||
P.result=='win'and 5 or
|
||||
p>=226 and 4 or
|
||||
p>=162 and 3 or
|
||||
p>=62 and 2 or
|
||||
|
||||
@@ -3,10 +3,10 @@ return{
|
||||
env={
|
||||
drop=60,lock=120,
|
||||
fall=10,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
ospin=false,
|
||||
bg="rgb",bgm="truth",
|
||||
bg='rgb',bgm='truth',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,10 +3,10 @@ return{
|
||||
env={
|
||||
drop=20,lock=60,
|
||||
fall=20,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
freshLimit=15,
|
||||
ospin=false,
|
||||
bg="rgb",bgm="truth",
|
||||
bg='rgb',bgm='truth',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
@@ -3,8 +3,8 @@ return{
|
||||
env={
|
||||
infHold=true,
|
||||
drop=150,lock=1e99,
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win("finish")end end,
|
||||
bg="rgb",bgm="truth",
|
||||
dropPiece=function(P)if P.stat.row>=100 then P:win('finish')end end,
|
||||
bg='rgb',bgm='truth',
|
||||
},
|
||||
pauseLimit=true,
|
||||
load=function()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user