using System; using System.Reflection; using System.Windows.Controls; using System.Windows.Media.Imaging; namespace Dominion.NET_WPF.Controls { /// /// Interaction logic for ucPlayerOverview.xaml /// public partial class UcPlayerOverview : UserControl { public UcPlayerOverview() { InitializeComponent(); } private DominionBase.IPlayer _player; private DominionBase.Turn _turn; public DominionBase.IPlayer Player { private get { return _player; } set { _player = value; if (_player == null) return; switch (Player.PlayerType) { case DominionBase.Players.PlayerType.Human: iPlayerType.Source = (BitmapImage)Resources["imHuman"]; tbAIType.Text = "Human"; break; case DominionBase.Players.PlayerType.Computer: iPlayerType.Source = (BitmapImage)Resources["imComputer"]; tbAIType.Text = (string)Player.GetType().GetProperty("AIType", BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.FlattenHierarchy).GetValue(Player, null); break; } tbPlayerName.Text = Player.Name; } } public DominionBase.Turn Turn { set { _turn = value ?? new DominionBase.Turn(Player); tbCardsPlayed.Text = _turn.CardsPlayed.ToString(true); if (tbCardsPlayed.Text == string.Empty) lCardsPlayed.Visibility = tbCardsPlayed.Visibility = System.Windows.Visibility.Collapsed; else lCardsPlayed.Visibility = tbCardsPlayed.Visibility = System.Windows.Visibility.Visible; tbCardsBought.Text = _turn.CardsBought.ToString(true); if (tbCardsBought.Text == string.Empty) lCardsBought.Visibility = tbCardsBought.Visibility = System.Windows.Visibility.Collapsed; else lCardsBought.Visibility = tbCardsBought.Visibility = System.Windows.Visibility.Visible; tbCardsGained.Text = _turn.CardsGained.FindAll(c => !_turn.CardsBought.Contains(c)).ToString(true); if (tbCardsGained.Text == string.Empty) lCardsGained.Visibility = tbCardsGained.Visibility = System.Windows.Visibility.Collapsed; else lCardsGained.Visibility = tbCardsGained.Visibility = System.Windows.Visibility.Visible; tbCardsTrashed.Text = _turn.CardsTrashed.ToString(true); if (tbCardsTrashed.Text == string.Empty) lCardsTrashed.Visibility = tbCardsTrashed.Visibility = System.Windows.Visibility.Collapsed; else lCardsTrashed.Visibility = tbCardsTrashed.Visibility = System.Windows.Visibility.Visible; tbCardsGainedAfter.Text = _turn.CardsGainedAfter.ToString(true); if (tbCardsGainedAfter.Text == string.Empty) lCardsGainedAfter.Visibility = tbCardsGainedAfter.Visibility = System.Windows.Visibility.Collapsed; else lCardsGainedAfter.Visibility = tbCardsGainedAfter.Visibility = System.Windows.Visibility.Visible; tbCardsTrashedAfter.Text = _turn.CardsTrashedAfter.ToString(true); if (tbCardsTrashedAfter.Text == string.Empty) lCardsTrashedAfter.Visibility = tbCardsTrashedAfter.Visibility = System.Windows.Visibility.Collapsed; else lCardsTrashedAfter.Visibility = tbCardsTrashedAfter.Visibility = System.Windows.Visibility.Visible; } } public void TearDown() { Player = null; Turn = null; } } }