整理代码,略微优化性能,调整玩家攻击力和框颜色相关代码,联网对战每分钟会增加攻击力

This commit is contained in:
MrZ626
2021-05-10 14:40:55 +08:00
parent dd682a4e6a
commit ee4ca51aff
14 changed files with 97 additions and 92 deletions

View File

@@ -55,10 +55,6 @@ end
require"Zframework" require"Zframework"
SCR.setSize(1280,720)--Initialize Screen size SCR.setSize(1280,720)--Initialize Screen size
require"parts.list"
require"parts.globalTables"
require"parts.gametoolfunc"
--Load shader files from SOURCE ONLY --Load shader files from SOURCE ONLY
SHADER={} SHADER={}
for _,v in next,fs.getDirectoryItems("parts/shaders")do for _,v in next,fs.getDirectoryItems("parts/shaders")do
@@ -68,6 +64,10 @@ for _,v in next,fs.getDirectoryItems("parts/shaders")do
end end
end end
require"parts.list"
require"parts.globalTables"
require"parts.gametoolfunc"
FREEROW= require"parts.freeRow" FREEROW= require"parts.freeRow"
DATA= require"parts.data" DATA= require"parts.data"

View File

@@ -579,20 +579,22 @@ do--function drawSelfProfile()
gc.pop() gc.pop()
end end
end end
function drawWarning() do--function drawWarning()
local SETTING,GAME,shader_warning,SCR=SETTING,GAME,SHADER.warning,SCR
function drawWarning()
if SETTING.warn and GAME.warnLVL>0 then if SETTING.warn and GAME.warnLVL>0 then
gc.push('transform') gc.push('transform')
gc.origin() gc.origin()
SHADER.warning:send("level",GAME.warnLVL) shader_warning:send("level",GAME.warnLVL)
gc.setShader(SHADER.warning) gc.setShader(shader_warning)
gc.rectangle('fill',0,0,SCR.w,SCR.h) gc.rectangle('fill',0,0,SCR.w,SCR.h)
gc.setShader() gc.setShader()
gc.pop() gc.pop()
end end
end
end end
--Widget function shortcuts --Widget function shortcuts
function backScene()SCN.back()end function backScene()SCN.back()end
do--function goScene(name,style) do--function goScene(name,style)

View File

@@ -11,6 +11,7 @@ return{
atkModeName={"Random","Badges","K.O.s","Attackers"}, atkModeName={"Random","Badges","K.O.s","Attackers"},
royale_remain="$1 Player(s) Remaining", royale_remain="$1 Player(s) Remaining",
powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP"},
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"}, cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!!","15 Combo!!","16 Combo!!","17 Combo!!!","18 Combo!!!","19 Combo!!!","MEGACMB"},
spin="-Spin ", spin="-Spin ",
clear={"Single","Double","Triple","Techrash","Pentacrash","Hexacrash"}, clear={"Single","Double","Triple","Techrash","Pentacrash","Hexacrash"},

View File

