示例#1
0
    public void TestPlayerGreenTileFinalLand()
    {
        GameObject playerObj = new GameObject("Player");

        playerObj.AddComponent <BoxCollider>();
        Player p = playerObj.AddComponent <Player>();

        p.moves_remaining = 1;
        p.SetGPA(2.0f);

        //Create current and next tile
        GameObject tile1    = new GameObject();
        GameObject tile2    = new GameObject();
        GameTile   currTile = tile1.AddComponent <NormalTile>();
        GPAModTile nextTile = tile2.AddComponent <GPAModTile>();

        nextTile.color = GPAModTile.Color.GREEN;
        //Create current and next tile

        currTile.nextTile = nextTile.transform;

        p.UpdateCurrentTile(currTile);     //Set the players current tile

        p.MoveNext();                      //Tell the player to move

        nextTile.OnFinalLand(p);           //Call next tile land

        Assert.AreEqual(p.GetGPA(), 2.3f); //Ensure GPA is increased by 0.3
    }
示例#2
0
    private void Populate()
    {
        int greenLeft = numGreenTiles;
        int redLeft   = numRedTiles;

        GameTile[] tiles = FindObjectsOfType <GameTile>();

        List <GPAModTile> greenTiles = new List <GPAModTile>();
        List <GPAModTile> redTiles   = new List <GPAModTile>();

        //First count how many tiles already exist of type a given type, and disable any special tiles
        foreach (GameTile t in tiles)
        {
            System.Type type = t.GetType();

            if (type == typeof(GPAModTile))
            {
                GPAModTile gpaTile = ((GPAModTile)t);
                //Red
                if (gpaTile.color == GPAModTile.Color.RED)
                {
                    redTiles.Add(gpaTile);
                    redLeft--;
                }
                //Green
                else
                {
                    greenTiles.Add(gpaTile);
                    greenLeft--;
                }
            }
            //Disable special tiles
            else if (!rngTilesOn && type == typeof(RandomGPAMod))
            {
                ReplaceTileWith(t, normalTilePrefab);
            }
            else if (!duelTilesOn && type == typeof(DuelTile))
            {
                ReplaceTileWith(t, normalTilePrefab);
            }
            else if (!teleportTilesOn && type == typeof(TeleportationTile))
            {
                ReplaceTileWith(t, normalTilePrefab);
            }
        }

        //Tiles we can modify
        NormalTile[] regularTiles = FindObjectsOfType <NormalTile>();

        while (greenLeft > 0)
        {
            int choice = Random.Range(0, regularTiles.Length);
            if (regularTiles[choice] != null)
            {
                ReplaceTileWith(regularTiles[choice], greenTilePrefab);
                greenLeft--;
            }
        }

        while (greenLeft < 0)
        {
            int choice = Random.Range(0, greenTiles.Count);
            if (greenTiles[choice] != null)
            {
                ReplaceTileWith(greenTiles[choice], normalTilePrefab);
                greenLeft++;
            }
        }

        while (redLeft > 0)
        {
            int choice = Random.Range(0, regularTiles.Length);
            if (regularTiles[choice] != null)
            {
                ReplaceTileWith(regularTiles[choice], redTilePrefab);
                redLeft--;
            }
        }

        while (redLeft < 0)
        {
            int choice = Random.Range(0, redTiles.Count);
            if (redTiles[choice] != null)
            {
                ReplaceTileWith(redTiles[choice], normalTilePrefab);
                redLeft++;
            }
        }
    }