private void TidesOfMadnessForm_Load(object sender, EventArgs e) { driver = new GameDriver(); driver.InitializeGame(); UpdateGameLog(driver.GetGameLog()); UpdateScoreDisplays(); pbxCardImage.SizeMode = PictureBoxSizeMode.StretchImage; lbxHumanHand.DataSource = driver.GetHumanPlayer().GetCardsInHand(); lbxHumanHand.DisplayMember = "CardNameDisplay"; lbxHumanInPlay.DataSource = driver.GetHumanPlayer().GetCardsInPlay(); lbxHumanInPlay.DisplayMember = "CardNameDisplay"; lbxOppInPlay.DataSource = driver.GetAIPlayer().GetCardsInPlay(); lbxOppInPlay.DisplayMember = "CardNameDisplay"; lbxDiscardPile.DataSource = driver.GameState.DiscardPile.CardsInCollection; lbxDiscardPile.DisplayMember = "CardNameDisplay"; pbxCardImage.ImageLocation = SetArtFromListBox(lbxHumanHand, 0); UpdatePlayerInstructions(driver.GetCurrentGameState(), lblPlayerInstructions); UpdateUISettings(driver.GetCurrentGameState()); }
private void btnSubmit_Click(object sender, EventArgs e) { switch (driver.GetCurrentGameState()) { case GameStates.Setup: { UpdateScoreDisplays(); break; } case GameStates.PlayCards: case GameStates.ChooseCardToReplay: case GameStates.ChooseCardToDiscard: { Card selectedCard = (Card)lbxHumanHand.SelectedItem; if (selectedCard != null) { PlayerInput input = new PlayerInput(); input.SelectedCards.Add(selectedCard); driver.ActOnPlayerInput(input); UpdateUISettings(driver.GetCurrentGameState()); UpdateGameLog(driver.GetGameLog()); } break; } case GameStates.ResolveMadnessBonus: { PlayerInput input = new PlayerInput(); ResolveMadnessOption chosenOption = (ResolveMadnessOption)cbxPlayerChoice.SelectedItem; input.SelectedBonus = chosenOption.Bonus; driver.ActOnPlayerInput(input); UpdateUISettings(driver.GetCurrentGameState()); UpdateGameLog(driver.GetGameLog()); break; } case GameStates.SetDreamlands: { PlayerInput input = new PlayerInput(); input.SelectedSuit = (SuitOption)cbxPlayerChoice.SelectedItem; driver.ActOnPlayerInput(input); UpdateUISettings(driver.GetCurrentGameState()); UpdateGameLog(driver.GetGameLog()); break; } case GameStates.Scoring: { break; } case GameStates.PickUpCards: { BindingList <Card> selectedCards = new BindingList <Card>(); foreach (Card card in lbxHumanInPlay.SelectedItems) { selectedCards.Add(card); } if (selectedCards.Count == 5) { PlayerInput input = new PlayerInput(); input.SelectedCards = selectedCards; driver.ActOnPlayerInput(input); UpdateUISettings(driver.GetCurrentGameState()); UpdateGameLog(driver.GetGameLog()); } break; } default: { break; } } UpdatePlayerInstructions(driver.GetCurrentGameState(), lblPlayerInstructions); UpdateScoreDisplays(); }