From e7c777e502b5f33ccc0fe5e51c08711139b08a19 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Tue, 2 Nov 2021 22:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E7=BA=A7=E6=B6=88=E9=99=A4=E6=9C=89?= =?UTF-8?q?=E5=88=86=E6=95=B0=E4=BA=86=20=E5=86=8D=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=B6=85=E7=BA=A7=E6=B6=88=E9=99=A4=E7=9A=84=E5=A3=B0=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/gameFuncs.lua | 2 +- parts/player/player.lua | 43 ++++++++++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/parts/gameFuncs.lua b/parts/gameFuncs.lua index 97c4257d..5fb5e931 100644 --- a/parts/gameFuncs.lua +++ b/parts/gameFuncs.lua @@ -183,7 +183,7 @@ function playClearSFX(cc) elseif cc<=6 then playSFX('clear_5') else - playSFX('clear_6',.4) + playSFX('clear_6',.6) if cc<=9 then Snd('bass','A3','E4') elseif cc<=12 then Snd('bass','A3','E4','A4') elseif cc<=14 then Snd('bass',.8,'A3','E4')Snd('lead','A4','E5') diff --git a/parts/player/player.lua b/parts/player/player.lua index 930686b3..65db9258 100644 --- a/parts/player/player.lua +++ b/parts/player/player.lua @@ -682,19 +682,6 @@ function Player:_removeClearedLines() FREEROW.discard(rem(self.visTime,h)) end end -function Player:clearFilledLines(start,height) - local _cc,_gbcc=self:_checkClear(self.field,start,height) - if _cc>0 then - playClearSFX(_cc) - self:showText(text.clear[min(_cc,21)],0,0,75,'beat',.4) - if _cc>6 then self:showText(text.cleared:gsub("$1",_cc),0,55,30,'zoomout',.4)end - self:_removeClearedLines() - self.falling=self.gameEnv.fall - self.stat.row=self.stat.row+_cc - self.stat.dig=self.stat.dig+_gbcc - end - return _cc,_gbcc -end function Player:removeTopClearingFX() for i=#self.clearingRow,1,-1 do if self.clearingRow[i]>#self.field then @@ -1075,8 +1062,17 @@ function Player:cancel(N)--Cancel Garbage end return off end -do--Player.drop(self)--Place piece - local clearSCR={80,200,400}--Techrash:1K; B2Bmul:1.3/1.8 + +--Player.drop(self)--Place piece +--Player:clearFilledLines(start,height) +do + local clearSCR=setmetatable({--B2Bmul:1.3/1.8 + 80,200,400,1000,--1~4 + 1500,2000,2300,2600,3000,3400,--5~10 + 3800,4200,4600,5000,5500,6000,--11~16 + 6500,7000,7500,8000,--17~20 + 10000,11500,13000,14500,16000--21~25 + },{__index=function(self,k)self[k]=20000 return 20000 end}) local spinSCR={ {200,750,1300,2000},--Z {200,750,1300,2000},--S @@ -1382,7 +1378,7 @@ do--Player.drop(self)--Place piece VOC.play(spinVoice[C.name],CHN) end elseif cc>=4 then - cscore=cc==4 and 1000 or cc==5 and 1500 or 2000 + cscore=clearSCR[cc] if self.b2b>800 then self:showText(text.b3b..text.clear[cc],0,-30,50,'fly') atk=4*cc-10 @@ -1662,6 +1658,21 @@ do--Player.drop(self)--Place piece self:triggerDropEvents() end end + + function Player:clearFilledLines(start,height) + local _cc,_gbcc=self:_checkClear(self.field,start,height) + if _cc>0 then + playClearSFX(_cc) + self:showText(text.clear[min(_cc,21)],0,0,75,'beat',.4) + if _cc>6 then self:showText(text.cleared:gsub("$1",_cc),0,55,30,'zoomout',.4)end + self:_removeClearedLines() + self.falling=self.gameEnv.fall + self.stat.row=self.stat.row+_cc + self.stat.dig=self.stat.dig+_gbcc + self.stat.score=self.stat.score+clearSCR[cc] + end + return _cc,_gbcc + end end function Player:loadAI(data)--Load AI params self.bot=BOT.new(self,data)