public void OnNewDefuseAttemptSet(DefuseAttempt defuseAttempt) { foreach (var playerController in _playerControllersOnServer) { var isPlayerDefuser = defuseAttempt.IsDefuser(playerController.Player); playerController.RpcOnNewDefuseAttemptSet(defuseAttempt.BombId, isPlayerDefuser); } }
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); }