diff --git a/Zframework/scene.lua b/Zframework/scene.lua index 4ca98a02..a8a31478 100644 --- a/Zframework/scene.lua +++ b/Zframework/scene.lua @@ -132,10 +132,10 @@ local swap={ }--Scene swapping animations function SCN.swapTo(tar,style)--Parallel scene swapping, cannot back if scenes[tar]then - local S=SCN.stat if not SCN.swapping and tar~=SCN.cur then if not style then style="fade"end SCN.swapping=true + local S=SCN.stat S.tar,S.style=tar,style S.time,S.mid,S.draw=unpack(swap[style]) end diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index 6c24a272..221ce1ad 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -5,7 +5,7 @@ local fs=love.filesystem local gc=love.graphics local gc_setColor,gc_circle=gc.setColor,gc.circle -local int,rnd=math.floor,math.random +local max,int,rnd=math.max,math.floor,math.random local sub=string.sub local char,byte=string.char,string.byte local ins,rem=table.insert,table.remove @@ -772,6 +772,58 @@ function gameStart()--Call when countdown finish (GAME.frame==180) P:popNext() end end +function checkStart() + if GAME.frame<=180 then + if GAME.frame==180 then + gameStart() + elseif GAME.frame==60 or GAME.frame==120 then + SFX.play("ready") + end + for p=1,#PLAYERS do + local P=PLAYERS[p] + if P.movDir~=0 then + if P.moving0 then + if y>height then + height=y + end + break + end + end + end + GAME.warnLVL0=math.log(height-15+P1.atkBuffer.sum*.8) + end + _=GAME.warnLVL + if _0 then + _=max(_-.026,0) + end + GAME.warnLVL=_ + elseif GAME.warnLVL>0 then + GAME.warnLVL=max(GAME.warnLVL-.026,0) + end + if GAME.warnLVL>1.126 and GAME.frame%30==0 then + SFX.fplay("warning",SETTING.sfx_warn) + end +end --[[ Table data format: @@ -1033,10 +1085,11 @@ function TICK_wsRead() return end elseif readErr then - wsWrite("/quit") WSCONN=false LOG.print(text.wsError..tostring(readErr),"warn") - SCN.back() + while #SCN.stack>4 do + SCN.pop() + end return end end diff --git a/parts/scenes/net_game.lua b/parts/scenes/net_game.lua index 121c7fc1..6382a1ac 100644 --- a/parts/scenes/net_game.lua +++ b/parts/scenes/net_game.lua @@ -4,7 +4,7 @@ local tc=love.touch local playerData local ins,rem=table.insert,table.remove -local max,sin=math.max,math.sin +local sin=math.sin local SCR=SCR local VK=virtualkey @@ -261,14 +261,8 @@ end function scene.update(dt) local _ - local P1=PLAYERS[1] local GAME=GAME - touchMoveLastFrame=false - - --Update virtualkey animation - updateVirtualkey() - if not playing then heartBeatTimer=heartBeatTimer+dt if heartBeatTimer>42 then @@ -278,9 +272,11 @@ function scene.update(dt) return end - GAME.frame=GAME.frame+1 + touchMoveLastFrame=false + updateVirtualkey() - if GAME.frame-lastUpstreamTime>10 then + GAME.frame=GAME.frame+1 + if GAME.frame-lastUpstreamTime>8 then local stream stream,upstreamProgress=dumpRecording(GAME.rep,upstreamProgress) if #stream>0 then @@ -289,25 +285,8 @@ function scene.update(dt) lastUpstreamTime=PLAYERS[1].alive and GAME.frame or 1e99 end - --Counting,include pre-das,directy RETURN,or restart counting - if GAME.frame<180 then - if GAME.frame==179 then - gameStart() - elseif GAME.frame==60 or GAME.frame==120 then - SFX.play("ready") - end - for p=1,#PLAYERS do - local P=PLAYERS[p] - if P.movDir~=0 then - if P.moving0 then - if y>height then - height=y - end - break - end - end - end - GAME.warnLVL0=math.log(height-15+P1.atkBuffer.sum*.8) - end - _=GAME.warnLVL - if _0 then - _=max(_-.026,0) - end - GAME.warnLVL=_ - elseif GAME.warnLVL>0 then - GAME.warnLVL=max(GAME.warnLVL-.026,0) - end - if GAME.warnLVL>1.126 and GAME.frame%30==0 then - SFX.fplay("warning",SETTING.sfx_warn) - end + checkWarning() end function scene.draw() diff --git a/parts/scenes/play.lua b/parts/scenes/play.lua index 4990d862..7fd29eee 100644 --- a/parts/scenes/play.lua +++ b/parts/scenes/play.lua @@ -2,7 +2,7 @@ local gc=love.graphics local gc_setColor=gc.setColor local tc=love.touch -local max,sin=math.max,math.sin +local sin=math.sin local SCR=SCR local VK=virtualkey @@ -127,12 +127,10 @@ function scene.update(dt) local _ local P1=PLAYERS[1] local GAME=GAME - GAME.frame=GAME.frame+1 touchMoveLastFrame=false - - --Update virtualkey animation updateVirtualkey() + GAME.frame=GAME.frame+1 --Replay if GAME.replaying then @@ -153,25 +151,8 @@ function scene.update(dt) GAME.replaying=_ end - --Counting,include pre-das,directy RETURN,or restart counting - if GAME.frame<=180 then - if GAME.frame==180 then - gameStart() - elseif GAME.frame==60 or GAME.frame==120 then - SFX.play("ready") - end - for p=1,#PLAYERS do - local P=PLAYERS[p] - if P.movDir~=0 then - if P.moving0 then - if y>height then - height=y - end - break - end - end - end - GAME.warnLVL0=math.log(height-15+P1.atkBuffer.sum*.8) - end - _=GAME.warnLVL - if _0 then - _=max(_-.026,0) - end - GAME.warnLVL=_ - elseif GAME.warnLVL>0 then - GAME.warnLVL=max(GAME.warnLVL-.026,0) - end - if GAME.warnLVL>1.126 and GAME.frame%30==0 then - SFX.fplay("warning",SETTING.sfx_warn) - end + checkWarning() end local function drawAtkPointer(x,y)