Example #1
0
        void Awake()
        {
            _levelData = GameManager.Instance.LevelData;

            _moveCount = 0;

            int count = _levelData.GetWaveCount();

            _waveBar = GameManager.Instance.Definitions.HudWaveBar.GetComponentInChildren <SpriteSlider>();
            SpriteRenderer r             = _waveBar.renderer as SpriteRenderer;
            Bounds         waveBarBounds = r.bounds;

            _waveBar.sliderValue = 0;

            int        actualMoves  = 0;
            GameObject waveTemplate = GameManager.Instance.Definitions.HudWave;
            Vector3    pos          = waveTemplate.transform.position;
            Vector3    scale        = waveTemplate.transform.localScale;

            waveTemplate.SetActive(false);
            _waves = new Wave[count];
            for (int i = 0; i < count; i++)
            {
                GameObject go = (GameObject)Instantiate(waveTemplate);
                _waves[i]._main = go;

                go.SetActive(true);
                go.name             = "Wave" + i;
                go.transform.parent = waveTemplate.transform.parent;

                LevelData.WaveInfo wi = _levelData.GetWaveInfo(i);
                actualMoves            += wi._moves;
                go.transform.position   = new Vector3(-waveBarBounds.extents.x + waveBarBounds.extents.x * 2 * actualMoves / _levelData.GetTotalMoves(), pos.y, pos.z);
                go.transform.localScale = scale;

                ShadowLabel label = go.GetComponentInChildren <ShadowLabel>();

                /*string str = "";
                 * for(int j = 0; j < wi._count; j++)
                 *      str += "!";
                 * label.text = str;*/
                label.text = "x" + wi._count.ToString();

                _waves[i]._portrait = go.transform.FindChild("Portrait");
                GameObject goEnemy = GameObject.Instantiate(_levelData.GetEnemyInfo(wi._enemyType)._prefab) as GameObject;
                goEnemy.transform.parent        = _waves[i]._portrait;
                goEnemy.transform.localPosition = Vector3.zero;
                goEnemy.transform.localRotation = Quaternion.identity;
                SortingLayer.ForceLayerID(goEnemy, "HUDBack");

                _waves[i]._enemy = goEnemy;
            }
        }
Example #2
0
 void CheckWave()
 {
     if (_enemiesToFetch == 0 &&
         (_nextWave + 1) < _levelData.GetWaveCount() &&
         (GameManager.Instance.HUD.Waves.GetMoveCount() - _lastWaveMoves) >= _levelData.GetWaveInfo(_nextWave + 1)._moves)
     {
         _nextWave++;
         LevelData.WaveInfo waveInfo = _levelData.GetWaveInfo(_nextWave);
         _enemiesToFetch = waveInfo._count;
         _lastWaveMoves += waveInfo._moves;
     }
 }