From bb60813323ceffc53b34cdd0817470eb04204049 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Fri, 24 Sep 2021 00:38:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9Ospin=E7=9A=84=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=EF=BC=8CO=E7=9A=84=E6=97=8B=E8=BD=AC=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E4=B8=8D=E5=86=8D=E7=9B=B4=E6=8E=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=9C=A8=E7=8E=A9=E5=AE=B6=E5=AF=B9=E8=B1=A1=E9=87=8C=E8=80=8C?= =?UTF-8?q?=E6=98=AF=E6=94=BE=E5=9C=A8=E6=96=B9=E5=9D=97=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=AD=E4=BC=B4=E9=9A=8F=E6=96=B9=E5=9D=97=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=8D=E7=BD=AE=20=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=90=84=E6=9C=89=E7=BC=BA=E7=82=B9=EF=BC=8C?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E9=80=89=E6=8B=A9=E6=97=8B=E8=BD=AC=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E4=B8=8D=E6=B1=A1=E6=9F=93=E7=8E=A9=E5=AE=B6=E7=9A=84?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/RSlist.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/parts/RSlist.lua b/parts/RSlist.lua index 5c617dc7..89c7c24e 100644 --- a/parts/RSlist.lua +++ b/parts/RSlist.lua @@ -174,16 +174,19 @@ do end if P.gameEnv.ospin then local x,y=P.curX,P.curY + local C=P.cur if y==P.ghoY and((P:solid(x-1,y)or P:solid(x-1,y+1)))and(P:solid(x+2,y)or P:solid(x+2,y+1))then if P.sound then SFX.play('rotatekick',nil,P:getCenterX()*.15) end - P.spinSeq=P.spinSeq%100*10+d - if P.spinSeq<100 then + + --[Warning] field spinSeq is a dirty data, TRS put this var into the block. + C.spinSeq=(C.spinSeq or 0)%100*10+d + if C.spinSeq<100 then return end for i=1,#OspinList do local L=OspinList[i] - if P.spinSeq==L[1]then + if C.spinSeq==L[1]then local id,dir=L[2],L[3] local bk=BLOCKS[id][dir] x,y=P.curX+L[4],P.curY+L[5] @@ -194,15 +197,13 @@ do L[6]==2 or(P:ifoverlap(bk,x,y-1)and P:ifoverlap(bk,x,y+1)) ) then - local C=P.cur C.id=id C.bk=bk P.curX,P.curY=x,y - P.cur.dir=dir + C.dir=dir P.spinLast=2 P.stat.rotate=P.stat.rotate+1 P:freshBlock('move') - P.spinSeq=0 return end end @@ -211,7 +212,7 @@ do if P.sound then SFX.play('rotate',nil,P:getCenterX()*.15) end - P.spinSeq=0 + C.spinSeq=nil end else if P.sound then