示例#1
0
        private GameViewModel(IGameServiceProvider gameServiceProvider, CGameNavigator navigator)
        {
            _gameServiceProvider = gameServiceProvider;
            _navigator           = navigator;
            СGameServiceCallback serviceCallback = gameServiceProvider.ServiceCallback;

            serviceCallback.GameStarted  += OnGameStarted;
            serviceCallback.RoundStarted += OnRoundStarted;
            serviceCallback.RoundEnded   += OnRoundEnded;

            _gameServiceClient = gameServiceProvider.GameClient;

            FinishRoundCommand        = new CRelayCommand(FinishRoundExecuted);
            _countdownTimer           = new Timer();
            _countdownTimer.Elapsed  += OnCountdown;
            _countdownTimer.Interval  = 1000;
            _countdownTimer.AutoReset = true;


            var heroSelectionView = new HeroSelectionView();

            CGameNavigator.Instance.Register(heroSelectionView, EAreaType.HeroSelection);
            heroSelectionView.ViewModel.OnHeroSelected += OnHeroSelected;


            CGameNavigator.Instance.Register(new EndRoundControl(), EAreaType.RoundEnded);

            CGameNavigator.Instance.Register(new TradingPage(), EAreaType.Trading);

            CGameNavigator.Instance.Register(new BattleView(), EAreaType.Battle);
        }
示例#2
0
 public CBattleNavigationData([NotNull] CHeroBase hero, [NotNull] IFightingUnit opponent,
                              [NotNull] IGameServiceProvider provider, SPoint position)
 {
     MyHero   = hero ?? throw new ArgumentNullException(nameof(hero));
     Opponent = opponent ?? throw new ArgumentNullException(nameof(opponent));
     Provider = provider ?? throw new ArgumentNullException(nameof(provider));
     Position = position;
 }
示例#3
0
 public GameArea(CMap map, CHeroBase hero, IGameServiceProvider provider) : this()
 {
     _provider       = provider;
     _viewModel      = new BattlefieldViewModel(map, hero, provider);
     DataContext     = _viewModel;
     Map.Source      = map;
     map.MapUpdated += OnMapUpdated;
 }
示例#4
0
        public BattlefieldViewModel(CMap map, CHeroBase hero, IGameServiceProvider provider)
        {
            _provider      = provider;
            MyHero         = hero;
            Map            = map;
            MoveCommand    = new CRelayCommand(MoveCommandExecuted);
            TradeCommand   = new CRelayCommand(TradeCommandExecuted, TradeCanExecute);
            BattleCommand  = new CRelayCommand(BattleExecute, BattleCanExecute);
            UseItemCommand = new CRelayCommand(UseItemExecute, UseItemCanExecute);

            provider.ServiceCallback.HeroMoved += OnHeroMoved;
            provider.ServiceCallback.UnitDied  += OnUnitDied;
            MyHeroViewModel = new HeroViewModel(hero);
        }
示例#5
0
        /// <summary>
        /// Constructor for <see cref="GameViewModel"/>.
        /// </summary>
        public GameViewModel(
            IGameServiceProvider gameServiceProvider,
            IEndpointInfo endpointInfo,
            IUserMessage userMessage,
            IPieceMasterFactory masterFactory,
            LocalNavigator navigator)
        {
            _masterFactory       = masterFactory;
            _navigator           = navigator;
            _gameServiceProvider = gameServiceProvider;
            _endpointInfo        = endpointInfo;
            _userMessage         = userMessage;
            var chessDefaultField = VirtualFieldUtils.CreateDefaultField();

            _gameField            = new VirtualField(chessDefaultField);
            _controller           = new GameController();
            _controller.Movement += OnChessPieceMovement;
            PlayMoreCommand       = new DelegateCommand(PlayMoreHandler);
            DisconnectCommand     = new DelegateCommand(DisconnectHandler);
        }
 protected override void Awake()
 {
     base.Awake();
     provider = GameServiceFactory.CreateGameServiceProvider();
 }