Compare commits
8 Commits
pre0.16.5-
...
pre0.16.5-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
510f7d7513 | ||
|
|
3128eb38c0 | ||
|
|
14ef654612 | ||
|
|
bc5193f95e | ||
|
|
8cbb4a38bc | ||
|
|
fce08c83ef | ||
|
|
018e99f9e6 | ||
|
|
7fe390b34b |
2
main.lua
2
main.lua
@@ -450,7 +450,7 @@ do
|
||||
fs.remove('record/round_l.rec')
|
||||
fs.remove('record/round_u.rec')
|
||||
end
|
||||
if STAT.version<1604 then
|
||||
if RANKS.stack_e then
|
||||
RANKS.stack_e=nil
|
||||
RANKS.stack_h=nil
|
||||
RANKS.stack_u=nil
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,0,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,120,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,30,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.atk>0 then
|
||||
P:receive(nil,P.lastPiece.atk,60,generateLine(P.holeRND:random(10)))
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.row>0 then
|
||||
for _=1,#P.clearedRow do
|
||||
local h=#P.field
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.row==0 then
|
||||
P:lose()
|
||||
else
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mText(TEXTOBJ.atk,63,243)
|
||||
mText(TEXTOBJ.eff,63,363)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.atk>=100 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.garbageBeneath==0 then
|
||||
local D=P.modeData
|
||||
D.finished=D.finished+1
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=10 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=100 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=1000 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=20 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=200 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=40 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=400 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if #PLY_ALIVE>1 then
|
||||
P.control=false
|
||||
local id1=P.sid
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.piece%7==0 and #PLY_ALIVE>1 then
|
||||
P.control=false
|
||||
local id1=P.sid
|
||||
|
||||
@@ -22,7 +22,7 @@ return{
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
if P.stat.row>=D.target then
|
||||
if D.target==110 then
|
||||
|
||||
@@ -22,7 +22,7 @@ return{
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
if P.stat.row>=D.target then
|
||||
if D.target==110 then
|
||||
|
||||
@@ -22,7 +22,7 @@ return{
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
if P.stat.row>=D.target then
|
||||
if D.target==100 then
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
setFont(55)
|
||||
mStr(100-P.stat.dig,63,265)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
for _=1,math.min(10,100-P.stat.dig)-P.garbageBeneath do
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
setFont(55)
|
||||
mStr(10-P.stat.dig,63,265)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.dig==10 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
setFont(55)
|
||||
mStr(400-P.stat.dig,63,265)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
for _=1,math.min(10,400-P.stat.dig)-P.garbageBeneath do
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
setFont(55)
|
||||
mStr(40-P.stat.dig,63,265)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
for _=1,math.min(10,40-P.stat.dig)-P.garbageBeneath do
|
||||
P:garbageRise(21,1,P:getHolePos())
|
||||
end
|
||||
|
||||
@@ -11,7 +11,7 @@ return{
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local flag
|
||||
local l=P.lastPiece
|
||||
if P.combo>1 then flag=true;P:showText("2x",0,-220,40,'flicker',.3)end
|
||||
|
||||
@@ -10,7 +10,7 @@ return
|
||||
task=function(P)
|
||||
P.modeData.target=50
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=P.modeData.target then
|
||||
if P.modeData.target==50 then
|
||||
P.gameEnv.drop=.25
|
||||
|
||||
@@ -30,7 +30,7 @@ return
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=P.modeData.target then
|
||||
if P.modeData.target%300==0 then
|
||||
P.gameEnv.wait=P.gameEnv.wait-1
|
||||
|
||||
@@ -12,7 +12,7 @@ return
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=P.modeData.target then
|
||||
if P.modeData.target==200 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -30,7 +30,7 @@ return{
|
||||
mStr(P.stat.row,63,230)
|
||||
mStr(P.stat.clears[4],63,340)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.modeData.rankPoint<140-passPoint then--If Less then X
|
||||
local R=#P.clearedRow
|
||||
if R>0 then
|
||||
|
||||
@@ -8,7 +8,7 @@ return{
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
|
||||
local c=#P.clearedRow
|
||||
|
||||
@@ -12,7 +12,7 @@ return{
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
|
||||
local c=#P.clearedRow
|
||||
|
||||
@@ -14,7 +14,7 @@ return
|
||||
task=function(P)
|
||||
P.modeData.target=10
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=P.modeData.target then
|
||||
if P.modeData.target==200 then
|
||||
P:win('finish')
|
||||
|
||||
@@ -12,7 +12,7 @@ return{
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
|
||||
local c=#P.clearedRow
|
||||
|
||||
@@ -13,7 +13,7 @@ return
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local p=P.modeData.pt+P.lastPiece.row
|
||||
if p>=P.modeData.target then
|
||||
local ENV=P.gameEnv
|
||||
|
||||
@@ -5,7 +5,7 @@ return{
|
||||
mStr(P.stat.pc,63,340)
|
||||
mText(TEXTOBJ.pc,63,410)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.pc and P.stat.row%4==0 then
|
||||
P.gameEnv.heightLimit=4
|
||||
if P.stat.pc%5==0 then
|
||||
|
||||
@@ -46,6 +46,6 @@ return{
|
||||
mStr(P.stat.pc,63,340)
|
||||
mText(TEXTOBJ.pc,63,410)
|
||||
end,
|
||||
dropPiece=check,
|
||||
hook_drop=check,
|
||||
task=check,
|
||||
}
|
||||
|
||||
@@ -37,6 +37,6 @@ return{
|
||||
mStr(P.stat.pc,63,340)
|
||||
mText(TEXTOBJ.pc,63,410)
|
||||
end,
|
||||
dropPiece=check,
|
||||
hook_drop=check,
|
||||
task=check,
|
||||
}
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
local gc=love.graphics
|
||||
local gc_draw,gc_print,gc_setColor=gc.draw,gc.print,gc.setColor
|
||||
local setFont=setFont
|
||||
|
||||
local PLAYERS,PLY_ALIVE=PLAYERS,PLY_ALIVE
|
||||
|
||||
return{
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawRoyaleInfo(P)
|
||||
setFont(35)
|
||||
mStr(#PLY_ALIVE.."/"..#PLAYERS,63,175)
|
||||
mStr(P.modeData.ko,80,215)
|
||||
gc_draw(TEXTOBJ.ko,60-TEXTOBJ.ko:getWidth(),222)
|
||||
setFont(20)
|
||||
gc_setColor(1,.5,0,.6)
|
||||
gc_print(P.badge,103,227)
|
||||
gc_setColor(.97,.97,.97)
|
||||
setFont(25)
|
||||
mStr(text.powerUp[P.strength],63,290)
|
||||
gc_setColor(1,1,1)
|
||||
for i=1,P.strength do
|
||||
gc_draw(IMG.badgeIcon,16*i+6,260)
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.stat.row>=40 then
|
||||
P:win('finish')
|
||||
end
|
||||
|
||||
@@ -14,7 +14,7 @@ return{
|
||||
mStr(r,63,265)
|
||||
PLY.draw.drawTargetLine(P,r)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local F=P.field
|
||||
for y=1,#F do
|
||||
local l=F[y]
|
||||
|
||||
@@ -7,9 +7,9 @@ return{
|
||||
mText(TEXTOBJ.line,63,350)
|
||||
PLY.draw.drawMarkLine(P,20,.3,1,1,TIME()%.42<.21 and .95 or .6)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
if #P.field>20 then
|
||||
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
|
||||
hook_die=function(P)
|
||||
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
|
||||
if cc>0 then
|
||||
local h=20-cc-P.garbageBeneath
|
||||
if h>0 then
|
||||
P:garbageRise(21,h,2e10-1)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
return{
|
||||
fieldH=21,
|
||||
fillClear=false,
|
||||
mesDisp=function(P)
|
||||
setFont(60)
|
||||
mStr(P.stat.row,63,280)
|
||||
mText(TEXTOBJ.line,63,350)
|
||||
PLY.draw.drawMarkLine(P,18,.3,1,1,TIME()%.42<.21 and .95 or .6)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
if #P.field>20 then
|
||||
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
|
||||
local h=20-cc-P.garbageBeneath-2
|
||||
if h>0 then
|
||||
P:garbageRise(21,h,2e10-1)
|
||||
if P.garbageBeneath>=20 then
|
||||
P:lose()
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -7,9 +7,9 @@ return{
|
||||
mText(TEXTOBJ.line,63,350)
|
||||
PLY.draw.drawMarkLine(P,17,.3,1,1,TIME()%.42<.21 and .95 or .6)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
if #P.field>20 then
|
||||
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
|
||||
hook_die=function(P)
|
||||
local cc=P:clearFilledLines(P.garbageBeneath+1,#P.field-P.garbageBeneath)
|
||||
if cc>0 then
|
||||
local h=20-cc-P.garbageBeneath-3
|
||||
if h>0 then
|
||||
P:garbageRise(21,h,2e10-1)
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
mStr(P.stat.clear[7][4],63,250)
|
||||
mText(TEXTOBJ.techrash,63,315)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
if P.lastPiece.row>0 and P.lastPiece.row<4 then
|
||||
P:lose()
|
||||
end
|
||||
|
||||
@@ -8,12 +8,12 @@ return{
|
||||
PLY.draw.applyField(P)
|
||||
local L=P.modeData.history
|
||||
for i=1,#L do
|
||||
gc.setColor(1,.3,.3,.45-i*.04)
|
||||
gc.setColor(1,.3,.3,.5-i*.04)
|
||||
gc.rectangle('fill',30*L[i]-30,0,30,600)
|
||||
end
|
||||
PLY.draw.cancelField(P)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local C=P.lastPiece
|
||||
if C.row>0 then
|
||||
if C.row==4 then
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
mStr(P.modeData.tsd,63,250)
|
||||
mText(TEXTOBJ.tsd,63,315)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local C=P.lastPiece
|
||||
if C.row>0 then
|
||||
if C.id==5 and C.row==2 and C.spin then
|
||||
|
||||
@@ -13,7 +13,7 @@ return{
|
||||
PLY.draw.cancelField(P)
|
||||
end
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local C=P.lastPiece
|
||||
if C.row>0 then
|
||||
if C.id==5 and C.row==2 and C.spin then
|
||||
|
||||
@@ -8,12 +8,12 @@ return{
|
||||
PLY.draw.applyField(P)
|
||||
local L=P.modeData.history
|
||||
for i=1,#L do
|
||||
gc.setColor(1,.3,.3,.3-i*.05)
|
||||
gc.setColor(1,.3,.3,.4-i*.05)
|
||||
gc.rectangle('fill',30*L[i]-30,0,30,600)
|
||||
end
|
||||
PLY.draw.cancelField(P)
|
||||
end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local C=P.lastPiece
|
||||
if C.row>0 then
|
||||
if C.id==5 and C.row==2 and C.spin then
|
||||
|
||||
@@ -677,9 +677,6 @@ return{
|
||||
['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines"},
|
||||
['drought_n']= {"Drought", "100L", "No I-pieces available"},
|
||||
['drought_l']= {"Drought+", "100L", "W T F"},
|
||||
['stack_e']= {"Stack", "EASY", "Pack them!"},
|
||||
['stack_h']= {"Stack", "HARD", "Pack them!"},
|
||||
['stack_u']= {"Stack", "ULTIMATE", "Pack them!"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"},
|
||||
['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"},
|
||||
['solo_e']= {"Battle", "EASY", "Defeat the AI!"},
|
||||
@@ -834,7 +831,7 @@ return{
|
||||
"Powered by Un..LÖVE",
|
||||
"pps-0.01",
|
||||
"Server down randomly",
|
||||
"Some requirements to achieve rank S 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.",
|
||||
"Split clear coming soon!",
|
||||
"sudo rm -rf /*",
|
||||
|
||||
@@ -636,9 +636,6 @@ return{
|
||||
['dig_400l']= {"Queso", "400L", "Limpia 400 líneas de queso."},
|
||||
['drought_n']= {"Sequía", "100L", "¡Sin piezas I!"},
|
||||
['drought_l']= {"Sequía+", "100L", "Guat de foc..."},
|
||||
['stack_e']= {"Stack", "Fácil", "¡Sin dejar huecos!"},
|
||||
['stack_h']= {"Stack", "Difícil", "¡Sin dejar huecos!"},
|
||||
['stack_u']= {"Stack", "Supremo", "¡Sin dejar huecos!"},
|
||||
['marathon_n']= {"Maratón", "Normal", "Maratón de 200 líneas con velocidad en aumento."},
|
||||
['marathon_h']= {"Maratón", "Difícil", "Maratón de 200 líneas a velocidad máxima."},
|
||||
['solo_e']= {"VS.", "Fácil", "¡Derrota a la CPU!"},
|
||||
|
||||
@@ -638,7 +638,6 @@ return{
|
||||
['drought_n']= {"Drought", "100L", "Pas de pièce I !"},
|
||||
['drought_l']= {"Drought+", "100L", "WTF ??!!"},
|
||||
-- ['stack_e']= {"Stack", "FACILE", "Pack them!"},
|
||||
-- ['stack_h']= {"Stack", "DIFFICILE", "Pack them!"},
|
||||
-- ['stack_u']= {"Stack", "ULTIME", "Pack them!"},
|
||||
['marathon_n']= {"Marathon", "NORMAL", "Marathon de 200 lignes."},
|
||||
['marathon_h']= {"Marathon", "DIFFICILE", "Marathon de 200 lignes à très haute vitesse"},
|
||||
|
||||
@@ -668,7 +668,6 @@ return{
|
||||
['drought_n']= {"Drought", "100L", "Sem peça I !"},
|
||||
['drought_l']= {"Drought+", "100L", "WTF"},
|
||||
-- ['stack_e']= {"Stack", "FÁCIL", "Pack them!"},
|
||||
-- ['stack_h']= {"Stack", "DIFÍCIL", "Pack them!"},
|
||||
-- ['stack_u']= {"Stack", "ULTIMATE", "Pack them!"},
|
||||
['marathon_n']= {"Maratona", "NORMAL", "200-line Maratona com velocidade aumentando."},
|
||||
['marathon_h']= {"Maratona", "DIFÍCIL", "200-line Maratona com velocidade alta."},
|
||||
|
||||
@@ -206,9 +206,6 @@ return{fallback='zh',
|
||||
['dig_400l']= {"挖掘", "400L", "挖400行"},
|
||||
['drought_n']= {"干旱", "100L", "放轻松,简单得很"},
|
||||
['drought_l']= {"干旱+", "100L", "有趣的要来了"},
|
||||
['stack_e']= {"堆叠", "简单", "智力启蒙玩具(确信"},
|
||||
['stack_h']= {"堆叠", "困难", "智力启蒙玩具(确信"},
|
||||
['stack_u']= {"堆叠", "极限", "智力启蒙玩具(确信"},
|
||||
['marathon_n']= {"马拉松", "普通", "休闲模式"},
|
||||
['marathon_h']= {"马拉松", "困难", "休闲模式"},
|
||||
['solo_e']= {"单挑", "简单", "鲨AI"},
|
||||
|
||||
@@ -681,9 +681,6 @@ return{
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['drought_n']= {"干旱", "100L", "你I没了"},
|
||||
['drought_l']= {"干旱+", "100L", "后 妈 发 牌"},
|
||||
['stack_e']= {"堆积", "简单", "搭积木"},
|
||||
['stack_h']= {"堆积", "困难", "搭积木"},
|
||||
['stack_u']= {"堆积", "极限", "搭积木"},
|
||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
|
||||
['solo_e']= {"单挑", "简单", "打败AI"},
|
||||
@@ -933,7 +930,7 @@ return{
|
||||
"请勿大力敲打设备!敲坏了就没有Techmino玩了",
|
||||
"请勿使用三只手游玩",
|
||||
"去玩别的方块的时候记得没有Ospin!",
|
||||
"全球应该没人能全S评价(大爆炸不算)",
|
||||
"全球目前应该没人能全X评价(大爆炸不算)",
|
||||
"群友翻译的中文方块百科全书! tetris.huijiwiki.com",
|
||||
"让他三尺又何妨",
|
||||
"如何O-spin: 一秒转626圈(误",
|
||||
|
||||
@@ -95,9 +95,6 @@ return{
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['drought_n']= {"干旱", "100行", "你I没了"},
|
||||
['drought_l']= {"干旱+", "100行", "后 妈 发 牌"},
|
||||
['stack_e']= {"堆积", "简单", "搭积木"},
|
||||
['stack_h']= {"堆积", "困难", "搭积木"},
|
||||
['stack_u']= {"堆积", "极限", "搭积木"},
|
||||
['marathon_n']= {"马拉松", "普通", "200行加速马拉松"},
|
||||
['marathon_h']= {"马拉松", "困难", "200行高速马拉松"},
|
||||
['solo_e']= {"单挑", "简单", "打败机器人"},
|
||||
|
||||
@@ -678,9 +678,6 @@ return{
|
||||
['dig_400l']= {"挖掘", "400升", "挖400条垃圾线"},
|
||||
['drought_n']= {"干旱", "100升", "没有工装"},
|
||||
['drought_l']= {"干旱+", "100升", "搞什么呀"},
|
||||
['stack_e']= {"堆栈", "容易", "打包!"},
|
||||
['stack_h']= {"堆栈", "硬的", "打包!"},
|
||||
['stack_u']= {"堆栈", "终极", "打包!"},
|
||||
['marathon_n']= {"马拉松赛跑", "正常", "200线加速马拉松"},
|
||||
['marathon_h']= {"马拉松赛跑", "硬的", "200线高速马拉松"},
|
||||
['solo_e']= {"战争", "容易", "打败AI!"},
|
||||
|
||||
@@ -681,9 +681,6 @@ return{
|
||||
['dig_400l']= {"挖掘", "400L", "挖掘400行"},
|
||||
['drought_n']= {"乾旱", "100L", "你I沒了"},
|
||||
['drought_l']= {"乾旱+", "100L", "後 媽 發 牌"},
|
||||
['stack_e']= {"堆疊", "簡單", "搭積木"},
|
||||
['stack_h']= {"堆疊", "困難", "搭積木"},
|
||||
['stack_u']= {"堆疊", "極限", "搭積木"},
|
||||
['marathon_n']= {"馬拉松", "普通", "200行加速馬拉松"},
|
||||
['marathon_h']= {"馬拉松", "困難", "200行高速馬拉松"},
|
||||
['solo_e']= {"單挑", "簡單", "打敗AI"},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
return{
|
||||
{name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}},
|
||||
{name='sprint_20l', x=-200, y=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','stack_e'}},
|
||||
{name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH'}},
|
||||
{name='sprint_100l', x=-200, y=0, 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_1000l', x=-600, y=0, size=40,shape=1,icon="sprint3"},
|
||||
@@ -12,10 +12,6 @@ return{
|
||||
{name='drought_n', x=-400, y=200, size=40,shape=1,icon="drought", unlock={'drought_l'}},
|
||||
{name='drought_l', x=-600, y=200, size=40,shape=1,icon="drought"},
|
||||
|
||||
{name='stack_e', x=-200, y=-400, size=40,shape=1,icon="mess", unlock={'stack_h'}},
|
||||
{name='stack_h', x=-400, y=-400, size=40,shape=1,icon="mess", unlock={'stack_u'}},
|
||||
{name='stack_u', x=-600, y=-400, size=40,shape=1,icon="mess"},
|
||||
|
||||
{name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l'}},
|
||||
{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'}},
|
||||
|
||||
@@ -2,9 +2,9 @@ return{
|
||||
env={
|
||||
drop=10,lock=60,
|
||||
freshLimit=15,
|
||||
dropPiece={
|
||||
require'parts.eventsets.backfire_60'.dropPiece,
|
||||
require'parts.eventsets.checkAttack_100'.dropPiece,
|
||||
hook_drop={
|
||||
require'parts.eventsets.backfire_60'.hook_drop,
|
||||
require'parts.eventsets.checkAttack_100'.hook_drop,
|
||||
},
|
||||
mesDisp=function(P)
|
||||
setFont(60)
|
||||
|
||||
@@ -2,9 +2,9 @@ return{
|
||||
env={
|
||||
drop=5,lock=45,
|
||||
freshLimit=15,
|
||||
dropPiece={
|
||||
require'parts.eventsets.backfire_30'.dropPiece,
|
||||
require'parts.eventsets.checkAttack_100'.dropPiece,
|
||||
hook_drop={
|
||||
require'parts.eventsets.backfire_30'.hook_drop,
|
||||
require'parts.eventsets.checkAttack_100'.hook_drop,
|
||||
},
|
||||
mesDisp=function(P)
|
||||
setFont(60)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
return{
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
dropPiece={
|
||||
require'parts.eventsets.backfire_120'.dropPiece,
|
||||
require'parts.eventsets.checkAttack_100'.dropPiece,
|
||||
hook_drop={
|
||||
require'parts.eventsets.backfire_120'.hook_drop,
|
||||
require'parts.eventsets.checkAttack_100'.hook_drop,
|
||||
},
|
||||
mesDisp=function(P)
|
||||
setFont(60)
|
||||
|
||||
@@ -2,9 +2,9 @@ return{
|
||||
env={
|
||||
drop=2,lock=30,
|
||||
freshLimit=10,
|
||||
dropPiece={
|
||||
require'parts.eventsets.backfire_0'.dropPiece,
|
||||
require'parts.eventsets.checkAttack_100'.dropPiece,
|
||||
hook_drop={
|
||||
require'parts.eventsets.backfire_0'.hook_drop,
|
||||
require'parts.eventsets.checkAttack_100'.hook_drop,
|
||||
},
|
||||
mesDisp=function(P)
|
||||
setFont(60)
|
||||
|
||||
@@ -2,7 +2,7 @@ return{
|
||||
env={
|
||||
drop=5,lock=30,
|
||||
freshLimit=15,ospin=false,
|
||||
dropPiece=require'parts.eventsets.c4wCheck_hard'.dropPiece,
|
||||
hook_drop=require'parts.eventsets.c4wCheck_hard'.hook_drop,
|
||||
eventSet='c4wBase',
|
||||
bg='rgb',bgm='oxygen',
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@ return{
|
||||
env={
|
||||
drop=30,lock=60,infHold=true,
|
||||
freshLimit=15,ospin=false,
|
||||
dropPiece=require'parts.eventsets.c4wCheck_easy'.dropPiece,
|
||||
hook_drop=require'parts.eventsets.c4wCheck_easy'.hook_drop,
|
||||
eventSet='c4wBase',
|
||||
bg='rgb',bgm='oxygen',
|
||||
},
|
||||
|
||||
@@ -5,9 +5,9 @@ return{
|
||||
|
||||
--Switch clear sprint mode on
|
||||
if #FIELD[1]>0 then
|
||||
GAME.modeEnv.dropPiece=require'parts.eventsets.checkClearBoard'.dropPiece
|
||||
GAME.modeEnv.hook_drop=require'parts.eventsets.checkClearBoard'.hook_drop
|
||||
else
|
||||
GAME.modeEnv.dropPiece=NULL
|
||||
GAME.modeEnv.hook_drop=NULL
|
||||
end
|
||||
PLY.newPlayer(1)
|
||||
local AItype=GAME.modeEnv.opponent:sub(1,2)
|
||||
|
||||
@@ -4,7 +4,7 @@ local ply_applyField=PLY.draw.applyField
|
||||
return{
|
||||
env={
|
||||
fkey1=function(P)P.modeData.showMark=1-P.modeData.showMark end,
|
||||
dropPiece=function(P)
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
local F=FIELD[D.finished+1]
|
||||
for y=1,#F do
|
||||
|
||||
@@ -30,7 +30,7 @@ return{
|
||||
drop=1e99,lock=1e99,
|
||||
infHold=true,
|
||||
pushSpeed=1.2,
|
||||
dropPiece=check_rise,
|
||||
hook_drop=check_rise,
|
||||
mesDisp=function(P)
|
||||
setFont(45)
|
||||
mStr(P.stat.dig,63,190)
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
drop=60,lock=180,
|
||||
keyCancel={1,2,11,12,17,18,19,20},
|
||||
eventSet='checkLine_40',
|
||||
bg='aura',bgm='waterfall',
|
||||
bg='aura',bgm='there',
|
||||
},
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
|
||||
@@ -3,7 +3,7 @@ return{
|
||||
drop=60,lock=180,
|
||||
keyCancel={3,4,5},
|
||||
eventSet='checkLine_40',
|
||||
bg='aura',bgm='waterfall',
|
||||
bg='aura',bgm='there',
|
||||
},
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
|
||||
@@ -2,7 +2,7 @@ return{
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
eventSet='sprintSym',
|
||||
bg='aura',bgm='waterfall',
|
||||
bg='aura',bgm='there',
|
||||
},
|
||||
getRank=function(P)
|
||||
if P.stat.row<40 then return end
|
||||
|
||||
@@ -3,22 +3,8 @@ return{
|
||||
drop=60,lock=60,
|
||||
wait=0,fall=50,
|
||||
garbageSpeed=30,
|
||||
highCam=false,
|
||||
seqData={1,2,3,4,5,6,7},
|
||||
eventSet='stack_e',
|
||||
bg='blockrain',bgm='there',
|
||||
},
|
||||
score=function(P)return{P.stat.row,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Lines".." "..STRING.time(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
return
|
||||
L>=200 and 5 or
|
||||
L>=175 and 4 or
|
||||
L>=150 and 3 or
|
||||
L>=120 and 2 or
|
||||
L>=90 and 1 or
|
||||
L>=30 and 0
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
return{
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
wait=0,fall=50,
|
||||
highCam=false,
|
||||
garbageSpeed=30,
|
||||
seqData={1,2,3,4,5,6,7,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},
|
||||
eventSet='stack_h',
|
||||
bg='blockrain',bgm='there',
|
||||
},
|
||||
score=function(P)return{P.stat.row,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Lines".." "..STRING.time(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
return
|
||||
L>=80 and 5 or
|
||||
L>=70 and 4 or
|
||||
L>=60 and 3 or
|
||||
L>=50 and 2 or
|
||||
L>=35 and 1 or
|
||||
L>=20 and 0
|
||||
end,
|
||||
}
|
||||
@@ -2,23 +2,9 @@ return{
|
||||
env={
|
||||
drop=60,lock=60,
|
||||
wait=0,fall=50,
|
||||
highCam=false,
|
||||
garbageSpeed=30,
|
||||
seqData={8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},
|
||||
eventSet='stack_u',
|
||||
bg='blockrain',bgm='there',
|
||||
},
|
||||
score=function(P)return{P.stat.row,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].." Lines".." "..STRING.time(D[2])end,
|
||||
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
|
||||
getRank=function(P)
|
||||
local L=P.stat.row
|
||||
return
|
||||
L>=60 and 5 or
|
||||
L>=50 and 4 or
|
||||
L>=45 and 3 or
|
||||
L>=30 and 2 or
|
||||
L>=20 and 1 or
|
||||
L>=10 and 0
|
||||
end,
|
||||
}
|
||||
@@ -17,7 +17,7 @@ return{
|
||||
drop=1e99,lock=60,
|
||||
freshLimit=15,
|
||||
fineKill=true,
|
||||
dropPiece=tech_check_hard,
|
||||
hook_drop=tech_check_hard,
|
||||
bg='flink',bgm='infinite',
|
||||
},
|
||||
slowMark=true,
|
||||
|
||||
@@ -15,7 +15,7 @@ return{
|
||||
env={
|
||||
drop=30,lock=60,
|
||||
freshLimit=15,
|
||||
dropPiece=tech_check_hard,
|
||||
hook_drop=tech_check_hard,
|
||||
eventSet='checkAttack_100',
|
||||
bg='matrix',bgm='down',
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@ return{
|
||||
env={
|
||||
drop=0,lock=60,
|
||||
freshLimit=15,
|
||||
dropPiece=tech_check_hard,
|
||||
hook_drop=tech_check_hard,
|
||||
eventSet='checkAttack_100',
|
||||
bg='matrix',bgm='warped',
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@ return{
|
||||
env={
|
||||
infHold=true,
|
||||
drop=1e99,lock=1e99,
|
||||
dropPiece=tech_check_hard,
|
||||
hook_drop=tech_check_hard,
|
||||
eventSet='checkAttack_100',
|
||||
bg='matrix',bgm='new era',
|
||||
},
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
freshLimit=15,
|
||||
ospin=false,
|
||||
eventSet='techrash_n',
|
||||
bg='matrix',bgm='vapor',
|
||||
bg='matrix',bgm='magicblock',
|
||||
},
|
||||
getRank=function(P)
|
||||
local T=P.stat.clear[7][4]
|
||||
|
||||
@@ -4,7 +4,7 @@ return{
|
||||
freshLimit=15,
|
||||
ospin=false,
|
||||
eventSet='techrash_u',
|
||||
bg='matrix',bgm='vapor',
|
||||
bg='matrix',bgm='magicblock',
|
||||
},
|
||||
getRank=function(P)
|
||||
local T=P.stat.clear[7][4]
|
||||
|
||||
@@ -118,4 +118,7 @@ return{
|
||||
{font=25,name="Trebor"},
|
||||
{font=25,name="[w*o]"},
|
||||
{font=25,name="蚂蚁"},
|
||||
{font=25,name="小丘"},
|
||||
{font=25,name="[*)]"},
|
||||
{font=25,name="费尔特林"},
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ local shader_alpha,shader_lighter=SHADER.alpha,SHADER.lighter
|
||||
local shader_fieldSatur,shader_blockSatur=SHADER.fieldSatur,SHADER.blockSatur
|
||||
local TEXTOBJ,ENUM_MISSION,BLOCK_COLORS=TEXTOBJ,ENUM_MISSION,BLOCK_COLORS
|
||||
|
||||
local PLAYERS,PLY_ALIVE=PLAYERS,PLY_ALIVE
|
||||
|
||||
local RCPB={10,33,200,33,105,5,105,60}
|
||||
local attackColor={
|
||||
@@ -694,22 +693,6 @@ function draw.drawProgress(s1,s2)
|
||||
mStr(s2,62,376)
|
||||
gc_rectangle('fill',15,375,90,4,2)
|
||||
end
|
||||
function draw.drawRoyaleInfo(P)
|
||||
setFont(35)
|
||||
mStr(#PLY_ALIVE.."/"..#PLAYERS,63,175)
|
||||
mStr(P.modeData.ko,80,215)
|
||||
gc_draw(TEXTOBJ.ko,60-TEXTOBJ.ko:getWidth(),222)
|
||||
setFont(20)
|
||||
gc_setColor(1,.5,0,.6)
|
||||
gc_print(P.badge,103,227)
|
||||
gc_setColor(.97,.97,.97)
|
||||
setFont(25)
|
||||
mStr(text.powerUp[P.strength],63,290)
|
||||
gc_setColor(1,1,1)
|
||||
for i=1,P.strength do
|
||||
gc_draw(IMG.badgeIcon,16*i+6,260)
|
||||
end
|
||||
end
|
||||
|
||||
function draw.norm(P,repMode)
|
||||
local ENV=P.gameEnv
|
||||
|
||||
@@ -61,7 +61,8 @@ return{
|
||||
noInitSZO=false,
|
||||
|
||||
mesDisp={},
|
||||
dropPiece={},
|
||||
hook_drop={},
|
||||
hook_die={},
|
||||
task={},
|
||||
eventSet="X",
|
||||
|
||||
|
||||
@@ -303,7 +303,8 @@ local function _applyGameEnv(P)--Finish gameEnv processing
|
||||
|
||||
--Apply events
|
||||
ENV.mesDisp=_mergeFuncTable(ENV.mesDisp,{})
|
||||
ENV.dropPiece=_mergeFuncTable(ENV.dropPiece,{})
|
||||
ENV.hook_drop=_mergeFuncTable(ENV.hook_drop,{})
|
||||
ENV.hook_die=_mergeFuncTable(ENV.hook_die,{})
|
||||
ENV.task=_mergeFuncTable(ENV.task,{})
|
||||
|
||||
--Apply eventSet
|
||||
@@ -314,7 +315,8 @@ local function _applyGameEnv(P)--Finish gameEnv processing
|
||||
for k,v in next,eventSet do
|
||||
if
|
||||
k=='mesDisp'or
|
||||
k=='dropPiece'or
|
||||
k=='hook_drop'or
|
||||
k=='hook_die'or
|
||||
k=='task'
|
||||
then
|
||||
_mergeFuncTable(v,ENV[k])
|
||||
|
||||
@@ -313,10 +313,13 @@ function Player:setRS(RSname)
|
||||
end
|
||||
end
|
||||
|
||||
function Player:triggerDropEvents()
|
||||
local L=self.gameEnv.dropPiece
|
||||
for i=1,#L do
|
||||
L[i](self)
|
||||
function Player:_triggerEvent(eventName)
|
||||
local L=self.gameEnv[eventName]
|
||||
if L[1]then
|
||||
for i=1,#L do
|
||||
L[i](self)
|
||||
end
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -378,9 +381,22 @@ function Player:garbageRise(color,amount,line)--Release n-lines garbage to field
|
||||
_=self.dropFX[i]
|
||||
_[3],_[5]=_[3]+amount,_[5]+amount
|
||||
end
|
||||
if #self.field>self.gameEnv.heightLimit then
|
||||
if
|
||||
#self.field>self.gameEnv.heightLimit and(
|
||||
not self:_triggerEvent('hook_die')or
|
||||
#self.field>self.gameEnv.heightLimit
|
||||
)
|
||||
then
|
||||
self:lock()
|
||||
self:lose()
|
||||
end
|
||||
|
||||
if #self.field>self.gameEnv.heightLimit then
|
||||
self:_triggerEvent('hook_die')
|
||||
if #self.field>self.gameEnv.heightLimit then
|
||||
self:lose()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local invList={2,1,4,3,5,6,7}
|
||||
@@ -724,7 +740,7 @@ function Player:removeTopClearingFX()
|
||||
return true
|
||||
end
|
||||
end
|
||||
function Player:checkMission(piece,mission)
|
||||
function Player:_checkMission(piece,mission)
|
||||
if mission<5 then
|
||||
return piece.row==mission and not piece.spin
|
||||
elseif mission<9 then
|
||||
@@ -736,6 +752,17 @@ function Player:checkMission(piece,mission)
|
||||
end
|
||||
return false
|
||||
end
|
||||
function Player:_checkSuffocate()
|
||||
if
|
||||
self:ifoverlap(self.cur.bk,self.curX,self.curY)and(
|
||||
not self:_triggerEvent('hook_die')or
|
||||
self:ifoverlap(self.cur.bk,self.curX,self.curY)
|
||||
)
|
||||
then
|
||||
self:lock()
|
||||
self:lose()
|
||||
end
|
||||
end
|
||||
|
||||
local spawnSFX_name={'spawn_1','spawn_2','spawn_3','spawn_4','spawn_5','spawn_6','spawn_7'}
|
||||
function Player:resetBlock()--Reset Block's position and execute I*S
|
||||
@@ -905,10 +932,7 @@ function Player:hold_norm(ifpre)
|
||||
self:freshBlock('move')
|
||||
self.dropDelay=ENV.drop
|
||||
self.lockDelay=ENV.lock
|
||||
if self:ifoverlap(self.cur.bk,self.curX,self.curY)then
|
||||
self:lock()
|
||||
self:lose()
|
||||
end
|
||||
self:_checkSuffocate()
|
||||
end
|
||||
|
||||
self.freshTime=int(min(self.freshTime+ENV.freshLimit*.25,ENV.freshLimit*((self.holdTime+1)/ENV.holdCount),ENV.freshLimit))
|
||||
@@ -971,10 +995,7 @@ function Player:hold_swap(ifpre)
|
||||
self:freshBlock('move')
|
||||
self.dropDelay=ENV.drop
|
||||
self.lockDelay=ENV.lock
|
||||
if self:ifoverlap(self.cur.bk,self.curX,self.curY)then
|
||||
self:lock()
|
||||
self:lose()
|
||||
end
|
||||
self:_checkSuffocate()
|
||||
end
|
||||
|
||||
self.freshTime=int(min(self.freshTime+ENV.freshLimit*.25,ENV.freshLimit*((self.holdTime+1)/ENV.holdCount),ENV.freshLimit))
|
||||
@@ -1044,10 +1065,7 @@ function Player:popNext(ifhold)--Pop nextQueue to hand
|
||||
self.freshTime=ENV.freshLimit
|
||||
|
||||
if self.cur then
|
||||
if self:ifoverlap(self.cur.bk,self.curX,self.curY)then
|
||||
self:lock()
|
||||
self:lose()
|
||||
end
|
||||
self:_checkSuffocate()
|
||||
self:freshBlock('newBlock')
|
||||
end
|
||||
|
||||
@@ -1608,7 +1626,7 @@ do
|
||||
|
||||
--Check clearing task
|
||||
if cc>0 and self.curMission then
|
||||
if self:checkMission(piece,ENV.mission[self.curMission])then
|
||||
if self:_checkMission(piece,ENV.mission[self.curMission])then
|
||||
self.curMission=self.curMission+1
|
||||
SFX.play('reach')
|
||||
if self.curMission>#ENV.mission then
|
||||
@@ -1670,13 +1688,13 @@ do
|
||||
if finish=='lose'then
|
||||
self:lose()
|
||||
else
|
||||
self:triggerDropEvents()
|
||||
self:_triggerEvent('hook_drop')
|
||||
if finish then
|
||||
self:win(finish)
|
||||
end
|
||||
end
|
||||
else
|
||||
self:triggerDropEvents()
|
||||
self:_triggerEvent('hook_drop')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2333,7 +2351,9 @@ function Player:revive()
|
||||
SFX.play('emit')
|
||||
end
|
||||
function Player:win(result)
|
||||
if self.result then return end
|
||||
if self.result then
|
||||
return
|
||||
end
|
||||
self:_die()
|
||||
self.result='win'
|
||||
if GAME.modeEnv.royaleMode then
|
||||
@@ -2374,8 +2394,7 @@ function Player:lose(force)
|
||||
if self.life>0 then
|
||||
self:revive()
|
||||
return
|
||||
end
|
||||
if self.type=='remote'then
|
||||
elseif self.type=='remote'then
|
||||
self.waiting=1e99
|
||||
return
|
||||
end
|
||||
|
||||
@@ -22,17 +22,19 @@ return[=[
|
||||
新增繁中语言,新语言设置菜单布局
|
||||
新BGM:peak(暂未使用)
|
||||
新BGM:1989(用于经典模式,by C₂₉H₂₅N₃O₅)
|
||||
移除节奏模式
|
||||
删除节奏模式(之后会有全新音游模式)
|
||||
移除模式标题的颜色
|
||||
改动:
|
||||
移动音效改为触地音效,在方块因重力或旋转触地时也会播放
|
||||
再调整场地晃动的阻力,看起来更舒服
|
||||
重做全局颜色表(by C₂₉H₂₅N₃O₅)
|
||||
重新安排一些模式的BGM
|
||||
堆积模式移出地图,修改规则可以消超过20行
|
||||
只在更新后触发自动转换以旧版本模式名存储的数据
|
||||
再次更换字体
|
||||
代码:
|
||||
播放乐器采样更自然并允许超过音源范围
|
||||
添加死亡事件触发器
|
||||
修复:
|
||||
堆积模式超级消除有时报错
|
||||
词典导出词条保留了替换敏感词的特殊字符
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
return{
|
||||
["apkCode"]=397,
|
||||
["apkCode"]=398,
|
||||
["code"]=1605,
|
||||
["string"]="V0.16.5",
|
||||
["room"]="ver A-0",
|
||||
|
||||
Reference in New Issue
Block a user