public GamePage() { _controller = new GamePageController(this); }
private void InitializeWizardComponentProvider() { animationQueue = new List <DoubleAnimation>(); _gamePageController = new GamePageController(this, this.Dispatcher); _animationsCompletedHandlers = new Queue <Action>(); // card groups CenterShuffleCardGroup = new StackCardGroup(this, new NormalizedPosition(50, 50), 0); LeftShuffleCardGroup = new StackCardGroup(this, new NormalizedPosition(40, 50), 0); RightShuffleCardGroup = new StackCardGroup(this, new NormalizedPosition(60, 50), 0); DiscardCardGroup = new AdjacentCardGroup(this, new NormalizedPosition(62, 50), 0); Player1CardGroup = new InteractiveAdjacentCardGroup(this, new NormalizedPosition(50, 90), Common.Orientation.DEGREES_0); Player2CardGroup = new AdjacentCardGroup(this, new NormalizedPosition(4, 50), Common.Orientation.DEGREES_90); Player3CardGroup = new AdjacentCardGroup(this, new NormalizedPosition(50, 3), Common.Orientation.DEGREES_180); Player4CardGroup = new AdjacentCardGroup(this, new NormalizedPosition(96, 50), Common.Orientation.DEGREES_270); DeckCardGroup = new StackCardGroup(this, new NormalizedPosition(29, 50), 0); TrumpCardGroup = new StackCardGroup(this, new NormalizedPosition(37, 50), 0); CollapsedDiscardCardGroup = new StackCardGroup(this, GetRelativeNormalizedPosition(DiscardCardGroup.Origin, 0, 0), 0); OffScreenPlayer1CardGroup = new StackCardGroup(this, GetRelativeNormalizedPosition(Player1CardGroup.Origin, 0, 20), 0); OffScreenPlayer2CardGroup = new StackCardGroup(this, GetRelativeNormalizedPosition(Player2CardGroup.Origin, -20, 0), Common.Orientation.DEGREES_90); OffScreenPlayer3CardGroup = new StackCardGroup(this, GetRelativeNormalizedPosition(Player3CardGroup.Origin, 0, -20), Common.Orientation.DEGREES_180); OffScreenPlayer4CardGroup = new StackCardGroup(this, GetRelativeNormalizedPosition(Player4CardGroup.Origin, 20, 0), Common.Orientation.DEGREES_270); // button positions Player1ButtonPosition = new DealerButtonPosition(this, new NormalizedPosition(55, 70)); Player2ButtonPosition = new DealerButtonPosition(this, new NormalizedPosition(15, 59)); Player3ButtonPosition = new DealerButtonPosition(this, new NormalizedPosition(58, 17)); Player4ButtonPosition = new DealerButtonPosition(this, new NormalizedPosition(82, 53)); // bind callbacks to UI elements player_creation_input.KeyDown += this.OnPlayerCreationInputKeyDown; player_bid_input.KeyDown += this.OnPlayerBidInputKeyDown; game_canvas_storyboard.Completed += OnAnimationsCompleted; pause_button.Click += (object sender, RoutedEventArgs args) => _pauseButtonClickedHandler(); scores_button.Click += (object sender, RoutedEventArgs args) => _scoresButtonClickedHandler(); quit_button.Click += (object sender, RoutedEventArgs args) => _quitButtonClickedHandler(); short_game_button.Click += (object sender, RoutedEventArgs args) => OnGameLengthButtonClicked(5); medium_game_button.Click += (object sender, RoutedEventArgs args) => OnGameLengthButtonClicked(10); full_game_button.Click += (object sender, RoutedEventArgs args) => OnGameLengthButtonClicked(15); // set position of UI elements using method that binds them to a responsive canvas position SetUiElementNormalizedCanvasPosition(player_creation_input, new NormalizedPosition(50, 50), true); SetUiElementNormalizedCanvasPosition(short_game_button, new NormalizedPosition(50, 60), true); SetUiElementNormalizedCanvasPosition(medium_game_button, new NormalizedPosition(50, 68), true); SetUiElementNormalizedCanvasPosition(full_game_button, new NormalizedPosition(50, 76), true); SetUiElementNormalizedCanvasPosition(player_bid_input, new NormalizedPosition(62, 50)); SetUiElementNormalizedCanvasPosition(player_bid_error_message, new NormalizedPosition(62, 58)); // scoreboard SetUiElementNormalizedCanvasPosition(scoreboard_container, new NormalizedPosition(7, 7)); // player personas SetUiElementNormalizedCanvasPosition(player1_name_container, GetRelativeNormalizedPosition(Player1CardGroup.Origin, -5, -20)); SetUiElementNormalizedCanvasPosition(player1_status, GetRelativeNormalizedPosition(Player1CardGroup.Origin, -5, -15.5)); SetUiElementNormalizedCanvasPosition(player2_name_container, GetRelativeNormalizedPosition(Player2CardGroup.Origin, 10, 0)); SetUiElementNormalizedCanvasPosition(player2_status, GetRelativeNormalizedPosition(Player2CardGroup.Origin, 10, 4.5)); SetUiElementNormalizedCanvasPosition(player3_name_container, GetRelativeNormalizedPosition(Player3CardGroup.Origin, -2, 15)); SetUiElementNormalizedCanvasPosition(player3_status, GetRelativeNormalizedPosition(Player3CardGroup.Origin, -2, 19.5)); SetUiElementNormalizedCanvasPosition(player4_name_container, GetRelativeNormalizedPosition(Player4CardGroup.Origin, -15, -6)); SetUiElementNormalizedCanvasPosition(player4_status, GetRelativeNormalizedPosition(Player4CardGroup.Origin, -15, -1.5)); SetUiElementNormalizedCanvasPosition(game_message_box, GetRelativeNormalizedPosition(CenterShuffleCardGroup.Origin, 0, -17), true); // player avatars SetUiElementNormalizedCanvasPosition(player2_avatar, GetRelativeNormalizedPosition(Player2CardGroup.Origin, 8, -3)); SetUiElementNormalizedCanvasPosition(player3_avatar, GetRelativeNormalizedPosition(Player3CardGroup.Origin, -4, 12)); SetUiElementNormalizedCanvasPosition(player4_avatar, GetRelativeNormalizedPosition(Player4CardGroup.Origin, -17, -9)); DoAsyncInitialization().ContinueWith(task => { SetUiElementNormalizedCanvasPosition(player1_avatar, GetRelativeNormalizedPosition(Player1CardGroup.Origin, -7, -23)); }, TaskScheduler.FromCurrentSynchronizationContext()); // top menu buttons SetUiElementNormalizedCanvasPosition(pause_button, new NormalizedPosition(2, 2)); SetUiElementNormalizedCanvasPosition(scores_button, new NormalizedPosition(6, 2)); SetUiElementNormalizedCanvasPosition(quit_button, new NormalizedPosition(10.2, 2)); }