Пример #1
0
        /// <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");
                }
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
                        }
                    }
                }
            }
        }