public MessageViewModel( IDrawHandler drawHandler, Ctd ctd, Ctd.Message message) { _drawHandler = drawHandler; _ctd = ctd; Message = message; DrawHandler = new RelayCommand(_ => { if (FontContext == null) { return; } var layout = _ctd.Layouts[Message.LayoutIndex]; _drawHandler.DrawHandler(CtdEncoders.International, FontContext, Message, layout); _drawHandler.DrawingContext.Flush(); }); }
/// <summary> /// Runs the game /// </summary> /// <param name="gameType">Selected gametype.</param> /// <param name="userInterface">Selected UI.</param> public void Run(Type gameType, UserInterface userInterface) { this.GameType = gameType; this.currentGame = (IGame)Activator.CreateInstance(this.GameType); switch (userInterface) { case UserInterface.Console: this.drawHandler = new ConsoleUiDrawHandler(); break; default: throw new ArgumentException("The selected user interface is not available."); } while (this.running) { switch (this.CurrentGame.GameState) { case GameState.New: case GameState.Over: Initialize(); break; case GameState.Running: Update(); break; case GameState.Win: this.CurrentGame.SuccessfulEscape(); break; case GameState.TopResults: this.CurrentGame.TopResults(); break; case GameState.Quit: Console.WriteLine("Good bye!"); Environment.Exit(0); break; } this.Draw(); } }