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