예제 #1
0
        /// <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();
        }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
 public Chips(GameControls.Seat seat)
 {
     InitializeComponent();
     this.seat = seat;
 }