// Token: 0x06000019 RID: 25 RVA: 0x00002E7C File Offset: 0x0000107C
        private void Start()
        {
            this.m_aiActor            = base.GetComponent <AIActor>();
            this.m_behaviorSpeculator = this.m_aiActor.behaviorSpeculator;
            GameObject gameObject = new GameObject("fake target");

            this.m_fakeActor           = gameObject.AddComponent <NonActor>();
            this.m_fakeActor.HasShadow = false;
            this.m_fakeTargetRigidbody = gameObject.AddComponent <SpeculativeRigidbody>();
            this.m_fakeTargetRigidbody.PixelColliders     = new List <PixelCollider>();
            this.m_fakeTargetRigidbody.CollideWithTileMap = true;
            this.m_fakeTargetRigidbody.CollideWithOthers  = true;
            this.m_fakeTargetRigidbody.CanBeCarried       = true;
            this.m_fakeTargetRigidbody.CanBePushed        = true;
            this.m_fakeTargetRigidbody.CanCarry           = true;
            PixelCollider pixelCollider = new PixelCollider();

            pixelCollider.ColliderGenerationMode = PixelCollider.PixelColliderGeneration.Manual;
            pixelCollider.CollisionLayer         = CollisionLayer.TileBlocker;
            pixelCollider.ManualWidth            = 4;
            pixelCollider.ManualHeight           = 4;
            this.m_fakeTargetRigidbody.PixelColliders.Add(pixelCollider);

            this.m_aiActor.LocalTimeScale = 1.5f;
            foreach (MovementBehaviorBase movementBehaviorBase in this.m_behaviorSpeculator.MovementBehaviors)
            {
                bool flag = movementBehaviorBase is SeekTargetBehavior;
                if (flag)
                {
                    SeekTargetBehavior seekTargetBehavior = movementBehaviorBase as SeekTargetBehavior;
                    seekTargetBehavior.PathInterval = 0f;
                }
                bool flag2 = movementBehaviorBase is MoveErraticallyBehavior;
                if (flag2)
                {
                    MoveErraticallyBehavior moveErraticallyBehavior = movementBehaviorBase as MoveErraticallyBehavior;
                    moveErraticallyBehavior.PathInterval = 0f;
                }
                bool flag3 = movementBehaviorBase is FleeTargetBehavior;
                if (flag3)
                {
                    FleeTargetBehavior fleeTargetBehavior = movementBehaviorBase as FleeTargetBehavior;
                    fleeTargetBehavior.PathInterval = 0f;
                }
            }
        }
 protected override void DoEffect(PlayerController user)
 {
     if (base.LastOwner && base.LastOwner.CurrentRoom != null && x % 4 == 1)
     {
         for (int i = 0; i < 6; i++)
         {
             try
             {
                 AIActor    orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("566ecca5f3b04945ac6ce1f26dedbf4f");
                 IntVector2?intVector    = new IntVector2?(base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1));
                 bool       flag         = intVector != null;
                 if (flag)
                 {
                     AIActor aiactor = AIActor.Spawn(orLoadByGuid.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Default, true);
                     aiactor.ApplyEffect(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultPermanentCharmEffect, 1f, null);
                     aiactor.IgnoreForRoomClear = true;
                     aiactor.CanTargetEnemies   = true;
                     aiactor.IsHarmlessEnemy    = true;
                     aiactor.HitByEnemyBullets  = true;
                     aiactor.OverrideTarget     = user.CurrentRoom.GetRandomActiveEnemy().specRigidbody;
                     aiactor.gameObject.AddComponent <KillOnRoomClear>();
                     MoveErraticallyBehavior movement = new MoveErraticallyBehavior();
                     movement.PathInterval = 0.25f;
                     movement.StayOnScreen = true;
                     movement.AvoidTarget  = false;
                     aiactor.behaviorSpeculator.MovementBehaviors[0] = movement;
                 }
             }
             catch (Exception ex)
             {
                 ETGModConsole.Log(ex.Message, false);
             }
         }
     }
     else if (base.LastOwner && base.LastOwner.CurrentRoom != null && x % 4 == 2)
     {
         this.StealthEffect();
         for (int i = 0; i < 5; i++)
         {
             try
             {
                 AIActor    orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("78a8ee40dff2477e9c2134f6990ef297");
                 IntVector2?intVector    = new IntVector2?(base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1));
                 bool       flag         = intVector != null;
                 if (flag)
                 {
                     AIActor aiactor = AIActor.Spawn(orLoadByGuid.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Default, true);
                     aiactor.ApplyEffect(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultPermanentCharmEffect, 1f, null);
                     aiactor.IgnoreForRoomClear = true;
                     aiactor.CanTargetEnemies   = true;
                     aiactor.HitByEnemyBullets  = true;
                     aiactor.healthHaver.SetHealthMaximum(1f);
                     aiactor.gameObject.AddComponent <KillOnRoomClear>();
                     foreach (AIActor enemy in user.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                     {
                         if (enemy.OverrideTarget == null)
                         {
                             enemy.OverrideTarget = aiactor.specRigidbody;
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 ETGModConsole.Log(ex.Message, false);
             }
             try
             {
                 AIActor    orLoadByGuid = EnemyDatabase.GetOrLoadByGuid("78a8ee40dff2477e9c2134f6990ef297");
                 IntVector2?intVector    = new IntVector2?(base.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1));
                 bool       flag         = intVector != null;
                 if (flag)
                 {
                     AIActor aiactor = AIActor.Spawn(orLoadByGuid.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Default, true);
                     aiactor.ApplyEffect(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultPermanentCharmEffect, 1f, null);
                     aiactor.IgnoreForRoomClear = true;
                     aiactor.IsHarmlessEnemy    = true;
                     aiactor.HitByEnemyBullets  = true;
                     aiactor.healthHaver.SetHealthMaximum(1f);
                     aiactor.gameObject.AddComponent <KillOnRoomClear>();
                     aiactor.healthHaver.OnPreDeath += this.BreakStealthFromBell;
                     foreach (AIActor enemy in user.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All))
                     {
                         if (enemy.OverrideTarget == null)
                         {
                             enemy.OverrideTarget = aiactor.specRigidbody;
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 ETGModConsole.Log(ex.Message, false);
             }
         }
     }
     else if (x % 4 == 3)
     {
         base.StartCoroutine(this.Spiral());
     }
     else if (x % 4 == 0)
     {
         base.StartCoroutine(this.Bounce());
     }
     x++;
 }