Example #1
0
        private List <List <string> > LoadStats()
        {
            var data = YamlParser
                       .ParseFile <List <RogueskivGameStats> >(AppConfig.GameStatsFilePath);

            if (data == null)
            {
                return(new List <List <string> >());
            }

            return(data
                   .AsEnumerable()
                   .Reverse()
                   .Select(gameStat => new List <string>
            {
                gameStat.GetResult(),
                gameStat.GetDateTime(),
                RogueskivMenu.CleanGameModeText(gameStat.GameMode),
                gameStat.Floors.ToString(),
                gameStat.DiedOnFloor.ToString(),
                gameStat.FinalHealth.ToString(),
                gameStat.GetRealTimeFormatted(),
                gameStat.GetInGameTimeFormatted(),
            })
                   .ToList());
        }
Example #2
0
        public RogueskivMenuRenderer(UxContext uxContext, RogueskivMenu game, string fontFile)
            : base(uxContext, game)
        {
            var titleFont = uxContext.GetFont(fontFile, TITLE_FONT_SIZE);
            var menuFont  = uxContext.GetFont(fontFile, MENU_FONT_SIZE);
            var smallFont = uxContext.GetFont(fontFile, SMALL_FONT_SIZE);

            Renderers.Add(new TitleRenderer(uxContext, titleFont, smallFont));
            Renderers.Add(new InstructionsRenderer(uxContext, smallFont));
            Renderers.Add(new ControlsInfoRenderer(uxContext, game, smallFont));
            Renderers.Add(new CustomSeedInputRenderer(uxContext, game, smallFont));
            CompRenderers[typeof(MenuOptionComp)] = new MenuOptionRenderer(uxContext, game, menuFont);
            CompRenderers[typeof(StatsComp)]      = new StatsRenderer(uxContext, smallFont);
        }
Example #3
0
        private GameEngine <EntityList> CreateMenuStage()
        {
            StopCurrentFloorEngine();
            CurrentFloor = 1;
            FloorEngines.ForEach(gameEngine => gameEngine.Dispose());
            FloorEngines.Clear();
            UxContext.PlayMusic(AppConfig.MenuMusicFilePath, AppConfig.MenuMusicVolume);

            var gameContext = new GameContext(AppConfig.MaxGameStepsWithoutRender);
            var game        = new RogueskivMenu(AppConfig, GameStageCodes.Menu, LoadStats);
            var renderer    = new RogueskivMenuRenderer(UxContext, game, AppConfig.FontFile);
            var userInput   = new RogueskivMenuInputHandler(UxContext, game, renderer);
            var engine      = new GameEngine <EntityList>(gameContext, userInput, game, renderer);

            return(engine);
        }
 public CustomSeedInputRenderer(UxContext uxContext, RogueskivMenu game, IntPtr font)
 {
     Game         = game;
     TextRenderer = new TextRenderer(uxContext, font);
 }
Example #5
0
 public MenuOptionRenderer(UxContext uxContext, RogueskivMenu game, IntPtr font)
     : base(uxContext, font) =>
Example #6
0
 public ControlsInfoRenderer(UxContext uxContext, RogueskivMenu game, IntPtr font)
 {
     UxContext    = uxContext;
     Game         = game;
     TextRenderer = new TextRenderer(uxContext, font);
 }