private BonusMap BonusMapSum(List <BonusMap> squadBonusMapList) { var sumMap = new BonusMap(); var isInSurvivalMode = IsInSurvivalMode(); foreach (var map in squadBonusMapList) { if (isInSurvivalMode && map.Weight > 0) { continue; } map.Trim(); if (map.IsEmpty) { continue; } for (int i = 0; i < MapPointsAmount; i++) { for (int j = 0; j < MapPointsAmount; j++) { sumMap.Table[i, j] += map.Table[i, j] * map.Weight; } } } CheckTileGeneration(squadBonusMapList); return(sumMap.Trim()); }
public static IEnumerable <Tile> GetTileList(this BonusMap map) { map.Trim(); var tileList = new List <Tile>(); double tileWidth = BonusMapCalculator.MapCellWidth; //8 for (int i = 0; i < BonusMapCalculator.MapPointsAmount; i++) { for (int j = 0; j < BonusMapCalculator.MapPointsAmount; j++) { var tileCenter = new Point(i * BonusMapCalculator.SizeWorldMapKoeff + tileWidth / 2, j * BonusMapCalculator.SizeWorldMapKoeff + tileWidth / 2); tileList.Add(new Tile(tileCenter, tileWidth, map.Table[i, j], map.RealTable[i, j])); if (map.Table[i, j] > 1 || map.Table[i, j] < 0) { throw new Exception("Wrong tile trim."); } } } return(tileList); }