Esempio n. 1
0
            public void DefaultConstructorCorrectlyPlacesPlayer()
            {
                PlacedPlayer placedPlayer     = new PlacedPlayer();
                Location     expectedLocation = new Location(0, 0);

                Assert.Equal(expectedLocation, placedPlayer.location);
            }
Esempio n. 2
0
            public void OverrideConstructorCorrectlyPlacesPlayer_01()
            {
                PlacedPlayer placedPlayer     = new PlacedPlayer(7, -5);
                Location     expectedLocation = new Location(7, -5);

                Assert.Equal(expectedLocation, placedPlayer.location);
            }
Esempio n. 3
0
        public IPlacementRule GetPlacementRule(FormationRule formationRule, PlacedFormation placedFormation)
        {
            string relativeTypeString   = formationRule.GetParameterValue("relativeType");
            string playerRelativeString = formationRule.GetParameterValue("playerRelative");
            string distanceString       = formationRule.GetParameterValue("distance");

            RelativeType relativeType;

            switch (relativeTypeString)
            {
            case "Left":
                relativeType = RelativeType.Left;
                break;

            case "Right":
                relativeType = RelativeType.Right;
                break;

            case "Inside":
                relativeType = RelativeType.Inside;
                break;

            case "Outside":
                relativeType = RelativeType.Outside;
                break;

            default:
                throw new FormationException("Relative type must be Left/Right/Inside/Outside.");
            }
            int          distance       = int.Parse(distanceString);
            PlacedPlayer playerRelative = placedFormation.GetPlayerByTag(playerRelativeString);

            return(new RelativeToPlayerHorizontally(playerRelative, distance, relativeType));
        }
                public void PlacesPlayerCorrectlyOutsideOther(PlacedPlayer playerToBeOutside, PlacedPlayer playerToPlace,
                                                              int distanceOutside, Location expectedLocation)
                {
                    IPlacementRule placementRule = new RelativeToPlayerHorizontally(playerToBeOutside, distanceOutside, RelativeType.Outside);

                    playerToPlace = placementRule.Place(playerToPlace);

                    Assert.Equal <Location>(expectedLocation, playerToPlace.location);
                }
                public void PlacesPlayerCorrectlyToLeftOfOther(PlacedPlayer playerToBeToLeftOf, PlacedPlayer playerToPlace,
                                                               int distanceToLeft, Location expectedLocation)
                {
                    IPlacementRule placementRule = new RelativeToPlayerHorizontally(playerToBeToLeftOf, distanceToLeft, RelativeType.Left);

                    playerToPlace = placementRule.Place(playerToPlace);

                    Assert.Equal <Location>(expectedLocation, playerToPlace.location);
                }
