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); } } }
private void StopVampire() { if (_vampireLine != null) { EffectPools.Instance.DeSpawn(_vampireLine.gameObject); _vampireLine = null; } _targetVirus = null; StopCure(this); }
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); }