Example #1
0
        protected override void Destroy()
        {
            _fighterTarget.Stats.ChaffEvent -= ChaffEventHandler;
            _fighterTarget = null;

            _chaffTarget?.Release();
            _chaffTarget = null;

            base.Destroy();
        }
Example #2
0
        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));
            }
        }
Example #3
0
        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);
        }
Example #4
0
 public void OnChaffDied()
 {
     _chaffTarget = null;
     TargetFighter(_fighterTarget);
 }
Example #5
0
 private void TargetChaff(Chaff chaff)
 {
     _chaffTarget = chaff;
     _chaffTarget.Use(this);
 }