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);
        }