Exemplo n.º 1
0
        public string MouseOver(int x, int y)
        {
            int row, col;

            PointToHex(x, y, parameters.HexHeight, out row, out col);
            var hex = collection.Get(row, col);

            if (hex != null)
            {
                var coordinate          = String.Format("[{0},{1}]:", col, row).PadRight(10);
                var terrainEnum         = hex.Terrain.TerrainEnum.ToString().PadRight(15);
                var polar_temp_tropical = String.Format("{0},{1},{2}", TerrainAdjacentcy.Polarness(row, parameters.MaxRows), TerrainAdjacentcy.Temperateness(row, parameters.MaxRows), TerrainAdjacentcy.Tropicalness(row, parameters.MaxRows));

                return(string.Format("{0} {1} - {2} *** {3}", coordinate, terrainEnum, hex.Elevation, polar_temp_tropical));
            }
            else
            {
                return("---");
            }
        }
Exemplo n.º 2
0
        private static void FillAllRecursive(RecursiveFillCommand command, int maxRow)
        {
            var blankAdjacent = command.collection.GetBlankAdjacent(command.hex).OrderBy(x => Guid.NewGuid());

            foreach (var blank in blankAdjacent)
            {
                Console.WriteLine("FOUND");
                var nonBlankAdjacent = command.collection.GetNonBlankAdjacent(blank);

                if (nonBlankAdjacent.Count == 0)
                {
                    throw new InvalidOperationException("No Non-Blank Adjacent.");
                }

                int averageAltitude = (int)nonBlankAdjacent.Select(h => h.Elevation).Average();
                var newaltitude     = ElevationTable.Get() + averageAltitude;
                blank.Elevation = newaltitude;

                if (newaltitude < command.collection.MinElevation)
                {
                    command.collection.MinElevation = newaltitude;
                }
                else if (newaltitude > command.collection.MaxElevation)
                {
                    command.collection.MaxElevation = newaltitude;
                }

                var elevationAdjusted = TerrainAdjacentcy.ApplyAltitudeAdjustment(TerrainController.DefaultTerrains, blank.Elevation);
                var latitudeAdjusted  = TerrainAdjacentcy.ApplyLatitudeAdjustment(elevationAdjusted, blank.Row, maxRow);
                var finalTable        = new RandomTable <TerrainEnum>(latitudeAdjusted);

                blank.Terrain = Terrain.EnumMap[finalTable.Get()];
                stack.Push(new RecursiveFillCommand()
                {
                    collection = command.collection, hex = blank
                });
            }
        }