Пример #1
0
    void CurrentSpawn()
    {
        ST_B_stage_spawnRec rec = _arrCurrentRec[_CurrentIx];
        int calc_cost           = rec.spawn_cost + 1;

        do
        {
            int r_spawner_idx = Random.Range(0, _arrSpawner.Length);
            int r_cost        = 1;// Random.Range(1, calc_cost);
            int r_pool_idx    = Random.Range(0, GamePlayManager.Instance._EnemyPool._pfArrEnemy.Length);
            calc_cost -= r_cost;

            // 해당 코스트의 적을 만들어 스포너에 넣는다.
            switch (r_cost)
            {
            case 1:
                rec.spawn_pool_idx = r_pool_idx;
                _arrSpawner[r_spawner_idx].Add_pfEnemy(rec);
                _arrSpawner[r_spawner_idx]._spawnDelay     = 0.5f;
                _arrSpawner[r_spawner_idx]._spawnCheckTime = 0.5f;
                _arrSpawner[r_spawner_idx].StartSpawn();

                break;
            }

            _CurrentEnemyCount++;
        } while (calc_cost > 1);
    }
Пример #2
0
    void Spawn()
    {
        if (_pfEnemyQ.Count <= 0)
        {
            _isStop = true;
            return;
        }
        // Instantiate
        ST_B_stage_spawnRec rec = _pfEnemyQ.Dequeue();

        Enemy enemy = GamePlayManager.Instance._EnemyPool._pfArrEnemy[rec.spawn_pool_idx];

        _LastSpawn = (GameObject)Instantiate(enemy.gameObject, transform.position, transform.rotation);
        Enemy enemy_LastSpawn = _LastSpawn.GetComponent <Enemy>();

        enemy_LastSpawn._SpawnRec = rec;
    }
Пример #3
0
    public ST_B_stage_spawnRec[] Get_stage_spawnData(int a_stage_idx)
    {
        if (_db == null)
        {
            _db = new SQLiteDB();
        }
        string filename = GetFileName_DB();

        List <ST_B_stage_spawnRec> rtnlist = new List <ST_B_stage_spawnRec>();

        try
        {
            _db.Open(filename);
            SQLiteQuery qr;
            string      strsql = string.Format(_querySelect_all_stage_spawn, a_stage_idx); // _querySelect_exp
            qr = new SQLiteQuery(_db, strsql);
            while (qr.Step())
            {
                ST_B_stage_spawnRec rec = new ST_B_stage_spawnRec();
                rec.idx        = qr.GetInteger("idx");
                rec.level_max  = qr.GetInteger("level_max");
                rec.level_min  = qr.GetInteger("level_min");
                rec.spawn_cost = qr.GetInteger("spawn_cost");
                rec.stage_idx  = a_stage_idx;
                rec.time_limit = qr.GetInteger("time_limit");

                rtnlist.Add(rec);
            }
            qr.Release();
            _db.Close();
        }
        catch (Exception e)
        {
            if (_db != null)
            {
                _db.Close();
            }
            UnityEngine.Debug.LogError(e.ToString());
        }

        return(rtnlist.ToArray());
    }
Пример #4
0
 public void Add_pfEnemy(ST_B_stage_spawnRec a_rec)
 {
     _pfEnemyQ.Enqueue(a_rec);
 }