Exemplo n.º 1
0
        public object Clone()
        {
            var result = new PlaceableItem(this.Tag, this.Type)
            {
                Activated = this.Activated
            };

            result.Preconditions.AddRange(this.Preconditions);
            return(result);
        }
Exemplo n.º 2
0
        private void LayoutItemsAtRandom(int minLever, int maxLever)
        {
            var emptyCells  = this.EmptyCells;
            var objectCount = Random.Range(minLever, Math.Min(maxLever, emptyCells.Count - 1));

            //Instantiate objects until the randomly chosen limit objectCount is reached
            for (var i = 0; i < objectCount; i++)
            {
                var cell = emptyCells[UnityEngine.Random.Range(0, emptyCells.Count)];

                var itemInfo = new PlaceableItem("Object_" + i, PlaceableItem.ItemType.Lever);

                GeneratePrerequisites(itemInfo);

                cell.ItemInCell = itemInfo;
                emptyCells      = this.EmptyCells;
            }
        }
Exemplo n.º 3
0
        private void GeneratePrerequisites(PlaceableItem item)
        {
            var values           = new HashSet <int>();
            var value            = 0;
            var generatedObjects = this.ItemsOnBoard;

            do
            {
                value = UnityEngine.Random.Range(-1, generatedObjects.Count - 1);
                if (value > 0)
                {
                    values.Add(value);
                }
            } while (value > 0);
            foreach (var i in values)
            {
                item.Preconditions.Add(generatedObjects[i]);
            }
        }
Exemplo n.º 4
0
        private void LayoutEnemiesAtRandom(int numEnemies)
        {
            var emptyCells = this.EmptyCells;


            //Instantiate objects until the randomly chosen limit objectCount is reached
            for (var i = 0; i < numEnemies; i++)
            {
                var cell = emptyCells[UnityEngine.Random.Range(0, emptyCells.Count)];

                var itemInfo = new PlaceableItem("Enemy_" + i, PlaceableItem.ItemType.Enemy);
                var enemy    = GameObject.Instantiate(manager.enemyTile, cell.GetPosition,//new Vector3(cell.GetPosition.x, cell.GetPosition.y, 0),
                                                      Quaternion.identity);
                enemy.name = "Enemy_" + i;
                enemy.GetComponent <EnemyBehaviour>().BoardManager = manager;
                var itemlogic = enemy.GetComponentInChildren <ItemLogic>();
                itemlogic.PlaceableItem = itemInfo;


                emptyCells = this.EmptyCells;
            }
        }