修复对战和stack_e中hold致死但没有完全死的时候下一块悬空导致的幽灵行
This commit is contained in:
@@ -26,6 +26,7 @@ return {
|
||||
P.garbageBeneath=P.garbageBeneath-bonus
|
||||
end
|
||||
end
|
||||
P:freshBlock('push')
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -11,7 +11,7 @@ local resume,yield,status=coroutine.resume,coroutine.yield,coroutine.status
|
||||
local approach=MATH.expApproach
|
||||
|
||||
local SFX,BGM,VOC,VIB,SYSFX=SFX,BGM,VOC,VIB,SYSFX
|
||||
local FREEROW,TABLE,TEXT,TASK=LINE,TABLE,TEXT,TASK
|
||||
local LINE,TABLE,TEXT,TASK=LINE,TABLE,TEXT,TASK
|
||||
local PLAYERS,PLY_ALIVE,GAME=PLAYERS,PLY_ALIVE,GAME
|
||||
|
||||
local SETTING=SETTING
|
||||
@@ -721,8 +721,8 @@ function Player:garbageRise(color,amount,line)-- Release n-lines garbage to fiel
|
||||
local _
|
||||
local t=self.showTime*2
|
||||
for _=1,amount do
|
||||
ins(self.field,1,FREEROW.new(0,true))
|
||||
ins(self.visTime,1,FREEROW.new(t))
|
||||
ins(self.field,1,LINE.new(0,true))
|
||||
ins(self.visTime,1,LINE.new(t))
|
||||
for i=1,10 do
|
||||
self.field[1][i]=bit.rshift(line,i-1)%2==1 and color or 0
|
||||
end
|
||||
@@ -760,7 +760,7 @@ function Player:pushLineList(L,mir)-- Push some lines to field
|
||||
local l=#L
|
||||
local S=self.gameEnv.skin
|
||||
for i=1,l do
|
||||
local r=FREEROW.new(0)
|
||||
local r=LINE.new(0)
|
||||
if not mir then
|
||||
for j=1,10 do
|
||||
r[j]=S[L[i][j]] or 0
|
||||
@@ -771,7 +771,7 @@ function Player:pushLineList(L,mir)-- Push some lines to field
|
||||
end
|
||||
end
|
||||
ins(self.field,1,r)
|
||||
ins(self.visTime,1,FREEROW.new(20))
|
||||
ins(self.visTime,1,LINE.new(20))
|
||||
end
|
||||
self.fieldBeneath=self.fieldBeneath+30*l
|
||||
if self.cur then
|
||||
@@ -1010,8 +1010,8 @@ function Player:lock()
|
||||
for i=1,#CB do
|
||||
local y=self.curY+i-1
|
||||
if not self.field[y] then
|
||||
self.field[y]=FREEROW.new(0)
|
||||
self.visTime[y]=FREEROW.new(0)
|
||||
self.field[y]=LINE.new(0)
|
||||
self.visTime[y]=LINE.new(0)
|
||||
end
|
||||
for j=1,#CB[1] do
|
||||
if CB[i][j] then
|
||||
@@ -1079,8 +1079,8 @@ function Player:_removeClearedLines()
|
||||
if self.field[h].garbage then
|
||||
self.garbageBeneath=self.garbageBeneath-1
|
||||
end
|
||||
FREEROW.discard(rem(self.field,h))
|
||||
FREEROW.discard(rem(self.visTime,h))
|
||||
LINE.discard(rem(self.field,h))
|
||||
LINE.discard(rem(self.visTime,h))
|
||||
end
|
||||
end
|
||||
function Player:_updateFalling(val)
|
||||
@@ -2196,8 +2196,8 @@ local function task_lose(self)
|
||||
end
|
||||
if self.endCounter==120 then
|
||||
for _=#self.field,1,-1 do
|
||||
FREEROW.discard(self.field[_])
|
||||
FREEROW.discard(self.visTime[_])
|
||||
LINE.discard(self.field[_])
|
||||
LINE.discard(self.visTime[_])
|
||||
self.field[_],self.visTime[_]=nil
|
||||
end
|
||||
return
|
||||
@@ -2763,8 +2763,8 @@ end
|
||||
function Player:revive()
|
||||
local h=#self.field
|
||||
for _=h,1,-1 do
|
||||
FREEROW.discard(self.field[_])
|
||||
FREEROW.discard(self.visTime[_])
|
||||
LINE.discard(self.field[_])
|
||||
LINE.discard(self.visTime[_])
|
||||
self.field[_],self.visTime[_]=nil
|
||||
end
|
||||
self.garbageBeneath=0
|
||||
@@ -2777,6 +2777,7 @@ function Player:revive()
|
||||
self.life=self.life-1
|
||||
self.fieldBeneath=0
|
||||
self.b2b=0
|
||||
self:freshBlock('push')
|
||||
|
||||
for i=1,h do
|
||||
self:createClearingFX(i)
|
||||
|
||||
Reference in New Issue
Block a user