垃圾行缓冲总数改为单独变量

This commit is contained in:
MrZ626
2021-05-10 22:42:32 +08:00
parent ae260f4908
commit 83c64785ec
12 changed files with 60 additions and 64 deletions

View File

@@ -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 _<GAME.warnLVL0 then

View File

@@ -8,20 +8,18 @@ return{
task=function(P)
while true do
YIELD()
if P.control and P.atkBuffer.sum==0 then
local p=#P.atkBuffer+1
local B,D=P.atkBuffer,P.modeData
local t
if P.control and P.atkBufferSum==0 then
local D=P.modeData
if D.wave<20 then
t=1500-30*D.wave--1500~900
B[p]= {line=generateLine(P:RND(4,7)),amount=12,countdown=t,cd0=t,time=0,sent=false,lv=3}
B[p+1]= {line=generateLine(P:RND(3,8)),amount=10,countdown=t,cd0=t,time=0,sent=false,lv=4}
local t=1500-30*D.wave--1500~900
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=12,countdown=t,cd0=t,time=0,sent=false,lv=3})
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=10,countdown=t,cd0=t,time=0,sent=false,lv=4})
else
t=900-10*(D.wave-20)--900~600
B[p]= {line=generateLine(P:RND(10)),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=4}
B[p+1]= {line=generateLine(P:RND(4,7)),amount=8,countdown=t,cd0=t,time=0,sent=false,lv=5}
local t=900-10*(D.wave-20)--900~600
table.insert(P.atkBuffer,{line=generateLine(P:RND(10)),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=4})
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=8,countdown=t,cd0=t,time=0,sent=false,lv=5})
end
B.sum=B.sum+22
P.atkBufferSum=P.atkBufferSum+22
P.stat.recv=P.stat.recv+22
D.wave=D.wave+1
if D.wave%10==0 then

View File

@@ -7,25 +7,24 @@ return{
task=function(P)
while true do
YIELD()
if P.control and P.atkBuffer.sum<4 then
local p=#P.atkBuffer+1
local B,D=P.atkBuffer,P.modeData
if P.control and P.atkBufferSum<4 then
local D=P.modeData
local s
local t=800-10*D.wave--800~700~600~500
if D.wave<10 then
B[p]= {line=generateLine(P:RND(5,6)),amount=9,countdown=t,cd0=t,time=0,sent=false,lv=3}
B[p+1]= {line=generateLine(P:RND(4,7)),amount=11,countdown=t,cd0=t+62,time=0,sent=false,lv=4}
table.insert(P.atkBuffer,{line=generateLine(P:RND(5,6)),amount=9,countdown=t,cd0=t,time=0,sent=false,lv=3})
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=11,countdown=t,cd0=t+62,time=0,sent=false,lv=4})
s=20
elseif D.wave<20 then
B[p]= {line=generateLine(P:RND(3,8)),amount=11,countdown=t,cd0=t,time=0,sent=false,lv=4}
B[p+1]= {line=generateLine(P:RND(4,7)),amount=13,countdown=t,cd0=t+62,time=0,sent=false,lv=5}
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=11,countdown=t,cd0=t,time=0,sent=false,lv=4})
table.insert(P.atkBuffer,{line=generateLine(P:RND(4,7)),amount=13,countdown=t,cd0=t+62,time=0,sent=false,lv=5})
s=24
else
B[p]= {line=generateLine(P:RND(2)*9-8),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=5}
B[p+1]= {line=generateLine(P:RND(3,8)),amount=14,countdown=t+62,cd0=t,time=0,sent=false,lv=5}
table.insert(P.atkBuffer,{line=generateLine(P:RND(2)*9-8),amount=14,countdown=t,cd0=t,time=0,sent=false,lv=5})
table.insert(P.atkBuffer,{line=generateLine(P:RND(3,8)),amount=14,countdown=t+62,cd0=t,time=0,sent=false,lv=5})
s=28
end
B.sum=B.sum+s
P.atkBufferSum=P.atkBufferSum+s
P.stat.recv=P.stat.recv+s
D.wave=D.wave+1
if D.wave%10==0 then

View File

@@ -16,9 +16,9 @@ return{
if D.counter>=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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)