public BiomeType GetBiomeWith(int elevation, int moisture) { if (!Elevation.Contains(elevation)) { throw new ArgumentException("Invalid elevation value"); } if (!Moisture.Contains(moisture)) { throw new ArgumentException("Invalid moisture value"); } var elevationPercent = Elevation.GetPercent(elevation); var moisturePercent = Moisture.GetPercent(moisture); if (elevationPercent >= 0 && elevationPercent < 25) { if (moisturePercent >= 0 && moisturePercent < 17) { return(BiomeType.SubtropicalDesert); } if (moisturePercent >= 17 && moisturePercent < 33) { return(BiomeType.Grassland); } if (moisturePercent >= 33 && moisturePercent < 66) { return(BiomeType.TropicalSeasonalForest); } return(BiomeType.TropicalRainForest); } if (elevationPercent >= 25 && elevationPercent < 50) { if (moisturePercent >= 0 && moisturePercent < 17) { return(BiomeType.TemperateDesert); } if (moisturePercent >= 17 && moisturePercent < 50) { return(BiomeType.Grassland); } if (moisturePercent >= 50 && moisturePercent < 83) { return(BiomeType.TemperateDeciduousForest); } return(BiomeType.TropicalRainForest); } if (elevationPercent >= 50 && elevationPercent < 75) { if (moisturePercent >= 0 && moisturePercent < 33) { return(BiomeType.TemperateDesert); } if (moisturePercent >= 33 && moisturePercent < 66) { return(BiomeType.Shrubland); } return(BiomeType.Taiga); } if (elevationPercent >= 75 && elevationPercent <= 100) { if (moisturePercent >= 0 && moisturePercent < 17) { return(BiomeType.Scorched); } if (moisturePercent >= 17 && moisturePercent < 33) { return(BiomeType.Bare); } if (moisturePercent >= 33 && moisturePercent < 50) { return(BiomeType.Tundra); } return(BiomeType.Snow); } return(BiomeType.None); }