Exemple #1
0
        protected override void RunAway()
        {
            LayerMask        layerMask = 1 << LayerMask.NameToLayer("Virus");
            var              coliders  = Physics2D.OverlapCircleAll(transform.position, _vampireRadius, layerMask);
            List <BaseVirus> list      = new List <BaseVirus>();

            for (int i = 0; i < coliders.Length; i++)
            {
                var  cc = coliders[i].GetComponent <BaseVirus>();
                bool b1 = cc is VampireVirus;
                if (!b1)
                {
                    list.Add(cc);
                }
            }
            if (list.Count > 0)
            {
                int index = Random.Range(0, list.Count);
                if (list[index] != null)
                {
                    _isVampire   = true;
                    _targetVirus = list[index];
                    var line = EffectPools.Instance.Spawn("VampireLine");
                    _vampireLine = line.GetComponent <VampireLine>();
                    _vampireLine.UpdateLine(transform, _targetVirus.transform, false);
                }
            }
        }
Exemple #2
0
 private void StopVampire()
 {
     if (_vampireLine != null)
     {
         EffectPools.Instance.DeSpawn(_vampireLine.gameObject);
         _vampireLine = null;
     }
     _targetVirus = null;
     StopCure(this);
 }
Exemple #3
0
 public override void Death(bool isEffect, bool isDivide, bool isCoin, bool isProp)
 {
     if (isDivide)
     {
         Divide("VampireVirus", OriginColorLevel, 2);
     }
     base.Death(isEffect, isDivide, isCoin, isProp);
     if (_vampireLine != null)
     {
         EffectPools.Instance.DeSpawn(_vampireLine.gameObject);
         _vampireLine = null;
     }
     Pools.Despawn(gameObject);
 }