private void InitStageTwoData()
        {
            ResetData();

            var barrageInfos = GameRunTimeData.Instance.ControllerManager.ControversyController.GetBarrageInfoByGroup(ControversyConfig
                                                                                                                      .stageTwoBarrageGroupID);

            foreach (var barrageInfo in barrageInfos)
            {
                NormalBarrageInfos.Add(GetNormalBarrageItem(barrageInfo));
            }
            TotalBarrageAmount = NormalBarrageInfos.Count;
        }
 private void SlashBarrage(BarrageItem barrage)
 {
     NormalBarrageInfos.Remove(barrage);
     Debug.LogError("SlashBarrage ");
     m_heavyAttackColdTime -= m_heavyAttackRecover;
     m_slashedBarrageAmount++;
     CheckCharge();
     m_slashedBarrageLst.Add(barrage.ID);
     if (CurStage != EnumControversyStage.StageTwo)
     {
         CheckStage();
     }
 }
        public bool BarragePassed(BarrageItem barrage)
        {
            if (IsSlashed(barrage.ID))
            {
                if (!NormalBarrageInfos.Contains(barrage))
                {
                    return(false);
                }
                Debug.LogError($"BarragePassed IsSlashed but in normalBarrage {barrage.ID}");
            }
            else
            {
                m_slashedBarrageLst.Add(barrage.ID);
            }

            if (barrage.IsSpecial)
            {
                Debug.LogError("BarragePassed IsSpecial");

                ChangeStage(EnumControversyStage.MissSpecial);
            }
            else
            {
                m_missBarrageCount++;
                NormalBarrageInfos.Remove(barrage);
                if (NormalBarrageInfos.Count == 0)
                {
                    Debug.LogError("NormalBarrageInfos == 0 CheckStage");
                    CheckStage();
                }
                else
                {
                    Debug.LogError("NormalBarrageInfos != 0 CheckStage");

                    if (CurStage == EnumControversyStage.StageTwo)
                    {
                        if (IsStageClear() == false)
                        {
                            ChangeStage(EnumControversyStage.StageTwoLose);
                        }
                    }
                }
            }

            return(true);
        }
        private void ResetData()
        {
            m_slashedBarrageLst.Clear();
            NormalBarrageInfos.Clear();
            m_slashedBarrageAmount = 0;
            m_time = 0;
            m_heavyAttackColdTime       = m_heavyAttackInterval;
            m_normalAttackColdTime      = m_normalAttackInterval;
            IsHeavyAttack               = false;
            IsNormalAttack              = false;
            IsCharging                  = false;
            SlashedSpecialIndex         = 0;
            SpecialBarrageInfo.IsMoving = false;
            m_missBarrageCount          = 0;
            IsBeginBarrage              = false;
            m_panel.m_img_heavyAttackCounter_Image.gameObject.SetActive(false);

            Debug.LogError("Clear Data");
        }
        public override void Tick()
        {
            base.Tick();
            if (!IsBeginBarrage)
            {
                return;
            }

            if (IsHeavyAttack)
            {
                IsHeavyAttack         = false;
                m_heavyAttackColdTime = m_heavyAttackInterval;
                Debug.LogError("========Quick Heavy");
                CheckCharge();
            }

            if (IsNormalAttack)
            {
                IsNormalAttack         = false;
                m_normalAttackColdTime = m_normalAttackInterval;
            }

            if (StarPlatinum.Services.InputService.Instance.Input.Controversy.LightAttack.triggered && IsCharging)
            {
                IsHeavyAttack = true;
            }

            if (StarPlatinum.Services.InputService.Instance.Input.Controversy.HeavyAttack.triggered && m_normalAttackColdTime <= 0)
            {
                IsNormalAttack = true;
            }

            if (m_heavyAttackColdTime > 0)
            {
                m_heavyAttackColdTime -= Time.deltaTime;
                if (m_heavyAttackColdTime <= 0)
                {
                    m_heavyAttackColdTime = 0;
                    CheckCharge();
                }
                m_panel.m_lbl_heavyAttackCounter_TextMeshProUGUI.text = $"重击冷却:{m_heavyAttackColdTime:F1}秒";
            }

            if (m_normalAttackColdTime > 0)
            {
                m_normalAttackColdTime -= Time.deltaTime;
            }

            if (CurStage == EnumControversyStage.StageOne || CurStage == EnumControversyStage.StageTwo)
            {
                for (int i = 0; i < NormalBarrageInfos.Count; i++)
                {
                    if (NormalBarrageInfos[i].BornTime <= m_time && NormalBarrageInfos[i].IsMoving == false)
                    {
                        m_panel.SendBarrage(NormalBarrageInfos[i]);
                        NormalBarrageInfos[i].IsMoving = true;
                    }
                    else if (NormalBarrageInfos[i].IsMoving && !m_panel.m_barrageSubViews.ContainsKey(NormalBarrageInfos[i].ID))
                    {
                        NormalBarrageInfos.RemoveAt(i);
                        i--;
                    }
                }

                if (CurStage == EnumControversyStage.StageTwo)
                {
                    if (SpecialBarrageInfo.BornTime <= m_time && SpecialBarrageInfo.IsMoving == false)
                    {
                        m_panel.SendBarrage(SpecialBarrageInfo);
                        SpecialBarrageInfo.IsMoving = true;
                    }
                }
            }

            m_time += Time.deltaTime;
        }