public void Init(EnemyBase enemyBase, HpSlider hpSlider, WaveBase wave) { m_Data = enemyBase; m_HpSlider = hpSlider; //更新数据 m_Data.Coin = wave.Coin; m_Data.CurrentHp = wave.Hp; m_Data.TotalHp = wave.Hp; m_Data.MoveSpeed = wave.MoveSpeed; m_Data.MagicDefense = wave.MagicDefense; m_Data.Defense = wave.Defense; }
private void SpawnEnemy(int id, Vector3 pos, WaveBase wave) { EnemyBase enemyBase = Tools.Clone(m_EnemyData.EnemyDict[id]); Enemy enemy = ObjectManager.Instance.InstantiateObject(enemyBase.Path).GetComponent <Enemy>(); //HpSlider HpSlider hpSlider = ObjectManager.Instance.InstantiateObject(Consts.UI_HpSlider).GetComponent <HpSlider>(); hpSlider.Init(enemy.gameObject); enemy.Init(enemyBase, hpSlider, wave); enemy.transform.position = pos; }
public void NextWave() { _childIndex++; if (_childIndex >= transform.childCount) { Debug.Log("Out of waves, reloading scene"); GameManager.ReloadScene(); return; } _currentWave = transform.GetChild(_childIndex).GetComponent <WaveBase>(); if (_currentWave is WaveFight) { _unitHighlight.SetEnemyWave(GetEnemyWave()); _battleSystem.UpdateUnits(); } else { Debug.Log("Skipped non fight wave!"); NextWave(); } }
IEnumerator StartSpawn(int wave, System.Action action) { WaveBase waveBase = m_WaveData.WaveDict[wave]; yield return(new WaitForSeconds(ModelManager.Instance.WaitingTime)); int count = waveBase.Count; while (count > 0) { count--; //SpawnEnemy(wave.EnemyId, Vector3.zero, wave); yield return(new WaitForSeconds(waveBase.Interval)); } //结束回调 if (wave % 5 == 0) { SpawnWelfare(wave, action); } else { action?.Invoke(); } }
public void Wave(WaveBase wave) { WaveContainer.Add(wave); }
/// <summary> /// Build a minimal row from a class (key fields only) /// </summary> public static void BuildMinimalRow(ref DataRow row, Wave entity) { WaveBase.BuildMinimalRow(ref row, entity); }