add hold i_s from next (#1061)

This commit is contained in:
Imple Lee
2023-12-04 19:23:01 +08:00
committed by GitHub
parent 80ff30401a
commit d3e4d7e62c
3 changed files with 18 additions and 5 deletions

View File

@@ -151,6 +151,7 @@ local function _newEmptyPlayer(id,mini)
P.nextQueue={} P.nextQueue={}
P.holdQueue={} P.holdQueue={}
P.holdTime=0 P.holdTime=0
P.holdIXSFromNext=nil
P.lastPiece={ P.lastPiece={
id=0,name=0,-- block id/name id=0,name=0,-- block id/name

View File

@@ -1275,13 +1275,21 @@ function Player:_try_physical_hold_with(H)
end end
function Player:hold_norm(ifpre) function Player:hold_norm(ifpre)
local ENV=self.gameEnv local ENV=self.gameEnv
if #self.holdQueue<ENV.holdCount and self.nextQueue[1] then-- Skip if self.holdIXSFromNext or #self.holdQueue<ENV.holdCount and self.nextQueue[1] then-- Skip
local C=self.cur local C=self.cur
ins(self.holdQueue,self:_getBlock(C.id,C.name,C.color)) if C then
ins(self.holdQueue,self:_getBlock(C.id,C.name,C.color))
local t=self.holdTime if self:willDieWith(self.nextQueue[1]) then
self.cur=nil
self.waiting=ENV.hang
self.holdIXSFromNext={ifpre}
return
end
else
self.holdIXSFromNext=nil
end
self:_popNext(true) self:_popNext(true)
self.holdTime=t
else-- Hold else-- Hold
local C,H=self.cur,self.holdQueue[1] local C,H=self.cur,self.holdQueue[1]
self.ctrlCount=0 self.ctrlCount=0
@@ -1420,6 +1428,10 @@ function Player:getNext(id,bagLineCounter)-- Push a block to nextQueue
end end
function Player:spawn()-- Spawn a piece function Player:spawn()-- Spawn a piece
local ENV=self.gameEnv local ENV=self.gameEnv
if self.holdIXSFromNext then
self:hold(self.holdIXSFromNext[1],true)
return
end
if #self.holdQueue>ENV.holdCount or ENV.holdMode=='swap' and #self.holdQueue>0 then if #self.holdQueue>ENV.holdCount or ENV.holdMode=='swap' and #self.holdQueue>0 then
self:hold(true,true) self:hold(true,true)
return return

View File

@@ -2,6 +2,6 @@ return {
["apkCode"]=1715, ["apkCode"]=1715,
["code"]=1715, ["code"]=1715,
["string"]="V0.17.15", ["string"]="V0.17.15",
["room"]="ver A-10", ["room"]="ver A-11",
["name"]="暂停 Break", ["name"]="暂停 Break",
} }