Esempio n. 6
0
    public void addIslandAt(int i, int j, int p)
    {
        PlacedPlayer newCurrentPlayer;

        Vector3        noise     = new Vector3(Random.Range(-maxNoise, maxNoise), 0, Random.Range(-maxNoise, maxNoise));
        GameObject     newObject = (GameObject)Instantiate(islandPrefab);
        CompoundIsland newIsland = newObject.GetComponent <CompoundIsland> ();

        newIsland.init();
        // check group

        int gr = controlHub.gameController.playerDict.ElementAt(p).Value.group;

        if (controlHub.gameController.playerGroup == gr)
        {
            newIsland.disableIsland();
        }
        newIsland.setLabelColor(controlHub.menuController.groupColor [gr]);

        newObject.transform.localPosition = new Vector3(j * gridSize + noise.x, 0, i * gridSize + noise.y);
        newObject.transform.Rotate(new Vector3(0, Random.Range(0.0f, 360.0f), 0));

        string nick = controlHub.gameController.playerDict.ElementAt(p).Value.nickname;            //.playerList [p].nickname;

        if (nick.Equals(""))
        {
            nick = controlHub.gameController.playerDict.ElementAt(p).Value.login;
        }
        newIsland.island1.setLabel(nick);
        newIsland.island1.billboard.cam        = cam;
        newIsland.island1.owner                = controlHub.gameController.playerDict.ElementAt(p).Value.login;
        newIsland.island1.seekPlayerController = this;
        newIsland.island1.camera               = cam;
        newIsland.island2.setLabel(nick);
        newIsland.island2.billboard.cam        = cam;
        newIsland.island2.owner                = controlHub.gameController.playerDict.ElementAt(p).Value.login;
        newIsland.island2.seekPlayerController = this;
        newIsland.island2.camera               = cam;

        GameObject newDotGO = (GameObject)Instantiate(dotPrefab);

        newDotGO.transform.localPosition =
            new Vector3(newObject.transform.localPosition.x,
                        -5000.0f,
                        newObject.transform.localPosition.z);
        newDotGO.transform.parent = matrixParent.transform;
        subIslandMatrix [i, j]    = newDotGO;

        islandMatrix [i, j] = newObject;

        newCurrentPlayer        = new PlacedPlayer();
        newCurrentPlayer.player = controlHub.gameController.playerDict.ElementAt(p).Value;
        newCurrentPlayer.i      = i;
        newCurrentPlayer.j      = j;
        currentPlayers.Add(controlHub.gameController.playerDict.ElementAt(p).Key,
                           newCurrentPlayer);
    }
            public void GetsCorrectPlayerFromInsideOut(PlacedFormation placedFormation, int number, int expectedPlayerIndex)
            {
                PlacedPlayer expectedPlayer = placedFormation.skillPlayers[expectedPlayerIndex];

                PlacedPlayer returnedPlayer = placedFormation.GetNumberedSkillLeft(FlowDirection.InsideOut, number);
                bool         samePlayer     = ReferenceEquals(expectedPlayer, returnedPlayer);

                Assert.True(samePlayer);
            }
                public void PlacingPlayerOutsidePlayerInMiddleThrowsExceptionWithProperMessage()
                {
                    PlacedPlayer playerToBeOutside = new PlacedPlayer();
                    PlacedPlayer playerToPlace     = new PlacedPlayer(3, 3);

                    IPlacementRule     placementRule = new RelativeToPlayerHorizontally(playerToBeOutside, 1, RelativeType.Outside);
                    PlacementException ex            = Assert.Throws <PlacementException>(() => playerToPlace = placementRule.Place(playerToPlace));

                    Assert.Equal("Can't place player inside/outside another player who is in center of formation.", ex.Message);
                }
            public void PlacingPlayerNegativeUnitsToRightOfThrowsException()
            {
                PlacedPlayer playerToBeToRightOf = new PlacedPlayer();
                PlacedPlayer playerToPlace       = new PlacedPlayer();

                IPlacementRule     placementRule = new RelativeToPlayerHorizontally(playerToBeToRightOf, -7, RelativeType.Right);
                PlacementException ex            = Assert.Throws <PlacementException>(() => playerToPlace = placementRule.Place(playerToPlace));

                Assert.Equal("Can't place player negative distance relative.", ex.Message);
            }
        public IPlacementRule GetPlacementRule(FormationRule formationRule, PlacedFormation placedFormation)
        {
            string behindTagParameter   = formationRule.GetParameterValue("playerBehindTag");
            string distanceBehindString = formationRule.GetParameterValue("distanceBehind");
            int    distanceBehind       = int.Parse(distanceBehindString);

            PlacedPlayer playerBehind = placedFormation.GetPlayerByTag(behindTagParameter);

            return(new BehindPlayer(playerBehind, distanceBehind));
        }
                public void PlacingPlayerZeroUnitsToLeftThrowsException()
                {
                    PlacedPlayer playerToBeToLeftOf = new PlacedPlayer();
                    PlacedPlayer playerToPlace      = new PlacedPlayer(3, 3);

                    IPlacementRule     placementRule = new RelativeToPlayerHorizontally(playerToBeToLeftOf, 0, RelativeType.Left);
                    PlacementException ex            = Assert.Throws <PlacementException>(() => playerToPlace = placementRule.Place(playerToPlace));

                    Assert.Equal("Can't place 0 units relative.", ex.Message);
                }
            public void PlacingPlayerZeroUnitsInsideThrowsExceptionWithProperMessage()
            {
                PlacedPlayer playerToBeInside = new PlacedPlayer();
                PlacedPlayer playerToPlace    = new PlacedPlayer(3, 3);

                IPlacementRule     placementRule = new RelativeToPlayerHorizontally(playerToBeInside, 0, RelativeType.Inside);
                PlacementException ex            = Assert.Throws <PlacementException>(() => playerToPlace = placementRule.Place(playerToPlace));

                Assert.Equal("Can't place 0 units relative.", ex.Message);
            }
                public void PlacingPlayerNegativeUnitsOutsideThrowsExceptionWithProperMessage()
                {
                    PlacedPlayer playerToBeOutside = new PlacedPlayer();
                    PlacedPlayer playerToPlace     = new PlacedPlayer(3, 3);

                    IPlacementRule     placementRule = new RelativeToPlayerHorizontally(playerToBeOutside, -4, RelativeType.Outside);
                    PlacementException ex            = Assert.Throws <PlacementException>(() => playerToPlace = placementRule.Place(playerToPlace));

                    Assert.Equal("Can't place player negative distance relative.", ex.Message);
                }
Esempio n. 14
0
            public void PlacingPlayerNegativeUnitsBehindThrowsExceptionWithProperMessage()
            {
                PlacedPlayer playerToBeBehind = new PlacedPlayer();
                PlacedPlayer playerToPlace    = new PlacedPlayer();

                IPlacementRule     placementRule = new BehindPlayer(playerToBeBehind, -6);
                PlacementException ex            = Assert.Throws <PlacementException>(() => placementRule.Place(playerToPlace));

                Assert.Equal("Can't place player negative units behind player.", ex.Message);
            }