@@ -11,6 +11,7 @@ return{
atkModeName={"随机","徽章","击杀","反击"}, atkModeName={"随机","徽章","击杀","反击"},
royale_remain="剩余 $1 名玩家", royale_remain="剩余 $1 名玩家",
powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP"},
cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"}, cmb={nil,"1 Combo","2 Combo","3 Combo","4 Combo","5 Combo","6 Combo","7 Combo","8 Combo","9 Combo","10 Combo!","11 Combo!","12 Combo!","13 Combo!","14 Combo!","15 Combo!","16 Combo!","17 Combo!","18 Combo!","19 Combo!","MEGACMB"},
spin="-spin ", spin="-spin ",
clear={"single","double","triple","Techrash","Pentcrash","Hexcrash"}, clear={"single","double","triple","Techrash","Pentcrash","Hexcrash"},

View File

@@ -1,3 +1,4 @@
local yield=YIELD
return{ return{
color=COLOR.white, color=COLOR.white,
env={ env={
@@ -6,6 +7,13 @@ return{
pushSpeed=5, pushSpeed=5,
garbageSpeed=2, garbageSpeed=2,
allowMod=false, allowMod=false,
task=function(P)
local S=P.stat
while true do yield()if S.time>60 then P.strength=1 break end end
while true do yield()if S.time>120 then P.strength=2 break end end
while true do yield()if S.time>180 then P.strength=3 break end end
while true do yield()if S.time>240 then P.strength=4 break end end
end,
bgm={'battle','cruelty','distortion','far','final','hope','magicblock','new era','push','race','rockblock','secret7th','secret8th','shining terminal','storm','super7th','warped','waterfall'}, bgm={'battle','cruelty','distortion','far','final','hope','magicblock','new era','push','race','rockblock','secret7th','secret8th','shining terminal','storm','super7th','warped','waterfall'},
}, },
load=function() load=function()

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,49 do L[i]=true end local L={}for i=1,49 do L[i]=true end
local t=CC and 2 or 0 local t=CC and 2 or 0
while t>0 do while t>0 do
local r=rnd(2,49) local r=math.random(2,49)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,4 do for _=1,6 do for _=1,4 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,6)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,6)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(2,4),2,true,20000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(2,4),2,true,20000),true)
end end
n=n+1 n=n+1
end end end end
for _=9,12 do for _=1,6 do for _=9,12 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,5)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,5)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(3,5),2,true,20000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(3,5),2,true,20000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,49 do L[i]=true end local L={}for i=1,49 do L[i]=true end
local t=CC and 4 or 0 local t=CC and 4 or 0
while t>0 do while t>0 do
local r=rnd(2,49) local r=math.random(2,49)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,4 do for _=1,6 do for _=1,4 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,8)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,8)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(3,6),3,true,30000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(3,6),3,true,30000),true)
end end
n=n+1 n=n+1
end end end end
for _=9,12 do for _=1,6 do for _=9,12 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,7)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,7)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(4,6),3,true,30000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(4,6),3,true,30000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,49 do L[i]=true end local L={}for i=1,49 do L[i]=true end
local t=CC and 6 or 0 local t=CC and 6 or 0
while t>0 do while t>0 do
local r=rnd(2,49) local r=math.random(2,49)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,4 do for _=1,6 do for _=1,4 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(8,10)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(8,10)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(4,7),3,true,40000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(4,7),3,true,40000),true)
end end
n=n+1 n=n+1
end end end end
for _=9,12 do for _=1,6 do for _=9,12 do for _=1,6 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(8,9)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(8,9)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(5,8),3,true,40000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(5,8),3,true,40000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,100 do L[i]=true end local L={}for i=1,100 do L[i]=true end
local t=CC and 4 or 0 local t=CC and 4 or 0
while t>0 do while t>0 do
local r=rnd(2,99) local r=math.random(2,99)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,7 do for _=1,7 do for _=1,7 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,6)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,6)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(2,4),2,true,20000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(2,4),2,true,20000),true)
end end
n=n+1 n=n+1
end end end end
for _=15,21 do for _=1,7 do for _=15,21 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,5)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,5)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(3,5),2,true,20000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(3,5),2,true,20000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,100 do L[i]=true end local L={}for i=1,100 do L[i]=true end
local t=CC and 4 or 0 local t=CC and 4 or 0
while t>0 do while t>0 do
local r=rnd(2,99) local r=math.random(2,99)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,7 do for _=1,7 do for _=1,7 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,8)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,8)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(3,6),3,true,30000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(3,6),3,true,30000),true)
end end
n=n+1 n=n+1
end end end end
for _=15,21 do for _=1,7 do for _=15,21 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(4,7)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(4,7)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(4,6),3,true,30000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(4,6),3,true,30000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -1,6 +1,4 @@
local gc=love.graphics local gc=love.graphics
local rnd=math.random
local powerUp={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
local function selectTarget(P) local function selectTarget(P)
if SETTING.swap then if SETTING.swap then
for i=1,#P.keyPressing do for i=1,#P.keyPressing do
@@ -34,23 +32,23 @@ return{
local L={}for i=1,100 do L[i]=true end local L={}for i=1,100 do L[i]=true end
local t=CC and 4 or 0 local t=CC and 4 or 0
while t>0 do while t>0 do
local r=rnd(2,99) local r=math.random(2,99)
if L[r]then L[r],t=false,t-1 end if L[r]then L[r],t=false,t-1 end
end end
local n=2 local n=2
for _=1,7 do for _=1,7 do for _=1,7 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(8,10)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(8,10)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(4,7),3,true,40000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(4,7),3,true,40000),true)
end end
n=n+1 n=n+1
end end end end
for _=15,21 do for _=1,7 do for _=15,21 do for _=1,7 do
if L[n]then if L[n]then
PLY.newAIPlayer(n,AIBUILDER('9S',rnd(8,9)),true) PLY.newAIPlayer(n,AIBUILDER('9S',math.random(8,9)),true)
else else
PLY.newAIPlayer(n,AIBUILDER('CC',rnd(5,8),3,true,40000),true) PLY.newAIPlayer(n,AIBUILDER('CC',math.random(5,8),3,true,40000),true)
end end
n=n+1 n=n+1
end end end end
@@ -65,7 +63,7 @@ return{
gc.print(P.badge,103,227) gc.print(P.badge,103,227)
gc.setColor(1,1,1) gc.setColor(1,1,1)
setFont(25) setFont(25)
gc.print(powerUp[P.strength],18,290) gc.print(text.powerUp[P.strength],18,290)
for i=1,P.strength do for i=1,P.strength do
gc.draw(IMG.badgeIcon,16*i+12,260) gc.draw(IMG.badgeIcon,16*i+12,260)
end end

View File

@@ -16,7 +16,6 @@ local shader_alpha,shader_lighter=SHADER.alpha,SHADER.lighter
local drawableText,missionEnum,minoColor=drawableText,missionEnum,minoColor local drawableText,missionEnum,minoColor=drawableText,missionEnum,minoColor
local RCPB={5,33,195,33,100,5,100,60} local RCPB={5,33,195,33,100,5,100,60}
local frameColorList={[0]=COLOR.Z,COLOR.lG,COLOR.lB,COLOR.lV,COLOR.lO}
local attackColor={ local attackColor={
{COLOR.dH,COLOR.Z}, {COLOR.dH,COLOR.Z},
{COLOR.H,COLOR.Z}, {COLOR.H,COLOR.Z},
@@ -239,7 +238,7 @@ local function drawNextPreview(P,B)
end end
local function drawBoarders(P) local function drawBoarders(P)
gc_setLineWidth(2) gc_setLineWidth(2)
gc_setColor(frameColorList[P.frameColor]) gc_setColor(P.frameColor)
gc_rectangle('line',-1,-11,302,612)--Bis Boarder gc_rectangle('line',-1,-11,302,612)--Bis Boarder
gc_rectangle('line',301,-3,15,604)--AtkBuffer boarder gc_rectangle('line',301,-3,15,604)--AtkBuffer boarder
gc_rectangle('line',-16,-3,15,604)--B2b bar boarder gc_rectangle('line',-16,-3,15,604)--B2b bar boarder
@@ -836,7 +835,7 @@ function draw.small(P)
--Draw boarder --Draw boarder
if P.alive then if P.alive then
gc_setLineWidth(2) gc_setLineWidth(2)
gc_setColor(frameColorList[P.frameColor]) gc_setColor(P.frameColor)
gc_rectangle('line',0,0,60,120) gc_rectangle('line',0,0,60,120)
end end

View File

@@ -94,7 +94,7 @@ local function newEmptyPlayer(id,mini)
a=0,va=0, a=0,va=0,
} }
P.x,P.y,P.size=0,0,1 P.x,P.y,P.size=0,0,1
P.frameColor=0 P.frameColor=COLOR.Z
--Set these at Player:setPosition() --Set these at Player:setPosition()
-- P.fieldX,P.fieldY=... -- P.fieldX,P.fieldY=...

View File

@@ -149,7 +149,8 @@ function Player:setPosition(x,y,size)
self.absFieldX,self.absFieldY=x+150*size,y-10*size self.absFieldX,self.absFieldY=x+150*size,y-10*size
end end
end end
local function task_movePosition(self,x,y,size) do--function Player:movePosition(x,y,size)
local function task_movePosition(self,x,y,size)
local x1,y1,size1=self.x,self.y,self.size local x1,y1,size1=self.x,self.y,self.size
while true do while true do
yield() yield()
@@ -163,15 +164,20 @@ local function task_movePosition(self,x,y,size)
self:setPosition(x1,y1,size1) self:setPosition(x1,y1,size1)
end end
end end
end end
local function checkPlayer(obj,Ptar) local function checkPlayer(obj,Ptar)
return obj.args[1]==Ptar return obj.args[1]==Ptar
end end
function Player:movePosition(x,y,size) function Player:movePosition(x,y,size)
TASK.removeTask_iterate(checkPlayer,self) TASK.removeTask_iterate(checkPlayer,self)
TASK.new(task_movePosition,self,x,y,size or self.size) TASK.new(task_movePosition,self,x,y,size or self.size)
end
end end
local frameColorList={[0]=COLOR.Z,COLOR.lG,COLOR.lB,COLOR.lV,COLOR.lO}
function Player:setFrameColor(c)
self.frameColor=frameColorList[c]
end
function Player:switchKey(id,on) function Player:switchKey(id,on)
self.keyAvailable[id]=on self.keyAvailable[id]=on
if not on then if not on then
@@ -1723,19 +1729,19 @@ function Player:lose(force)
self.modeData.place=#PLY_ALIVE+1 self.modeData.place=#PLY_ALIVE+1
self.strength=0 self.strength=0
if self.lastRecv then if self.lastRecv then
local A,i=self,0 local A,depth=self,0
repeat repeat
A,i=A.lastRecv,i+1 A,depth=A.lastRecv,depth+1
until not A or A.alive or A==self or i==3 until not A or A.alive or A==self or depth==3
if A and A.alive then if A and A.alive then
if self.id==1 or A.id==1 then if self.id==1 or A.id==1 then
self.killMark=A.id==1 self.killMark=A.id==1
end end
A.modeData.ko,A.badge=A.modeData.ko+1,A.badge+self.badge+1 A.modeData.ko,A.badge=A.modeData.ko+1,A.badge+self.badge+1
for j=A.strength+1,4 do for i=A.strength+1,4 do
if A.badge>=ROYALEDATA.powerUp[j]then if A.badge>=ROYALEDATA.powerUp[i]then
A.strength=j A.strength=i
A.frameColor=A.strength A:setFrameColor(A.strength)
end end
end end
self.lastRecv=A self.lastRecv=A