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()) } -} +}*/ 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 }) { 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: "")) + } + } diff --git a/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift index bd8f41a..1a87600 100644 --- a/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift +++ b/DouShouQi_App/DouShouQi_App/Views/Player/SelectPlayerView.swift @@ -9,14 +9,18 @@ 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() - + SelectPlayerButtonView(player1: player1, player2: player2, playersVM: PlayersVM()) + Spacer() HStack { @@ -44,8 +48,8 @@ struct SelectPlayerView: View { } } -struct SelectPlayerViewPreviews: PreviewProvider { +/*struct SelectPlayerViewPreviews: PreviewProvider { static var previews: some View { SelectPlayerView() } -} +}*/