Example #1
0
        public Game(Player[] players, CardTypeFactory cardTypeFactory, EffectFactory effectFactory)
        {
            if (players is null)
            {
                throw new ArgumentNullException("players");
            }
            if (players.Length <= 0)
            {
                throw new ArgumentException("Player array must not be empty!", "players");
            }
            if (cardTypeFactory is null)
            {
                throw new ArgumentNullException("cardTypeFactory");
            }
            if (effectFactory is null)
            {
                throw new ArgumentNullException("effectFactory");
            }

            // Initialize
            this.registry = new Registry();
            this.players  = new List <Player>();

            // Handle parameters
            foreach (var player in players)
            {
                this.players.Add(player);
            }
            effectFactory.Initialize(this, registry);
            cardTypeFactory.Initialize(registry);
        }
 public MockGame(CardTypeFactory cardTypeFactory, EffectFactory effectFactory) : base(new Player[] { new MockPlayer(), new MockPlayer() }, cardTypeFactory, effectFactory)
 {
     // Nothing to do
 }