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); }
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()); }