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 }
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++; } } }