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); }
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; }
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; }
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); }
/// <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(); }