Compare commits
5 Commits
developmen
...
finalRelea
Author | SHA1 | Date | |
---|---|---|---|
|
59c55cdd74 | ||
|
66aa21ccb4 | ||
|
985e4f48cb | ||
|
f4cd97cac7 | ||
|
5d8df46361 |
@ -614,6 +614,7 @@
|
|||||||
CURRENT_PROJECT_VERSION = 4;
|
CURRENT_PROJECT_VERSION = 4;
|
||||||
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
||||||
INFOPLIST_FILE = GoldWars/Info.plist;
|
INFOPLIST_FILE = GoldWars/Info.plist;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.5;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
@ -637,6 +638,7 @@
|
|||||||
CURRENT_PROJECT_VERSION = 4;
|
CURRENT_PROJECT_VERSION = 4;
|
||||||
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
||||||
INFOPLIST_FILE = GoldWars/Info.plist;
|
INFOPLIST_FILE = GoldWars/Info.plist;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.5;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
|
@ -61,7 +61,11 @@ class HUD: GKEntity {
|
|||||||
y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
y: EntityManager.gameEMInstance.scene.size.height * 0.1),
|
||||||
onButtonPress: { }
|
onButtonPress: { }
|
||||||
)
|
)
|
||||||
leaveGame = ButtonNode(textureName: "exitButton", text: "" , isEnabled: true, position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.05, y: EntityManager.gameEMInstance.scene.size.height * 0.11), onButtonPress: {
|
leaveGame = ButtonNode(textureName: "exitButton",
|
||||||
|
text: "" ,
|
||||||
|
isEnabled: true,
|
||||||
|
position: CGPoint(x: EntityManager.gameEMInstance.scene.size.width * 0.05, y: EntityManager.gameEMInstance.scene.size.height * 0.11),
|
||||||
|
onButtonPress: {
|
||||||
EntityManager.gameEMInstance.add(Modal(modaltype: .QuitGame, base: nil, anchorPoint: CGPoint(x: EntityManager.gameEMInstance.scene.size.width / 2 , y: EntityManager.gameEMInstance.scene.size.height / 2), gameScene: EntityManager.gameEMInstance.scene, currentDraggedBase: nil, touchLocation: nil, collisionBase: nil))
|
EntityManager.gameEMInstance.add(Modal(modaltype: .QuitGame, base: nil, anchorPoint: CGPoint(x: EntityManager.gameEMInstance.scene.size.width / 2 , y: EntityManager.gameEMInstance.scene.size.height / 2), gameScene: EntityManager.gameEMInstance.scene, currentDraggedBase: nil, touchLocation: nil, collisionBase: nil))
|
||||||
})
|
})
|
||||||
leaveGame.size = CGSize(width: 120, height: 120);
|
leaveGame.size = CGSize(width: 120, height: 120);
|
||||||
|
@ -105,6 +105,7 @@ class Modal: GKEntity{
|
|||||||
GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 6))
|
GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 6))
|
||||||
GameCenterManager.sharedInstance.opponentQuit = false
|
GameCenterManager.sharedInstance.opponentQuit = false
|
||||||
GameCenterManager.sharedInstance.quitGame = true
|
GameCenterManager.sharedInstance.quitGame = true
|
||||||
|
(EntityManager.gameEMInstance.scene as! GameScene).gameQuit()
|
||||||
}))
|
}))
|
||||||
case .PauseGame:
|
case .PauseGame:
|
||||||
break
|
break
|
||||||
|
@ -170,14 +170,17 @@ final class GameCenterManager: NSObject, GKMatchmakerViewControllerDelegate, GKG
|
|||||||
os_log("State 4 erhalten, Peer hat verloren", log: LOG, type: .info)
|
os_log("State 4 erhalten, Peer hat verloren", log: LOG, type: .info)
|
||||||
winner = hostingPlayer?.displayName
|
winner = hostingPlayer?.displayName
|
||||||
gameEnded = true
|
gameEnded = true
|
||||||
|
(EntityManager.gameEMInstance.scene as! GameScene).gameEnd()
|
||||||
case 5:
|
case 5:
|
||||||
os_log("State 5 erhalten, Peer hat gewonnen", log: LOG, type: .info)
|
os_log("State 5 erhalten, Peer hat gewonnen", log: LOG, type: .info)
|
||||||
winner = peerPlayer?.displayName
|
winner = peerPlayer?.displayName
|
||||||
gameEnded = true
|
gameEnded = true
|
||||||
|
(EntityManager.gameEMInstance.scene as! GameScene).gameEnd()
|
||||||
case 6:
|
case 6:
|
||||||
os_log("State 6 erhalten, Peer hat Spiel verlassen ", log: LOG, type: .info)
|
os_log("State 6 erhalten, Peer hat Spiel verlassen ", log: LOG, type: .info)
|
||||||
opponentQuit = true
|
opponentQuit = true
|
||||||
quitGame = true
|
quitGame = true
|
||||||
|
(EntityManager.gameEMInstance.scene as! GameScene).gameQuit()
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,8 @@ class GameViewController: UIViewController {
|
|||||||
scene.scaleMode = .aspectFill
|
scene.scaleMode = .aspectFill
|
||||||
view.presentScene(scene)
|
view.presentScene(scene)
|
||||||
//TODO: create dev profile or remove on delivery
|
//TODO: create dev profile or remove on delivery
|
||||||
view.showsFPS = true
|
// view.showsFPS = true
|
||||||
view.showsNodeCount = true
|
// view.showsNodeCount = true
|
||||||
}
|
}
|
||||||
GameCenterManager.sharedInstance.viewController = self
|
GameCenterManager.sharedInstance.viewController = self
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -160,7 +160,7 @@ class RoundCalculatorService {
|
|||||||
winner == GameCenterManager.sharedInstance.hostingPlayer?.displayName ? GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 4)) : GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 5))
|
winner == GameCenterManager.sharedInstance.hostingPlayer?.displayName ? GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 4)) : GameCenterManager.sharedInstance.sendStateToPeers(state: State(state: 5))
|
||||||
GameCenterManager.sharedInstance.winner = winner
|
GameCenterManager.sharedInstance.winner = winner
|
||||||
GameCenterManager.sharedInstance.gameEnded = true
|
GameCenterManager.sharedInstance.gameEnded = true
|
||||||
|
(EntityManager.gameEMInstance.scene as! GameScene).gameEnd()
|
||||||
// Update EloSystem
|
// Update EloSystem
|
||||||
if winner == GameCenterManager.sharedInstance.hostingPlayer?.displayName {
|
if winner == GameCenterManager.sharedInstance.hostingPlayer?.displayName {
|
||||||
EloHelper.updateEloScore(winner: GameCenterManager.sharedInstance.hostingPlayer!, hatDenNikoGemacht: GameCenterManager.sharedInstance.peerPlayer!)
|
EloHelper.updateEloScore(winner: GameCenterManager.sharedInstance.hostingPlayer!, hatDenNikoGemacht: GameCenterManager.sharedInstance.peerPlayer!)
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,12 +78,7 @@ class GameScene: SKScene{
|
|||||||
|
|
||||||
override func update(_ currentTime: TimeInterval) {
|
override func update(_ currentTime: TimeInterval) {
|
||||||
entityManager.getBackground()?.update(deltaTime: currentTime)
|
entityManager.getBackground()?.update(deltaTime: currentTime)
|
||||||
if GameCenterManager.sharedInstance.gameEnded && !gameEndEffects {
|
|
||||||
gameEnd()
|
|
||||||
}
|
|
||||||
if GameCenterManager.sharedInstance.quitGame {
|
|
||||||
gameQuit()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user