@inject IGameDataService GameDataService @inject HttpClient Client @page "/Cards/{baid:int}/DaniDojo"

Dani Dojo

Card: @Baid @for (uint i = 1; i <= 19; i++) { var danId = i; var danData = GameDataService.GetDanDataById(danId); Result @{ var danResultState = GetDanResultState(danId); string danClearStateString = GetDanClearStateString(danResultState); } @danClearStateString @for (uint j = 0; j <= 2; j++) { var index = (int)j; var danDataOdaiSong = danData.OdaiSongList[index]; var stageNumber = j + 1; var difficulty = (Difficulty)danDataOdaiSong.Level;

@stageNumber

@difficulty @GameDataService.GetMusicStarLevel(danDataOdaiSong.SongNo, difficulty) @GameDataService.GetMusicNameBySongId(danDataOdaiSong.SongNo) @GameDataService.GetMusicArtistBySongId(danDataOdaiSong.SongNo) @if (bestDataMap.ContainsKey(danId)) { var danBestData = bestDataMap[danId]; if (danBestData.DanBestStageDataList.Count > index) { var bestStage = danBestData.DanBestStageDataList[index]; Good @bestStage.GoodCount OK @bestStage.OkCount Bad @bestStage.BadCount Drumroll @bestStage.DrumrollCount MAX Combo @bestStage.ComboCount Total Hits @bestStage.TotalHitCount } }
}
Soul Gauge @{ var redRequirement = GetSoulGauge(danData, false); var goldRequirement = GetSoulGauge(danData, true); var barClass = "bar-default"; var resultText = "Failed"; } Result @if (bestDataMap.ContainsKey(danId)) { var danBestData = bestDataMap[danId]; if (danBestData.SoulGaugeTotal >= redRequirement) { barClass = "bar-pass-red"; resultText = "Passed"; } if (danBestData.SoulGaugeTotal >= goldRequirement) { barClass = "bar-pass-gold"; resultText = "Gold"; } @(danBestData.SoulGaugeTotal)% @resultText } else { 0% N/A } Conditions Red > @redRequirement% Gold > @goldRequirement% @for (var j = 1; j < danData.OdaiBorderList.Count; j++) { var border = danData.OdaiBorderList[j]; @GetDanRequirementTitle(border) @{ var borderType = (DanBorderType)border.BorderType; } @if (borderType == DanBorderType.All) { @GetDanRequirementAll(border) @if (bestDataMap.ContainsKey(danId)) { var bestData = bestDataMap[danId]; Best: @GetAllBestFromData((DanConditionType)border.OdaiType, bestData) } } else { @for (var k = 0; k < 3; k++) { var songNumber = k; @GetDanRequirementPerSong(border, songNumber) @if (!bestDataMap.ContainsKey(danId)) { continue; } var bestData = bestDataMap[danId]; if (k >= bestData.DanBestStageDataList.Count) { break; } Best: @GetSongBestFromData((DanConditionType)border.OdaiType, bestData, songNumber) } } }
}