From 83c64785ec562f37da3d594c380b5fc88f02cefc Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Mon, 10 May 2021 22:42:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9E=83=E5=9C=BE=E8=A1=8C=E7=BC=93=E5=86=B2?= =?UTF-8?q?=E6=80=BB=E6=95=B0=E6=94=B9=E4=B8=BA=E5=8D=95=E7=8B=AC=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/gametoolfunc.lua | 2 +- parts/modes/attacker_h.lua | 20 +++++++++----------- parts/modes/attacker_u.lua | 19 +++++++++---------- parts/modes/defender_l.lua | 4 ++-- parts/modes/defender_n.lua | 4 ++-- parts/modes/survivor_e.lua | 6 +++--- parts/modes/survivor_h.lua | 21 +++++++++++---------- parts/modes/survivor_l.lua | 6 +++--- parts/modes/survivor_n.lua | 7 ++++--- parts/modes/survivor_u.lua | 13 ++++++------- parts/player/init.lua | 3 ++- parts/player/player.lua | 19 ++++++++----------- 12 files changed, 60 insertions(+), 64 deletions(-) diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index 6a662cf6..acf8fa05 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -505,7 +505,7 @@ do--function checkWarning() end end end - GAME.warnLVL0=math.log(height-(P1.gameEnv.fieldH-5)+P1.atkBuffer.sum*.8) + GAME.warnLVL0=math.log(height-(P1.gameEnv.fieldH-5)+P1.atkBufferSum*.8) end local _=GAME.warnLVL if _=t then D.counter=0 for _=1,4 do - P.atkBuffer[#P.atkBuffer+1]={line=generateLine(P:RND(10)),amount=1,countdown=5*t,cd0=5*t,time=0,sent=false,lv=2} + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=5*t,cd0=5*t,time=0,sent=false,lv=2}) end - P.atkBuffer.sum=P.atkBuffer.sum+4 + P.atkBufferSum=P.atkBufferSum+4 P.stat.recv=P.stat.recv+4 D.wave=D.wave+1 if D.wave<=75 then diff --git a/parts/modes/defender_n.lua b/parts/modes/defender_n.lua index 76204d6b..e9c78f4d 100644 --- a/parts/modes/defender_n.lua +++ b/parts/modes/defender_n.lua @@ -16,9 +16,9 @@ return{ if D.counter>=t then D.counter=0 for _=1,3 do - P.atkBuffer[#P.atkBuffer+1]={line=generateLine(P:RND(10)),amount=1,countdown=2*t,cd0=2*t,time=0,sent=false,lv=1} + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=2*t,cd0=2*t,time=0,sent=false,lv=1}) end - P.atkBuffer.sum=P.atkBuffer.sum+3 + P.atkBufferSum=P.atkBufferSum+3 P.stat.recv=P.stat.recv+3 D.wave=D.wave+1 if D.wave<=90 then diff --git a/parts/modes/survivor_e.lua b/parts/modes/survivor_e.lua index 8535a898..f65f4749 100644 --- a/parts/modes/survivor_e.lua +++ b/parts/modes/survivor_e.lua @@ -9,9 +9,9 @@ return{ if P.control then local D=P.modeData D.timer=D.timer+1 - if D.timer>=math.max(60,150-2*D.wave)and P.atkBuffer.sum<4 then - P.atkBuffer[#P.atkBuffer+1]={line=generateLine(P:RND(10)),amount=1,countdown=30,cd0=30,time=0,sent=false,lv=1} - P.atkBuffer.sum=P.atkBuffer.sum+1 + if D.timer>=math.max(60,150-2*D.wave)and P.atkBufferSum<4 then + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=30,cd0=30,time=0,sent=false,lv=1}) + P.atkBufferSum=P.atkBufferSum+1 P.stat.recv=P.stat.recv+1 if D.wave==45 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end D.timer=0 diff --git a/parts/modes/survivor_h.lua b/parts/modes/survivor_h.lua index a643c8cf..51011756 100644 --- a/parts/modes/survivor_h.lua +++ b/parts/modes/survivor_h.lua @@ -9,16 +9,17 @@ return{ if P.control then local D=P.modeData D.timer=D.timer+1 - local B=P.atkBuffer - if D.timer>=math.max(60,180-2*D.wave)and B.sum<15 then - B[#B+1]= - D.wave%3<2 and - {line=generateLine(P:RND(10)),amount=1,countdown=0,cd0=0,time=0,sent=false,lv=1} - or - {line=generateLine(P:RND(10)),amount=3,countdown=60,cd0=60,time=0,sent=false,lv=2} - local R=(D.wave%3<2 and 1 or 3) - B.sum=B.sum+R - P.stat.recv=P.stat.recv+R + if D.timer>=math.max(60,180-2*D.wave)and P.atkBufferSum<15 then + local s + if D.wave%3<2 then + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=1,countdown=0,cd0=0,time=0,sent=false,lv=1}) + s=1 + else + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=3,countdown=60,cd0=60,time=0,sent=false,lv=2}) + s=3 + end + P.atkBufferSum=P.atkBufferSum+s + P.stat.recv=P.stat.recv+s if D.wave==60 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end D.timer=0 D.wave=D.wave+1 diff --git a/parts/modes/survivor_l.lua b/parts/modes/survivor_l.lua index d701f866..b2d2aeec 100644 --- a/parts/modes/survivor_l.lua +++ b/parts/modes/survivor_l.lua @@ -9,10 +9,10 @@ return{ if P.control then local D=P.modeData D.timer=D.timer+1 - if D.timer>=math.max(60,150-D.wave)and P.atkBuffer.sum<20 then + if D.timer>=math.max(60,150-D.wave)and P.atkBufferSum<20 then local t=math.max(60,90-D.wave) - P.atkBuffer[#P.atkBuffer+1]={line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3} - P.atkBuffer.sum=P.atkBuffer.sum+4 + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3}) + P.atkBufferSum=P.atkBufferSum+4 P.stat.recv=P.stat.recv+4 if D.wave==60 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end D.timer=0 diff --git a/parts/modes/survivor_n.lua b/parts/modes/survivor_n.lua index 779de64c..97d9902c 100644 --- a/parts/modes/survivor_n.lua +++ b/parts/modes/survivor_n.lua @@ -9,14 +9,15 @@ return{ if P.control then local D=P.modeData D.timer=D.timer+1 - if D.timer>=math.max(90,180-2*D.wave)and P.atkBuffer.sum<8 then + if D.timer>=math.max(90,180-2*D.wave)and P.atkBufferSum<8 then local d=D.wave+1 - P.atkBuffer[#P.atkBuffer+1]= + table.insert(P.atkBuffer, d%4==0 and{line=generateLine(P:RND(10)),amount=1,countdown=60,cd0=60,time=0,sent=false,lv=1}or d%4==1 and{line=generateLine(P:RND(10)),amount=2,countdown=70,cd0=70,time=0,sent=false,lv=1}or d%4==2 and{line=generateLine(P:RND(10)),amount=3,countdown=80,cd0=80,time=0,sent=false,lv=2}or d%4==3 and{line=generateLine(P:RND(10)),amount=4,countdown=90,cd0=90,time=0,sent=false,lv=3} - P.atkBuffer.sum=P.atkBuffer.sum+d%4+1 + ) + P.atkBufferSum=P.atkBufferSum+d%4+1 P.stat.recv=P.stat.recv+d%4+1 if D.wave==45 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end D.timer=0 diff --git a/parts/modes/survivor_u.lua b/parts/modes/survivor_u.lua index 1efb7b97..a29a484a 100644 --- a/parts/modes/survivor_u.lua +++ b/parts/modes/survivor_u.lua @@ -11,14 +11,13 @@ return{ if P.control then local D=P.modeData D.timer=D.timer+1 - if D.timer>=math.max(300,600-10*D.wave)and P.atkBuffer.sum<20 then + if D.timer>=math.max(300,600-10*D.wave)and P.atkBufferSum<20 then local t=math.max(300,480-12*D.wave) - local p=#P.atkBuffer+1 - P.atkBuffer[p] ={line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=2} - P.atkBuffer[p+1]={line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3} - P.atkBuffer[p+2]={line=generateLine(P:RND(10)),amount=6,countdown=1.2*t,cd0=1.2*t,time=0,sent=false,lv=4} - P.atkBuffer[p+3]={line=generateLine(P:RND(10)),amount=6,countdown=1.5*t,cd0=1.5*t,time=0,sent=false,lv=5} - P.atkBuffer.sum=P.atkBuffer.sum+20 + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=2}) + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=4,countdown=t,cd0=t,time=0,sent=false,lv=3}) + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=6,countdown=1.2*t,cd0=1.2*t,time=0,sent=false,lv=4}) + table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=6,countdown=1.5*t,cd0=1.5*t,time=0,sent=false,lv=5}) + P.atkBufferSum=P.atkBufferSum+20 P.stat.recv=P.stat.recv+20 if D.wave==31 then P:showTextF(text.maxspeed,0,-140,100,'appear',.6)end D.timer=0 diff --git a/parts/player/init.lua b/parts/player/init.lua index 1a55c72c..af14b76e 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -127,7 +127,8 @@ local function newEmptyPlayer(id,mini) for i=1,10 do P.dropTime[i]=-1e99 end P.field,P.visTime={},{} - P.atkBuffer={sum=0} + P.atkBuffer={} + P.atkBufferSum=0 --Royale-related P.badge,P.strength=0,0 diff --git a/parts/player/player.lua b/parts/player/player.lua index 8681ae05..34b36f30 100644 --- a/parts/player/player.lua +++ b/parts/player/player.lua @@ -242,7 +242,7 @@ function Player:garbageRelease()--Check garbage buffer and try to release them local A=self.atkBuffer[n] if A and A.countdown<=0 and not A.sent then self:garbageRise(19+A.lv,A.amount,A.line) - self.atkBuffer.sum=self.atkBuffer.sum-A.amount + self.atkBufferSum=self.atkBufferSum-A.amount A.sent,A.time=true,0 self.stat.pend=self.stat.pend+A.amount n=n+1 @@ -371,14 +371,11 @@ end function Player:receive(A,send,time,line) self.lastRecv=A local B=self.atkBuffer - if send+B.sum>self.gameEnv.bufferLimit then send=self.gameEnv.bufferLimit-B.sum end + if send+self.atkBufferSum>self.gameEnv.bufferLimit then send=self.gameEnv.bufferLimit-self.atkBufferSum end if send>0 then local m,k=#B,1 while k<=m and time>B[k].countdown do k=k+1 end - for i=m,k,-1 do - B[i+1]=B[i] - end - B[k]={ + ins(B,k,{ line=line, amount=send, countdown=time, @@ -386,8 +383,8 @@ function Player:receive(A,send,time,line) time=0, sent=false, lv=min(int(send^.69),5), - }--Sorted insert(by time) - B.sum=B.sum+send + })--Sorted insert(by time) + self.atkBufferSum=self.atkBufferSum+send self.stat.recv=self.stat.recv+send if self.sound then SFX.play(send<4 and'blip_1'or'blip_2',min(send+1,5)*.1) @@ -812,7 +809,7 @@ function Player:cancel(N)--Cancel Garbage local off=0--Lines offseted local bf=self.atkBuffer for i=1,#bf do - if bf.sum==0 or N==0 then break end + if self.atkBufferSum==0 or N==0 then break end local A=bf[i] if not A.sent then local O=min(A.amount,N)--Cur Offset @@ -822,7 +819,7 @@ function Player:cancel(N)--Cancel Garbage A.sent,A.time=true,0 end off=off+O - bf.sum=bf.sum-O + self.atkBufferSum=self.atkBufferSum-O N=N-O end end @@ -1699,7 +1696,7 @@ function Player:lose(force) A.time=0 end end - self.atkBuffer.sum=0 + self.atkBufferSum=0 for i=1,h do self:createClearingFX(i,1.5)