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