/// <summary> /// Used to generate enemy spawnpoints for a certain block /// </summary> /// <param name="bManager">The BlockManager of the block to create spawns for</param> public void CreateNewSpawnpointsForBlock(BlockManager bManager) { bool found = false; foreach (SpawnGroupHandler handler in enemySpawnPoints) { if (handler.BlockId == bManager.IdTag) { handler.CreateSpawnpoints(bManager, tilesPerGroup); found = true; break; } } if (!found) { if (bManager.AllowMissions) { GameObject folder = new GameObject(); folder.transform.parent = transform; folder.name = bManager.IdTag.ToString(); folder.AddComponent <SpawnGroupHandler>(); SpawnGroupHandler folderHandler = folder.GetComponent <SpawnGroupHandler>(); folderHandler.CreateSpawnpoints(bManager, tilesPerGroup); enemySpawnPoints.Add(folderHandler); } else { Debug.LogError("EnemySpawnCreator: Invalid Block ID"); } } }
/// <summary> /// Used to delete this group and removes its data from the spawn data struture. /// </summary> public void Delete() { SpawnGroupHandler handler = GetComponentInParent <SpawnGroupHandler>(); if (handler == null) { Debug.LogError("Spawn Group Has No Parent Handler"); return; } handler.RemoveSpawnGroup(this); DestroyImmediate(gameObject); }
/// <summary> /// Used to generate enemy spawnpoints for the entire level /// </summary> public void CreateNewSpawnsAll() { UnityEngine.Random.InitState((int)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds); if (enemySpawnPoints == null || enemySpawnPoints.Count == 0) { enemySpawnPoints = new List <SpawnGroupHandler>(); } List <BlockManager> bManagers = CityManager.Instance.GetAllBlockMangers(); if (bManagers.Count > 0) { for (int i = 0; i < bManagers.Count; i++) { if (bManagers[i].AllowMissions) { bool found = false; for (int j = 0; j < enemySpawnPoints.Count; j++) { if (enemySpawnPoints[j].BlockId == bManagers[i].IdTag) { enemySpawnPoints[j].CreateSpawnpoints(bManagers[i], tilesPerGroup); found = true; break; } } if (!found) { GameObject folder = new GameObject(); folder.transform.parent = transform; folder.name = bManagers[i].IdTag.ToString(); folder.AddComponent <SpawnGroupHandler>(); SpawnGroupHandler folderHandler = folder.GetComponent <SpawnGroupHandler>(); folderHandler.CreateSpawnpoints(bManagers[i], tilesPerGroup); enemySpawnPoints.Add(folderHandler); } } } } }