コード例 #1
0
ファイル: GridHandler.cs プロジェクト: Kahl21/Grid-System
    //creates a new array of terrain based on the size and traits passed to it
    //called whenever the player changes something in the GridSetupUI
    public static void CreateNewGrid(GridSize size, GridTraits trait, float maxheight)
    {
        switch (size)
        {
        case GridSize.Small:
            _battleGrid = new Character[6, 6];
            break;

        case GridSize.Medium:
            _battleGrid = new Character[8, 8];
            break;

        case GridSize.Large:
            _battleGrid = new Character[10, 10];
            break;

        default:
            break;
        }

        _moveGrid = new int[_battleGrid.GetLength(0), _battleGrid.GetLength(1)];
        ResetMoveGrid();

        _distanceGrid = new int[_battleGrid.GetLength(0), _battleGrid.GetLength(1)];

        GenerateTerrain(trait, maxheight);

        _worldGrid.GenerateWorldGrid(_terrainGrid);
    }
コード例 #2
0
    //called whenever the player is messing around with the Grid setup UI
    public void ChangeGrid()
    {
        _gsChoice = (GridSize)_gridSizeDD.value;
        _gtChoice = (GridTraits)_gridTraitsDD.value;

        GridHandler.CreateNewGrid(_gsChoice, _gtChoice, _elevation);
        CheckGridPopulationMath();
    }
コード例 #3
0
ファイル: GridHandler.cs プロジェクト: Kahl21/Grid-System
 //creates a single instance of a full grid
 public static void GenerateTerrain(GridTraits terrainTrait, float maxHeight)
 {
     _terrainGrid = new TerrainSpace[_battleGrid.GetLength(0), _battleGrid.GetLength(1)];
     for (int y = 0; y < _terrainGrid.GetLength(1); y++)
     {
         for (int x = 0; x < _terrainGrid.GetLength(0); x++)
         {
             _terrainGrid[x, y] = GenerateTile(terrainTrait, maxHeight);
         }
     }
 }
コード例 #4
0
    //sets all relevent UI
    void SetUI()
    {
        GameObject enemiesholder  = transform.GetChild(1).gameObject;
        GameObject enemytextempty = enemiesholder.transform.GetChild(1).gameObject;

        _numberOfEnemiesText = enemytextempty.transform.GetChild(0).GetComponent <InputField>();
        SetEnemiesText();

        GameObject ddHolder = transform.GetChild(2).gameObject;

        _gridSizeDD = ddHolder.transform.GetChild(1).GetComponent <Dropdown>();
        GameObject terrainOptionHolder = ddHolder.transform.GetChild(2).gameObject;

        _gridTraitsDD   = terrainOptionHolder.transform.GetChild(2).GetComponent <Dropdown>();
        _ElevationSlide = terrainOptionHolder.transform.GetChild(4).GetComponent <Slider>();
        _gsChoice       = GridSize.Small;
        _gtChoice       = GridTraits.NONE;
        _elevation      = _ElevationSlide.value;
    }
コード例 #5
0
ファイル: GridHandler.cs プロジェクト: Kahl21/Grid-System
    //creates a single Tile(Terrain script) that populates the grid in data
    static TerrainSpace GenerateTile(GridTraits terrain, float maxheight)
    {
        int   rand             = UnityEngine.Random.Range(0, 101);
        float heightfloatvalue = UnityEngine.Random.Range(0f, maxheight);
        float height           = (float)Math.Round(heightfloatvalue * 2f, MidpointRounding.AwayFromZero) / 2;
        //Debug.Log(height);
        int forestChance, waterChance, holeChance;

        switch (terrain)
        {
        case GridTraits.NONE:
            return(new TerrainSpace(height));

        case GridTraits.FORESTS:
            forestChance = 75;
            if (rand < forestChance)
            {
                return(new ForestSpace(height));
            }
            else
            {
                return(new TerrainSpace(height));
            }

        case GridTraits.MARSH:
            waterChance = 50;
            if (rand < waterChance)
            {
                return(new WaterSpace(height));
            }
            else
            {
                return(new TerrainSpace(height));
            }

        case GridTraits.HOLES:
            holeChance = 30;
            if (rand < holeChance)
            {
                return(new HoleSpace(height));
            }
            else
            {
                return(new TerrainSpace(height));
            }

        case GridTraits.RANDOM:
            forestChance = 30;
            waterChance  = 20;
            holeChance   = 10;
            if (rand < forestChance)
            {
                return(new ForestSpace(height));
            }
            else if (rand < forestChance + waterChance)
            {
                return(new WaterSpace(height));
            }
            else if (rand < forestChance + waterChance + holeChance)
            {
                return(new HoleSpace(height));
            }
            else
            {
                return(new TerrainSpace(height));
            }

        default:
            return(new TerrainSpace());
        }
    }