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