玩家next序列长度增加至12(内部)
录像回放模式下会尝试显示至多12个next
This commit is contained in:
@@ -541,7 +541,7 @@ local draw={}
|
|||||||
draw.drawGhost=drawGhost
|
draw.drawGhost=drawGhost
|
||||||
draw.applyField=applyField
|
draw.applyField=applyField
|
||||||
draw.cancelField=cancelField
|
draw.cancelField=cancelField
|
||||||
function draw.drawNext_norm(P)
|
function draw.drawNext_norm(P,repMode)
|
||||||
local ENV=P.gameEnv
|
local ENV=P.gameEnv
|
||||||
local texture=P.skinLib
|
local texture=P.skinLib
|
||||||
gc_translate(488,20)
|
gc_translate(488,20)
|
||||||
@@ -552,6 +552,9 @@ function draw.drawNext_norm(P)
|
|||||||
N=1
|
N=1
|
||||||
gc_push('transform')
|
gc_push('transform')
|
||||||
gc_translate(50,40)
|
gc_translate(50,40)
|
||||||
|
gc_setColor(1,1,1)
|
||||||
|
|
||||||
|
--Draw nexts
|
||||||
gc_setShader(shader_blockSatur)
|
gc_setShader(shader_blockSatur)
|
||||||
local queue=P.nextQueue
|
local queue=P.nextQueue
|
||||||
while N<=ENV.nextCount and queue[N]do
|
while N<=ENV.nextCount and queue[N]do
|
||||||
@@ -568,6 +571,24 @@ function draw.drawNext_norm(P)
|
|||||||
gc_translate(0,72)
|
gc_translate(0,72)
|
||||||
end
|
end
|
||||||
gc_setShader()
|
gc_setShader()
|
||||||
|
|
||||||
|
--Draw more nexts
|
||||||
|
if repMode then
|
||||||
|
gc_translate(50,-28)
|
||||||
|
local blockImg=TEXTURE.miniBlock
|
||||||
|
local skinSet=ENV.skin
|
||||||
|
local n=N
|
||||||
|
while n<=12 and queue[n]do
|
||||||
|
local id=queue[n].id
|
||||||
|
local _=minoColor[skinSet[id]]
|
||||||
|
gc_setColor(_[1],_[2],_[3],.2)
|
||||||
|
_=blockImg[id]
|
||||||
|
local h=_:getHeight()
|
||||||
|
gc_draw(_,-_:getWidth()*10,0,nil,10,nil)
|
||||||
|
gc_translate(0,10*h+3)
|
||||||
|
n=n+1
|
||||||
|
end
|
||||||
|
end
|
||||||
gc_pop()
|
gc_pop()
|
||||||
|
|
||||||
if ENV.bagLine then
|
if ENV.bagLine then
|
||||||
@@ -578,20 +599,30 @@ function draw.drawNext_norm(P)
|
|||||||
end
|
end
|
||||||
gc_translate(-488,-20)
|
gc_translate(-488,-20)
|
||||||
end
|
end
|
||||||
function draw.drawNext_hidden(P)
|
function draw.drawNext_hidden(P,repMode)
|
||||||
local ENV=P.gameEnv
|
local ENV=P.gameEnv
|
||||||
local texture=P.skinLib
|
local texture=P.skinLib
|
||||||
gc_translate(476,20)
|
gc_translate(488,20)
|
||||||
gc_setLineWidth(2)
|
gc_setLineWidth(2)
|
||||||
local N=ENV.nextCount*72
|
local N=ENV.nextCount*72
|
||||||
gc_setColor(.5,0,0,.4)gc_rectangle('fill',0,0,124,N+8)
|
gc_setColor(.5,0,0,.4)gc_rectangle('fill',0,0,100,N+8,5)
|
||||||
gc_setColor(.97,.97,.975)gc_rectangle('line',0,0,124,N+8)
|
gc_setColor(.97,.97,.975)gc_rectangle('line',0,0,100,N+8,5)
|
||||||
N=min(ENV.nextStartPos,P.pieceCount+1)
|
local startN=min(ENV.nextStartPos,P.pieceCount+1)
|
||||||
|
if repMode then
|
||||||
|
gc_setColor(1,1,1,.2)
|
||||||
|
N=1
|
||||||
|
else
|
||||||
|
gc_setColor(1,1,1)
|
||||||
|
N=startN
|
||||||
|
end
|
||||||
gc_push('transform')
|
gc_push('transform')
|
||||||
gc_translate(62,40)
|
gc_translate(50,72*N-32)
|
||||||
|
|
||||||
|
--Draw nexts
|
||||||
gc_setShader(shader_blockSatur)
|
gc_setShader(shader_blockSatur)
|
||||||
local queue=P.nextQueue
|
local queue=P.nextQueue
|
||||||
while N<=ENV.nextCount and queue[N]do
|
while N<=ENV.nextCount and queue[N]do
|
||||||
|
if N==startN then gc_setColor(1,1,1)end
|
||||||
local bk,sprite=queue[N].bk,texture[queue[N].color]
|
local bk,sprite=queue[N].bk,texture[queue[N].color]
|
||||||
local k=min(2.3/#bk,3/#bk[1],.85)
|
local k=min(2.3/#bk,3/#bk[1],.85)
|
||||||
gc_scale(k)
|
gc_scale(k)
|
||||||
@@ -605,6 +636,24 @@ function draw.drawNext_hidden(P)
|
|||||||
gc_translate(0,72)
|
gc_translate(0,72)
|
||||||
end
|
end
|
||||||
gc_setShader()
|
gc_setShader()
|
||||||
|
|
||||||
|
--Draw more nexts
|
||||||
|
if repMode then
|
||||||
|
gc_translate(50,-28)
|
||||||
|
local blockImg=TEXTURE.miniBlock
|
||||||
|
local skinSet=ENV.skin
|
||||||
|
local n=N
|
||||||
|
while n<=12 and queue[n]do
|
||||||
|
local id=queue[n].id
|
||||||
|
local _=minoColor[skinSet[id]]
|
||||||
|
gc_setColor(_[1],_[2],_[3],.2)
|
||||||
|
_=blockImg[id]
|
||||||
|
local h=_:getHeight()
|
||||||
|
gc_draw(_,-_:getWidth()*10,0,nil,10,nil)
|
||||||
|
gc_translate(0,10*h+3)
|
||||||
|
n=n+1
|
||||||
|
end
|
||||||
|
end
|
||||||
gc_pop()
|
gc_pop()
|
||||||
|
|
||||||
if ENV.bagLine then
|
if ENV.bagLine then
|
||||||
@@ -663,10 +712,10 @@ function draw.norm(P,repMode)
|
|||||||
mStr(P.username,300,-60)
|
mStr(P.username,300,-60)
|
||||||
|
|
||||||
--Draw HUD
|
--Draw HUD
|
||||||
P:drawNext()
|
P:drawNext(repMode)
|
||||||
drawMission(P)
|
drawMission(P)
|
||||||
drawHold(P)
|
drawHold(P)
|
||||||
drawDial(490,500,P.dropSpeed)
|
drawDial(499,505,P.dropSpeed)
|
||||||
if P.life>0 then drawLife(P.life)end
|
if P.life>0 then drawLife(P.life)end
|
||||||
|
|
||||||
--Field-related things
|
--Field-related things
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ local seqGenerators={
|
|||||||
local len=#seq0
|
local len=#seq0
|
||||||
local bag={}
|
local bag={}
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
if #bag==0 then
|
if #bag==0 then
|
||||||
for i=1,len do
|
for i=1,len do
|
||||||
bag[i]=seq0[len-i+1]
|
bag[i]=seq0[len-i+1]
|
||||||
@@ -26,7 +26,7 @@ local seqGenerators={
|
|||||||
local hisLen=ceil(len*.5)
|
local hisLen=ceil(len*.5)
|
||||||
local history=TABLE.new(0,hisLen)
|
local history=TABLE.new(0,hisLen)
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
local r
|
local r
|
||||||
for _=1,hisLen do--Reroll up to [hisLen] times
|
for _=1,hisLen do--Reroll up to [hisLen] times
|
||||||
r=rndGen:random(len)
|
r=rndGen:random(len)
|
||||||
@@ -82,7 +82,7 @@ local seqGenerators={
|
|||||||
end
|
end
|
||||||
|
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
-- print"======================"
|
-- print"======================"
|
||||||
--Pick a mino from pool
|
--Pick a mino from pool
|
||||||
local tryTime=0
|
local tryTime=0
|
||||||
@@ -114,7 +114,7 @@ local seqGenerators={
|
|||||||
for i=1,len do weight[i]=0 end
|
for i=1,len do weight[i]=0 end
|
||||||
|
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
local maxK=1
|
local maxK=1
|
||||||
for i=1,len do
|
for i=1,len do
|
||||||
weight[i]=weight[i]*.5+rndGen:random()
|
weight[i]=weight[i]*.5+rndGen:random()
|
||||||
@@ -132,7 +132,7 @@ local seqGenerators={
|
|||||||
if #seq0==1 then
|
if #seq0==1 then
|
||||||
local i=seq0[1]
|
local i=seq0[1]
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do P:getNext(i)end
|
while #P.nextQueue<12 do P:getNext(i)end
|
||||||
yield()
|
yield()
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -140,7 +140,7 @@ local seqGenerators={
|
|||||||
local len=#seq0
|
local len=#seq0
|
||||||
local last=0
|
local last=0
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
local r=rndGen:random(len-1)
|
local r=rndGen:random(len-1)
|
||||||
if r>=last then r=r+1 end
|
if r>=last then r=r+1 end
|
||||||
P:getNext(seq0[r])
|
P:getNext(seq0[r])
|
||||||
@@ -153,7 +153,7 @@ local seqGenerators={
|
|||||||
mess=function(P,seq0)
|
mess=function(P,seq0)
|
||||||
local rndGen=P.seqRND
|
local rndGen=P.seqRND
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
P:getNext(seq0[rndGen:random(#seq0)])
|
P:getNext(seq0[rndGen:random(#seq0)])
|
||||||
end
|
end
|
||||||
yield()
|
yield()
|
||||||
@@ -163,7 +163,7 @@ local seqGenerators={
|
|||||||
local rndGen=P.seqRND
|
local rndGen=P.seqRND
|
||||||
local bufferSeq,bag={},{}
|
local bufferSeq,bag={},{}
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
if #bag==0 then
|
if #bag==0 then
|
||||||
for i=1,#seq0 do bufferSeq[i]=seq0[i]end
|
for i=1,#seq0 do bufferSeq[i]=seq0[i]end
|
||||||
repeat
|
repeat
|
||||||
@@ -187,7 +187,7 @@ local seqGenerators={
|
|||||||
local len=#seq0
|
local len=#seq0
|
||||||
local bag={}
|
local bag={}
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
if #bag==0 then
|
if #bag==0 then
|
||||||
for i=1,len do
|
for i=1,len do
|
||||||
bag[i]=seq0[len-i+1]
|
bag[i]=seq0[len-i+1]
|
||||||
@@ -204,7 +204,7 @@ local seqGenerators={
|
|||||||
ins(seq,seq0[i])
|
ins(seq,seq0[i])
|
||||||
end
|
end
|
||||||
while true do
|
while true do
|
||||||
while #P.nextQueue<6 do
|
while #P.nextQueue<12 do
|
||||||
if seq[1]then
|
if seq[1]then
|
||||||
P:getNext(rem(seq))
|
P:getNext(rem(seq))
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user