public List<StockPurchase> GetSelectedStocks(Player player) { this.BeginInvoke(new Action<Player>(SelectingStocks), player); _toggle.WaitOne(); _toggle.Reset(); return _curReturnObject as List<StockPurchase>; }
public StockSelectionDialog(Player player) { InitializeComponent(); _player = player; _cash = player.Cash; InitPlayer(); label1.Text = String.Format("${0}",_cash); }
public static void SellStocksToPlayer(Player player, List<StockPurchase> list) { foreach (var p in list) { player.Cash -= p.Quantity * p.Hotel.CurrentStockValue; GiveStocksToPlayer(player, p.Hotel.Name, p.Quantity); } }
public void PlayerReceivedCard(Player player, TileCard card, DidPlayerReceiveCard didPlayerReceiveCard) { if (didPlayerReceiveCard == DidPlayerReceiveCard.Received && card != null) { Log(string.Format("{0}: {1} received {2}", nameof(PlayerReceivedCard), player, card)); } else { Log(string.Format("{0}: {1} did not take a card, reason - {2}", nameof(PlayerReceivedCard), player, didPlayerReceiveCard)); } }
public StockDecision(Player player, Hotel mergingHotel, Hotel mergerHotel, int keeping, int exchanging, int selling) { Player = player; MergingHotel = mergingHotel; MergerHotel = mergerHotel; TotalStocks = player.StockBank.NameStocksDictionary[mergingHotel.Name].Quantity; Keeping = keeping; Exchanging = exchanging; Selling = selling; Debug.Assert(this.Correct()); }
public void CanPlayerBuyStocks(Player player, IsPlayerAbleToBuyStocks isPlayerAbleToBuyStocks) { Log(string.Format("{0}: {1} - {2}", nameof(CanPlayerBuyStocks), player, isPlayerAbleToBuyStocks)); }
public StockDecision GetStockDecision(Player player, Hotel mergingHotel, Hotel mergerHotel) { return new StockDecision(player, mergingHotel, mergerHotel, player.StockBank.NameStocksDictionary[mergingHotel.Name].Quantity, 0, 0); }
void SelectingStocks(Player player) { _curReturnObject = new List<StockPurchase>(); var stocksDialog = new StockSelectionDialog(player);//.ShowDialog(); stocksDialog.OK_Clicked += stocksDialog_OK_Clicked; stocksDialog.ShowDialog(); _toggle.Set(); }
/// <summary> /// Putting a tile card on board, by removing the card from the player's bank, /// and calling the BoardManager to handle the effect the card has on the board. /// </summary> /// <param name="player">The player who puts the tile card.</param> /// <param name="card">The tile card being put.</param> /// <param name="effect">Which effect the tile card has on the board.</param> /// <param name="involvedHotel">The main hotel that is being affected by putting the tile card: /// In case of enlarging an hotel, the involved hotel is the hotel being enlarged. In case of setting up a new hotel, the involved hotel /// is the hotel the player decided to setup. In case of a merge effect, the involved hotel is the main hotel that swallows all his neighbor hotels.</param> private static void PutCardOnBoard(Player player, TileCard card, TileCardEffect effect, Hotel involvedHotel) { player.TileCardBank.Remove(card); Output.PlayerPutsCard(player, card, effect, involvedHotel); BoardManager.HandleEffect(card, effect, involvedHotel); }
public void PlayerStockDecision(Player player, StockDecision decision) { }
public static void GiveStocksToPlayer(Player player, string stockName, int quantity) { HotelsManager.StockBank.Remove(stockName, quantity); player.StockBank.Add(stockName, quantity); }
public static void BuyStocksFromPlayer(Player player, Hotel hotel, int quantity) { TakeStocksFromPlayer(player, hotel.Name, quantity); player.Cash += hotel.CurrentStockValue * quantity; }
private static void GivePrize(Player player, int prize, bool firstPrize) { player.Cash += prize; }
private static void ExchangeStocks(Player player, Hotel mergingHotel, Hotel mergerHotel, int mergingHotelStocksExchangedNumber) { Debug.Assert(mergingHotelStocksExchangedNumber % 2 == 0); TakeStocksFromPlayer(player, mergingHotel.Name, mergingHotelStocksExchangedNumber); GiveStocksToPlayer(player, mergerHotel.Name, mergingHotelStocksExchangedNumber / 2); }
/// <summary> /// Gets the player whose turn it is after a certain player. /// </summary> /// <param name="player">The player to check.</param> /// <returns>The player who plays after the given player.</returns> public static Player GetNextPlayer(Player player) { int index = Players.IndexOf(player); var nextPlayer = index != Players.Count - 1 ? Players[index + 1] : Players[0]; return nextPlayer; }
public void ClosestToA1(Player closestToA1) { Log(string.Format("{0}: {1}", nameof(ClosestToA1), closestToA1)); }
public void PlayerPutsCard(Player player, TileCard card, TileCardEffect effect, Hotel involvedHotel) { Log(string.Format("{0}: {1} puts {2}", nameof(PlayerPutsCard), player, card)); }
public static void TakeStocksFromPlayer(Player player, string stockName, int quantity) { player.StockBank.Remove(stockName, quantity); HotelsManager.StockBank.Add(stockName, quantity); }
public void PlayerSetsUpHotel(Player player, Hotel setUpHotel) { Log(string.Format("{0}: {1} sets up {2}", nameof(PlayerSetsUpHotel), player, setUpHotel)); }
/// <summary> /// Replaces an illegal tile card given by a player with a card from the TileCardBank, if there are still cards left. /// This method assumes that the tile card it receives is indeed illegal. /// </summary> /// <param name="player">The player who wants to replace his illegal card.</param> /// <param name="card">The illegal card to replace.</param> public static void ReplaceCard(Player player, TileCard card) { GameManager.Output.ReplaceCard(player, card); player.TileCardBank.Remove(card); GiveCards(player, 1); }
public void ReplaceCard(Player player, TileCard card) { }
/// <summary> /// Gives certain amount of tile cards to a player, if there are still cards left in TileCardBank. /// </summary> /// <param name="player">The player to give the tile cards to.</param> /// <param name="quantity">How many tile cards to give to the player (If the amount exists in the TileCardBank).</param> public static void GiveCards(Player player, int quantity) { for (var i = 0; i < quantity; i++) { TileCard card; if (TileCardBank.Count > 0) { card = TileCardBank.First(); TileCardBank.Remove(card); player.TileCardBank.Add(card); GameManager.Output.PlayerReceivedCard(player, card, DidPlayerReceiveCard.Received); } else { GameManager.Output.PlayerReceivedCard(player, null, DidPlayerReceiveCard.BankIsEmpty); return; } } }