|
|
|
@ -24,20 +24,24 @@ struct GameView: View {
|
|
|
|
|
return scene
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@State var msg: String = "Msg"
|
|
|
|
|
@State var msg: String = ""
|
|
|
|
|
|
|
|
|
|
var body: some View {
|
|
|
|
|
ZStack {
|
|
|
|
|
Text(msg)
|
|
|
|
|
SpriteView(scene: gameScene)
|
|
|
|
|
.edgesIgnoringSafeArea(.all)
|
|
|
|
|
.task {
|
|
|
|
|
gameScene.game.addGameStartedListener { board in startGame() }
|
|
|
|
|
gameScene.game.addGameOverListener { board, result, player in gameOver(result: result) }
|
|
|
|
|
gameScene.game.addGameOverListener { board, result, player in gameOver(result : result) }
|
|
|
|
|
gameScene.game.addGameChangedListener { game in gameChange() }
|
|
|
|
|
gameScene.game.addBoardChangedListener { board in boardChange() }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addMoveChosenCallbacksListener { board, move, player in moveChose(board: board, move: move, player: player) }
|
|
|
|
|
gameScene.game.addInvalidMoveCallbacksListener { board, move, player, bool in invalidMove(board: board, move: move, player: player, bool: bool) }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addPieceRemovedListener { _, _, piece in removePiece(piece: piece) }
|
|
|
|
|
|
|
|
|
|
gameScene.game.addPlayerNotifiedListener { board, player in
|
|
|
|
|
print("Player notif : \(player.id) à toi de jouer ")
|
|
|
|
|
msg = "Player notif : \(player.id) à toi de jouer !"
|
|
|
|
@ -46,6 +50,7 @@ struct GameView: View {
|
|
|
|
|
try! await player.chooseMove(in: board, with: gameScene.game.rules)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try! await gameScene.game.start()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -87,32 +92,32 @@ struct GameView: View {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------ Listener Methods -------- //
|
|
|
|
|
// ------ Listener -------- //
|
|
|
|
|
|
|
|
|
|
func startGame() {
|
|
|
|
|
print("Start game !")
|
|
|
|
|
msg = "Start !!"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func gameOver(result: Result) {
|
|
|
|
|
print("Game over !")
|
|
|
|
|
func gameOver(result : Result) { print("Game over !")
|
|
|
|
|
msg = "Game over ! "
|
|
|
|
|
switch result {
|
|
|
|
|
switch result
|
|
|
|
|
{
|
|
|
|
|
case .winner(let winner, _):
|
|
|
|
|
switch winner {
|
|
|
|
|
case .player1:
|
|
|
|
|
msg += "player 1 wins !"
|
|
|
|
|
msg = msg + "player 1 wins !"
|
|
|
|
|
case .player2:
|
|
|
|
|
msg += "player 2 wins !"
|
|
|
|
|
msg = msg + "player 2 wins !"
|
|
|
|
|
default:
|
|
|
|
|
msg += "equality !"
|
|
|
|
|
msg = msg + "equality !"
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
msg = "Game over !"
|
|
|
|
|
msg="Game over !"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gameScene.isGameOver = true
|
|
|
|
|
actionEndGame(scene: gameScene, message: msg)
|
|
|
|
|
actionEndGame(scene: gameScene,message: msg)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func gameChange() {
|
|
|
|
@ -124,7 +129,8 @@ struct GameView: View {
|
|
|
|
|
gameScene.displayBoard(board: gameScene.game.board)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func moveChose(board: Board, move: Move, player: Player) {}
|
|
|
|
|
func moveChose(board: Board, move: Move, player: Player) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func invalidMove(board: Board, move: Move, player: Player, bool: Bool) {
|
|
|
|
|
if bool {
|
|
|
|
@ -138,15 +144,15 @@ struct GameView: View {
|
|
|
|
|
print("------------")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func removePiece(piece: Piece) {
|
|
|
|
|
func removePiece(piece:Piece){
|
|
|
|
|
print("Remove piece")
|
|
|
|
|
if let node = gameScene.pieces[piece.owner]?[piece.animal] {
|
|
|
|
|
if let node = gameScene.pieces[piece.owner]![piece.animal] {
|
|
|
|
|
actionRemove(size: gameScene.size, node: node, scene: gameScene)
|
|
|
|
|
if let node = gameScene.pieces[piece.owner]?[piece.animal] {
|
|
|
|
|
print("Remove piece from parent")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ------------------------- //
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct GameView_Previews: PreviewProvider {
|
|
|
|
|