コード例 #1
0
    void GenerateBodyPartChest_Random(Maze maze)
    {
        // Calculate the number of items needed to spawn for this maze
        int numChests = Formula.CalculateBodyPartChestNum(level.mazeDifficulty);

        numChests = numChests < level.mazeSetting.bodyParts.Count ? numChests : level.mazeSetting.bodyParts.Count;

        List <Tile> tileList = MazeUTL.UpdateTileListWithDesiredWallLayout(maze.mazeTileList, WallLayout.C);
        List <Tile> tiles    = GetItemSpawnRandomTiles(numChests, Formula.CalculateItemLeastDistance(LevelManager.instance.mazeDifficulty), new List <Tile>(), tileList, TilesWithItem);

        Utilities.TryCatchError((tiles.Count < numChests), "Can't find enough tiles to spawn Body Part Chests. Please check the range condition.");
        List <BodyPart> partList = GetBodyPartList(numChests);

        for (int i = 0; i < numChests; i++)
        {
            TileItem item = tiles[i].SpawnTileItem(level.BodyPartChestPrefab);
            TilesWithItem.Add(tiles[i]);
            item.bodyPart = partList[i];
        }
    }