From 8049792dc40d46093072dc81a94393f8bd0e4d01 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Tue, 17 Aug 2021 14:01:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=A9=E5=AE=B6next=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=A2=9E=E5=8A=A0=E8=87=B312=EF=BC=88?= =?UTF-8?q?=E5=86=85=E9=83=A8=EF=BC=89=20=E5=BD=95=E5=83=8F=E5=9B=9E?= =?UTF-8?q?=E6=94=BE=E6=A8=A1=E5=BC=8F=E4=B8=8B=E4=BC=9A=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=87=B3=E5=A4=9A12=E4=B8=AAnext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/player/draw.lua | 67 +++++++++++++++++++++++++++++----- parts/player/seqGenerators.lua | 20 +++++----- 2 files changed, 68 insertions(+), 19 deletions(-) diff --git a/parts/player/draw.lua b/parts/player/draw.lua index 29a9467e..865e58e0 100644 --- a/parts/player/draw.lua +++ b/parts/player/draw.lua @@ -541,7 +541,7 @@ local draw={} draw.drawGhost=drawGhost draw.applyField=applyField draw.cancelField=cancelField -function draw.drawNext_norm(P) +function draw.drawNext_norm(P,repMode) local ENV=P.gameEnv local texture=P.skinLib gc_translate(488,20) @@ -552,6 +552,9 @@ function draw.drawNext_norm(P) N=1 gc_push('transform') gc_translate(50,40) + gc_setColor(1,1,1) + + --Draw nexts gc_setShader(shader_blockSatur) local queue=P.nextQueue while N<=ENV.nextCount and queue[N]do @@ -568,6 +571,24 @@ function draw.drawNext_norm(P) gc_translate(0,72) end 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() if ENV.bagLine then @@ -578,20 +599,30 @@ function draw.drawNext_norm(P) end gc_translate(-488,-20) end -function draw.drawNext_hidden(P) +function draw.drawNext_hidden(P,repMode) local ENV=P.gameEnv local texture=P.skinLib - gc_translate(476,20) + gc_translate(488,20) gc_setLineWidth(2) local N=ENV.nextCount*72 - gc_setColor(.5,0,0,.4)gc_rectangle('fill',0,0,124,N+8) - gc_setColor(.97,.97,.975)gc_rectangle('line',0,0,124,N+8) - N=min(ENV.nextStartPos,P.pieceCount+1) + 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,100,N+8,5) + 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_translate(62,40) + gc_translate(50,72*N-32) + + --Draw nexts gc_setShader(shader_blockSatur) local queue=P.nextQueue 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 k=min(2.3/#bk,3/#bk[1],.85) gc_scale(k) @@ -605,6 +636,24 @@ function draw.drawNext_hidden(P) gc_translate(0,72) end 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() if ENV.bagLine then @@ -663,10 +712,10 @@ function draw.norm(P,repMode) mStr(P.username,300,-60) --Draw HUD - P:drawNext() + P:drawNext(repMode) drawMission(P) drawHold(P) - drawDial(490,500,P.dropSpeed) + drawDial(499,505,P.dropSpeed) if P.life>0 then drawLife(P.life)end --Field-related things diff --git a/parts/player/seqGenerators.lua b/parts/player/seqGenerators.lua index 93ec4f8e..e80713c6 100644 --- a/parts/player/seqGenerators.lua +++ b/parts/player/seqGenerators.lua @@ -9,7 +9,7 @@ local seqGenerators={ local len=#seq0 local bag={} while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do if #bag==0 then for i=1,len do bag[i]=seq0[len-i+1] @@ -26,7 +26,7 @@ local seqGenerators={ local hisLen=ceil(len*.5) local history=TABLE.new(0,hisLen) while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do local r for _=1,hisLen do--Reroll up to [hisLen] times r=rndGen:random(len) @@ -82,7 +82,7 @@ local seqGenerators={ end while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do -- print"======================" --Pick a mino from pool local tryTime=0 @@ -114,7 +114,7 @@ local seqGenerators={ for i=1,len do weight[i]=0 end while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do local maxK=1 for i=1,len do weight[i]=weight[i]*.5+rndGen:random() @@ -132,7 +132,7 @@ local seqGenerators={ if #seq0==1 then local i=seq0[1] while true do - while #P.nextQueue<6 do P:getNext(i)end + while #P.nextQueue<12 do P:getNext(i)end yield() end else @@ -140,7 +140,7 @@ local seqGenerators={ local len=#seq0 local last=0 while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do local r=rndGen:random(len-1) if r>=last then r=r+1 end P:getNext(seq0[r]) @@ -153,7 +153,7 @@ local seqGenerators={ mess=function(P,seq0) local rndGen=P.seqRND while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do P:getNext(seq0[rndGen:random(#seq0)]) end yield() @@ -163,7 +163,7 @@ local seqGenerators={ local rndGen=P.seqRND local bufferSeq,bag={},{} while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do if #bag==0 then for i=1,#seq0 do bufferSeq[i]=seq0[i]end repeat @@ -187,7 +187,7 @@ local seqGenerators={ local len=#seq0 local bag={} while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do if #bag==0 then for i=1,len do bag[i]=seq0[len-i+1] @@ -204,7 +204,7 @@ local seqGenerators={ ins(seq,seq0[i]) end while true do - while #P.nextQueue<6 do + while #P.nextQueue<12 do if seq[1]then P:getNext(rem(seq)) else