public override void Death(bool isEffect, bool isDivide, bool isCoin, bool isProp) { if (isDivide) { Divide("SlowDownVirus", OriginColorLevel, 2); } base.Death(isEffect, isDivide, isCoin, isProp); if (_forceLine != null) { Pools.Despawn(_forceLine.gameObject); _forceLine = null; } VirusGameMrg.Instance.VirusPlayer.RemoveDecelerate(this); Pools.Despawn(gameObject); }
protected override void RunAway() { _rotateTransform.localEulerAngles += new Vector3(0, 0, 50 * Time.deltaTime); bool b1 = VirusGameMrg.Instance.VirusPlayer != null && VirusGameMrg.Instance.VirusPlayer.gameObject.activeSelf; if (b1) { Transform slowTransform = VirusGameMrg.Instance.VirusPlayer.SlowTransform; Vector3 offset = transform.position - slowTransform.position - new Vector3(0, 0.85f, 0); bool b = offset.sqrMagnitude < _slowDownRadius * _slowDownRadius; if (b) { if (_forceLine == null) { var line = EffectPools.Instance.Spawn("ForceLine"); _forceLine = line.GetComponent <VirusForceLineEffect>(); _forceLine.UpdateLine(transform, slowTransform); } else { _forceLine.UpdateLine(transform, slowTransform); } VirusGameMrg.Instance.VirusPlayer.AddDecelerate(this); } else { if (_forceLine != null) { Pools.Despawn(_forceLine.gameObject); _forceLine = null; } VirusGameMrg.Instance.VirusPlayer.RemoveDecelerate(this); } } else { if (_forceLine != null) { Pools.Despawn(_forceLine.gameObject); _forceLine = null; } } }