예제 #1
0
        public TeamViewModel(int teamIndex, ScoreboardViewModel scoreboard1, ScoreboardViewModel scoreboard2,
                             WordGameViewModel wordGameViewModel, BingoCardSettings bingoCardSettings, Random random,
                             AudioPlaybackEngine audioPlaybackEngine, ActiveSceneContainer activeSceneContainer)
        {
            _teamIndex           = teamIndex;
            _bingoCardSettings   = bingoCardSettings;
            _random              = random;
            _audioPlaybackEngine = audioPlaybackEngine;
            Scoreboard1          = scoreboard1;
            Scoreboard2          = scoreboard2;
            WordGameViewModel    = wordGameViewModel;
            ActiveSceneContainer = activeSceneContainer;

            if (teamIndex == 0)
            {
                this.WhenAnyValue(x => x.ActiveSceneContainer.IsTeam1Active).ToPropertyEx(this, x => x.OnAir);
            }
            else
            {
                this.WhenAnyValue(x => x.ActiveSceneContainer.IsTeam2Active).ToPropertyEx(this, x => x.OnAir);
            }


            CreateNewBingoCard();
        }
예제 #2
0
        public BingoViewModel(BingoCardSettings settings, Random random, AudioPlaybackEngine audioEngine)
        {
            _settings           = settings;
            _audioEngine        = audioEngine;
            _winSound           = new CachedSound(@"Resources\Sounds\Bingo\slingo_win.wav");
            _fillBallShortSound = new CachedSound(@"Resources\Sounds\Bingo\ball_fill_short.wav");
            _fillBallLongSound  = new CachedSound(@"Resources\Sounds\Bingo\ball_fill_long.wav");
            int[] numbers = Enumerable.Range(1, 50).Where(x => settings.EvenNumber ? (x % 2 == 0) : (x % 2 != 0)).ToArray();
            Matrix             = SetupMatrix(random, numbers, settings.FilledBalls);
            MatrixForAnimation = CopyMatrix(Matrix);

            IsAnimating = true;
        }
예제 #3
0
        }                                                           // TODO move to model class


        public GameViewModel(Settings settings, GameState state, AudioPlaybackEngine audioPlaybackEngine, ActiveSceneContainer activeSceneContainer)
        {
            Random random = new Random();
            var    audioPlaybackEngine1 = audioPlaybackEngine;

            ScoreBoardTeam1   = new ScoreboardViewModel(state.Team1, HorizontalAlignment.Left);
            ScoreBoardTeam2   = new ScoreboardViewModel(state.Team2, HorizontalAlignment.Right);
            WordGameViewModel = new WordGameViewModel(state, audioPlaybackEngine);

            var bingoCardSettingsTeam1 = new BingoCardSettings(true, settings.ExcludedBallNumbersEven);
            var bingoCardSettingsTeam2 = new BingoCardSettings(false, settings.ExcludedBallNumbersOdd);

            Team1ViewModel = new TeamViewModel(0, ScoreBoardTeam1, ScoreBoardTeam2, WordGameViewModel, bingoCardSettingsTeam1, random, audioPlaybackEngine1, activeSceneContainer);
            Team2ViewModel = new TeamViewModel(1, ScoreBoardTeam1, ScoreBoardTeam2, WordGameViewModel, bingoCardSettingsTeam2, random, audioPlaybackEngine1, activeSceneContainer);

            CountDownStarted = ReactiveCommand.Create(() => new Unit());

            this.WhenAnyValue(x => x.WordGameViewModel.BoardViewModel).Where(x => x != null).Subscribe(x =>
            {
                WordGameStarted();
            });
        }