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.moving
0 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)