From e12c7b4143341cc579962ea9cb23e9f46da091e2 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 21 Jun 2024 17:39:10 +0200 Subject: [PATCH 1/4] :bug: Fix: popup selectPlayer --- .../DouShouQi_App/Views/Player/SelectPlayerView.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift index a0b67c2..6beeec4 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift @@ -9,13 +9,17 @@ import SwiftUI import SpriteKit struct SelectPlayerView: View { + + @StateObject var player1 = PlayerVM() + @StateObject var player2 = PlayerVM() + var body: some View { VStack { TitlePageFrame(Text: "select players") Spacer() - SelectPlayerButtonView(playersVM: PlayersVM()) + SelectPlayerButtonView(player1: player1, player2: player2, playersVM: PlayersVM()) Spacer() @@ -32,8 +36,8 @@ struct SelectPlayerView: View { } } -struct SelectPlayerViewPreviews: PreviewProvider { +/*struct SelectPlayerViewPreviews: PreviewProvider { static var previews: some View { SelectPlayerView() } -} +}*/ From 4a440238cf3de241ed13c034a8d1b83998d9b597 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 21 Jun 2024 17:40:21 +0200 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9C=A8=20Add:=20Creation=20for=20AI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayerVM.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayerVM.swift b/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayerVM.swift index 67fc7f7..1d8f262 100644 --- a/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayerVM.swift +++ b/DouShouQi_App/DouShouQi_App/ViewModel/Players/PlayerVM.swift @@ -35,5 +35,10 @@ public class PlayerVM: ObservableObject, Identifiable, Hashable{ init(player: Player) { self.player = player } + + convenience init() { + self.init(player: Player(name: "IA", photo: "")) + } + } From 3aa50d654bd78285087563c3dfc3762f03b62ce7 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 21 Jun 2024 17:41:31 +0200 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=92=84=20Update:=20style=20for=20butt?= =?UTF-8?q?on=20slection=20perso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Player/ShowAllPlayer.swift | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift b/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift index cf706fc..2a3ee8b 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift @@ -9,25 +9,43 @@ import SwiftUI struct ShowAllPlayer: View { @State private var isShowingSheet = false + @Binding var currentShowingSheet: Bool + + @ObservedObject var currentPlayer:PlayerVM + + @ObservedObject var otherPlayer:PlayerVM + @ObservedObject var playersVM: PlayersVM var body: some View { VStack(alignment: .leading) { - Text("Liste des joueurs actuelle :") + Text("Choose a player :") List { ForEach($playersVM.players, id: \.self) { playerVM in - Button(action: { - - }) { - HStack { - Image(systemName: "person.fill") - .resizable() - .frame(width: 30, height: 30) - Text(playerVM.player.name.wrappedValue) - } + if otherPlayer.player.name != playerVM.player.wrappedValue.name { + Button(action: { + if currentPlayer.player.name == playerVM.player.wrappedValue.name { + currentPlayer.player = Player(name: "IA", photo: "") + } else { + currentPlayer.player = playerVM.player.wrappedValue } + self.currentShowingSheet = false + }) { + HStack { + Image(systemName: "person.fill") + .resizable() + .frame(width: 30, height: 30) + Text(playerVM.player.name.wrappedValue) + } + .padding() + .background(Color.blue) + .foregroundColor(.white) + .cornerRadius(10) + .shadow(radius: 3) } } + } + } Button(action: { self.isShowingSheet = true }) { From aa4236091f8b57f33a2d73e669ea370d928fa419 Mon Sep 17 00:00:00 2001 From: Nathan Date: Fri, 21 Jun 2024 17:42:01 +0200 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=92=84=20Update:=20style=20for=20butt?= =?UTF-8?q?on=20selection=20joueur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Player/SelectPlayerButtonView.swift | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift b/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift index ce3ebb0..bc43698 100644 --- a/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift +++ b/DouShouQi_App/DouShouQi_App/Components/Player/SelectPlayerButtonView.swift @@ -35,12 +35,14 @@ struct CustomShapeRightButton: Shape { struct SelectPlayerButtonView: View { - @State var player1:String = "IA" - @State var player2:String = "IA" + + @ObservedObject var player1:PlayerVM + @ObservedObject var player2:PlayerVM @ObservedObject var playersVM: PlayersVM - @State private var showingPopup = false + @State private var showingPopup1 = false + @State private var showingPopup2 = false var body: some View { ZStack{ @@ -51,20 +53,12 @@ struct SelectPlayerButtonView: View { .offset(y: -60) HStack{ VStack (alignment: .leading) { - Text(player1) + Text(player1.player.name) .font(.title) .padding(3) Button(action: { print("Button j1 pressé!") - if (player1 == "IA"){ - if (player2 == "Player1"){ - player1="Player2" - }else{ - player1="Player1" - } - }else{ - player1="IA" - } + showingPopup1 = true }) { VStack { Text("+") @@ -73,6 +67,9 @@ struct SelectPlayerButtonView: View { Text("Add a player") .font(.body) .bold() + .sheet(isPresented: $showingPopup1) { + ShowAllPlayer(currentShowingSheet: $showingPopup1, currentPlayer: player1, otherPlayer: player2, playersVM: playersVM) + } } .frame(width: 150, height: 150) .padding() @@ -83,13 +80,13 @@ struct SelectPlayerButtonView: View { } } VStack (alignment: .trailing) { - Text(player2) + Text(player2.player.name) .font(.title) .padding(3) Button(action: { print("Button j2 pressé!") - showingPopup = true + showingPopup2 = true }) { VStack { Text("+") @@ -98,10 +95,10 @@ struct SelectPlayerButtonView: View { Text("Add a player") .font(.body) .bold() - .sheet(isPresented: $showingPopup) { - ShowAllPlayer(playersVM: playersVM) + .sheet(isPresented: $showingPopup2) { + ShowAllPlayer(currentShowingSheet: $showingPopup2, currentPlayer: player2, otherPlayer: player1, playersVM: playersVM) } - } .frame(width: 150, height: 150) + }.frame(width: 150, height: 150) .padding() .border(Colors.TitleText, width: 4) .foregroundColor(Colors.TitleText) @@ -114,9 +111,13 @@ struct SelectPlayerButtonView: View { } } -struct SelectPlayerButtonView_Previews: PreviewProvider { +/*struct SelectPlayerButtonView_Previews: PreviewProvider { + + var player1 = PlayerVM(player: Player(name: "Linked", photo: "")) + var player22 = PlayerVM(player: Player(name: "Horizon", photo: "")) + static var previews: some View { @StateObject var playersVM = PlayersVM() - SelectPlayerButtonView(playersVM: PlayersVM()) + SelectPlayerButtonView(player1: player1, player2: player2, playersVM: PlayersVM()) } -} +}*/