Compare commits
21 Commits
pre0.17.2-
...
v0.17.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
baf36ac86b | ||
|
|
d8c058b0e1 | ||
|
|
6c69c38b32 | ||
|
|
d17e62e36b | ||
|
|
3a2ec3a5dd | ||
|
|
ce25f17676 | ||
|
|
61fe4a5897 | ||
|
|
f50e90b29b | ||
|
|
c151c1176f | ||
|
|
69491e2f8b | ||
|
|
4f4988d7ef | ||
|
|
9ee4af48da | ||
|
|
566ebbf213 | ||
|
|
b1ea222b90 | ||
|
|
d85f77b480 | ||
|
|
20f5d07d05 | ||
|
|
9864a75e0f | ||
|
|
af4cf9fc0d | ||
|
|
d0597e6836 | ||
|
|
61fb504b21 | ||
|
|
bd055a7c60 |
BIN
media/image/modeicon/dig_eff.png
Normal file
BIN
media/image/modeicon/dig_eff.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 969 B |
@@ -19,8 +19,8 @@ function back.draw()
|
|||||||
gc.clear(.08,.08,.084)
|
gc.clear(.08,.08,.084)
|
||||||
end
|
end
|
||||||
gc.push('transform')
|
gc.push('transform')
|
||||||
gc.translate(SCR.cx,SCR.cy+20*sin(t*.02))
|
gc.replaceTransform(SCR.xOy_m)
|
||||||
gc.scale(SCR.k)
|
gc.translate(0,20*sin(t*.02))
|
||||||
gc.scale(1.26,1.36)
|
gc.scale(1.26,1.36)
|
||||||
if -t%6.26<.1355 then
|
if -t%6.26<.1355 then
|
||||||
gc.translate(60*sin(t*.26),100*sin(t*.626))
|
gc.translate(60*sin(t*.26),100*sin(t*.626))
|
||||||
|
|||||||
@@ -1,3 +1,28 @@
|
|||||||
|
local function GetLevelStr(lvl)
|
||||||
|
local list={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","00","0A","14","1E","28","32","3C","46","50","5A","64","6E","78","82","8C","96","A0","AA","B4","BE","C6","20","E6","20","06","21","26","21","46","21","66","21","86","21","A6","21","C6","21","E6","21","06","22","26","22","46","22","66","22","86","22","A6","22","C6","22","E6","22","06","23","26","23","85","A8","29","F0","4A","4A","4A","4A","8D","07","20","A5","A8","29","0F","8D","07","20","60","A6","49","E0","15","10","53","BD","D6","96","A8","8A","0A","AA","E8","BD","EA","96","8D","06","20","CA","A5","BE","C9","01","F0","1E","A5","B9","C9","05","F0","0C","BD","EA","96","38","E9","02","8D","06","20","4C","67","97","BD","EA","96","18","69","0C","8D","06","20","4C","67","97","BD","EA","96","18","69","06","8D","06","20","A2","0A","B1","B8","8D","07","20","C8","CA","D0","F7","E6","49","A5","49","C9","14","30","04","A9","20","85","49","60","A5","B1","29","03","D0","78","A9","00","85","AA","A6","AA","B5","4A","F0","5C","0A","A8","B9","EA","96","85","A8","A5","BE","C9","01","D0","0A","A5","A8","18","69","06","85","A8","4C","BD","97","A5","B9","C9","04","D0","0A","A5","A8","38","E9","02","85","A8","4C","BD","97","A5","A8"}
|
||||||
|
list[0]="00"
|
||||||
|
lvl=lvl%256
|
||||||
|
return list[lvl]
|
||||||
|
end
|
||||||
|
local function GetGravity(lvl)
|
||||||
|
lvl=lvl%256
|
||||||
|
return
|
||||||
|
lvl==0 and 48 or
|
||||||
|
lvl==1 and 43 or
|
||||||
|
lvl==2 and 38 or
|
||||||
|
lvl==3 and 33 or
|
||||||
|
lvl==4 and 28 or
|
||||||
|
lvl==5 and 23 or
|
||||||
|
lvl==6 and 18 or
|
||||||
|
lvl==7 and 13 or
|
||||||
|
lvl==8 and 8 or
|
||||||
|
lvl==9 and 6 or
|
||||||
|
lvl<13 and 5 or
|
||||||
|
lvl<16 and 4 or
|
||||||
|
lvl<19 and 3 or
|
||||||
|
lvl<29 and 2 or
|
||||||
|
1
|
||||||
|
end
|
||||||
local gc_setColor=love.graphics.setColor
|
local gc_setColor=love.graphics.setColor
|
||||||
return{
|
return{
|
||||||
das=16,arr=6,
|
das=16,arr=6,
|
||||||
@@ -15,8 +40,7 @@ return{
|
|||||||
keyCancel={5,6},
|
keyCancel={5,6},
|
||||||
mesDisp=function(P)
|
mesDisp=function(P)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
local r=P.modeData.target/10
|
mStr(GetLevelStr(P.modeData.lvl),63,210)
|
||||||
mStr(r<10 and 9 or r<30 and r or("%02x"):format(r*10-300),63,210)
|
|
||||||
mText(TEXTOBJ.speedLV,63,290)
|
mText(TEXTOBJ.speedLV,63,290)
|
||||||
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
||||||
if P.modeData.drought>7 then
|
if P.modeData.drought>7 then
|
||||||
@@ -32,27 +56,22 @@ return{
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
task=function(P)
|
task=function(P)
|
||||||
|
P.modeData.lvl=9
|
||||||
P.modeData.target=10
|
P.modeData.target=10
|
||||||
end,
|
end,
|
||||||
hook_drop=function(P)
|
hook_drop=function(P)
|
||||||
local D=P.modeData
|
local D=P.modeData
|
||||||
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
||||||
if P.stat.row>=D.target then
|
if P.stat.row>=D.target then
|
||||||
if D.target==110 then
|
if D.target>=100 then
|
||||||
P.gameEnv.drop,P.gameEnv.lock=5,5
|
D.lvl=D.lvl+1
|
||||||
P.gameEnv.sddas,P.gameEnv.sdarr=5,5
|
end
|
||||||
|
local dropSpd=GetGravity(D.lvl)
|
||||||
|
if D.target==200 then P.win('finish') return
|
||||||
|
elseif dropSpd~=P.gameEnv.drop then
|
||||||
|
P.gameEnv.drop,P.gameEnv.lock=dropSpd,dropSpd
|
||||||
|
P.gameEnv.sddas,P.gameEnv.sdarr=dropSpd,dropSpd
|
||||||
SFX.play('warn_2',.7)
|
SFX.play('warn_2',.7)
|
||||||
elseif D.target==140 then
|
|
||||||
P.gameEnv.drop,P.gameEnv.lock=4,4
|
|
||||||
P.gameEnv.sddas,P.gameEnv.sdarr=4,4
|
|
||||||
SFX.play('warn_2',.7)
|
|
||||||
elseif D.target==170 then
|
|
||||||
P.gameEnv.drop,P.gameEnv.lock=3,3
|
|
||||||
P.gameEnv.sddas,P.gameEnv.sdarr=3,3
|
|
||||||
SFX.play('warn_2',.7)
|
|
||||||
elseif D.target==200 then
|
|
||||||
P:win('finish')
|
|
||||||
return
|
|
||||||
else
|
else
|
||||||
SFX.play('reach')
|
SFX.play('reach')
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,3 +1,28 @@
|
|||||||
|
local function GetLevelStr(lvl)
|
||||||
|
local list={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","00","0A","14","1E","28","32","3C","46","50","5A","64","6E","78","82","8C","96","A0","AA","B4","BE","C6","20","E6","20","06","21","26","21","46","21","66","21","86","21","A6","21","C6","21","E6","21","06","22","26","22","46","22","66","22","86","22","A6","22","C6","22","E6","22","06","23","26","23","85","A8","29","F0","4A","4A","4A","4A","8D","07","20","A5","A8","29","0F","8D","07","20","60","A6","49","E0","15","10","53","BD","D6","96","A8","8A","0A","AA","E8","BD","EA","96","8D","06","20","CA","A5","BE","C9","01","F0","1E","A5","B9","C9","05","F0","0C","BD","EA","96","38","E9","02","8D","06","20","4C","67","97","BD","EA","96","18","69","0C","8D","06","20","4C","67","97","BD","EA","96","18","69","06","8D","06","20","A2","0A","B1","B8","8D","07","20","C8","CA","D0","F7","E6","49","A5","49","C9","14","30","04","A9","20","85","49","60","A5","B1","29","03","D0","78","A9","00","85","AA","A6","AA","B5","4A","F0","5C","0A","A8","B9","EA","96","85","A8","A5","BE","C9","01","D0","0A","A5","A8","18","69","06","85","A8","4C","BD","97","A5","B9","C9","04","D0","0A","A5","A8","38","E9","02","85","A8","4C","BD","97","A5","A8"}
|
||||||
|
list[0]="00"
|
||||||
|
lvl=lvl%256
|
||||||
|
return list[lvl]
|
||||||
|
end
|
||||||
|
local function GetGravity(lvl)
|
||||||
|
lvl=lvl%256
|
||||||
|
return
|
||||||
|
lvl==0 and 48 or
|
||||||
|
lvl==1 and 43 or
|
||||||
|
lvl==2 and 38 or
|
||||||
|
lvl==3 and 33 or
|
||||||
|
lvl==4 and 28 or
|
||||||
|
lvl==5 and 23 or
|
||||||
|
lvl==6 and 18 or
|
||||||
|
lvl==7 and 13 or
|
||||||
|
lvl==8 and 8 or
|
||||||
|
lvl==9 and 6 or
|
||||||
|
lvl<13 and 5 or
|
||||||
|
lvl<16 and 4 or
|
||||||
|
lvl<19 and 3 or
|
||||||
|
lvl<29 and 2 or
|
||||||
|
1
|
||||||
|
end
|
||||||
local gc_setColor=love.graphics.setColor
|
local gc_setColor=love.graphics.setColor
|
||||||
return{
|
return{
|
||||||
das=16,arr=6,
|
das=16,arr=6,
|
||||||
@@ -15,8 +40,7 @@ return{
|
|||||||
keyCancel={5,6},
|
keyCancel={5,6},
|
||||||
mesDisp=function(P)
|
mesDisp=function(P)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
local r=P.modeData.target/10
|
mStr(GetLevelStr(P.modeData.lvl),63,210)
|
||||||
mStr(r<11 and 18 or r<22 and r+8 or("%02x"):format(r*10-220),63,210)
|
|
||||||
mText(TEXTOBJ.speedLV,63,290)
|
mText(TEXTOBJ.speedLV,63,290)
|
||||||
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
||||||
if P.modeData.drought>7 then
|
if P.modeData.drought>7 then
|
||||||
@@ -32,19 +56,22 @@ return{
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
task=function(P)
|
task=function(P)
|
||||||
|
P.modeData.lvl=18
|
||||||
P.modeData.target=10
|
P.modeData.target=10
|
||||||
end,
|
end,
|
||||||
hook_drop=function(P)
|
hook_drop=function(P)
|
||||||
local D=P.modeData
|
local D=P.modeData
|
||||||
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
||||||
if P.stat.row>=D.target then
|
if P.stat.row>=D.target then
|
||||||
if D.target==100 then
|
if D.target>=100 then
|
||||||
P.gameEnv.drop,P.gameEnv.lock=2,2
|
D.lvl=D.lvl+1
|
||||||
P.gameEnv.sddas,P.gameEnv.sdarr=2,2
|
end
|
||||||
|
local dropSpd=GetGravity(D.lvl)
|
||||||
|
if D.target==200 then P.win('finish') return
|
||||||
|
elseif dropSpd~=P.gameEnv.drop then
|
||||||
|
P.gameEnv.drop,P.gameEnv.lock=dropSpd,dropSpd
|
||||||
|
P.gameEnv.sddas,P.gameEnv.sdarr=dropSpd,dropSpd
|
||||||
SFX.play('warn_1')
|
SFX.play('warn_1')
|
||||||
elseif D.target==200 then
|
|
||||||
P:win('finish')
|
|
||||||
return
|
|
||||||
else
|
else
|
||||||
SFX.play('reach')
|
SFX.play('reach')
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,23 +1,46 @@
|
|||||||
|
local function GetLevelStr(lvl)
|
||||||
|
local list={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","00","0A","14","1E","28","32","3C","46","50","5A","64","6E","78","82","8C","96","A0","AA","B4","BE","C6","20","E6","20","06","21","26","21","46","21","66","21","86","21","A6","21","C6","21","E6","21","06","22","26","22","46","22","66","22","86","22","A6","22","C6","22","E6","22","06","23","26","23","85","A8","29","F0","4A","4A","4A","4A","8D","07","20","A5","A8","29","0F","8D","07","20","60","A6","49","E0","15","10","53","BD","D6","96","A8","8A","0A","AA","E8","BD","EA","96","8D","06","20","CA","A5","BE","C9","01","F0","1E","A5","B9","C9","05","F0","0C","BD","EA","96","38","E9","02","8D","06","20","4C","67","97","BD","EA","96","18","69","0C","8D","06","20","4C","67","97","BD","EA","96","18","69","06","8D","06","20","A2","0A","B1","B8","8D","07","20","C8","CA","D0","F7","E6","49","A5","49","C9","14","30","04","A9","20","85","49","60","A5","B1","29","03","D0","78","A9","00","85","AA","A6","AA","B5","4A","F0","5C","0A","A8","B9","EA","96","85","A8","A5","BE","C9","01","D0","0A","A5","A8","18","69","06","85","A8","4C","BD","97","A5","B9","C9","04","D0","0A","A5","A8","38","E9","02","85","A8","4C","BD","97","A5","A8"}
|
||||||
|
list[0]="00"
|
||||||
|
lvl=lvl%256
|
||||||
|
return list[lvl]
|
||||||
|
end
|
||||||
|
local function GetGravity(lvl)
|
||||||
|
lvl=lvl%256
|
||||||
|
return
|
||||||
|
lvl==0 and 48 or
|
||||||
|
lvl==1 and 43 or
|
||||||
|
lvl==2 and 38 or
|
||||||
|
lvl==3 and 33 or
|
||||||
|
lvl==4 and 28 or
|
||||||
|
lvl==5 and 23 or
|
||||||
|
lvl==6 and 18 or
|
||||||
|
lvl==7 and 13 or
|
||||||
|
lvl==8 and 8 or
|
||||||
|
lvl==9 and 6 or
|
||||||
|
lvl<13 and 5 or
|
||||||
|
lvl<16 and 4 or
|
||||||
|
lvl<19 and 3 or
|
||||||
|
lvl<29 and 2 or
|
||||||
|
1
|
||||||
|
end
|
||||||
local gc_setColor=love.graphics.setColor
|
local gc_setColor=love.graphics.setColor
|
||||||
return{
|
return{
|
||||||
das=16,arr=6,
|
das=16,arr=6,
|
||||||
sddas=2,sdarr=2,
|
sddas=2,sdarr=2,
|
||||||
irs=false,ims=false,
|
irs=false,ims=false,
|
||||||
drop=2,
|
drop=2,lock=2,
|
||||||
lock=2,
|
wait=10,fall=25,
|
||||||
wait=10,
|
|
||||||
fall=25,
|
|
||||||
freshLimit=0,
|
freshLimit=0,
|
||||||
fieldH=19,
|
fieldH=19,
|
||||||
nextCount=1,holdCount=0,
|
nextCount=1,
|
||||||
|
holdCount=0,
|
||||||
RS='Classic',
|
RS='Classic',
|
||||||
sequence='rnd',
|
sequence='rnd',
|
||||||
noTele=true,
|
noTele=true,
|
||||||
keyCancel={5,6},
|
keyCancel={5,6},
|
||||||
mesDisp=function(P)
|
mesDisp=function(P)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
local r=P.modeData.target/10
|
mStr(GetLevelStr(P.modeData.lvl),63,210)
|
||||||
mStr(r<11 and 19 or r<22 and r+9 or("%02x"):format(r*10-220),63,210)
|
|
||||||
mText(TEXTOBJ.speedLV,63,290)
|
mText(TEXTOBJ.speedLV,63,290)
|
||||||
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
||||||
if P.modeData.drought>7 then
|
if P.modeData.drought>7 then
|
||||||
@@ -33,19 +56,25 @@ return{
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
task=function(P)
|
task=function(P)
|
||||||
|
P.modeData.lvl=19
|
||||||
P.modeData.target=10
|
P.modeData.target=10
|
||||||
end,
|
end,
|
||||||
hook_drop=function(P)
|
hook_drop=function(P)
|
||||||
local D=P.modeData
|
local D=P.modeData
|
||||||
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
||||||
if P.stat.row>=D.target then
|
if P.stat.row>=D.target then
|
||||||
D.target=D.target+10
|
--if D.target>=200 then
|
||||||
if D.target==200 then
|
D.lvl=D.lvl+1
|
||||||
P.gameEnv.drop,P.gameEnv.lock=1,1
|
--end
|
||||||
SFX.play('blip_1')
|
local dropSpd=GetGravity(D.lvl)
|
||||||
|
if dropSpd~=P.gameEnv.drop then
|
||||||
|
P.gameEnv.drop,P.gameEnv.lock=dropSpd,dropSpd
|
||||||
|
P.gameEnv.sddas,P.gameEnv.sdarr=dropSpd,dropSpd
|
||||||
|
SFX.play('warn_1')
|
||||||
else
|
else
|
||||||
SFX.play('reach')
|
SFX.play('reach')
|
||||||
end
|
end
|
||||||
|
D.target=D.target+10
|
||||||
end
|
end
|
||||||
end,
|
end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,28 @@
|
|||||||
|
local function GetLevelStr(lvl)
|
||||||
|
local list={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","00","0A","14","1E","28","32","3C","46","50","5A","64","6E","78","82","8C","96","A0","AA","B4","BE","C6","20","E6","20","06","21","26","21","46","21","66","21","86","21","A6","21","C6","21","E6","21","06","22","26","22","46","22","66","22","86","22","A6","22","C6","22","E6","22","06","23","26","23","85","A8","29","F0","4A","4A","4A","4A","8D","07","20","A5","A8","29","0F","8D","07","20","60","A6","49","E0","15","10","53","BD","D6","96","A8","8A","0A","AA","E8","BD","EA","96","8D","06","20","CA","A5","BE","C9","01","F0","1E","A5","B9","C9","05","F0","0C","BD","EA","96","38","E9","02","8D","06","20","4C","67","97","BD","EA","96","18","69","0C","8D","06","20","4C","67","97","BD","EA","96","18","69","06","8D","06","20","A2","0A","B1","B8","8D","07","20","C8","CA","D0","F7","E6","49","A5","49","C9","14","30","04","A9","20","85","49","60","A5","B1","29","03","D0","78","A9","00","85","AA","A6","AA","B5","4A","F0","5C","0A","A8","B9","EA","96","85","A8","A5","BE","C9","01","D0","0A","A5","A8","18","69","06","85","A8","4C","BD","97","A5","B9","C9","04","D0","0A","A5","A8","38","E9","02","85","A8","4C","BD","97","A5","A8"}
|
||||||
|
list[0]="00"
|
||||||
|
lvl=lvl%256
|
||||||
|
return list[lvl]
|
||||||
|
end
|
||||||
|
local function GetGravity(lvl)
|
||||||
|
lvl=lvl%256
|
||||||
|
return
|
||||||
|
lvl==0 and 48 or
|
||||||
|
lvl==1 and 43 or
|
||||||
|
lvl==2 and 38 or
|
||||||
|
lvl==3 and 33 or
|
||||||
|
lvl==4 and 28 or
|
||||||
|
lvl==5 and 23 or
|
||||||
|
lvl==6 and 18 or
|
||||||
|
lvl==7 and 13 or
|
||||||
|
lvl==8 and 8 or
|
||||||
|
lvl==9 and 6 or
|
||||||
|
lvl<13 and 5 or
|
||||||
|
lvl<16 and 4 or
|
||||||
|
lvl<19 and 3 or
|
||||||
|
lvl<29 and 2 or
|
||||||
|
1
|
||||||
|
end
|
||||||
local gc_setColor=love.graphics.setColor
|
local gc_setColor=love.graphics.setColor
|
||||||
return{
|
return{
|
||||||
das=16,arr=6,
|
das=16,arr=6,
|
||||||
@@ -15,8 +40,7 @@ return{
|
|||||||
keyCancel={5,6},
|
keyCancel={5,6},
|
||||||
mesDisp=function(P)
|
mesDisp=function(P)
|
||||||
setFont(75)
|
setFont(75)
|
||||||
local r=P.modeData.target/10
|
mStr(GetLevelStr(P.modeData.lvl),63,210)
|
||||||
mStr(r==1 and 29 or("%02x"):format(r*10-20),63,210)
|
|
||||||
mText(TEXTOBJ.speedLV,63,290)
|
mText(TEXTOBJ.speedLV,63,290)
|
||||||
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
PLY.draw.drawProgress(P.stat.row,P.modeData.target)
|
||||||
if P.modeData.drought>7 then
|
if P.modeData.drought>7 then
|
||||||
@@ -32,18 +56,17 @@ return{
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
task=function(P)
|
task=function(P)
|
||||||
|
P.modeData.lvl=29
|
||||||
P.modeData.target=10
|
P.modeData.target=10
|
||||||
end,
|
end,
|
||||||
hook_drop=function(P)
|
hook_drop=function(P)
|
||||||
local D=P.modeData
|
local D=P.modeData
|
||||||
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
D.drought=P.lastPiece.id==7 and 0 or D.drought+1
|
||||||
if P.stat.row>=D.target then
|
if P.stat.row>=D.target then
|
||||||
if D.target==100 then
|
if D.target>=200 then P.win('finish') return end
|
||||||
P:win('finish')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
D.target=D.target+10
|
|
||||||
SFX.play('reach')
|
SFX.play('reach')
|
||||||
|
D.lvl=D.lvl+1
|
||||||
|
D.target=D.target+10
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ return{
|
|||||||
lock=30,
|
lock=30,
|
||||||
wait=23,
|
wait=23,
|
||||||
fall=25,
|
fall=25,
|
||||||
noTele=true,
|
keyCancel={10,11,12,14,15,16,17,18,19,20},
|
||||||
das=16,arr=1,
|
das=16,arr=1,
|
||||||
minsdarr=1,
|
minsdarr=1,
|
||||||
ihs=true,irs=true,ims=false,
|
ihs=true,irs=true,ims=false,
|
||||||
@@ -277,7 +277,7 @@ return{
|
|||||||
YIELD()
|
YIELD()
|
||||||
P.modeData.grade=getGrade()
|
P.modeData.grade=getGrade()
|
||||||
P.modeData.gradePts=math.max(math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList),1)
|
P.modeData.gradePts=math.max(math.min(math.floor(int_grade_boosts[math.min(int_grade+1,#int_grade_boosts)]+rollGrades+cools+1-regrets),#gradeList),1)
|
||||||
if P.stat.frame-prevSectTime > reg_time[math.ceil(P.modeData.pt/100+0.01)] then
|
if P.stat.frame-prevSectTime > reg_time[math.ceil(P.modeData.pt/100+0.01)] and not (isInRoll or isInRollTrans) then
|
||||||
regretList[math.ceil(P.modeData.pt/100)]=true
|
regretList[math.ceil(P.modeData.pt/100)]=true
|
||||||
end
|
end
|
||||||
if regretDelay>-1 then
|
if regretDelay>-1 then
|
||||||
|
|||||||
@@ -714,7 +714,7 @@ do--function resetGameData(args)
|
|||||||
local gameSetting={
|
local gameSetting={
|
||||||
--Tuning
|
--Tuning
|
||||||
'das','arr','dascut','dropcut','sddas','sdarr',
|
'das','arr','dascut','dropcut','sddas','sdarr',
|
||||||
'ihs','irs','ims','RS','FTLock',
|
'ihs','irs','ims','RS',
|
||||||
|
|
||||||
--System
|
--System
|
||||||
'skin','face',
|
'skin','face',
|
||||||
@@ -943,7 +943,7 @@ do--CUS/SETXXX(k)
|
|||||||
local warnList={
|
local warnList={
|
||||||
'das','arr','dascut','dropcut','sddas','sdarr',
|
'das','arr','dascut','dropcut','sddas','sdarr',
|
||||||
'ihs','irs','ims','RS',
|
'ihs','irs','ims','RS',
|
||||||
'FTLock','frameMul','highCam',
|
'frameMul','highCam',
|
||||||
'VKSwitch','VKIcon','VKTrack','VKDodge',
|
'VKSwitch','VKIcon','VKTrack','VKDodge',
|
||||||
'simpMode',
|
'simpMode',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -536,7 +536,6 @@ do--Game data tables
|
|||||||
ROOMENV={
|
ROOMENV={
|
||||||
--Room config
|
--Room config
|
||||||
capacity=10,
|
capacity=10,
|
||||||
FTLock=true,
|
|
||||||
|
|
||||||
--Basic
|
--Basic
|
||||||
drop=30,lock=60,
|
drop=30,lock=60,
|
||||||
@@ -591,7 +590,6 @@ do--Userdata tables
|
|||||||
ihs=true,irs=true,ims=true,
|
ihs=true,irs=true,ims=true,
|
||||||
holdMode='hold',
|
holdMode='hold',
|
||||||
RS='TRS',
|
RS='TRS',
|
||||||
FTLock=true,
|
|
||||||
|
|
||||||
--System
|
--System
|
||||||
reTime=2,
|
reTime=2,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,9 +4,14 @@ return{
|
|||||||
{"新人须知",
|
{"新人须知",
|
||||||
"读我 必读 萌新 xinren new noob readme",
|
"读我 必读 萌新 xinren new noob readme",
|
||||||
"help",
|
"help",
|
||||||
"致想深入玩下去的新人:\n\n\t两大根本原则:\n\t\t1. 选手感好的版本(Tech/Tetr.io/Jstris/TOP/Tetr.js),别用编程练习渣版本\n\t\t2. 踏实打好基础(预判next稳定消四等),别总想着炫酷T旋,对未来发展没好处。\n\t两大主要技巧:\n\t\t1. 熟悉初始位置以及到各个位置的初始操作;\n\t\t2. 提前计算好下一块能放哪。\n\n推荐阅读专栏《给TOP新人的几点建议》\n\n[点击右下角地球按钮打开链接]",
|
"致想深入玩下去的新人:\n\n\t两大根本原则:\n\t\t1. 选手感好的版本(Tech/Tetr.io/Jstris/TOP/Tetr.js),别用编程练习渣版本\n\t\t2. 踏实打好基础(预判next稳定消四等),别总想着炫酷T旋,对未来实力提升没好处。\n\t两大主要技巧:\n\t\t1. 熟悉初始位置以及到各个位置的初始操作;\n\t\t2. 提前计算好下一块能放哪。\n\n推荐阅读专栏《给TOP新人的几点建议》\n\n[点击右下角地球按钮打开链接]",
|
||||||
"https://bilibili.com/read/cv2352939",
|
"https://bilibili.com/read/cv2352939",
|
||||||
},
|
},
|
||||||
|
{"新人学习/练习路线",
|
||||||
|
"读我 必读 萌新 xinren new noob readme",
|
||||||
|
"help",
|
||||||
|
"以下是关于提升真正打块能力的指引,如果在以下任何项目练习过程中感到有困难,可以适当回去玩玩自己喜欢的项目。别忘了你是来“玩”游戏的,兴趣最重要。\n\n以下给出几个新手时期的主线任务树,前期主要就应该练习以下内容,学定式和T-Spin什么的对实力帮助很小(我们不认为靠定式对战秒其他萌新是有效实力):\n(注意,三段应当同时进行,不是A→B→C)\n\nA. 堆叠能力练习方法\n\tA1. 决定手上的块放哪的时候先别,看看下一块有没有地方放,如果放不下去,重新想手上的\n\tA2. 尝试把地形尽量控制得平整,因为比较平的地形来啥块都比较容易放得下去\n\nB. 操作效率与速度练习方法\n\tB1. 不要每一块都拿影子去对形状对位置,要自己想象这个块转一下是什么方向,想好了再开始按按键\n\tB2. 学习双旋,能逆时针转一次就不要顺时针转三次,费手\n\tB3. 学习极简,刚开始不用管速度,保证正确率最重要,养成良好习惯以后再提速快得很\n\nC. 堆叠能力考核\n\tC1. 稳定完成40行不死\n\tC2. 稳定不用hold完成40行\n\tC3. 稳定全消四完成40行\n\tC4. 稳定不用hold全消四完成40行\n\n以上都是根据社区和个人经验总结的模糊方法与目标,所以C的考核可以根据自身情况调整严格程度(例如“稳定”的具体成功率)。\n注:完成C的考核后,需要在未来一直注意没有上限的A1,这是方块的根本元素之一,强大的读next能力可以让你快速上手任何变种玩法。",
|
||||||
|
},
|
||||||
{"关于T-spin学习",
|
{"关于T-spin学习",
|
||||||
"T旋 T转 tspin",
|
"T旋 T转 tspin",
|
||||||
"help",
|
"help",
|
||||||
@@ -317,57 +322,57 @@ return{
|
|||||||
|
|
||||||
--术语(缩写)
|
--术语(缩写)
|
||||||
{"LPM",
|
{"LPM",
|
||||||
"sudu",
|
"速度 sudu",
|
||||||
"term",
|
"term",
|
||||||
"Line Per Minute\n行每分,体现玩家下块速度。\n\n注:不同游戏中显示的LPM算法可能不一样,例如TO中的LPM是用PPS换算的,每1PPS=24LPM,忽略掉了垃圾行的影响,不再是字面意思,本游戏中使用L’PM代表这种换算后的LPM。",
|
"Line Per Minute\n行每分,体现玩家下块速度。\n\n注:不同游戏中显示的LPM算法可能不一样,例如TO中的LPM是用PPS换算的,每1PPS=24LPM,忽略掉了垃圾行的影响,不再是字面意思,本游戏中使用L’PM代表这种换算后的LPM。",
|
||||||
},
|
},
|
||||||
{"PPS",
|
{"PPS",
|
||||||
"sudu",
|
"速度 sudu",
|
||||||
"term",
|
"term",
|
||||||
"Piece Per Second\n块每秒,体现玩家下块速度。",
|
"Piece Per Second\n块每秒,体现玩家下块速度。",
|
||||||
},
|
},
|
||||||
{"BPM",
|
{"BPM",
|
||||||
"sudu",
|
"速度 sudu",
|
||||||
"term",
|
"term",
|
||||||
"Block Per Minute\n块每分,体现玩家下块速度\n又称PPM(Piece Per Minute)",
|
"Block Per Minute\n块每分,体现玩家下块速度\n又称PPM(Piece Per Minute)",
|
||||||
},
|
},
|
||||||
{"KPM",
|
{"KPM",
|
||||||
"sudu",
|
"速度 sudu",
|
||||||
"term",
|
"term",
|
||||||
"Key Per Minute\n按键每分,体现玩家按键速度。",
|
"Key Per Minute\n按键每分,体现玩家按键速度。",
|
||||||
},
|
},
|
||||||
{"KPP",
|
{"KPP",
|
||||||
"anjian",
|
"按键 anjian",
|
||||||
"term",
|
"term",
|
||||||
"Key Per Piece\n按键每块,体现玩家操作是否繁琐。\n学会极简提升操作效率以减少此数字。",
|
"Key Per Piece\n按键每块,体现玩家操作是否繁琐。\n学会极简提升操作效率以减少此数字。",
|
||||||
},
|
},
|
||||||
{"APM",
|
{"APM",
|
||||||
"attack gongji",
|
"攻击 attack gongji",
|
||||||
"term",
|
"term",
|
||||||
"Attack Per Minute\n攻击每分,即玩家每分钟能打出的垃圾行数。\n一定程度体现玩家攻击力。",
|
"Attack Per Minute\n攻击每分,即玩家每分钟能打出的垃圾行数。\n一定程度体现玩家攻击力。",
|
||||||
},
|
},
|
||||||
{"SPM",
|
{"SPM",
|
||||||
"send gongji",
|
"发送 送出 发出 send gongji",
|
||||||
"term",
|
"term",
|
||||||
"Send Per Minute\n送出每分,即玩家每分钟实际打出去给对手的垃圾行数。\n一定程度体现玩家给对手实际造成的攻击力。",
|
"Send Per Minute\n送出每分,即玩家每分钟实际打出去给对手的垃圾行数。\n一定程度体现玩家给对手实际造成的攻击力。",
|
||||||
},
|
},
|
||||||
{"DPM",
|
{"DPM",
|
||||||
"dig defend",
|
"挖掘 防御 防守 dig defend",
|
||||||
"term",
|
"term",
|
||||||
"Dig/Defend Per Minute\n挖掘每分,即玩家每分钟向下挖掘的垃圾行数。\n某些时候可以体现玩家生存能力。\n\n或:防御(抵消+挖掘)每分。",
|
"Dig/Defend Per Minute\n挖掘每分,即玩家每分钟向下挖掘的垃圾行数。\n某些时候可以体现玩家生存能力。\n\n或:防御(抵消+挖掘)每分。",
|
||||||
},
|
},
|
||||||
{"RPM",
|
{"RPM",
|
||||||
"receive jieshou",
|
"接收 接受 receive jieshou",
|
||||||
"term",
|
"term",
|
||||||
"Receive Per Minute\n接收每分,即玩家每分钟收到来自对手的垃圾行数。\n一定程度体现玩家被对手施加的压力。",
|
"Receive Per Minute\n接收每分,即玩家每分钟收到来自对手的垃圾行数。\n一定程度体现玩家被对手施加的压力。",
|
||||||
},
|
},
|
||||||
{"ADPM",
|
{"ADPM",
|
||||||
"attack defend vs",
|
"攻击 防御 防守 attack defend vs",
|
||||||
"term",
|
"term",
|
||||||
"Atk+Dig Per Minute\n攻击+挖掘每分,用于在同一局游戏内对比玩家间水平差距,比APM更准确一些。在TETR.IO中叫VS的数据就是ADPM(调整过比例,具体是Atk + Dig per 100s)",
|
"Atk+Dig Per Minute\n攻击+挖掘每分,用于在同一局游戏内对比玩家间水平差距,比APM更准确一些。在TETR.IO中叫VS的数据就是ADPM(调整过比例,具体是Atk + Dig per 100s)",
|
||||||
},
|
},
|
||||||
{"APL",
|
{"APL",
|
||||||
"xiaolv",
|
"效率 xiaolv",
|
||||||
"term",
|
"term",
|
||||||
"Attack Per Line\n攻击每行,也叫效率,体现玩家攻击的行利用率。",
|
"Attack Per Line\n攻击每行,也叫效率,体现玩家攻击的行利用率。",
|
||||||
},
|
},
|
||||||
@@ -619,7 +624,7 @@ return{
|
|||||||
"在……之下\n用于表示成绩,单位一般可不写,比如40L成绩Sub 30是秒,1000行Sub 15是分钟,不写项目默认是40L\n\n例:39.95s是Sub 40,40.###s不是Sub 40。\n请不要使用Sub 62之类的词,因为sub本身就是表示大约, 一分钟左右的成绩精确到5~10s就可以了,一般30s以内的成绩用sub## 的时候才会精确到1s。",
|
"在……之下\n用于表示成绩,单位一般可不写,比如40L成绩Sub 30是秒,1000行Sub 15是分钟,不写项目默认是40L\n\n例:39.95s是Sub 40,40.###s不是Sub 40。\n请不要使用Sub 62之类的词,因为sub本身就是表示大约, 一分钟左右的成绩精确到5~10s就可以了,一般30s以内的成绩用sub## 的时候才会精确到1s。",
|
||||||
},
|
},
|
||||||
{"挖掘 Dig",
|
{"挖掘 Dig",
|
||||||
"downstack ds wajue",
|
"挖掘 downstack ds wajue",
|
||||||
"term",
|
"term",
|
||||||
"指消除从场地底部进入的垃圾行(对手攻击打过来或者模式中自动生成)。也叫downstack(DS)。",
|
"指消除从场地底部进入的垃圾行(对手攻击打过来或者模式中自动生成)。也叫downstack(DS)。",
|
||||||
},
|
},
|
||||||
@@ -854,11 +859,6 @@ return{
|
|||||||
"term",
|
"term",
|
||||||
"(七个块初始权重设为0)\n要取块的时候,\n先把七个数都除以2然后加上0~1的随机数,\n最大的数字是第几个的就出对应的块,然后将其权重除以3.5\n循环。",--Discovered by zxc
|
"(七个块初始权重设为0)\n要取块的时候,\n先把七个数都除以2然后加上0~1的随机数,\n最大的数字是第几个的就出对应的块,然后将其权重除以3.5\n循环。",--Discovered by zxc
|
||||||
},
|
},
|
||||||
{"C2踢墙",
|
|
||||||
"kick",
|
|
||||||
"term",
|
|
||||||
"左,右,下,左下,右下,左2,右2\n(任何方块的任何旋转都使用这个表)。",
|
|
||||||
},
|
|
||||||
{"堆叠 Stack",
|
{"堆叠 Stack",
|
||||||
"duidie stacking",
|
"duidie stacking",
|
||||||
"term",
|
"term",
|
||||||
@@ -965,7 +965,8 @@ return{
|
|||||||
{"QT炮",
|
{"QT炮",
|
||||||
"qt cannon",
|
"qt cannon",
|
||||||
"setup",
|
"setup",
|
||||||
"QT炮,细节未知。",
|
"一种能以更高的概率搭出开局DT Attack的类似DT炮的定式。"..HDwiki,
|
||||||
|
HDsearch.."dt",
|
||||||
},
|
},
|
||||||
{"MT",
|
{"MT",
|
||||||
"mt",
|
"mt",
|
||||||
@@ -1003,9 +1004,10 @@ return{
|
|||||||
HDsearch.."godspin",
|
HDsearch.."godspin",
|
||||||
},
|
},
|
||||||
{"信天翁",
|
{"信天翁",
|
||||||
"xintianweng",
|
"xintianweng albatross",
|
||||||
"setup",
|
"setup",
|
||||||
"一种高观赏性几乎不浪费T的快节奏强力T2-T3-T2-PC开局。",
|
"一种高观赏性几乎不浪费T的快节奏强力T2-T3-T2-PC开局。"..HDwiki,
|
||||||
|
HDsearch.."Albatross_Special",
|
||||||
},
|
},
|
||||||
{"鹈鹕",
|
{"鹈鹕",
|
||||||
"tihu",
|
"tihu",
|
||||||
@@ -1013,9 +1015,22 @@ return{
|
|||||||
"一种类似信天翁的定式,在块序不能信天翁的时候可以用。",
|
"一种类似信天翁的定式,在块序不能信天翁的时候可以用。",
|
||||||
},
|
},
|
||||||
{"七巧板",
|
{"七巧板",
|
||||||
"qiqiaoban",
|
"qiqiaoban tangram",
|
||||||
"setup",
|
"setup",
|
||||||
"一种极大概率能摆出来并且很大概率能做到PC的定式,本游戏中的pc练习中空出不规则区域的那个就是七巧板。",
|
"一种极大概率能摆出来并且很大概率能做到PC的定式,本游戏中的pc练习中空出不规则区域的那个就是七巧板。"..HDwiki,
|
||||||
|
HDsearch.."Perfect_Clear_Opener",
|
||||||
|
},
|
||||||
|
{"DPC",
|
||||||
|
"DPC",
|
||||||
|
"setup",
|
||||||
|
"在场地空白,1bag还剩一块的情况下,能够100%搭成的TSD+PC的定式。常见于开局三包PC的后续。"..HDwiki,
|
||||||
|
HDsearch.."DPC_Setups",
|
||||||
|
},
|
||||||
|
{"Gamushiro堆叠",
|
||||||
|
"gamushiro",
|
||||||
|
"setup",
|
||||||
|
"ガムシロ積み(Gamushiro堆叠),一种开局TD-Attack的定式。"..HDwiki,
|
||||||
|
HDsearch.."Gamushiro_Stacking",
|
||||||
},
|
},
|
||||||
|
|
||||||
--形状
|
--形状
|
||||||
@@ -1042,6 +1057,12 @@ return{
|
|||||||
"STMB cave\n在高空3宽坑架SZ捐一个T2的形状。"..HDwiki,
|
"STMB cave\n在高空3宽坑架SZ捐一个T2的形状。"..HDwiki,
|
||||||
HDsearch.."stmb_cave",
|
HDsearch.."stmb_cave",
|
||||||
},
|
},
|
||||||
|
{"双刃剑",
|
||||||
|
"shuangrenjian fractal spider",
|
||||||
|
"pattern",
|
||||||
|
"两个T2形状叠在一起。"..HDwiki,
|
||||||
|
HDsearch.."Fractal",
|
||||||
|
},
|
||||||
{"LST堆叠",
|
{"LST堆叠",
|
||||||
"lst",
|
"lst",
|
||||||
"pattern",
|
"pattern",
|
||||||
@@ -1061,14 +1082,15 @@ return{
|
|||||||
HDsearch.."imperial_cross",
|
HDsearch.."imperial_cross",
|
||||||
},
|
},
|
||||||
{"雨宫炮",
|
{"雨宫炮",
|
||||||
"yugong",
|
"yugong amemiya",
|
||||||
"pattern",
|
"pattern",
|
||||||
"一种捐T2后可消四的形状,常见于DT的一个分支。",
|
"一种捐T2后可消四的形状,常见于DT的一个分支。",
|
||||||
},
|
},
|
||||||
{"千鸟格子",
|
{"千鸟格子",
|
||||||
"qianniaoge",
|
"qianniaoge",
|
||||||
"pattern",
|
"pattern",
|
||||||
"一种在小洞上捐一个T2后还能做一个T2的形状。",
|
"一种在小洞上捐一个T2后还能做一个T2的形状。"..HDwiki,
|
||||||
|
HDsearch.."Cut_copy",
|
||||||
},
|
},
|
||||||
{"六巧板",
|
{"六巧板",
|
||||||
"liuqiaoban",
|
"liuqiaoban",
|
||||||
@@ -1076,9 +1098,10 @@ return{
|
|||||||
"一种常用于增加中局PC概率的形状,本游戏中的PC练习中空出4×4方形区域就是六巧板。",
|
"一种常用于增加中局PC概率的形状,本游戏中的PC练习中空出4×4方形区域就是六巧板。",
|
||||||
},
|
},
|
||||||
{"绯红之王",
|
{"绯红之王",
|
||||||
"feihongzhiwang",
|
"feihongzhiwang king crimson",
|
||||||
"pattern",
|
"pattern",
|
||||||
"在STSD上叠若干个T3的形状。",
|
"在STSD上叠若干个T3的形状。"..HDwiki,
|
||||||
|
HDsearch.."King_Crimson",
|
||||||
},
|
},
|
||||||
|
|
||||||
--存档管理
|
--存档管理
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ return{
|
|||||||
sureReset="Press again to reset",
|
sureReset="Press again to reset",
|
||||||
sureDelete="Press again to delete",
|
sureDelete="Press again to delete",
|
||||||
newDay="A new day, a new beginning!",
|
newDay="A new day, a new beginning!",
|
||||||
playedLong="You have been playing for a long time. Time to a break!",
|
playedLong="You have been playing for a long time. Time to take a break!",
|
||||||
playedTooMuch="You have been playing for far too long! Techmino is fun, but remember to take some rests!",
|
playedTooMuch="You have been playing for far too long! Techmino is fun, but remember to take some rests!",
|
||||||
settingWarn="Careful - you’re about to change some uncommon settings!",
|
settingWarn="Careful — you’re about to change some uncommon settings!",
|
||||||
|
|
||||||
atkModeName={"Random","Badges","K.O.s","Attackers"},
|
atkModeName={"Random","Badges","K.O.s","Attackers"},
|
||||||
royale_remain="$1 Players Left",
|
royale_remain="$1 Players Left",
|
||||||
@@ -59,7 +59,7 @@ return{
|
|||||||
finesse_ap="All Perfect",
|
finesse_ap="All Perfect",
|
||||||
finesse_fc="Full Combo",
|
finesse_fc="Full Combo",
|
||||||
|
|
||||||
page="Page:",
|
page="Page ",
|
||||||
|
|
||||||
cc_fixed="CC is incompatible with fixed sequences.",
|
cc_fixed="CC is incompatible with fixed sequences.",
|
||||||
cc_swap="CC is incompatible when the hold mode is set to Swap.",
|
cc_swap="CC is incompatible when the hold mode is set to Swap.",
|
||||||
@@ -459,7 +459,6 @@ return{
|
|||||||
atkFX="Atk FX",
|
atkFX="Atk FX",
|
||||||
|
|
||||||
frame="Render Frame Rate (%)",
|
frame="Render Frame Rate (%)",
|
||||||
FTlock="Frame skip",
|
|
||||||
|
|
||||||
text="Line Clear Pop-Ups",
|
text="Line Clear Pop-Ups",
|
||||||
score="Score Pop-Ups",
|
score="Score Pop-Ups",
|
||||||
@@ -688,6 +687,7 @@ return{
|
|||||||
register="Sign Up",
|
register="Sign Up",
|
||||||
email="Email Address",
|
email="Email Address",
|
||||||
password="Password",
|
password="Password",
|
||||||
|
showEmail="Show Email",
|
||||||
keepPW="Remember me",
|
keepPW="Remember me",
|
||||||
login="Log In",
|
login="Log In",
|
||||||
},
|
},
|
||||||
@@ -756,108 +756,112 @@ return{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
modes={
|
modes={
|
||||||
['sprint_10l']= {"Sprint", "10L", "Clear 10 lines!"},
|
['sprint_10l']= {"Sprint", "10L", "Clear 10 lines!"},
|
||||||
['sprint_20l']= {"Sprint", "20L", "Clear 20 lines!"},
|
['sprint_20l']= {"Sprint", "20L", "Clear 20 lines!"},
|
||||||
['sprint_40l']= {"Sprint", "40L", "Clear 40 lines!"},
|
['sprint_40l']= {"Sprint", "40L", "Clear 40 lines!"},
|
||||||
['sprint_100l']= {"Sprint", "100L", "Clear 100 lines!"},
|
['sprint_100l']= {"Sprint", "100L", "Clear 100 lines!"},
|
||||||
['sprint_400l']= {"Sprint", "400L", "Clear 400 lines!"},
|
['sprint_400l']= {"Sprint", "400L", "Clear 400 lines!"},
|
||||||
['sprint_1000l']= {"Sprint", "1,000L", "Clear 1,000 lines!"},
|
['sprint_1000l']= {"Sprint", "1,000L", "Clear 1,000 lines!"},
|
||||||
['sprintPenta']= {"Sprint", "PENTOMINO", "40L with 18 pentominoes"},
|
['sprintPenta']= {"Sprint", "PENTOMINO", "40L with 18 pentominoes"},
|
||||||
['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
|
||||||
['sprint123']= {"Sprint", "M123", "40L with only monominoes, dominoes, and triminoes"},
|
['sprint123']= {"Sprint", "M123", "40L with only monominoes, dominoes, and triminoes"},
|
||||||
['secret_grade']= {"Secret Grade", "", "Build a zig-zag hole formation, following to the guide!"},
|
['secret_grade']= {"Secret Grade", "", "Build a zig-zag hole formation, following to the guide!"},
|
||||||
['dig_10l']= {"Dig", "10L", "Dig 10 garbage lines"},
|
['dig_10l']= {"Dig", "10L", "Dig 10 garbage lines as fast as you can!"},
|
||||||
['dig_40l']= {"Dig", "40L", "Dig 40 garbage lines"},
|
['dig_40l']= {"Dig", "40L", "Dig 40 garbage lines as fast as you can!"},
|
||||||
['dig_100l']= {"Dig", "100L", "Dig 100 garbage lines"},
|
['dig_100l']= {"Dig", "100L", "Dig 100 garbage lines as fast as you can!"},
|
||||||
['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines"},
|
['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines as fast as you can!"},
|
||||||
['drought_n']= {"Drought", "100L", "No I-pieces available"},
|
['dig_eff_10l']= {"Dig", "EFFICIENCY 10L", "Dig 10 garbage lines with the least pieces!"},
|
||||||
['drought_l']= {"Drought+", "100L", "W T F"},
|
['dig_eff_40l']= {"Dig", "EFFICIENCY 40L", "Dig 40 garbage lines with the least pieces!"},
|
||||||
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"},
|
['dig_eff_100l']= {"Dig", "EFFICIENCY 100L","Dig 100 garbage lines with the least pieces!"},
|
||||||
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"},
|
['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Dig 400 garbage lines with the least pieces!"},
|
||||||
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},
|
['drought_n']= {"Drought", "100L", "No I-pieces available"},
|
||||||
['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"},
|
['drought_l']= {"Drought+", "100L", "W T F"},
|
||||||
['solo_h']= {"Battle", "HARD", "Defeat the AI!"},
|
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"},
|
||||||
['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"},
|
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"},
|
||||||
['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"},
|
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},
|
||||||
['techmino49_e']= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins"},
|
['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"},
|
||||||
['techmino49_h']= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins"},
|
['solo_h']= {"Battle", "HARD", "Defeat the AI!"},
|
||||||
['techmino49_u']= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"},
|
['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"},
|
||||||
['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins"},
|
['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"},
|
||||||
['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins"},
|
['techmino49_e']= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins"},
|
||||||
['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"},
|
['techmino49_h']= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins"},
|
||||||
['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"},
|
['techmino49_u']= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"},
|
||||||
['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"},
|
['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins"},
|
||||||
['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"},
|
['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins"},
|
||||||
['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play against the AI!"},
|
['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"},
|
||||||
['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play against the AI!"},
|
['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"},
|
||||||
['big_n']= {"Big", "NORMAL", "Play in a smaller field!"},
|
['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"},
|
||||||
['big_h']= {"Big", "HARD", "Play in a smaller field!"},
|
['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"},
|
||||||
['master_n']= {"Master", "NORMAL", "For 20G beginners"},
|
['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play against the AI!"},
|
||||||
['master_h']= {"Master", "HARD", "For 20G pros"},
|
['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play against the AI!"},
|
||||||
['master_m']= {"Master", "M21", "For 20G Masters"},
|
['big_n']= {"Big", "NORMAL", "Play in a smaller field!"},
|
||||||
['master_final']= {"Master", "FINAL", "20G and beyond"},
|
['big_h']= {"Big", "HARD", "Play in a smaller field!"},
|
||||||
['master_ph']= {"Master", "PHANTASM", "???"},
|
['master_n']= {"Master", "NORMAL", "For 20G beginners"},
|
||||||
['master_g']= {"Master", "GRADED", "Get the highest grade you can!"},
|
['master_h']= {"Master", "HARD", "For 20G pros"},
|
||||||
['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant"},
|
['master_m']= {"Master", "M21", "For 20G Masters"},
|
||||||
['master_instinct']={"Master", "INSTINCT", "What if the active piece turned invisible?"},
|
['master_final']= {"Master", "FINAL", "20G and beyond"},
|
||||||
['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"},
|
['master_ph']= {"Master", "PHANTASM", "???"},
|
||||||
['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"},
|
['master_g']= {"Master", "GRADED", "Get the highest grade you can!"},
|
||||||
['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"},
|
['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant"},
|
||||||
['strategy_e_plus']={"Strategy", "EASY+", "Holdless strategy!"},
|
['master_instinct']={"Master", "INSTINCT", "What if the active piece turned invisible?"},
|
||||||
['strategy_h_plus']={"Strategy", "HARD+", "Holdless strategy!"},
|
['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"},
|
||||||
['strategy_u_plus']={"Strategy", "ULTIMATE+", "Holdless strategy!"},
|
['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"},
|
||||||
['blind_e']= {"Invisible", "HALF", "For novices"},
|
['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"},
|
||||||
['blind_n']= {"Invisible", "ALL", "For intermediates"},
|
['strategy_e_plus']={"Strategy", "EASY+", "Holdless strategy!"},
|
||||||
['blind_h']= {"Invisible", "SUDDEN", "For the experienced"},
|
['strategy_h_plus']={"Strategy", "HARD+", "Holdless strategy!"},
|
||||||
['blind_l']= {"Invisible", "SUDDEN+", "For professionals"},
|
['strategy_u_plus']={"Strategy", "ULTIMATE+", "Holdless strategy!"},
|
||||||
['blind_u']= {"Invisible", "?", "Are you ready?"},
|
['blind_e']= {"Invisible", "HALF", "For novices"},
|
||||||
['blind_wtf']= {"Invisible", "WTF", "You’re not ready"},
|
['blind_n']= {"Invisible", "ALL", "For intermediates"},
|
||||||
['classic_e']= {"Classic", "EASY", "A low-speed recreation from the 80s"},
|
['blind_h']= {"Invisible", "SUDDEN", "For the experienced"},
|
||||||
['classic_h']= {"Classic", "HARD", "A medium-speed recreation from the 80s"},
|
['blind_l']= {"Invisible", "SUDDEN+", "For professionals"},
|
||||||
['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation from the 80s"},
|
['blind_u']= {"Invisible", "?", "Are you ready?"},
|
||||||
['classic_u']= {"Classic", "ULTIMATE", "A very high-speed recreation from the 80s"},
|
['blind_wtf']= {"Invisible", "WTF", "You’re not ready"},
|
||||||
['survivor_e']= {"Survival", "EASY", "How long can you survive?"},
|
['classic_e']= {"Classic", "EASY", "A low-speed recreation from the 80s"},
|
||||||
['survivor_n']= {"Survival", "NORMAL", "How long can you survive?"},
|
['classic_h']= {"Classic", "HARD", "A medium-speed recreation from the 80s"},
|
||||||
['survivor_h']= {"Survival", "HARD", "How long can you survive?"},
|
['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation from the 80s"},
|
||||||
['survivor_l']= {"Survival", "LUNATIC", "How long can you survive?"},
|
['classic_u']= {"Classic", "ULTIMATE", "A very high-speed recreation from the 80s"},
|
||||||
['survivor_u']= {"Survival", "ULTIMATE", "How long can you survive?"},
|
['survivor_e']= {"Survival", "EASY", "How long can you survive?"},
|
||||||
['attacker_h']= {"Attacker", "HARD", "Practice your attacking skills!"},
|
['survivor_n']= {"Survival", "NORMAL", "How long can you survive?"},
|
||||||
['attacker_u']= {"Attacker", "ULTIMATE", "Practice your attacking skills!"},
|
['survivor_h']= {"Survival", "HARD", "How long can you survive?"},
|
||||||
['defender_n']= {"Defender", "NORMAL", "Practice your defencing skills!"},
|
['survivor_l']= {"Survival", "LUNATIC", "How long can you survive?"},
|
||||||
['defender_l']= {"Defender", "LUNATIC", "Practice your defencing skills!"},
|
['survivor_u']= {"Survival", "ULTIMATE", "How long can you survive?"},
|
||||||
['dig_h']= {"Driller", "HARD", "Digging practice!"},
|
['attacker_h']= {"Attacker", "HARD", "Practice your attacking skills!"},
|
||||||
['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"},
|
['attacker_u']= {"Attacker", "ULTIMATE", "Practice your attacking skills!"},
|
||||||
['clearRush']= {"Clear Rush", "NORMAL", "All-spin tutorial!\n[Under construction]"},
|
['defender_n']= {"Defender", "NORMAL", "Practice your defensing skills!"},
|
||||||
['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos"},
|
['defender_l']= {"Defender", "LUNATIC", "Practice your defensing skills!"},
|
||||||
['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos"},
|
['dig_h']= {"Driller", "HARD", "Digging practice!"},
|
||||||
['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear practice"},
|
['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"},
|
||||||
['pctrain_l']= {"PC Training", "LUNATIC", "A harder Perfect Clear practice"},
|
['clearRush']= {"Clear Rush", "NORMAL", "All-spin tutorial!\n[Under construction]"},
|
||||||
['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"},
|
['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos"},
|
||||||
['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"},
|
['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos"},
|
||||||
['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"},
|
['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear practice"},
|
||||||
['pc_inf']= {"Inf. PC Challenge", "", "Get PCs as much as you can"},
|
['pctrain_l']= {"PC Training", "LUNATIC", "A harder Perfect Clear practice"},
|
||||||
['tech_n']= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"},
|
['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"},
|
||||||
['tech_n_plus']= {"Tech", "NORMAL+", "Spins & PCs only"},
|
['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"},
|
||||||
['tech_h']= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"},
|
['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"},
|
||||||
['tech_h_plus']= {"Tech", "HARD+", "Spins & PCs only"},
|
['pc_inf']= {"Inf. PC Challenge", "", "Get PCs as much as you can"},
|
||||||
['tech_l']= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"},
|
['tech_n']= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"},
|
||||||
['tech_l_plus']= {"Tech", "LUNATIC+", "Spins & PCs only"},
|
['tech_n_plus']= {"Tech", "NORMAL+", "Spins & PCs only"},
|
||||||
['tech_finesse']= {"Tech", "FINESSE", "No finesse faults!"},
|
['tech_h']= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"},
|
||||||
['tech_finesse_f']= {"Tech", "FINESSE+", "No normal clears and finesse faults!"},
|
['tech_h_plus']= {"Tech", "HARD+", "Spins & PCs only"},
|
||||||
['tsd_e']= {"TSD Challenge", "EASY", "T-Spin Doubles only!"},
|
['tech_l']= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"},
|
||||||
['tsd_h']= {"TSD Challenge", "HARD", "T-Spin Doubles only!"},
|
['tech_l_plus']= {"Tech", "LUNATIC+", "Spins & PCs only"},
|
||||||
['tsd_u']= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"},
|
['tech_finesse']= {"Tech", "FINESSE", "No finesse faults!"},
|
||||||
['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines"},
|
['tech_finesse_f']= {"Tech", "FINESSE+", "No normal clears and finesse faults!"},
|
||||||
['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines"},
|
['tsd_e']= {"TSD Challenge", "EASY", "T-Spin Doubles only!"},
|
||||||
['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines"},
|
['tsd_h']= {"TSD Challenge", "HARD", "T-Spin Doubles only!"},
|
||||||
['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines"},
|
['tsd_u']= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"},
|
||||||
['sprintAtk']= {"Sprint", "100 Attack", "Send 100 lines!"},
|
['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines"},
|
||||||
['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40lines!"},
|
['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines"},
|
||||||
['zen']= {'Zen', "200", "A 200-line run without a time limit"},
|
['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines"},
|
||||||
['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack"},
|
['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines"},
|
||||||
['infinite']= {"Infinite", "", "Just a sandbox"},
|
['sprintAtk']= {"Sprint", "100 Attack", "Send 100 lines!"},
|
||||||
['infinite_dig']= {"Infinite: Dig", "", "Dig-diggin’-dug"},
|
['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40lines!"},
|
||||||
['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."},
|
['zen']= {'Zen', "200", "A 200-line run without a time limit"},
|
||||||
|
['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack"},
|
||||||
|
['infinite']= {"Infinite", "", "Just a sandbox"},
|
||||||
|
['infinite_dig']= {"Infinite: Dig", "", "Dig-diggin’-dug"},
|
||||||
|
['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."},
|
||||||
|
|
||||||
['custom_clear']= {"Custom", "NORMAL"},
|
['custom_clear']= {"Custom", "NORMAL"},
|
||||||
['custom_puzzle']= {"Custom", "PUZZLE"},
|
['custom_puzzle']= {"Custom", "PUZZLE"},
|
||||||
@@ -890,7 +894,7 @@ return{
|
|||||||
"Bridge clear coming soon!",
|
"Bridge clear coming soon!",
|
||||||
"Can you master this modern yet familiar stacker?",
|
"Can you master this modern yet familiar stacker?",
|
||||||
"Certainly within this heart lies my M@STERPIECE.",
|
"Certainly within this heart lies my M@STERPIECE.",
|
||||||
"Change logs in English can be found on Discord.",
|
"Changelogs in English can be found on Discord.",
|
||||||
"Color clear coming soon!",
|
"Color clear coming soon!",
|
||||||
"Decreasing DAS and ARR makes your game faster but harder to control.",
|
"Decreasing DAS and ARR makes your game faster but harder to control.",
|
||||||
"Did I just see a Back-to-Back-to-Back?",
|
"Did I just see a Back-to-Back-to-Back?",
|
||||||
@@ -935,7 +939,7 @@ return{
|
|||||||
"pps-0.01",
|
"pps-0.01",
|
||||||
"Server down randomly",
|
"Server down randomly",
|
||||||
"Some requirements to achieve rank X are intentionally set to be difficult for even the best players.",
|
"Some requirements to achieve rank X are intentionally set to be difficult for even the best players.",
|
||||||
"Soon you’ll be able to play against friends and foes all over the world.",
|
"Soon, you’ll be able to play against friends and foes all over the world.",
|
||||||
"Split clear coming soon!",
|
"Split clear coming soon!",
|
||||||
"sudo rm -rf /*",
|
"sudo rm -rf /*",
|
||||||
"Techmino is a portmanteau of “technique” and “tetromino”.",
|
"Techmino is a portmanteau of “technique” and “tetromino”.",
|
||||||
|
|||||||
@@ -330,7 +330,6 @@ return{
|
|||||||
atkFX="FX Vis. de Ataque",
|
atkFX="FX Vis. de Ataque",
|
||||||
|
|
||||||
frame="Ratio de FPSs(%)",
|
frame="Ratio de FPSs(%)",
|
||||||
FTlock="Bloqueo por frames",
|
|
||||||
|
|
||||||
text="Texto de Acciones",
|
text="Texto de Acciones",
|
||||||
score="Puntaje en Pantalla",
|
score="Puntaje en Pantalla",
|
||||||
@@ -551,6 +550,7 @@ return{
|
|||||||
register="Registrarse",
|
register="Registrarse",
|
||||||
email="Correo Elec.",
|
email="Correo Elec.",
|
||||||
password="Contraseña",
|
password="Contraseña",
|
||||||
|
-- showEmail="Show Email",
|
||||||
keepPW="Recordar credenciales",
|
keepPW="Recordar credenciales",
|
||||||
login="Entrar",
|
login="Entrar",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -423,7 +423,6 @@ return{
|
|||||||
atkFX="Effets d'attaque",
|
atkFX="Effets d'attaque",
|
||||||
|
|
||||||
frame="Montrer les FPS(%)",
|
frame="Montrer les FPS(%)",
|
||||||
-- FTlock="Frame-Time Lock",
|
|
||||||
|
|
||||||
text="Texte d'action",
|
text="Texte d'action",
|
||||||
score="Pop-up de score",
|
score="Pop-up de score",
|
||||||
@@ -642,6 +641,7 @@ return{
|
|||||||
register="Enregistrement",
|
register="Enregistrement",
|
||||||
email="E-mail",
|
email="E-mail",
|
||||||
password="Mot de passe",
|
password="Mot de passe",
|
||||||
|
-- showEmail="Show Email",
|
||||||
-- keepPW="Remember me",
|
-- keepPW="Remember me",
|
||||||
login="Connexion",
|
login="Connexion",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -461,7 +461,6 @@ return{
|
|||||||
atkFX="Efek Serang",
|
atkFX="Efek Serang",
|
||||||
|
|
||||||
frame="Kecepatan Bingkai (%)",
|
frame="Kecepatan Bingkai (%)",
|
||||||
FTlock="Lewat Bingkai",
|
|
||||||
|
|
||||||
text="Teks Baris",
|
text="Teks Baris",
|
||||||
score="Teks Nilai",
|
score="Teks Nilai",
|
||||||
@@ -690,6 +689,7 @@ return{
|
|||||||
register="Daftar",
|
register="Daftar",
|
||||||
email="Alamat Email",
|
email="Alamat Email",
|
||||||
password="Password",
|
password="Password",
|
||||||
|
-- showEmail="Show Email",
|
||||||
keepPW="Ingat Saya",
|
keepPW="Ingat Saya",
|
||||||
login="Masuk",
|
login="Masuk",
|
||||||
},
|
},
|
||||||
@@ -758,103 +758,107 @@ return{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
modes={
|
modes={
|
||||||
['sprint_10l']= {"Balapan", "10L", "Buat 10 baris!"},
|
['sprint_10l']= {"Balapan", "10L", "Buat 10 baris!"},
|
||||||
['sprint_20l']= {"Balapan", "20L", "Buat 20 baris!"},
|
['sprint_20l']= {"Balapan", "20L", "Buat 20 baris!"},
|
||||||
['sprint_40l']= {"Balapan", "40L", "Buat 40 baris!"},
|
['sprint_40l']= {"Balapan", "40L", "Buat 40 baris!"},
|
||||||
['sprint_100l']= {"Balapan", "100L", "Buat 100 baris!"},
|
['sprint_100l']= {"Balapan", "100L", "Buat 100 baris!"},
|
||||||
['sprint_400l']= {"Balapan", "400L", "Buat 400 baris!"},
|
['sprint_400l']= {"Balapan", "400L", "Buat 400 baris!"},
|
||||||
['sprint_1000l']= {"Balapan", "1.000L", "Buat 1.000 baris!"},
|
['sprint_1000l']= {"Balapan", "1.000L", "Buat 1.000 baris!"},
|
||||||
['sprintPenta']= {"Balapan", "PENTOMINO", "40L dengan pentomino!"},
|
['sprintPenta']= {"Balapan", "PENTOMINO", "40L dengan pentomino!"},
|
||||||
['sprintMPH']= {"Balapan", "MPH", "Tanpa ingatan\nTanpa pratinjau\nTanpa simpan"},
|
['sprintMPH']= {"Balapan", "MPH", "Tanpa ingatan\nTanpa pratinjau\nTanpa simpan"},
|
||||||
['dig_10l']= {"Gali", "10L", "Gali 10 baris!"},
|
['dig_10l']= {"Gali", "10L", "Gali 10 baris!"},
|
||||||
['dig_40l']= {"Gali", "40L", "Gali 40 baris!"},
|
['dig_40l']= {"Gali", "40L", "Gali 40 baris!"},
|
||||||
['dig_100l']= {"Gali", "100L", "Gali 100 baris!"},
|
['dig_100l']= {"Gali", "100L", "Gali 100 baris!"},
|
||||||
['dig_400l']= {"Gali", "400L", "Gali 400 baris!"},
|
['dig_400l']= {"Gali", "400L", "Gali 400 baris!"},
|
||||||
['drought_n']= {"Nasib Buruk", "100L", "Tidak ada blok I..."},
|
['dig_eff_10l']= {"Gali", "EFISIENSI 10L", "Gali 10 baris!"},
|
||||||
['drought_l']= {"Nasib Buruk+", "100L", "Nasib sangat buruk..."},
|
['dig_eff_40l']= {"Gali", "EFISIENSI 40L", "Gali 40 baris!"},
|
||||||
['marathon_n']= {"Maraton", "NORMAL", "200-baris maraton dengan kecepatan meningkat"},
|
['dig_eff_100l']= {"Gali", "EFISIENSI 100L","Gali 100 baris!"},
|
||||||
['marathon_h']= {"Maraton", "SULIT", "200-baris maraton dengan kecepatan tinggi"},
|
['dig_eff_400l']= {"Gali", "EFISIENSI 400L","Gali 400 baris!"},
|
||||||
['solo_e']= {"Tarung", "MUDAH", "Kalahkan AInya!"},
|
['drought_n']= {"Nasib Buruk", "100L", "Tidak ada blok I..."},
|
||||||
['solo_n']= {"Tarung", "NORMAL", "Kalahkan AInya!"},
|
['drought_l']= {"Nasib Buruk+", "100L", "Nasib sangat buruk..."},
|
||||||
['solo_h']= {"Tarung", "SULIT", "Kalahkan AInya!"},
|
['marathon_n']= {"Maraton", "NORMAL", "200-baris maraton dengan kecepatan meningkat"},
|
||||||
['solo_l']= {"Tarung", "GILA", "Kalahkan AInya!"},
|
['marathon_h']= {"Maraton", "SULIT", "200-baris maraton dengan kecepatan tinggi"},
|
||||||
['solo_u']= {"Tarung", "TERAKHIR", "Kalahkan AInya!"},
|
['solo_e']= {"Tarung", "MUDAH", "Kalahkan AInya!"},
|
||||||
['techmino49_e']= {"Tech 49", "MUDAH", "Pertarungan dengan 49 pemain."},
|
['solo_n']= {"Tarung", "NORMAL", "Kalahkan AInya!"},
|
||||||
['techmino49_h']= {"Tech 49", "SULIT", "Pertarungan dengan 49 pemain."},
|
['solo_h']= {"Tarung", "SULIT", "Kalahkan AInya!"},
|
||||||
['techmino49_u']= {"Tech 49", "TERAKHIR", "Pertarungan dengan 49 pemain."},
|
['solo_l']= {"Tarung", "GILA", "Kalahkan AInya!"},
|
||||||
['techmino99_e']= {"Tech 99", "MUDAH", "Pertarungan dengan 99 pemain."},
|
['solo_u']= {"Tarung", "TERAKHIR", "Kalahkan AInya!"},
|
||||||
['techmino99_h']= {"Tech 99", "SULIT", "Pertarungan dengan 99 pemain."},
|
['techmino49_e']= {"Tech 49", "MUDAH", "Pertarungan dengan 49 pemain."},
|
||||||
['techmino99_u']= {"Tech 99", "TERAKHIR", "Pertarungan dengan 99 pemain."},
|
['techmino49_h']= {"Tech 49", "SULIT", "Pertarungan dengan 49 pemain."},
|
||||||
['round_e']= {"Giliran", "MUDAH", "Giliran main melawan AI!"},
|
['techmino49_u']= {"Tech 49", "TERAKHIR", "Pertarungan dengan 49 pemain."},
|
||||||
['round_n']= {"Giliran", "NORMAL", "Giliran main melawan AI!"},
|
['techmino99_e']= {"Tech 99", "MUDAH", "Pertarungan dengan 99 pemain."},
|
||||||
['round_h']= {"Giliran", "SULIT", "Giliran main melawan AI!"},
|
['techmino99_h']= {"Tech 99", "SULIT", "Pertarungan dengan 99 pemain."},
|
||||||
['round_l']= {"Giliran", "GILA", "Giliran main melawan AI!"},
|
['techmino99_u']= {"Tech 99", "TERAKHIR", "Pertarungan dengan 99 pemain."},
|
||||||
['round_u']= {"Giliran", "TERAKHIR", "Giliran main melawan AI!"},
|
['round_e']= {"Giliran", "MUDAH", "Giliran main melawan AI!"},
|
||||||
['master_n']= {"Jago", "NORMAL", "Untuk pemula 20G"},
|
['round_n']= {"Giliran", "NORMAL", "Giliran main melawan AI!"},
|
||||||
['master_h']= {"Jago", "SULIT", "Untuk pro 20G"},
|
['round_h']= {"Giliran", "SULIT", "Giliran main melawan AI!"},
|
||||||
['master_m']= {"Jago", "M21", "Untuk jago 20G"},
|
['round_l']= {"Giliran", "GILA", "Giliran main melawan AI!"},
|
||||||
['master_final']= {"Jago", "TERAKHIR", "Lebih dari 20G"},
|
['round_u']= {"Giliran", "TERAKHIR", "Giliran main melawan AI!"},
|
||||||
['master_ph']= {"Jago", "KHAYALAN", "???"},
|
['master_n']= {"Jago", "NORMAL", "Untuk pemula 20G"},
|
||||||
['master_ex']= {"Sangat Jago", "EKSTRA", "Blok tidak kelihatan"},
|
['master_h']= {"Jago", "SULIT", "Untuk pro 20G"},
|
||||||
['master_instinct']={"Jago", "INSTINK", "Bagaimana jika blok terkontrol tersembunyi?"},
|
['master_m']= {"Jago", "M21", "Untuk jago 20G"},
|
||||||
['strategy_e']= {"Strategi", "MUDAH", "Keputusan 20G cepat"},
|
['master_final']= {"Jago", "TERAKHIR", "Lebih dari 20G"},
|
||||||
['strategy_h']= {"Strategi", "SULIT", "Keputusan 20G cepat"},
|
['master_ph']= {"Jago", "KHAYALAN", "???"},
|
||||||
['strategy_u']= {"Strategi", "TERAKHIR", "Keputusan 20G cepat"},
|
['master_ex']= {"Sangat Jago", "EKSTRA", "Blok tidak kelihatan"},
|
||||||
['strategy_e_plus']={"Strategi", "MUDAH+", "Mode strategi, tetapi tanpa menyimpan"},
|
['master_instinct']={"Jago", "INSTINK", "Bagaimana jika blok terkontrol tersembunyi?"},
|
||||||
['strategy_h_plus']={"Strategi", "SULIT+", "Mode strategi, tetapi tanpa menyimpan"},
|
['strategy_e']= {"Strategi", "MUDAH", "Keputusan 20G cepat"},
|
||||||
['strategy_u_plus']={"Strategi", "TERAKHIR+", "Mode strategi, tetapi tanpa menyimpan"},
|
['strategy_h']= {"Strategi", "SULIT", "Keputusan 20G cepat"},
|
||||||
['blind_e']= {"Tak Terlihat", "MUDAH", "Untuk pemula"},
|
['strategy_u']= {"Strategi", "TERAKHIR", "Keputusan 20G cepat"},
|
||||||
['blind_n']= {"Tak Terlihat", "NORMAL", "Untuk amatir"},
|
['strategy_e_plus']={"Strategi", "MUDAH+", "Mode strategi, tetapi tanpa menyimpan"},
|
||||||
['blind_h']= {"Tak Terlihat", "SULIT", "Untuk orang berpengalaman"},
|
['strategy_h_plus']={"Strategi", "SULIT+", "Mode strategi, tetapi tanpa menyimpan"},
|
||||||
['blind_l']= {"Tak Terlihat", "GILA", "Untuk profesional"},
|
['strategy_u_plus']={"Strategi", "TERAKHIR+", "Mode strategi, tetapi tanpa menyimpan"},
|
||||||
['blind_u']= {"Tak Terlihat", "???", "Apakah Anda siap?"},
|
['blind_e']= {"Tak Terlihat", "MUDAH", "Untuk pemula"},
|
||||||
['blind_wtf']= {"Tak Terlihat", "TERAKHIR", "Anda belum siap"},
|
['blind_n']= {"Tak Terlihat", "NORMAL", "Untuk amatir"},
|
||||||
['classic_e']= {"Klasik", "MUDAH", "Rekreasi berkecepatan rendah dari tahun 80-an"},
|
['blind_h']= {"Tak Terlihat", "SULIT", "Untuk orang berpengalaman"},
|
||||||
['classic_h']= {"Klasik", "SULIT", "Rekreasi berkecepatan medium dari tahun 80-an"},
|
['blind_l']= {"Tak Terlihat", "GILA", "Untuk profesional"},
|
||||||
['classic_l']= {"Klasik", "GILA", "Rekreasi berkecepatan medium-tinggi dari tahun 80-an"},
|
['blind_u']= {"Tak Terlihat", "???", "Apakah Anda siap?"},
|
||||||
['classic_u']= {"Klasik", "TERAKHIR", "Rekreasi berkecepatan tinggi dari tahun 80-an"},
|
['blind_wtf']= {"Tak Terlihat", "TERAKHIR", "Anda belum siap"},
|
||||||
['survivor_e']= {"Bertahan", "MUDAH", "Berapa lama Anda bisa bertahan?"},
|
['classic_e']= {"Klasik", "MUDAH", "Rekreasi berkecepatan rendah dari tahun 80-an"},
|
||||||
['survivor_n']= {"Bertahan", "NORMAL", "Berapa lama Anda bisa bertahan?"},
|
['classic_h']= {"Klasik", "SULIT", "Rekreasi berkecepatan medium dari tahun 80-an"},
|
||||||
['survivor_h']= {"Bertahan", "SULIT", "Berapa lama Anda bisa bertahan?"},
|
['classic_l']= {"Klasik", "GILA", "Rekreasi berkecepatan medium-tinggi dari tahun 80-an"},
|
||||||
['survivor_l']= {"Bertahan", "GILA", "Berapa lama Anda bisa bertahan?"},
|
['classic_u']= {"Klasik", "TERAKHIR", "Rekreasi berkecepatan tinggi dari tahun 80-an"},
|
||||||
['survivor_u']= {"Bertahan", "TERAKHIR", "Berapa lama Anda bisa bertahan?"},
|
['survivor_e']= {"Bertahan", "MUDAH", "Berapa lama Anda bisa bertahan?"},
|
||||||
['attacker_h']= {"Penyerang", "SULIT", "Praktekkan keahlian menyerang Anda!"},
|
['survivor_n']= {"Bertahan", "NORMAL", "Berapa lama Anda bisa bertahan?"},
|
||||||
['attacker_u']= {"Penyerang", "TERAKHIR", "Praktekkan keahlian menyerang Anda!"},
|
['survivor_h']= {"Bertahan", "SULIT", "Berapa lama Anda bisa bertahan?"},
|
||||||
['defender_n']= {"Pembela", "NORMAL", "Praktekkan keahlian membela Anda!"},
|
['survivor_l']= {"Bertahan", "GILA", "Berapa lama Anda bisa bertahan?"},
|
||||||
['defender_l']= {"Pembela", "GILA", "Praktekkan keahlian membela Anda!"},
|
['survivor_u']= {"Bertahan", "TERAKHIR", "Berapa lama Anda bisa bertahan?"},
|
||||||
['dig_h']= {"Pembor", "SULIT", "Praktekkan keahlian menggali Anda!"},
|
['attacker_h']= {"Penyerang", "SULIT", "Praktekkan keahlian menyerang Anda!"},
|
||||||
['dig_u']= {"Pembor", "TERAKHIR", "Praktekkan keahlian menggali Anda!"},
|
['attacker_u']= {"Penyerang", "TERAKHIR", "Praktekkan keahlian menyerang Anda!"},
|
||||||
['clearRush']= {"Gegas Baris", "NORMAL", "Tutorial all-spin!\n[Dalam pengembangan]"},
|
['defender_n']= {"Pembela", "NORMAL", "Praktekkan keahlian membela Anda!"},
|
||||||
['c4wtrain_n']= {"Latihan C4W", "NORMAL", "Kombo tidak terbatas."},
|
['defender_l']= {"Pembela", "GILA", "Praktekkan keahlian membela Anda!"},
|
||||||
['c4wtrain_l']= {"Latihan C4W", "GILA", "Kombo tidak terbatas."},
|
['dig_h']= {"Pembor", "SULIT", "Praktekkan keahlian menggali Anda!"},
|
||||||
['pctrain_n']= {"Latihan PC", "NORMAL", "Latihan PC"},
|
['dig_u']= {"Pembor", "TERAKHIR", "Praktekkan keahlian menggali Anda!"},
|
||||||
['pctrain_l']= {"Latihan PC", "GILA", "Latihan PC yang lebih sulit"},
|
['clearRush']= {"Gegas Baris", "NORMAL", "Tutorial all-spin!\n[Dalam pengembangan]"},
|
||||||
['pc_n']= {"Tantangan PC", "NORMAL", "Dapatkan PC sampai 100 baris!"},
|
['c4wtrain_n']= {"Latihan C4W", "NORMAL", "Kombo tidak terbatas."},
|
||||||
['pc_h']= {"Tantangan PC", "SULIT", "Dapatkan PC sampai 100 baris!"},
|
['c4wtrain_l']= {"Latihan C4W", "GILA", "Kombo tidak terbatas."},
|
||||||
['pc_l']= {"Tantangan PC", "GILA", "Dapatkan PC sampai 100 baris!"},
|
['pctrain_n']= {"Latihan PC", "NORMAL", "Latihan PC"},
|
||||||
['pc_inf']= {"Tantangan PC", "TAK TERBATAS", "Dapatkan PC sebanyaknya!"},
|
['pctrain_l']= {"Latihan PC", "GILA", "Latihan PC yang lebih sulit"},
|
||||||
['tech_n']= {"Tech", "NORMAL", "Coba jaga deret Back-To-Back!"},
|
['pc_n']= {"Tantangan PC", "NORMAL", "Dapatkan PC sampai 100 baris!"},
|
||||||
['tech_n_plus']= {"Tech", "NORMAL+", "Hanya Spins & PCs dibolehkan"},
|
['pc_h']= {"Tantangan PC", "SULIT", "Dapatkan PC sampai 100 baris!"},
|
||||||
['tech_h']= {"Tech", "SULIT", "Coba jaga deret Back-To-Back!"},
|
['pc_l']= {"Tantangan PC", "GILA", "Dapatkan PC sampai 100 baris!"},
|
||||||
['tech_h_plus']= {"Tech", "SULIT+", "Hanya Spins & PCs dibolehkan"},
|
['pc_inf']= {"Tantangan PC", "TAK TERBATAS", "Dapatkan PC sebanyaknya!"},
|
||||||
['tech_l']= {"Tech", "GILA", "Coba jaga deret Back-To-Back!"},
|
['tech_n']= {"Tech", "NORMAL", "Coba jaga deret Back-To-Back!"},
|
||||||
['tech_l_plus']= {"Tech", "GILA+", "Hanya Spins & PCs dibolehkan"},
|
['tech_n_plus']= {"Tech", "NORMAL+", "Hanya Spins & PCs dibolehkan"},
|
||||||
['tech_finesse']= {"Tech", "EF. TOMBOL", "Efisiensi tombol harus maksimal!"},
|
['tech_h']= {"Tech", "SULIT", "Coba jaga deret Back-To-Back!"},
|
||||||
['tech_finesse_f']= {"Tech", "EF. TOMBOL+", "Efisiensi tombol maksimal dan tidak ada garis normal!"},
|
['tech_h_plus']= {"Tech", "SULIT+", "Hanya Spins & PCs dibolehkan"},
|
||||||
['tsd_e']= {"Tantangan TSD", "MUDAH", "Hanya T-Spin Double dibolehkan!"},
|
['tech_l']= {"Tech", "GILA", "Coba jaga deret Back-To-Back!"},
|
||||||
['tsd_h']= {"Tantangan TSD", "SULIT", "Hanya T-Spin Double dibolehkan!"},
|
['tech_l_plus']= {"Tech", "GILA+", "Hanya Spins & PCs dibolehkan"},
|
||||||
['tsd_u']= {"Tantangan TSD", "TERAKHIR", "Hanya T-Spin Double dibolehkan!"},
|
['tech_finesse']= {"Tech", "EF. TOMBOL", "Efisiensi tombol harus maksimal!"},
|
||||||
['backfire_n']= {"Serangan Balik", "NORMAL", "Tahankan serang baliknya!"},
|
['tech_finesse_f']= {"Tech", "EF. TOMBOL+", "Efisiensi tombol maksimal dan tidak ada garis normal!"},
|
||||||
['backfire_h']= {"Serangan Balik", "SULIT", "Tahankan serang baliknya!"},
|
['tsd_e']= {"Tantangan TSD", "MUDAH", "Hanya T-Spin Double dibolehkan!"},
|
||||||
['backfire_l']= {"Serangan Balik", "GILA", "Tahankan serang baliknya!"},
|
['tsd_h']= {"Tantangan TSD", "SULIT", "Hanya T-Spin Double dibolehkan!"},
|
||||||
['backfire_u']= {"Serangan Balik", "TERAKHIR", "Tahankan serang baliknya!"},
|
['tsd_u']= {"Tantangan TSD", "TERAKHIR", "Hanya T-Spin Double dibolehkan!"},
|
||||||
['sprintAtk']= {"Balapan", "100 Serangan", "Kirim 100 baris serangan!"},
|
['backfire_n']= {"Serangan Balik", "NORMAL", "Tahankan serang baliknya!"},
|
||||||
['sprintEff']= {"Balapan", "Efisiensi", "Kirim lebih banyak serangan sampai 40 baris!"},
|
['backfire_h']= {"Serangan Balik", "SULIT", "Tahankan serang baliknya!"},
|
||||||
['zen']= {"Zen", "200L", "Permainan 200-garis tanpa batas waktu"},
|
['backfire_l']= {"Serangan Balik", "GILA", "Tahankan serang baliknya!"},
|
||||||
['ultra']= {"Ultra", "EKSTRA", "Permainan 2 menit. Dapatkan nilai sebanyaknya!"},
|
['backfire_u']= {"Serangan Balik", "TERAKHIR", "Tahankan serang baliknya!"},
|
||||||
['infinite']= {"Tak Terbatas", "", "Bak pasir"},
|
['sprintAtk']= {"Balapan", "100 Serangan", "Kirim 100 baris serangan!"},
|
||||||
['infinite_dig']= {"Tak Terbatas: Gali","", "Gali, gali, gali"},
|
['sprintEff']= {"Balapan", "Efisiensi", "Kirim lebih banyak serangan sampai 40 baris!"},
|
||||||
['marathon_inf']= {"Maraton", "TAK TERBATAS", "Maraton tanpa akhir."},
|
['zen']= {"Zen", "200L", "Permainan 200-garis tanpa batas waktu"},
|
||||||
|
['ultra']= {"Ultra", "EKSTRA", "Permainan 2 menit. Dapatkan nilai sebanyaknya!"},
|
||||||
|
['infinite']= {"Tak Terbatas", "", "Bak pasir"},
|
||||||
|
['infinite_dig']= {"Tak Terbatas: Gali","", "Gali, gali, gali"},
|
||||||
|
['marathon_inf']= {"Maraton", "TAK TERBATAS", "Maraton tanpa akhir."},
|
||||||
|
|
||||||
['custom_clear']= {"Tersesuai", "NORMAL"},
|
['custom_clear']= {"Tersesuai", "NORMAL"},
|
||||||
['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"},
|
['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"},
|
||||||
|
|||||||
@@ -461,7 +461,6 @@ return{
|
|||||||
atkFX="攻撃演出",
|
atkFX="攻撃演出",
|
||||||
|
|
||||||
frame="レンダリングフレームレート(%)",
|
frame="レンダリングフレームレート(%)",
|
||||||
FTlock="フレームスキップ",
|
|
||||||
|
|
||||||
text="ライン消去ポップ",
|
text="ライン消去ポップ",
|
||||||
score="スコアポップ",
|
score="スコアポップ",
|
||||||
@@ -690,6 +689,7 @@ return{
|
|||||||
register="サインアップ",
|
register="サインアップ",
|
||||||
email="Eメールアドレス",
|
email="Eメールアドレス",
|
||||||
password="パスワード",
|
password="パスワード",
|
||||||
|
-- showEmail="Show Email",
|
||||||
keepPW="常にログイン",
|
keepPW="常にログイン",
|
||||||
login="ログイン",
|
login="ログイン",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -448,7 +448,6 @@ return{
|
|||||||
atkFX="Nível FX Atk.",
|
atkFX="Nível FX Atk.",
|
||||||
|
|
||||||
frame="Render Frame Rate(%)",
|
frame="Render Frame Rate(%)",
|
||||||
-- FTlock="Frame-Time Lock",
|
|
||||||
|
|
||||||
text="Texto de ação",
|
text="Texto de ação",
|
||||||
score="Pop-up de pontos",
|
score="Pop-up de pontos",
|
||||||
@@ -678,6 +677,7 @@ return{
|
|||||||
register="Registrar",
|
register="Registrar",
|
||||||
email="Endereço De Email",
|
email="Endereço De Email",
|
||||||
password="Senha",
|
password="Senha",
|
||||||
|
-- showEmail="Show Email",
|
||||||
-- keepPW="Remember me",
|
-- keepPW="Remember me",
|
||||||
login="Log in",
|
login="Log in",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -269,7 +269,6 @@ return{
|
|||||||
atkFX="→→~",
|
atkFX="→→~",
|
||||||
|
|
||||||
frame="|=|%",
|
frame="|=|%",
|
||||||
FTlock="||=|→→|=||",
|
|
||||||
|
|
||||||
text="ABC",
|
text="ABC",
|
||||||
score="+123",
|
score="+123",
|
||||||
@@ -489,7 +488,8 @@ return{
|
|||||||
register="Sign up",
|
register="Sign up",
|
||||||
email="@",
|
email="@",
|
||||||
password="*",
|
password="*",
|
||||||
-- keepPW="I",
|
showEmail="?",
|
||||||
|
keepPW="!",
|
||||||
login="Log in",
|
login="Log in",
|
||||||
},
|
},
|
||||||
register={
|
register={
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ return{
|
|||||||
"多余操作/极简率:",
|
"多余操作/极简率:",
|
||||||
},
|
},
|
||||||
aboutTexts={
|
aboutTexts={
|
||||||
"这只是一个普通的方块游戏,请勿将此与某带国家名的事物强行联系",
|
"这只是一个普通的方块游戏",
|
||||||
"从C2/IO/JS/WWC/KOS等方块获得过灵感",
|
"从C2/IO/JS/WWC/KOS等方块获得过灵感",
|
||||||
"",
|
"",
|
||||||
"使用LÖVE引擎",
|
"使用LÖVE引擎",
|
||||||
@@ -420,13 +420,13 @@ return{
|
|||||||
title="游戏设置",
|
title="游戏设置",
|
||||||
graphic="←画面",
|
graphic="←画面",
|
||||||
sound="声音→",
|
sound="声音→",
|
||||||
style="风格",
|
style="方块风格…",
|
||||||
|
|
||||||
ctrl="控制设置",
|
ctrl="控制设置…",
|
||||||
key="键位设置",
|
key="键位设置…",
|
||||||
touch="触屏设置",
|
touch="触屏设置…",
|
||||||
showVK="显示虚拟按键",
|
showVK="显示虚拟按键",
|
||||||
reTime="开局等待时间",
|
reTime="开局等待时间:",
|
||||||
RS="旋转系统",
|
RS="旋转系统",
|
||||||
menuPos="菜单按钮位置",
|
menuPos="菜单按钮位置",
|
||||||
sysCursor="使用系统光标",
|
sysCursor="使用系统光标",
|
||||||
@@ -446,21 +446,20 @@ return{
|
|||||||
bagLine="包分界线",
|
bagLine="包分界线",
|
||||||
|
|
||||||
ghostType="阴影样式",
|
ghostType="阴影样式",
|
||||||
ghost="阴影不透明度",
|
ghost="阴影不透明度:",
|
||||||
center="旋转中心不透明度",
|
center="旋转中心不透明度:",
|
||||||
grid="网格不透明度",
|
grid="网格不透明度:",
|
||||||
lineNum="行号透明度",
|
lineNum="行号透明度:",
|
||||||
|
|
||||||
lockFX="锁定特效",
|
lockFX="锁定特效:",
|
||||||
dropFX="下落特效",
|
dropFX="下落特效:",
|
||||||
moveFX="移动特效",
|
moveFX="移动特效:",
|
||||||
clearFX="消除特效",
|
clearFX="消除特效:",
|
||||||
splashFX="溅射特效",
|
splashFX="溅射特效:",
|
||||||
shakeFX="晃动特效",
|
shakeFX="晃动特效:",
|
||||||
atkFX="攻击特效",
|
atkFX="攻击特效:",
|
||||||
|
|
||||||
frame="绘制帧率(%)",
|
frame="绘制帧率(%):",
|
||||||
FTlock="逻辑追帧",
|
|
||||||
|
|
||||||
text="消行文本",
|
text="消行文本",
|
||||||
score="分数动画",
|
score="分数动画",
|
||||||
@@ -471,7 +470,7 @@ return{
|
|||||||
warn="死亡预警",
|
warn="死亡预警",
|
||||||
|
|
||||||
clickFX="点按特效",
|
clickFX="点按特效",
|
||||||
power="电量显示",
|
power="电量和时间",
|
||||||
clean="绘制优化",
|
clean="绘制优化",
|
||||||
fullscreen="全屏",
|
fullscreen="全屏",
|
||||||
|
|
||||||
@@ -487,14 +486,14 @@ return{
|
|||||||
game="←游戏",
|
game="←游戏",
|
||||||
graphic="画面→",
|
graphic="画面→",
|
||||||
|
|
||||||
mainVol="总音量",
|
mainVol="总音量:",
|
||||||
bgm="音乐",
|
bgm="音乐:",
|
||||||
sfx="音效",
|
sfx="音效:",
|
||||||
stereo="立体声",
|
stereo="立体声:",
|
||||||
spawn="方块生成",
|
spawn="方块生成:",
|
||||||
warn="危险警告",
|
warn="危险警告:",
|
||||||
vib="振动",
|
vib="振动强度:",
|
||||||
voc="语音",
|
voc="语音:",
|
||||||
|
|
||||||
autoMute="失去焦点自动静音",
|
autoMute="失去焦点自动静音",
|
||||||
fine="非极简操作时播放提示音",
|
fine="非极简操作时播放提示音",
|
||||||
@@ -506,10 +505,10 @@ return{
|
|||||||
title="控制设置",
|
title="控制设置",
|
||||||
preview="预览",
|
preview="预览",
|
||||||
|
|
||||||
das="DAS",arr="ARR",
|
das="DAS:",arr="ARR:",
|
||||||
dascut="DAS打断",
|
dascut="DAS打断:",
|
||||||
dropcut="误硬降打断",
|
dropcut="误硬降打断:",
|
||||||
sddas="软降DAS",sdarr="软降ARR",
|
sddas="软降DAS:",sdarr="软降ARR:",
|
||||||
ihs="提前Hold",
|
ihs="提前Hold",
|
||||||
irs="提前旋转",
|
irs="提前旋转",
|
||||||
ims="提前移动",
|
ims="提前移动",
|
||||||
@@ -560,9 +559,9 @@ return{
|
|||||||
norm="标准",
|
norm="标准",
|
||||||
pro="专业",
|
pro="专业",
|
||||||
icon="图标",
|
icon="图标",
|
||||||
sfx="按键音效",
|
sfx="按键音效:",
|
||||||
vib="按键振动",
|
vib="按键振动:",
|
||||||
alpha="不透明度",
|
alpha="不透明度:",
|
||||||
|
|
||||||
track="按键自动跟踪",
|
track="按键自动跟踪",
|
||||||
dodge="自动避让",
|
dodge="自动避让",
|
||||||
@@ -597,8 +596,8 @@ return{
|
|||||||
eventSet="规则包",
|
eventSet="规则包",
|
||||||
|
|
||||||
holdMode="Hold模式",
|
holdMode="Hold模式",
|
||||||
nextCount="Next",
|
nextCount="Next数:",
|
||||||
holdCount="Hold",
|
holdCount="Hold数:",
|
||||||
infHold="无限Hold",
|
infHold="无限Hold",
|
||||||
phyHold="物理Hold",
|
phyHold="物理Hold",
|
||||||
|
|
||||||
@@ -634,8 +633,8 @@ return{
|
|||||||
|
|
||||||
newPg="新页面(N)",
|
newPg="新页面(N)",
|
||||||
delPg="删除页面(M)",
|
delPg="删除页面(M)",
|
||||||
prevPg="上一页面",
|
prevPg="上一页",
|
||||||
nextPg="下一页面",
|
nextPg="下一页",
|
||||||
},
|
},
|
||||||
custom_sequence={
|
custom_sequence={
|
||||||
title="自定义游戏",
|
title="自定义游戏",
|
||||||
@@ -688,6 +687,7 @@ return{
|
|||||||
register="注册",
|
register="注册",
|
||||||
email="邮箱",
|
email="邮箱",
|
||||||
password="密码",
|
password="密码",
|
||||||
|
showEmail="显示邮箱",
|
||||||
keepPW="保存密码",
|
keepPW="保存密码",
|
||||||
login="登录",
|
login="登录",
|
||||||
},
|
},
|
||||||
@@ -695,9 +695,9 @@ return{
|
|||||||
title="注册",
|
title="注册",
|
||||||
login="登录",
|
login="登录",
|
||||||
username="用户名",
|
username="用户名",
|
||||||
email="邮箱",
|
email="邮箱:",
|
||||||
password="密码",
|
password="密码:",
|
||||||
password2="确认密码",
|
password2="确认密码:",
|
||||||
register="注册",
|
register="注册",
|
||||||
registering="等待服务器响应……",
|
registering="等待服务器响应……",
|
||||||
},
|
},
|
||||||
@@ -770,6 +770,10 @@ return{
|
|||||||
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
||||||
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
||||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||||
|
['dig_eff_10l']= {"挖掘", "效率 10L", "挖掘10行用最少的件数"},
|
||||||
|
['dig_eff_40l']= {"挖掘", "效率 40L", "挖掘40行用最少的件数"},
|
||||||
|
['dig_eff_100l']= {"挖掘", "效率 100L","挖掘100行用最少的件数"},
|
||||||
|
['dig_eff_400l']= {"挖掘", "效率 400L","挖掘400行用最少的件数"},
|
||||||
['drought_n']= {"干旱", "100L", "你I没了"},
|
['drought_n']= {"干旱", "100L", "你I没了"},
|
||||||
['drought_l']= {"干旱+", "100L", "后 妈 发 牌"},
|
['drought_l']= {"干旱+", "100L", "后 妈 发 牌"},
|
||||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||||
|
|||||||
@@ -458,7 +458,6 @@ return{
|
|||||||
atkFX="攻击外汇",
|
atkFX="攻击外汇",
|
||||||
|
|
||||||
frame="渲染帧率(%)",
|
frame="渲染帧率(%)",
|
||||||
FTlock="逻辑追帧",
|
|
||||||
|
|
||||||
text="行清除弹出窗口",
|
text="行清除弹出窗口",
|
||||||
score="分数弹出",
|
score="分数弹出",
|
||||||
@@ -686,6 +685,7 @@ return{
|
|||||||
register="登记",
|
register="登记",
|
||||||
email="电子邮件地址",
|
email="电子邮件地址",
|
||||||
password="密码",
|
password="密码",
|
||||||
|
showEmail="显示电子邮件",
|
||||||
keepPW="记得我吗",
|
keepPW="记得我吗",
|
||||||
login="登录",
|
login="登录",
|
||||||
},
|
},
|
||||||
@@ -766,6 +766,10 @@ return{
|
|||||||
['dig_40l']= {"挖掘", "40升", "挖40条垃圾线"},
|
['dig_40l']= {"挖掘", "40升", "挖40条垃圾线"},
|
||||||
['dig_100l']= {"挖掘", "100升", "挖100条垃圾线"},
|
['dig_100l']= {"挖掘", "100升", "挖100条垃圾线"},
|
||||||
['dig_400l']= {"挖掘", "400升", "挖400条垃圾线"},
|
['dig_400l']= {"挖掘", "400升", "挖400条垃圾线"},
|
||||||
|
['dig_eff_10l']= {"挖掘", "管理 10升", "挖掘10条数量最少的线路"},
|
||||||
|
['dig_eff_40l']= {"挖掘", "管理 40升", "挖掘40条数量最少的线路"},
|
||||||
|
['dig_eff_100l']= {"挖掘", "管理 100升", "挖掘100条数量最少的线路"},
|
||||||
|
['dig_eff_400l']= {"挖掘", "管理 400升", "挖掘400条数量最少的线路"},
|
||||||
['drought_n']= {"干旱", "100升", "没有工装"},
|
['drought_n']= {"干旱", "100升", "没有工装"},
|
||||||
['drought_l']= {"干旱+", "100升", "搞什么呀"},
|
['drought_l']= {"干旱+", "100升", "搞什么呀"},
|
||||||
['marathon_n']= {"马拉松赛跑", "正常", "200线加速马拉松"},
|
['marathon_n']= {"马拉松赛跑", "正常", "200线加速马拉松"},
|
||||||
|
|||||||
@@ -460,7 +460,6 @@ return{
|
|||||||
atkFX="攻擊特效",
|
atkFX="攻擊特效",
|
||||||
|
|
||||||
frame="渲染幀率(%)",
|
frame="渲染幀率(%)",
|
||||||
FTlock="跳幀",
|
|
||||||
|
|
||||||
text="清除文本",
|
text="清除文本",
|
||||||
score="分數動畫",
|
score="分數動畫",
|
||||||
@@ -688,6 +687,7 @@ return{
|
|||||||
register="註冊",
|
register="註冊",
|
||||||
email="電郵",
|
email="電郵",
|
||||||
password="密碼",
|
password="密碼",
|
||||||
|
showEmail="顯示郵箱",
|
||||||
keepPW="保存密碼",
|
keepPW="保存密碼",
|
||||||
login="登錄",
|
login="登錄",
|
||||||
},
|
},
|
||||||
@@ -770,6 +770,10 @@ return{
|
|||||||
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
['dig_40l']= {"挖掘", "40L", "挖掘40行"},
|
||||||
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
['dig_100l']= {"挖掘", "100L", "挖掘100行"},
|
||||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||||
|
['dig_eff_10l']= {"挖掘", "效率 10L", "挖掘10行用最少的件數"},
|
||||||
|
['dig_eff_40l']= {"挖掘", "效率 40L", "挖掘40行用最少的件數"},
|
||||||
|
['dig_eff_100l']= {"挖掘", "效率 100L","挖掘100行用最少的件數"},
|
||||||
|
['dig_eff_400l']= {"挖掘", "效率 400L","挖掘400行用最少的件數"},
|
||||||
['drought_n']= {"乾旱", "100L", "你I沒了"},
|
['drought_n']= {"乾旱", "100L", "你I沒了"},
|
||||||
['drought_l']= {"乾旱+", "100L", "後 媽 發 牌"},
|
['drought_l']= {"乾旱+", "100L", "後 媽 發 牌"},
|
||||||
['marathon_n']= {"馬拉松", "普通", "200行加速馬拉松"},
|
['marathon_n']= {"馬拉松", "普通", "200行加速馬拉松"},
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ Gameplay:
|
|||||||
The system will provide you with tetrominoes (4-block pieces),
|
The system will provide you with tetrominoes (4-block pieces),
|
||||||
with a total of 7 types, and the player needs to control them
|
with a total of 7 types, and the player needs to control them
|
||||||
(move left and right, rotate 90, 180, or 270 degrees).
|
(move left and right, rotate 90, 180, or 270 degrees).
|
||||||
each row filled with the field will be cleared.
|
Each row filled with the field will be cleared.
|
||||||
If there is an opponent, an attack will be sent depending on the line clear type
|
If there is an opponent, an attack will be sent depending on the type of line clear.
|
||||||
Play until the end or achieve the level's goal to win.
|
Play until the end or achieve the level’s goal to win.
|
||||||
|
|
||||||
Rotation system:
|
Rotation system:
|
||||||
Uses TRS (Techmino Rotation System) by default. The game allows players to choose other commonly used rotation systems (generally unnecessary)
|
Uses TRS (Techmino Rotation System) by default. The game allows players to choose other commonly used rotation systems (generally unnecessary)
|
||||||
|
|
||||||
Spin detection:
|
Spin detection:
|
||||||
Satisfies "3 corner" rule +2 points
|
Satisfies “3-corner” rule +2 points
|
||||||
Satisfies "immobile" rule +2 points
|
Satisfies “immobile” rule +2 points
|
||||||
- As long as one of the above is true, it is a Spin
|
- As long as one of the above is true, it is a Spin
|
||||||
|
|
||||||
If the rotation was not using the second check in the kick table, +1 point
|
If the rotation was not using the second check in the kick table, +1 point
|
||||||
@@ -37,19 +37,19 @@ Attack system:
|
|||||||
send (attack-0.5) attack.
|
send (attack-0.5) attack.
|
||||||
|
|
||||||
Combos (REN):
|
Combos (REN):
|
||||||
The numbers of the combos are equal to (the numbers you clear lines consecutively –1). All damage above (except attack from PC/HPC) will be given a (combo ×25%) bonus, or (combo ×15%) for Single clear (capped at 12 combo), +1 more attack for 3 Combo or more.
|
The numbers of the combos are equal to (the numbers you clear lines consecutively –1). All damage above (except attack from PC/HPC) will be given a (combo ×25%) bonus, or (combo ×15%) for Single clear (capped at 12 combos), +1 more attack for 3 Combo or more.
|
||||||
|
|
||||||
Hemi Perfect Clear (a P.C. "with blocks left below". If it's an I clearing 1 line, the remaining blocks must not be player-placed):
|
Hemi Perfect Clear (a P.C. “with blocks left below.” If it’s an I clearing 1 line, the remaining blocks must not be player-placed):
|
||||||
- Attack +4, Extra Blocking +2
|
- Attack +4, Extra Blocking +2
|
||||||
|
|
||||||
Perfect Clear (All Clear):
|
Perfect Clear (All Clear):
|
||||||
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher, and +2 extra blocking.
|
- Sends 8 to 16 (increments within a game by 2 for every PC) OR every other damage above, whichever is higher, and +2 extra blocking.
|
||||||
|
|
||||||
After calculating all the above, the damage value will be rounded down and sent.
|
After calculating the above, the damage value will be rounded down and sent.
|
||||||
|
|
||||||
|
|
||||||
Back to Back (B2B) gauge:
|
Back to Back (B2B) gauge:
|
||||||
The B2B gauge ranges from 0 to 1,000. Special line clears are B2B if the gauge is >=50, B2B2B if >800.
|
The B2B gauge ranges from 0 to 1,000. Special line clears are B2B if the gauge is ≥ 50, B2B2B if >800.
|
||||||
|
|
||||||
Line cleared:
|
Line cleared:
|
||||||
Special clears:
|
Special clears:
|
||||||
@@ -60,7 +60,7 @@ Back to Back (B2B) gauge:
|
|||||||
- A regular line clear -250
|
- A regular line clear -250
|
||||||
|
|
||||||
No lines cleared:
|
No lines cleared:
|
||||||
- Spin (0 lines) +20. Do note that the B2B gauge cannot exceed 800 using this method.
|
- Spin (0 lines) +20. Note that the B2B gauge cannot exceed 800 using this method.
|
||||||
|
|
||||||
Score system:
|
Score system:
|
||||||
The better you play, the higher the score.
|
The better you play, the higher the score.
|
||||||
@@ -70,21 +70,21 @@ Attack delay:
|
|||||||
Followed by Techrash, Spins, which send slower attacks;
|
Followed by Techrash, Spins, which send slower attacks;
|
||||||
High combos are the slowest;
|
High combos are the slowest;
|
||||||
For B2B or B2B2B, they also increase the attack delay while they increase lines sent;
|
For B2B or B2B2B, they also increase the attack delay while they increase lines sent;
|
||||||
Minis will greatly increase the delay.
|
Minis will significantly increase the delay.
|
||||||
|
|
||||||
Countering:
|
Countering:
|
||||||
When you send attacks, if there is garbage in the queue,
|
When you send attacks, if there is garbage in the queue,
|
||||||
extra blocking will be used first, then attack, countering the earliest attack at a 1:1 ratio.
|
extra blocking will be used first, then attack, countering the earliest attack at a 1 : 1 ratio.
|
||||||
Any extra blocking you didn't use will be discarded, and finally, the remaining attack power will be sent to your opponent.
|
Any additional blocking you didn’t use will be discarded, and finally, the remaining attack power will be sent to your opponent.
|
||||||
|
|
||||||
Battle Royale modes:
|
Battle Royale modes:
|
||||||
Many players play a game at the same time (against AI bots, not real players).
|
Many players play a game simultaneously (against AI bots, not actual players).
|
||||||
As players get eliminated, blocks fall faster, and garbage takes effect faster, as well as rises faster.
|
As players get eliminated, blocks fall faster, and garbage takes effect and rises faster.
|
||||||
Eliminate other players to gain a badge and the player's badge to increase your attack power.
|
Eliminate other players to gain a badge and the player’s badge to increase your attack power.
|
||||||
Players can choose between four attack modes:
|
Players can choose between four attack modes:
|
||||||
1. Random: Every time you attack, 10% chance to lock onto a random player.
|
1. Random: Every time you attack, 10% chance to lock onto a random player.
|
||||||
2. Badges: After you attack or when your target dies, lock onto the player with the most badges.
|
2. Badges: After you attack or when your target dies, lock onto the player with the most badges.
|
||||||
3. KOs: After you attack or when your target dies, lock onto the player with the highest field. (Refreshes every second)
|
3. KOs: Lock onto the player with the highest field after you attack or when your target dies. (Refreshes every second)
|
||||||
4. Attackers: attack all players locking onto yourself.
|
4. Attackers: attack all players locking onto yourself.
|
||||||
Your attack will be sent to all of them. If you are not targeted, you attack a random player (not locking).
|
Your attack will be sent to all of them. If you are not targeted, you attack a random player (not locking).
|
||||||
When all opponents have been eliminated, the last player in the match is the winner.
|
When all opponents have been eliminated, the last player in the match is the winner.
|
||||||
@@ -97,4 +97,4 @@ Custom mode:
|
|||||||
empty cells can be in any state;
|
empty cells can be in any state;
|
||||||
regular colored cells have to be made of the corresponding block;
|
regular colored cells have to be made of the corresponding block;
|
||||||
garbage-colored cells can be any block but not air.
|
garbage-colored cells can be any block but not air.
|
||||||
Once you make the shape, you will win.
|
Once you make the shape, you will win.
|
||||||
@@ -1,33 +1,33 @@
|
|||||||
游戏方法:
|
游戏方法:
|
||||||
系统会提供的一个个四连骨牌("方块",总共7种)
|
系统会提供的一个个四连骨牌( “方块”, 总共7种)
|
||||||
玩家需要控制(左右移动和旋转90,180,270度)这些骨牌直到下落到场地底部,锁定
|
玩家需要控制(左右移动和旋转90, 180, 270度)这些骨牌直到下落到场地底部, 锁定
|
||||||
每填满场地的一行就会将其消除(如果有对手的话根据消除方式会给对手攻击)
|
每填满场地的一行就会将其消除(如果有对手的话根据消除方式会给对手攻击)
|
||||||
尝试存活更久,或者完成目标即胜利.
|
尝试存活更久, 或者完成目标即胜利.
|
||||||
|
|
||||||
旋转系统:
|
旋转系统:
|
||||||
默认使用Techmino专属旋转系统TRS,允许玩家自选其他较常用的旋转系统(一般不必要)
|
默认使用Techmino专属旋转系统TRS, 允许玩家自选其他较常用的旋转系统(一般不必要)
|
||||||
|
|
||||||
spin判定:
|
Spin判定:
|
||||||
满足三角判定+2分
|
满足三角判定+2分
|
||||||
满足不可移动判定+2分
|
满足不可移动判定+2分
|
||||||
--满足以上之一就算是spin
|
--满足以上之一就算是Spin
|
||||||
满足非第二个test+1分
|
满足非第二个test+1分
|
||||||
--如果分数只有2,方块是SZJLT之一,并且没有把当前方块整个消除那么就是mini
|
--如果分数只有2,方块是SZJLT之一,并且没有把当前方块整个消除那么就是mini
|
||||||
|
|
||||||
攻击系统:
|
攻击系统:
|
||||||
概念说明[高级消除]:
|
概念说明[高级消除]:
|
||||||
spin/消四及以上,会受到B2B(点数>=50)或B3B(点数>800)加成
|
Spin/消四及以上,会受到B2B(点数>=50)或B3B(点数>800)加成
|
||||||
反之称为低级消除
|
反之称为低级消除
|
||||||
概念说明[特殊消除]:
|
概念说明[特殊消除]:
|
||||||
spin/消四及以上/pc/hpc,可以增加B2B点数
|
Spin/消四及以上/PC/HPC,可以增加B2B点数
|
||||||
反之称为普通消除
|
反之称为普通消除
|
||||||
|
|
||||||
高级消除(spin):
|
高级消除(Spin):
|
||||||
打出[2*消行数]攻击,然后
|
打出[2*消行数]攻击,然后
|
||||||
- B2B攻击+[1/1/2/4/8/14(spin1~6)]
|
- B2B攻击+[1/1/2/4/8/14(Spin1~6)]
|
||||||
- B3B攻击在B2B基础上+消行数*0.5,+1额外抵挡
|
- B3B攻击在B2B基础上+消行数*0.5,+1额外抵挡
|
||||||
- mini减至25%
|
- mini减至25%
|
||||||
高级消除(非spin但是消四及以上):
|
高级消除(非Spin但是消四及以上):
|
||||||
打出[消行数]攻击,然后
|
打出[消行数]攻击,然后
|
||||||
- B2B攻击+1
|
- B2B攻击+1
|
||||||
- B3B攻击+50%,+1额外抵挡
|
- B3B攻击+50%,+1额外抵挡
|
||||||
@@ -48,21 +48,21 @@ back to back(B2B)点数说明:
|
|||||||
|
|
||||||
落块后消行了:
|
落块后消行了:
|
||||||
特殊消除:
|
特殊消除:
|
||||||
spin1~5:+[50/100/180/800/1000](mini变为原来50%)
|
Spin1~5:+[50/100/180/800/1000](mini变为原来50%)
|
||||||
消四/五/六:+[150/200/...]
|
消四/五/六:+[150/200/...]
|
||||||
本局内消行数>4时全消:+800
|
本局内消行数>4时全消:+800
|
||||||
半全消:+100
|
半全消:+100
|
||||||
普通消除:
|
普通消除:
|
||||||
-250
|
-250
|
||||||
落块后没消行:
|
落块后没消行:
|
||||||
空spin:+20
|
空Spin:+20
|
||||||
点数在800以上会-40(不低于800)
|
点数在800以上会-40(不低于800)
|
||||||
|
|
||||||
分数系统:
|
分数系统:
|
||||||
分数计算系统非常复杂,而且随时可能更改所以不写在这里,并且计算只跟消除方式等信息有关,和模式设定无关
|
分数计算系统非常复杂,而且随时可能更改所以不写在这里,并且计算只跟消除方式等信息有关,和模式设定无关
|
||||||
|
|
||||||
攻击延迟:
|
攻击延迟:
|
||||||
消2/3的攻击生效最快,消四其次,spin攻击生效较慢,高连击生效最慢
|
消2/3的攻击生效最快,消四其次,Spin攻击生效较慢,高连击生效最慢
|
||||||
B2B或者B3B增加攻击力的同时也会减缓一点生效速度,mini大幅减缓生效速度
|
B2B或者B3B增加攻击力的同时也会减缓一点生效速度,mini大幅减缓生效速度
|
||||||
|
|
||||||
抵消逻辑:
|
抵消逻辑:
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ return{
|
|||||||
{name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}},
|
{name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}},
|
||||||
{name='sprint_20l', x=-200, y=200, size=50,shape=1,icon="sprint1"},
|
{name='sprint_20l', x=-200, y=200, 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','sprint123','secret_grade'}},
|
{name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH','sprint123','secret_grade'}},
|
||||||
{name='sprint_100l', x=-200, y=0, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}},
|
{name='sprint_100l', x=-400, y=200, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}},
|
||||||
{name='sprint_400l', x=-400, y=0, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}},
|
{name='sprint_400l', x=-600, y=200, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}},
|
||||||
{name='sprint_1000l', x=-600, y=0, size=40,shape=1,icon="sprint3"},
|
{name='sprint_1000l', x=-800, y=200, size=40,shape=1,icon="sprint3"},
|
||||||
|
|
||||||
{name='sprintPenta', x=180, y=-160, size=40,shape=3,icon="sprint_pento"},
|
{name='sprintPenta', x=180, y=-160, size=40,shape=3,icon="sprint_pento"},
|
||||||
{name='sprintMPH', x=220, y=-300, size=40,shape=3,icon="sprint2"},
|
{name='sprintMPH', x=220, y=-300, size=40,shape=3,icon="sprint2"},
|
||||||
@@ -12,13 +12,18 @@ return{
|
|||||||
|
|
||||||
{name='secret_grade', x=-200, y=-400, size=40,shape=1,icon="secret_grade"},
|
{name='secret_grade', x=-200, y=-400, size=40,shape=1,icon="secret_grade"},
|
||||||
|
|
||||||
{name='drought_n', x=-400, y=200, size=40,shape=1,icon="drought", unlock={'drought_l'}},
|
{name='drought_n', x=-600, y=400, size=40,shape=1,icon="drought", unlock={'drought_l'}},
|
||||||
{name='drought_l', x=-600, y=200, size=40,shape=1,icon="drought"},
|
{name='drought_l', x=-800, y=400, size=40,shape=1,icon="drought"},
|
||||||
|
|
||||||
{name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l'}},
|
{name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l','dig_eff_10l'}},
|
||||||
{name='dig_40l', x=-400, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_100l'}},
|
{name='dig_40l', x=-400, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_100l'}},
|
||||||
{name='dig_100l', x=-600, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_400l'}},
|
{name='dig_100l', x=-600, y=-200, 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_400l', x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
|
||||||
|
|
||||||
|
{name='dig_eff_10l', x=-400, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_40l'}},
|
||||||
|
{name='dig_eff_40l', x=-600, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_100l'}},
|
||||||
|
{name='dig_eff_100l', x=-800, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_400l'}},
|
||||||
|
{name='dig_eff_400l', x=-1000, y=0, size=40,shape=1,icon="dig_sprint"},
|
||||||
|
|
||||||
{name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon", unlock={'marathon_h','solo_e','round_e','big_n','blind_e','classic_e','survivor_e','clearRush','zen'}},
|
{name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon", unlock={'marathon_h','solo_e','round_e','big_n','blind_e','classic_e','survivor_e','clearRush','zen'}},
|
||||||
{name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon", unlock={'master_n','strategy_e'}},
|
{name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon", unlock={'master_n','strategy_e'}},
|
||||||
|
|||||||
21
parts/modes/dig_eff_100l.lua
Normal file
21
parts/modes/dig_eff_100l.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
return{
|
||||||
|
env={
|
||||||
|
pushSpeed=6,
|
||||||
|
eventSet='dig_100l',
|
||||||
|
bg='bg2',bgm='way',
|
||||||
|
},
|
||||||
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2]) end,
|
||||||
|
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||||
|
getRank=function(P)
|
||||||
|
if P.stat.dig<100 then return end
|
||||||
|
local P=P.stat.piece
|
||||||
|
return
|
||||||
|
P<=260 and 5 or
|
||||||
|
P<=320 and 4 or
|
||||||
|
P<=420 and 3 or
|
||||||
|
P<=520 and 2 or
|
||||||
|
P<=620 and 1 or
|
||||||
|
0
|
||||||
|
end,
|
||||||
|
}
|
||||||
21
parts/modes/dig_eff_10l.lua
Normal file
21
parts/modes/dig_eff_10l.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
return{
|
||||||
|
env={
|
||||||
|
pushSpeed=6,
|
||||||
|
eventSet='dig_10l',
|
||||||
|
bg='bg1',bgm='way',
|
||||||
|
},
|
||||||
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2]) end,
|
||||||
|
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||||
|
getRank=function(P)
|
||||||
|
if P.stat.dig<10 then return end
|
||||||
|
local P=P.stat.piece
|
||||||
|
return
|
||||||
|
P<=12 and 5 or
|
||||||
|
P<=18 and 4 or
|
||||||
|
P<=25 and 3 or
|
||||||
|
P<=30 and 2 or
|
||||||
|
P<=40 and 1 or
|
||||||
|
0
|
||||||
|
end,
|
||||||
|
}
|
||||||
21
parts/modes/dig_eff_400l.lua
Normal file
21
parts/modes/dig_eff_400l.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
return{
|
||||||
|
env={
|
||||||
|
pushSpeed=6,
|
||||||
|
eventSet='dig_400l',
|
||||||
|
bg='bg2',bgm='way',
|
||||||
|
},
|
||||||
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2]) end,
|
||||||
|
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||||
|
getRank=function(P)
|
||||||
|
if P.stat.dig<400 then return end
|
||||||
|
local P=P.stat.piece
|
||||||
|
return
|
||||||
|
P<=1200 and 5 or
|
||||||
|
P<=1400 and 4 or
|
||||||
|
P<=1500 and 3 or
|
||||||
|
P<=1800 and 2 or
|
||||||
|
P<=2000 and 1 or
|
||||||
|
0
|
||||||
|
end,
|
||||||
|
}
|
||||||
21
parts/modes/dig_eff_40l.lua
Normal file
21
parts/modes/dig_eff_40l.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
return{
|
||||||
|
env={
|
||||||
|
pushSpeed=6,
|
||||||
|
eventSet='dig_40l',
|
||||||
|
bg='bg1',bgm='way',
|
||||||
|
},
|
||||||
|
score=function(P)return{P.stat.piece,P.stat.time}end,
|
||||||
|
scoreDisp=function(D)return D[1].." Pieces "..STRING.time(D[2]) end,
|
||||||
|
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||||
|
getRank=function(P)
|
||||||
|
if P.stat.dig<40 then return end
|
||||||
|
local P=P.stat.piece
|
||||||
|
return
|
||||||
|
P<=80 and 5 or
|
||||||
|
P<=100 and 4 or
|
||||||
|
P<=120 and 3 or
|
||||||
|
P<=160 and 2 or
|
||||||
|
P<=220 and 1 or
|
||||||
|
0
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -179,6 +179,8 @@ local function _drawField(P,showInvis)
|
|||||||
--</drawRow>
|
--</drawRow>
|
||||||
gc_setShader(shader_fieldSatur)
|
gc_setShader(shader_fieldSatur)
|
||||||
gc_translate(0,4)
|
gc_translate(0,4)
|
||||||
|
else
|
||||||
|
gc_setShader(shader_fieldSatur)
|
||||||
end
|
end
|
||||||
|
|
||||||
--<drawRow>
|
--<drawRow>
|
||||||
@@ -204,6 +206,8 @@ local function _drawField(P,showInvis)
|
|||||||
gc_setShader(shader_fieldSatur)
|
gc_setShader(shader_fieldSatur)
|
||||||
gc_pop()
|
gc_pop()
|
||||||
h=1
|
h=1
|
||||||
|
else
|
||||||
|
gc_setShader(shader_fieldSatur)
|
||||||
end
|
end
|
||||||
|
|
||||||
gc_push('transform')
|
gc_push('transform')
|
||||||
|
|||||||
@@ -70,5 +70,4 @@ return{
|
|||||||
|
|
||||||
bg='none',bgm='race',
|
bg='none',bgm='race',
|
||||||
allowMod=true,
|
allowMod=true,
|
||||||
FTLock=true,
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -377,7 +377,6 @@ local DemoEnv={
|
|||||||
life=1e99,
|
life=1e99,
|
||||||
allowMod=false,
|
allowMod=false,
|
||||||
fine=false,
|
fine=false,
|
||||||
FTLock=false,
|
|
||||||
}
|
}
|
||||||
function PLY.newDemoPlayer(id)
|
function PLY.newDemoPlayer(id)
|
||||||
local P=_newEmptyPlayer(id)
|
local P=_newEmptyPlayer(id)
|
||||||
|
|||||||
@@ -2671,7 +2671,7 @@ function Player:_die()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
function Player:update(dt)
|
function Player:update(dt)
|
||||||
self.trigFrame=self.trigFrame+(self.gameEnv.FTLock and dt*60 or 1)
|
self.trigFrame=self.trigFrame+dt*60
|
||||||
if self.alive then
|
if self.alive then
|
||||||
local S=self.stat
|
local S=self.stat
|
||||||
if self.type=='computer'then self.bot:update(dt)end
|
if self.type=='computer'then self.bot:update(dt)end
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ local emailBox=WIDGET.newInputBox{name='email',x=380,y=200,w=500,h=60,limit=128}
|
|||||||
local passwordBox=WIDGET.newInputBox{name='password',x=380,y=300,w=620,h=60,secret=true,regex="[ -~]",limit=64}
|
local passwordBox=WIDGET.newInputBox{name='password',x=380,y=300,w=620,h=60,secret=true,regex="[ -~]",limit=64}
|
||||||
|
|
||||||
local savePW=false
|
local savePW=false
|
||||||
|
local showEmail=true
|
||||||
|
|
||||||
local function _login()
|
local function _login()
|
||||||
local email,password=emailBox:getText(),passwordBox:getText()
|
local email,password=emailBox:getText(),passwordBox:getText()
|
||||||
@@ -25,19 +26,22 @@ function scene.sceneInit()
|
|||||||
local data=loadFile('conf/account','-canSkip')
|
local data=loadFile('conf/account','-canSkip')
|
||||||
if data then
|
if data then
|
||||||
savePW=true
|
savePW=true
|
||||||
|
showEmail=false
|
||||||
|
emailBox.secret=true
|
||||||
emailBox:setText(data[1])
|
emailBox:setText(data[1])
|
||||||
passwordBox:setText(data[2])
|
passwordBox:setText(data[2])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
scene.widgetList={
|
scene.widgetList={
|
||||||
WIDGET.newText{name='title', x=80, y=50,font=70,align='L'},
|
WIDGET.newText{name='title', x=80, y=50,font=70,align='L'},
|
||||||
WIDGET.newButton{name='register',x=1140,y=100,w=170,h=80,color='lY',code=function()SCN.swapTo('register','swipeR')end},
|
WIDGET.newButton{name='register', x=1140,y=100,w=170,h=80,color='lY',code=function()SCN.swapTo('register','swipeR')end},
|
||||||
emailBox,
|
emailBox,
|
||||||
passwordBox,
|
passwordBox,
|
||||||
WIDGET.newSwitch{name='keepPW', x=900, y=420,disp=function()return savePW end,code=function()savePW=not savePW end},
|
WIDGET.newSwitch{name='showEmail',x=550, y=420,disp=function()return showEmail end,code=function()showEmail=not showEmail emailBox.secret=not showEmail end},
|
||||||
WIDGET.newKey{name='login', x=1140,y=540,w=170,h=80,font=40,code=_login},
|
WIDGET.newSwitch{name='keepPW', x=900, y=420,disp=function()return savePW end,code=function()savePW=not savePW end},
|
||||||
WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
|
WIDGET.newKey{name='login', x=1140,y=540,w=170,h=80,font=40,code=_login},
|
||||||
|
WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
|
||||||
}
|
}
|
||||||
|
|
||||||
return scene
|
return scene
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ scene.widgetList={
|
|||||||
WIDGET.newSlider{name='atkFX', x=330,y=820,lim=280,w=540,axis={0,5,1},disp=SETval('atkFX'), code=SETsto('atkFX')},
|
WIDGET.newSlider{name='atkFX', x=330,y=820,lim=280,w=540,axis={0,5,1},disp=SETval('atkFX'), code=SETsto('atkFX')},
|
||||||
|
|
||||||
WIDGET.newSelector{name='frame', x=400,y=890,lim=280,w=460,list={8,10,13,17,22,29,37,47,62,80,100},disp=SETval('frameMul'),code=function(v)SETTING.frameMul=v;Z.setFrameMul(SETTING.frameMul)end},
|
WIDGET.newSelector{name='frame', x=400,y=890,lim=280,w=460,list={8,10,13,17,22,29,37,47,62,80,100},disp=SETval('frameMul'),code=function(v)SETTING.frameMul=v;Z.setFrameMul(SETTING.frameMul)end},
|
||||||
WIDGET.newSwitch{name='FTlock', x=950,y=890,lim=290,disp=SETval('FTLock'), code=SETrev('FTLock')},
|
|
||||||
|
|
||||||
WIDGET.newSwitch{name='text', x=450,y=980,lim=360,disp=SETval('text'), code=SETrev('text')},
|
WIDGET.newSwitch{name='text', x=450,y=980,lim=360,disp=SETval('text'), code=SETrev('text')},
|
||||||
WIDGET.newSwitch{name='score', x=450,y=1030,lim=360,disp=SETval('score'), code=SETrev('score')},
|
WIDGET.newSwitch{name='score', x=450,y=1030,lim=360,disp=SETval('score'), code=SETrev('score')},
|
||||||
|
|||||||
@@ -2,12 +2,16 @@ return[=[
|
|||||||
未来计划:
|
未来计划:
|
||||||
R E M A K E
|
R E M A K E
|
||||||
|
|
||||||
0.17.2: 0.17.2
|
0.17.2: 服务区 Service Area
|
||||||
新增:
|
新增:
|
||||||
把一些模式加入到大地图上(by NOT_A_ROBOT) #640
|
把一些模式加入到大地图上(by NOT_A_ROBOT) #640
|
||||||
|
登录界面会隐藏自动填充的邮箱防止信息泄露 #639
|
||||||
改动:
|
改动:
|
||||||
大幅下调高级机器人速度
|
移除FTLock设置,全局开启
|
||||||
|
大幅度调低高级机器人速度
|
||||||
|
词典新增一条比较详细的新人指引
|
||||||
master_g模式不再限定旋转系统
|
master_g模式不再限定旋转系统
|
||||||
|
改进几个经典模式(by NOT_A_ROBOT) #661
|
||||||
完善当前的攻击系统,进入稳定状态
|
完善当前的攻击系统,进入稳定状态
|
||||||
更新说明书的攻击系统章节
|
更新说明书的攻击系统章节
|
||||||
麻将小程序更像麻将
|
麻将小程序更像麻将
|
||||||
@@ -24,6 +28,7 @@ return[=[
|
|||||||
倒计时时不能充das #610
|
倒计时时不能充das #610
|
||||||
几个音效的音量不太对 #572
|
几个音效的音量不太对 #572
|
||||||
master_g没开锁定特效报错和一些细节问题
|
master_g没开锁定特效报错和一些细节问题
|
||||||
|
关闭3D方块选项后场地方块饱和度设置无效 #656
|
||||||
|
|
||||||
0.17.1: 苏醒 Wake Up
|
0.17.1: 苏醒 Wake Up
|
||||||
新增:
|
新增:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
return{
|
return{
|
||||||
["apkCode"]=434,
|
["apkCode"]=436,
|
||||||
["code"]=1702,
|
["code"]=1702,
|
||||||
["string"]="V0.17.2",
|
["string"]="V0.17.2",
|
||||||
["room"]="ver A-7",
|
["room"]="ver A-7",
|
||||||
|
|||||||
Reference in New Issue
Block a user