private void LineCache()
 {
     if (this.mLineCtrl != null)
     {
         this.mLineCtrl.DeInit();
         this.mLineCtrl = null;
     }
 }
    public void Init(EntityBase entity, bool throughwall, int ReboundCount, int count, float perangle)
    {
        this.list.Clear();
        float num = (perangle * (count - 1)) / 2f;

        for (int i = 0; i < count; i++)
        {
            RedLineCtrl item        = new RedLineCtrl();
            float       offsetangle = num - (perangle * i);
            item.Init(entity, throughwall, ReboundCount, offsetangle);
            this.list.Add(item);
        }
    }
 protected override void OnUpdate()
 {
     if ((this.target != null) && (base.m_Entity != null))
     {
         this.updatetime += Updater.delta;
         if (this.updatetime < this.redshowtime)
         {
             base.m_Entity.m_AttackCtrl.RotateHero(Utils.getAngle(this.target.position - base.m_Entity.position));
             if (this.updatetime > 0.2f)
             {
                 if (this.mLineCtrl == null)
                 {
                     this.mLineCtrl = new RedLineCtrl();
                     this.mLineCtrl.Init(base.m_Entity, true, 0, 0f);
                 }
                 if (this.mLineCtrl != null)
                 {
                     this.mLineCtrl.Update();
                 }
             }
         }
         else if (this.updatetime > (this.redshowtime + this.delaytime))
         {
             if (!this.bCreateBullet)
             {
                 this.bCreateBullet = true;
                 this.EffectCache();
                 this.LineCache();
                 GameLogic.Release.Bullet.CreateBullet(base.m_Entity, 0x432, base.m_Entity.m_Body.LeftBullet.transform.position, base.m_Entity.eulerAngles.y);
             }
             if (this.updatetime > ((this.redshowtime + this.delaytime) + 0.4f))
             {
                 base.End();
             }
         }
     }
 }