Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }
Пример #3
0
        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;
            }
        }