Esempio n. 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);
                }
            }
        }
    public void MinusVirusCount(BaseVirus virus)
    {
        VirusName n     = (VirusName)Enum.Parse(typeof(VirusName), virus.name);
        int       count = VirusTool.GetSplit(virus.SplitLevel, n);

        _originCount -= count;
    }
 public void AddDecelerate(BaseVirus baseVirus)
 {
     if (!_forceViruses.Contains(baseVirus))
     {
         _playerMove.Decelerate();
         _forceViruses.Add(baseVirus);
     }
 }
Esempio n. 4
0
    private void Start()
    {
        _activeEffects = new List <VirusAddLevelEffect>();
        _cacheBools    = new Dictionary <ICure, bool>();
        _duration      = 0.25f;

        _baseVirus = transform.GetComponent <BaseVirus>();
    }
Esempio n. 5
0
        public override void Born(VirusData virusData)
        {
            base.Born(virusData);
            _totalTime = 0;

            _runAwayDuration = 3f;
            _vampireDuration = 5f;
            _targetVirus     = null;
        }
Esempio n. 6
0
 private void StopVampire()
 {
     if (_vampireLine != null)
     {
         EffectPools.Instance.DeSpawn(_vampireLine.gameObject);
         _vampireLine = null;
     }
     _targetVirus = null;
     StopCure(this);
 }
 public void RemoveDecelerate(BaseVirus baseVirus)
 {
     if (_forceViruses.Contains(baseVirus))
     {
         _forceViruses.Remove(baseVirus);
     }
     if (_forceViruses.Count == 0)
     {
         _playerMove.Recover();
     }
 }