调整炸弹垃圾行消除判定
This commit is contained in:
@@ -1563,10 +1563,6 @@ function player.ifoverlap(P,bk,x,y)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function player.ckfull(P,i)
|
|
||||||
for j=1,10 do if P.field[i][j]<=0 then return end end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
function player.attack(P,R,send,time,...)
|
function player.attack(P,R,send,time,...)
|
||||||
if SETTING.atkFX>0 then
|
if SETTING.atkFX>0 then
|
||||||
P:createBeam(R,send,time,...)
|
P:createBeam(R,send,time,...)
|
||||||
@@ -2137,28 +2133,33 @@ do--player.drop(P)--Place piece
|
|||||||
--Clear list of cleared-rows
|
--Clear list of cleared-rows
|
||||||
if P.clearedRow[1]then P.clearedRow={}end
|
if P.clearedRow[1]then P.clearedRow={}end
|
||||||
|
|
||||||
--Check bomb garbage
|
--Check line clear
|
||||||
if CY>1 then
|
for i=1,P.r do
|
||||||
local L=P.field[CY-1]
|
local h=CY+i-2
|
||||||
local l=CB.bk[1]
|
|
||||||
for i=1,P.c do
|
--Bomb trigger
|
||||||
if l[i]and L[CX+i-1]==19 then
|
if h>0 and P.field[h]and P.clearedRow[cc]~=h then
|
||||||
cc=1--cc=cc+1
|
for x=1,P.c do
|
||||||
P.clearingRow[1]=CY-1--P.clearingRow[cc]=CY-1
|
if CB.bk[i][x]and P.field[h][CX+x-1]==19 then
|
||||||
P.clearedRow[1]=CY-1--P.clearedRow[cc]=CY-1
|
cc=cc+1
|
||||||
break
|
P.clearingRow[cc]=h-cc+1
|
||||||
|
P.clearedRow[cc]=h
|
||||||
|
break
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
--Check rows filled
|
h=h+1
|
||||||
for i=0,P.r-1 do
|
--Row filled
|
||||||
local h=CY+i
|
for x=1,10 do
|
||||||
if P:ckfull(h)then
|
if P.field[h][x]<=0 then
|
||||||
|
goto notFull
|
||||||
|
end
|
||||||
|
end
|
||||||
cc=cc+1
|
cc=cc+1
|
||||||
P.clearingRow[cc]=h-cc+1
|
P.clearingRow[cc]=h-cc+1
|
||||||
P.clearedRow[cc]=h
|
P.clearedRow[cc]=h
|
||||||
end
|
::notFull::
|
||||||
end
|
end
|
||||||
|
|
||||||
--Create clearing FX
|
--Create clearing FX
|
||||||
|
|||||||
Reference in New Issue
Block a user