public object Clone() { var result = new PlaceableItem(this.Tag, this.Type) { Activated = this.Activated }; result.Preconditions.AddRange(this.Preconditions); return(result); }
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; } }
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]); } }
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; } }