コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }