protected override void Destroy() { _fighterTarget.Stats.ChaffEvent -= ChaffEventHandler; _fighterTarget = null; _chaffTarget?.Release(); _chaffTarget = null; base.Destroy(); }
private IEnumerator Spawner() { for (int i = 0; i < SpecialData.SpawnAmount; ++i) { PooledObject pooledObject = ObjectPoolManager.Instance.GetPooledObject(Data.SpecialData.GetAmmoPool(SpecialType), FighterManager.Instance.AmmoContainer.transform); Chaff chaff = pooledObject?.GetComponent <Chaff>(); chaff?.Initialize(Fighter, SpecialData.Type, SpecialData.Damage); yield return(new WaitForSeconds(SpecialData.SpawnRateSeconds)); } }
public void Initialize(Fighter fighter, Fighter target, SpecialData.SpecialType specialType, int damage) { base.Initialize(fighter, specialType, damage); _fighterTarget = target; Chaff chaff = _fighterTarget.Stats.GetChaff(); if (null != chaff) { TargetChaff(chaff); } else { TargetFighter(target); } transform.LookAt2D(Target); _rigidBody.velocity = Fighter.Forward * _velocity; AudioManager.Instance.PlayAudioOneShot(_launchAudioId); }
public void OnChaffDied() { _chaffTarget = null; TargetFighter(_fighterTarget); }
private void TargetChaff(Chaff chaff) { _chaffTarget = chaff; _chaffTarget.Use(this); }