private EnemyType FindEnemyTypeToSpawn(Level.Level level) { var random = CommonEntensions.GenerateRandom(); foreach (var spawnRate in level.EnemySpawnRateContainer.EnemySpawnRates) { if (spawnRate.Value.Min < random && random <= spawnRate.Value.Max) { return(spawnRate.Key); } } return(EnemyType.None); }
public object Render() { var tempFilePath = string.Empty; switch (Environment.MachineName) { case "DESKTOP-9OSBTS0": tempFilePath = CommonEntensions.GetKeyValueFromAppSettings <string>("LevelHtmlFileTemplatePath2"); break; default: tempFilePath = CommonEntensions.GetKeyValueFromAppSettings <string>("LevelHtmlFileTemplatePath"); break; } var template = File.ReadAllText(tempFilePath); StringBuilder builder = new StringBuilder(); var rows = level.Tiles.GroupBy(x => x.Position.Y).ToList(); int i = 0; foreach (var row in rows) { builder.Append("<tr>"); foreach (var tile in row) { var tileOutput = tile.Renderer.Render().ToString(); if (tile.Enemy != null) { tileOutput = tileOutput.Replace("@enemy", tile.Enemy.EnemyRenderer.Render().ToString()); } else { tileOutput = tileOutput.Replace("@enemy", ""); } builder.Append("<td>" + tileOutput + "</td>"); } builder.Append("</tr>"); i++; if (i < rows.Count) { builder.Append("<tr>"); } } return(template.Replace("@tiles", builder.ToString())); }
static void Render(Level.Level level) { switch (RenderingOption) { case RenderingOption.Console: ILevelRenderer consoleRenderer = new ConsoleLevelRenderer().Init(level); consoleRenderer.Render(); break; case RenderingOption.HtmlFile: ILevelRenderer htmlRenderer = new HtmlLevelRenderer().Init(level); var saveGeneratedHtmlFile = CommonEntensions.SaveGeneratedHtmlFile("generatedLevelFile" + ".html", htmlRenderer.Render().ToString()); Process.Start(saveGeneratedHtmlFile); break; } }