/**/ //Debugging win field //levelGen.trigger.Add(new TriggerObject("endoflevel", new Vector2(0, 19))); return(levelGen); } private Tile[,] BuildStructure() { Tile[,] levelGenStructure = new Tile[32, 32]; for (int i = 0; i < levelGenStructure.GetLength(0); i++) { for (int j = 0; j < levelGenStructure.GetLength(1); j++) { levelGenStructure[i, j] = new Tile("floor", ClipType.FLOOR); } } return(levelGenStructure); } private PickUp SpawnPickup(Level level, int index) { PickUp pickUp = new PickUp(ItemLibrary.Get().generics[index], 1); //rng.Next(1,3)); bool found = false; //enemy position while (!found) { int a = rng.Next(0, (level.structure.GetLength(0))); int b = rng.Next(0, (level.structure.GetLength(1))); if (level.structure[a, b].substance == ClipType.FLOOR) { for (int i = 0; i < level.doors.Count; i++) { if (level.doors[i].position.x == a && level.doors[i].position.y == b) { found = false; break; } } if (level.pickUps.Count > 0) { for (int i = 0; i < level.pickUps.Count; i++) { if (!(level.pickUps[i].position.x == a && level.pickUps[i].position.y == b)) { found = true; } else { found = false; break; } } } else { found = true; } if (found) { pickUp.position = new Vector2(a, b); } } } return(pickUp); } /**/ private Actor SpawnEnemy(Level level) { Actor enemy = new Actor(); bool found = false; //bool spawn = false; while (true) { int index = rng.Next(0, 3); if (index == 0 && meleeCount < maxMeleeCount) { //enemy = EnemyLibrary.Get().meleeList[rng.Next(0, EnemyLibrary.Get().meleeList.Count)]; enemy = new Actor(EnemyLibrary.Get().meleeList[rng.Next(0, EnemyLibrary.Get().meleeList.Count)]); meleeCount++; break; } if (index == 1 && rangedCount < maxRangedCount) { //enemy = EnemyLibrary.Get().meleeList[rng.Next(0, EnemyLibrary.Get().meleeList.Count)]; enemy = new Actor(EnemyLibrary.Get().rangedList[rng.Next(0, EnemyLibrary.Get().rangedList.Count)]); rangedCount++; break; } if (index == 2 && bossCount < maxBossCount) { //enemy = EnemyLibrary.Get().meleeList[rng.Next(0, EnemyLibrary.Get().meleeList.Count)]; enemy = new Actor(EnemyLibrary.Get().bossList[rng.Next(0, EnemyLibrary.Get().bossList.Count)]); bossCount++; break; } } /***/ //enemy = new Actor(EnemyLibrary.Get().meleeList[0]); //enemy position while (!found) { int a = rng.Next(1, (level.structure.GetLength(0))); int b = rng.Next(1, (level.structure.GetLength(1))); if (level.structure[a, b].substance == ClipType.FLOOR) { if (level.enemies.Count > 0) { for (int i = 0; i < level.enemies.Count; i++) { if (!(level.enemies[i].position.x == a && level.enemies[i].position.y == b)) { found = true; } else { found = false; break; } } } else { found = true; } if (found) { enemy.position = new Vector2(a, b); //Console.Write("| " + enemy.position.x + " " + enemy.position.y); } } } //enemy.position = new Vector2(19, 2); Application.GetData().collision.Add(enemy); return(enemy); }