private void Start()
        {
            m_instance = this;

            ShootPoint = aiActor.transform;
            aiAnimator.PlayUntilCancelled("idle", false, null, -1f, false);
            aiAnimator.PlayUntilFinished("intro", false, null, -1f, false);

            specRigidbody.RegisterSpecificCollisionException(GameManager.Instance.PrimaryPlayer.specRigidbody);
            specRigidbody.PrimaryPixelCollider.Enabled = false;
            specRigidbody.CollideWithTileMap           = false;

            healthHaver.SetHealthMaximum(150f);
            healthHaver.PreventAllDamage = false;
            aiActor.actorTypes           = CoreActorTypes.Ghost;

            healthHaver.gameObject.AddComponent <ExpandExplodeOnDeath>();
            ExpandExplodeOnDeath CachedExploder = healthHaver.GetComponent <ExpandExplodeOnDeath>();

            CachedExploder.deathType = OnDeathBehavior.DeathType.Death;

            TeleportBehavior LJTeleportor = behaviorSpeculator.AttackBehaviors[1] as TeleportBehavior;

            LJTeleportor.MaxUsages = 1;

            if (GameManager.Instance.CurrentGameType == GameManager.GameType.COOP_2_PLAYER)
            {
                specRigidbody.RegisterSpecificCollisionException(GameManager.Instance.SecondaryPlayer.specRigidbody);
            }

            if (becomesBlackPhantom)
            {
                aiActor.BecomeBlackPhantom();
            }

            if (aiActor.GetComponentsInChildren <tk2dBaseSprite>(true) != null)
            {
                float RandomIntervalFloat       = UnityEngine.Random.Range(0.02f, 0.06f);
                float RandomDispFloat           = UnityEngine.Random.Range(0.1f, 0.16f);
                float RandomDispIntensityFloat  = UnityEngine.Random.Range(0.1f, 0.4f);
                float RandomColorProbFloat      = UnityEngine.Random.Range(0.05f, 0.2f);
                float RnadomColorIntensityFloat = UnityEngine.Random.Range(0.1f, 0.25f);

                foreach (tk2dBaseSprite reaperSprite in aiActor.GetComponentsInChildren <tk2dBaseSprite>())
                {
                    ExpandShaders.Instance.ApplyGlitchShader(reaperSprite, true, RandomIntervalFloat, RandomDispFloat, RandomDispIntensityFloat, RandomColorProbFloat, RnadomColorIntensityFloat);
                }
            }

            m_currentTargetPlayer = GameManager.Instance.GetRandomActivePlayer();
        }
 protected override void OnDestroy()
 {
     base.OnDestroy();
     m_instance = null;
     // if (aiActor != null) { Destroy(aiActor.gameObject); }
 }