示例#1
0
        public void AddTerritoryTest()
        {
            //set up
            BoardField[,] fields = BoardTest.CreateTestMap().Board;
            var tailFields = new BoardField[]
            {
                fields[0, 2],
                fields[0, 1],
                fields[0, 0],
                fields[1, 0],
                fields[2, 0],
                fields[2, 1],
                fields[2, 2],
            };
            var expectedClaimedFields = new BoardField[] {
                fields[0, 2],
                fields[0, 1],
                fields[0, 0],
                fields[1, 2],
                fields[1, 1],
                fields[1, 0],
                fields[2, 2],
                fields[2, 1],
                fields[2, 0]
            };
            var expectedNotClaimedFields = new BoardField[] {
                fields[3, 2],
                fields[3, 1],
                fields[3, 0]
            };

            var player = new PlayerModel(new Color(), fields[1, 2]);

            fields[1, 2].Owner = player;
            player.Tail.Positions.AddRange(tailFields);
            //test
            PlayerServices.AddTerritory(player);

            foreach (BoardField field in expectedClaimedFields)
            {
                Assert.IsTrue(field.Owner == player);
            }

            foreach (BoardField field in expectedNotClaimedFields)
            {
                Assert.IsTrue(field.Owner == MissingPlayer.Instance);
            }
        }
示例#2
0
        public override void OnUpdate()
        {
            if (Owner.OnOwnTerritory)
            {
                PlayerServices.AddTerritory(Owner.Player);

                Owner.DeleteTail();
                Owner.InvokeOnTerritoryAdded();

                Owner.MovingState = new DefensiveState(base.Owner);
            }
            else
            {
                Owner.SpawnTail();
            }
            base.OnUpdate();
        }