Esempio n. 15
0
            public void PlacesPlayerCorrectlyOnLine(int startingXPosition, int startingYPosition)
            {
                PlacedPlayer playerToPlace    = new PlacedPlayer(startingXPosition, startingYPosition);
                Location     expectedLocation = new Location(startingXPosition, 0);

                IPlacementRule placementRule = new OnLineOfScrimmage();

                playerToPlace = placementRule.Place(playerToPlace);

                Assert.Equal <Location>(expectedLocation, playerToPlace.location);
            }
            public void GetsCorrectPlayerFromOutsideIn(PlacedFormation placedFormation, Direction strongDirection,
                                                       int number, int expectedPlayerIndex)
            {
                placedFormation.strongSide = strongDirection;
                PlacedPlayer expectedPlayer = placedFormation.skillPlayers[expectedPlayerIndex];

                PlacedPlayer returnedPlayer = placedFormation.GetNumberedSkillWeak(FlowDirection.OutsideIn, number);
                bool         samePlayer     = ReferenceEquals(expectedPlayer, returnedPlayer);

                Assert.True(samePlayer);
            }
            public void ReturnsLeftTackleIfStrongSideIsRight()
            {
                PlacedFormation placedFormation = new PlacedFormation();
                PlacedPlayer    expectedPlayer  = placedFormation.leftTackle;

                placedFormation.strongSide = Direction.Right;

                PlacedPlayer returnedPlayer = placedFormation.GetWeakTackle();
                bool         samePlayer     = ReferenceEquals(returnedPlayer, expectedPlayer);

                Assert.True(samePlayer);
            }
            public void ReturnsRightGuardIfStrongSideIsLeft()
            {
                PlacedFormation placedFormation = new PlacedFormation();
                PlacedPlayer    expectedPlayer  = placedFormation.rightGuard;

                placedFormation.strongSide = Direction.Left;

                PlacedPlayer returnedPlayer = placedFormation.GetWeakGuard();
                bool         samePlayer     = ReferenceEquals(returnedPlayer, expectedPlayer);

                Assert.True(samePlayer);
            }
Esempio n. 19
0
            public void PlacesPlayerCorrectlyBehindOther_02()
            {
                PlacedPlayer playerToBeBehind = new PlacedPlayer(7, 2);
                PlacedPlayer playerToPlace    = new PlacedPlayer();
                Location     expectedLocation = new Location(7, 5);

                IPlacementRule placementRule = new BehindPlayer(playerToBeBehind, 3);

                playerToPlace = placementRule.Place(playerToPlace);

                Assert.Equal <Location>(expectedLocation, playerToPlace.location);
            }
            public void GetsThePlayerWithTheProperTag_02()
            {
                PlacedFormation placedFormation = new PlacedFormation();

                placedFormation.leftTackle.tag      = "LT";
                placedFormation.skillPlayers[2].tag = "X";
                PlacedPlayer expectedPlayer = placedFormation.leftTackle;

                PlacedPlayer returnedPlayer = placedFormation.GetPlayerByTag("LT");
                bool         sameObject     = ReferenceEquals(expectedPlayer, returnedPlayer);

                Assert.True(sameObject);
            }
Esempio n. 21
0
 public PlacedPlayer Place(PlacedPlayer placedPlayer)
 {
     if (_distanceBehind == 0)
     {
         throw new PlacementException("Can't place 0 units behind.");
     }
     if (_distanceBehind < 0)
     {
         throw new PlacementException("Can't place player negative units behind player.");
     }
     return(new PlacedPlayer(
                _playerBehind.location.x,
                _playerBehind.location.y + _distanceBehind
                ));
 }
Esempio n. 22
0
        public PlacedPlayer Place(PlacedPlayer placedPlayer)
        {
            if (_distance == 0)
            {
                throw new PlacementException("Can't place 0 units relative.");
            }
            if (_distance < 0)
            {
                throw new PlacementException("Can't place player negative distance relative.");
            }

            int offset = GetRelativeOffset();

            return(new PlacedPlayer(
                       _playerRelative.location.x + offset,
                       placedPlayer.location.y
                       ));
        }
Esempio n. 23
0
 public RelativeToPlayerHorizontally(PlacedPlayer playerRelative, int distance, RelativeType relativeType)
 {
     _playerRelative = playerRelative;
     _distance       = distance;
     _relativeType   = relativeType;
 }
 public PlacedPlayer Place(PlacedPlayer placedPlayer)
 {
     return(new PlacedPlayer());
 }
Esempio n. 25
0
 public PlacedPlayer Place(PlacedPlayer placedPlayer)
 {
     return(new PlacedPlayer(placedPlayer.location.x, 0));
 }
Esempio n. 26
0
 public BehindPlayer(PlacedPlayer playerBehind, int distanceBehind)
 {
     _playerBehind   = playerBehind;
     _distanceBehind = distanceBehind;
 }