コード例 #1
0
    public void GenerateEncounterMap(SO_TileFieldToGen tileFieldToGen)
    {
        int totalWeight = 0;

        foreach (TileToPercentage elem in tileFieldToGen.tileToPercentage)
        {
            totalWeight += elem.percentage;
        }

        int     val;
        SO_Tile tileType = null;

        for (int i = 0; i < tileFieldToGen.sizeX; i++)
        {
            for (int j = 0; j > -tileFieldToGen.sizeY; j--)
            {
                val = Random.Range(0, totalWeight);
                for (int k = 0; k < tileFieldToGen.tileToPercentage.Length; k++)
                {
                    if (val < tileFieldToGen.tileToPercentage[k].percentage)
                    {
                        tileType = tileFieldToGen.tileToPercentage[k].tileType;
                        break;
                    }
                    else
                    {
                        val -= tileFieldToGen.tileToPercentage[k].percentage;
                    }
                }

                vectorsToTiles.Add(new Vector2(i, j), MakeTile(tilePrefab, tileType, new Vector2(i, j)));
            }
        }
    }
コード例 #2
0
    public void AssignTileData(SO_Tile tileSO)
    {
        this.tileImage         = tileSO.tileImage;
        this.tileType          = tileSO.tileType;
        this.impassible        = tileSO.impassible;
        this.terrainDifficulty = tileSO.terrainDifficulty;

        neighbours           = new List <Tile>();
        transform.localScale = new Vector3(tileSO.xSizing, tileSO.ySizing, 1);
        GetComponent <SpriteRenderer>().sprite           = tileSO.tileImage;
        GetComponent <SpriteRenderer>().sortingLayerName = "Terrain";
    }
コード例 #3
0
    public Tile MakeTile(GameObject tilePrefab, SO_Tile tileData, Vector2 position)
    {
        GameObject tile = Instantiate(tilePrefab);

        tile.transform.SetParent(transform);
        Tile tileScript = tile.GetComponent <Tile>();

        tileScript.AssignTileData(tileData);
        tileScript.SetIndex(position, 1.075f, 0.62f);
        //tile.GetComponent<SpriteRenderer>().sortingOrder = -1 * (int)position.y;

        return(tileScript);
    }
コード例 #4
0
    public TileToChoose AddTileToChoose(SO_Tile tileInfo)
    {
        GameObject    tileToChoose = Instantiate(tileToChoosePrefab, content.transform);
        RectTransform rt           = tileToChoose.GetComponent <RectTransform>();

        rt.anchoredPosition = new Vector3(-160, -80 - 120 * numberOfItems);
        TileToChoose tileToChooseScript = tileToChoose.GetComponent <TileToChoose>();

        tileToChooseScript.SetTileInfo(tileInfo);
        tileToChooseScript.SetTileChooser(this);
        numberOfItems++;

        return(tileToChooseScript);
    }
コード例 #5
0
    private Tile MakeTile(GameObject tilePrefab, SO_Tile tileData, Vector2 position)
    {
        GameObject tile = Instantiate(tilePrefab);

        tile.transform.SetParent(transform);
        Tile tileScript = tile.GetComponent <Tile>();

        tileScript.AssignTileData(tileData);
        tileScript.SetIndex(position, tileWidth, tileHeight);
        tile.name = "Tile" + tileScript.Index;
        //tile.GetComponent<SpriteRenderer>().sortingOrder = -1 * (int)position.y;

        return(tileScript);
    }
コード例 #6
0
 public void SetTileInfo(SO_Tile tile)
 {
     tileInfo                = tile;
     tileDescr.text          = "Name: " + tile.tileName + "\n" + "Difficulty: " + tile.terrainDifficulty;
     tileButton.image.sprite = tile.tileImage;
 }
コード例 #7
0
 public void InvokeTileChosen(SO_Tile tileInfo)
 {
     tileChosenEvent.Invoke(tileInfo);
 }
コード例 #8
0
 public void HandleTileChosen(SO_Tile tileInfo)
 {
     terrainEditor.SetCurrentTileType(tileInfo.tileType);
 }