Esempio n. 1
0
        public Map(IMapCreationData creationData,
                   IBattlefieldBuilder battlefieldBuilder,
                   ISpawnService spawnService)
        {
            this.battlefield = battlefieldBuilder.Build(creationData.MapInfo);
            this.Width       = battlefield.Width;
            this.Height      = (byte)(battlefield.Cells.Count / this.Width);

            spawnService.Spawn(this.battlefield.Cells, creationData.UserContents);
        }
Esempio n. 2
0
        private Battlefield BuildBattlefield(DeckList deckList, Func <string, CardDefinition> fnFindCard)
        {
            var battleFields = new List <Battlefield>();

            foreach (var slot in deckList.slots)
            {
                var card = fnFindCard(slot.Key);
                if (card.CardType != CardType.Battlefield)
                {
                    continue;
                }
                battleFields.Add(_battleFieldBuilder.Build(card));
            }
            if (battleFields.Count == 0)
            {
                throw new Exception("No battlefields found.");
            }
            if (battleFields.Count > 1)
            {
                throw new Exception("More than one battlefield found.");
            }
            return(battleFields.First());
        }