Example #1
0
 public void OnNewDefuseAttemptSet(DefuseAttempt defuseAttempt)
 {
     foreach (var playerController in _playerControllersOnServer)
     {
         var isPlayerDefuser = defuseAttempt.IsDefuser(playerController.Player);
         playerController.RpcOnNewDefuseAttemptSet(defuseAttempt.BombId, isPlayerDefuser);
     }
 }
Example #2
0
        public virtual void Set()
        {
            var nbBombsDefused = _defusingState.NbBombsDefused;
            var defuseAttempt  = new DefuseAttempt(_random, _defuserCounter, _allBombs, _allPlayers.GetAll(), nbBombsDefused);

            _defusingState.SetNewDefuseAttempt(defuseAttempt);

            _newDefuseAttemptSetListener.OnNewDefuseAttemptSet(defuseAttempt);
        }
        public void DefuseAttempt_ShouldPickARandomBombId()
        {
            // Given
            const int    nbBombsDefused = 5;
            const string pickedBombId   = "RandomBombPicked";
            var          players        = new List <Player>().AsReadOnly();

            _allBombs.PickRandomBombId(nbBombsDefused)
            .Returns(pickedBombId);

            // When
            var defuseAttempt = new DefuseAttempt(_random, _defuserCounter, _allBombs, players, nbBombsDefused);

            // Then
            Assert.That(defuseAttempt.BombId, Is.EqualTo(pickedBombId));
        }
        DefuseAttempt_ShouldReturnDefuseAttemptReturningIsDefuserTrueForLastPlayerAndFalseForOthers_WhenRandomReturnMaxValue_WithThreePlayers()
        {
            // Given
            var players = new List <Player> {
                _player1, _player2, _player3
            }.AsReadOnly();

            _random.Range(Arg.Any <int>(), Arg.Any <int>())
            .Returns(players.Count - 1);

            // When
            var defuseAttempt = new DefuseAttempt(_random, _defuserCounter, _allBombs, players, 0);

            // Then
            Assert.IsFalse(defuseAttempt.IsDefuser(_player1));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player2));
            Assert.IsTrue(defuseAttempt.IsDefuser(_player3));
        }
        DefuseAttempt_ShouldReturnDefuseAttemptReturningIsDefuserTrueForTwoFirstPlayersAndFalseForOthers_WhenRandomReturnAlwaysZero_WithFivePlayers()
        {
            // Given
            var players = new List <Player> {
                _player1, _player2, _player3, _player4, _player5
            }.AsReadOnly();

            _random.Range(Arg.Any <int>(), Arg.Any <int>())
            .Returns(0);

            // When
            var defuseAttempt = new DefuseAttempt(_random, _defuserCounter, _allBombs, players, 0);

            // Then
            Assert.IsTrue(defuseAttempt.IsDefuser(_player1));
            Assert.IsTrue(defuseAttempt.IsDefuser(_player2));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player3));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player4));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player5));
        }
        DefuseAttempt_ShouldReturnDefuseAttemptReturningIsDefuserTrueForTwoLastPlayersAndFalseForOthers_WhenRandomReturnMaxValue_WithSixPlayers()
        {
            // Given
            var players = new List <Player> {
                _player1, _player2, _player3, _player4, _player5, _player6
            }.AsReadOnly();

            _random.Range(0, 6).Returns(5);
            _random.Range(0, 5).Returns(4);

            // When
            var defuseAttempt = new DefuseAttempt(_random, _defuserCounter, _allBombs, players, 0);

            // Then
            Assert.IsFalse(defuseAttempt.IsDefuser(_player1));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player2));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player3));
            Assert.IsFalse(defuseAttempt.IsDefuser(_player4));
            Assert.IsTrue(defuseAttempt.IsDefuser(_player5));
            Assert.IsTrue(defuseAttempt.IsDefuser(_player6));
        }
        public void Init()
        {
            _defusingTime = Substitute.For <IDefusingTime>();
            _defusingTimerUpdatedListener = Substitute.For <IDefusingTimerUpdatedListener>();
            _defuseFailedListener         = Substitute.For <IDefuseFailedListener>();

            _currentDefuseAttempt = Substitute.For <DefuseAttempt>(
                Substitute.For <IRandom>(),
                new DefuserCounter(),
                Substitute.For <AllBombs>(
                    Substitute.For <IRandom>(),
                    new IBomb[0],
                    Substitute.For <IDeviceInfo>()),
                new List <Player>().AsReadOnly(),
                0
                );

            var allPlayers = Substitute.For <AllPlayers>();

            allPlayers.GetAll().Returns(new ReadOnlyCollection <Player>(new List <Player>()));

            _defusingState = new DefusingState(_defusingTime, _defusingTimerUpdatedListener, _defuseFailedListener);
        }