Test crash bugfix
This commit is contained in:
parent
5d8df46361
commit
f4cd97cac7
@ -13,6 +13,7 @@ class RoundTimer: Timer {
|
|||||||
var timer: Timer?
|
var timer: Timer?
|
||||||
var timeLeft: Int = 0
|
var timeLeft: Int = 0
|
||||||
var isHeartbeatLocked = false
|
var isHeartbeatLocked = false
|
||||||
|
var isTimerStopped = false
|
||||||
var calculate = false
|
var calculate = false
|
||||||
var roundEnded = "Syncing"
|
var roundEnded = "Syncing"
|
||||||
|
|
||||||
@ -31,48 +32,42 @@ class RoundTimer: Timer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func stopTimer() {
|
func stopTimer() {
|
||||||
guard timer != nil else { return }
|
isTimerStopped = true
|
||||||
timer?.invalidate()
|
|
||||||
timer = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func resumeTimer() {
|
func resumeTimer() {
|
||||||
timer = Timer.scheduledTimer(
|
isTimerStopped = false
|
||||||
timeInterval: 1.0,
|
|
||||||
target: self,
|
|
||||||
selector: #selector(onTimerFires),
|
|
||||||
userInfo: nil,
|
|
||||||
repeats: true
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func onTimerFires()
|
@objc func onTimerFires()
|
||||||
{
|
{
|
||||||
timeLeft -= 1
|
if !isTimerStopped {
|
||||||
EntityManager.gameEMInstance.updateTime(time: (timeLeft > 0 ? String(timeLeft) : roundEnded))
|
timeLeft -= 1
|
||||||
|
EntityManager.gameEMInstance.updateTime(time: (timeLeft > 0 ? String(timeLeft) : roundEnded))
|
||||||
|
|
||||||
if timeLeft == 0 {
|
if timeLeft == 0 {
|
||||||
EntityManager.gameEMInstance.removeModal()
|
EntityManager.gameEMInstance.removeModal()
|
||||||
RoundCalculatorService.sharedInstance.resetNumberOfAttacksAndFormats()
|
RoundCalculatorService.sharedInstance.resetNumberOfAttacksAndFormats()
|
||||||
if !MultiplayerNetwork.sharedInstance.isSending {
|
if !MultiplayerNetwork.sharedInstance.isSending {
|
||||||
MultiplayerNetwork.sharedInstance.sendPlayerMoves(localRoundData: DataService.sharedInstance.localRoundData)
|
MultiplayerNetwork.sharedInstance.sendPlayerMoves(localRoundData: DataService.sharedInstance.localRoundData)
|
||||||
|
}
|
||||||
|
calculate = true
|
||||||
}
|
}
|
||||||
calculate = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if timeLeft <= 0 {
|
if timeLeft <= 0 {
|
||||||
if calculate
|
if calculate
|
||||||
&& !RoundCalculatorService.sharedInstance.isCalculating
|
&& !RoundCalculatorService.sharedInstance.isCalculating
|
||||||
&& DataService.sharedInstance.didReceiveAllData()
|
&& DataService.sharedInstance.didReceiveAllData()
|
||||||
&& GameCenterManager.sharedInstance.isServer {
|
&& GameCenterManager.sharedInstance.isServer {
|
||||||
RoundCalculatorService.sharedInstance.calculateRound()
|
RoundCalculatorService.sharedInstance.calculateRound()
|
||||||
calculate = false
|
calculate = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!isHeartbeatLocked && (timeLeft % 7 == 0)){
|
if (!isHeartbeatLocked && (timeLeft % 7 == 0)){
|
||||||
MultiplayerNetwork.sharedInstance.sendHeartbeatToPlayer()
|
MultiplayerNetwork.sharedInstance.sendHeartbeatToPlayer()
|
||||||
isHeartbeatLocked = true;
|
isHeartbeatLocked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user