/// <summary> /// Ustawienie miejsc dla graczy wraz z miejscami na stacki /// </summary> private void SeatsPlacer() { //Czyścymy elementy this.ellipseTableSeats.Children.Clear(); this.SeatList.Clear(); //Dodawanie miejsc / Pozycje etc / uzytkownicy for (int i = 0; i < GameTable.Seats; i++) { GameControls.Seat seat = new GameControls.Seat(this); if (this.GameTable.Type == Enums.TableType.Normal) { seat.TakeSeat.Click += (o, e) => { NormalModeStackWindow stackWindow = new NormalModeStackWindow(this.Window); stackWindow.Seat = seat; stackWindow.ShowModal(this.Window); stackWindow.Owner = this.Window; }; } SeatList.Add(seat); } //Dodawanie iejsc do stolu foreach (GameControls.Seat seat in SeatList) { this.ellipseTableSeats.Children.Add(seat); } this.ellipseTableSeats.UpdateLayout(); }
/// <summary> /// Dodaje kwotę na stół, gdy istnieje zmienia stan aktualnej /// </summary> /// <param name="player"></param> /// <param name="bid"></param> public void OnPlayerBid(PlayerModel player, decimal bid) { //Wyszukujemy kontrolkę odpowiedzialną za wyświetlanie naszego gracza GameControls.Seat seatObject = ellipseTableSeats.Children. OfType <GameControls.Seat>(). FirstOrDefault(s => s.player != null && s.player.User.ID == player.User.ID); if (seatObject == null) { return; } Vector playerCash = VisualTreeHelper.GetOffset(seatObject); Vector globalCash = VisualTreeHelper.GetOffset(TableStack); //Sprawdzamy czy już istnieje taka pozycja, jeśli tak zmieniamy ją na nową, jeśli nie dodajemy stack na planszę var playerChipsStack = this.CashierWorkspace.Children. OfType <GameControls.Chips>(). FirstOrDefault(c => c.seat.player != null && c.seat.player.User.ID == player.User.ID); //Dodajemy stack na planszę if (playerChipsStack == null) { //Gdy mamy gotową pozycję dodajemy element GameControls.Chips do CashierWorkspace var playerCashControl = new GameControls.Chips(this.SeatList.FirstOrDefault(s => s.player != null && s.player.User.ID == player.User.ID)); playerCashControl.SetChips(bid); double distance = 50; double scaleX = 1.0; double scaleY = 1.0; if (playerCash.Y < globalCash.Y) //górne pozycje { distance = 35; scaleX = 3.5; } else //dolne pozycje { distance = 90; scaleX = 1.55; } var stackPosition = Helper.MovePointTowards( new Point(playerCash.X + seatObject.ActualWidth / 2, playerCash.Y + seatObject.ActualHeight / 2), new Point(globalCash.X, globalCash.Y), distance, scaleX, scaleY ); Canvas.SetLeft(playerCashControl, stackPosition.X); Canvas.SetTop(playerCashControl, stackPosition.Y); //Dodajemt element do naszej gry this.CashierWorkspace.Children.Add(playerCashControl); } else { playerChipsStack.AddChips(bid); } }
public Chips(GameControls.Seat seat) { InitializeComponent(); this.seat = seat; }