@page "/Users/{baid:int}/Profile"
@inject HttpClient Client
@inject IGameDataService GameDataService
@inject IDialogService DialogService
@inject AuthService AuthService
@inject IJSRuntime JsRuntime
@inject NavigationManager NavigationManager
@inject BreadcrumbsStateContainer BreadcrumbsStateContainer
@if (response is not null)
{
@if (AuthService.LoginRequired && (!AuthService.IsLoggedIn || (AuthService.GetLoggedInBaid() != Baid && !AuthService.IsAdmin)))
{
if (!AuthService.IsLoggedIn)
{
NavigationManager.NavigateTo("/Login");
}
else
{
NavigationManager.NavigateTo("/");
}
}
else
{
@Localizer["Profile Options"]
@for (uint i = 0; i < LanguageStrings.Length; i++)
{
var index = i;
@Localizer[LanguageStrings[index]]
}
@if (AuthService.AllowFreeProfileEditing)
{
}
else
{
}
@Localizer["Select a Title"]
@if (AuthService.AllowFreeProfileEditing)
{
@foreach (var index in titlePlateIdList)
{
@TitlePlateStrings[index]
}
}
@foreach (var item in Enum.GetValues())
{
@Localizer[item.ToString()]
}
@for (uint i = 0; i < DifficultySettingCourseStrings.Length; i++)
{
var index = i;
@Localizer[DifficultySettingCourseStrings[index]]
}
@for (uint i = 0; i < DifficultySettingStarStrings.Length; i++)
{
var index = i;
@Localizer[DifficultySettingStarStrings[index]]
}
@for (uint i = 0; i < DifficultySettingSortStrings.Length; i++)
{
var index = i;
@Localizer[DifficultySettingSortStrings[index]]
}
@Localizer["Costume Options"]
@foreach (var index in headUniqueIdList)
{
var costumeTitle = GameDataService.GetHeadTitle(costumeList, index, CultureInfo.CurrentCulture.ToString());
@index - @costumeTitle
}
@foreach (var index in bodyUniqueIdList)
{
var costumeTitle = GameDataService.GetBodyTitle(costumeList, index, CultureInfo.CurrentCulture.ToString());
@index - @costumeTitle
}
@foreach (var index in faceUniqueIdList)
{
var costumeTitle = GameDataService.GetFaceTitle(costumeList, index, CultureInfo.CurrentCulture.ToString());
@index - @costumeTitle
}
@foreach (var index in kigurumiUniqueIdList)
{
var costumeTitle = GameDataService.GetKigurumiTitle(costumeList, index, CultureInfo.CurrentCulture.ToString());
@index - @costumeTitle
}
@foreach (var index in puchiUniqueIdList)
{
var costumeTitle = GameDataService.GetPuchiTitle(costumeList, index, CultureInfo.CurrentCulture.ToString());
@index - @costumeTitle
}
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@index
}
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@index
}
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@index
}
@Localizer["Song Options"]
@for (uint i = 0; i < SpeedStrings.Length; i++)
{
var index = i;
@SpeedStrings[index]
}
@foreach (var item in Enum.GetValues())
{
@Localizer[item.ToString()]
}
@for (uint i = 0; i < ToneStrings.Length; i++)
{
var index = i;
@Localizer[ToneStrings[index]]
}
@Localizer["Notes Position"]
@* Player Visualizer *@
@if (response.Kigurumi == 0)
{
}
else
{
}
@* Player Nameplate *@
@* Title text *@
@response.Title
@* Name text *@
@* Name textoffset to the right for Dan Rank *@
@response.MyDonName
@response.MyDonName
@* Check if image does not exist, use nameplate_Wood.webp *@
@if (response.IsDisplayDanOnNamePlate)
{
}
@if (response.IsDisplayAchievement)
{
@* Achievement panel Text *@
@* First row *@
@scoresArray[0]
@scoresArray[0]
@* Second row *@
@scoresArray[1]
@scoresArray[1]
@scoresArray[2]
@scoresArray[2]
@scoresArray[3]
@scoresArray[3]
@* Third row *@
@scoresArray[4]
@scoresArray[4]
@scoresArray[5]
@scoresArray[5]
@scoresArray[6]
@scoresArray[6]
@* Fourth row (Crowns) *@
@scoresArray[7]
@scoresArray[7]
@scoresArray[8]
@scoresArray[8]
@scoresArray[9]
@scoresArray[9]
@* Forbidden one-liner : Changes the AchievementDisplayDifficulty image asset. When "Difficulty.None" is selected, Defaults to highest difficulty the player currently has crowns / Ranks for. *@
}
@if (isSavingOptions)
{
Saving...
}
else
{
@Localizer["Save"]
}
}
}
else
{
}
@code {
private async Task UpdateMyDonName()
{
@if (response is not null) await JsRuntime.InvokeVoidAsync("updateMyDonNameText", response.MyDonName);
}
private async Task UpdateTitle()
{
@if (response is not null) await JsRuntime.InvokeVoidAsync("updateTitleText", response.Title);
}
private async Task UpdateScoreboard(Difficulty difficulty)
{
UpdateScores(difficulty);
await JsRuntime.InvokeVoidAsync("updateScoreboardText", scoresArray);
}
}