经验数据同步,更名逻辑上传

This commit is contained in:
YiHan0621
2025-09-15 18:00:52 +08:00
parent 12cf877c80
commit 0fd35d8c21
10 changed files with 463 additions and 31 deletions

View File

@@ -31,6 +31,7 @@ namespace TcgEngine.UI
public UnityAction<string> onClick;
public string username;
public string id;
public PlayerRank pd;
@@ -45,6 +46,7 @@ namespace TcgEngine.UI
int rankId, int rankScore, int stars, bool highlight)
{
this.username = udata.username;
id = udata.playerId;
RankMedalShow(ranking);
this.playerName.text = username;
this.rankScore.text = rankScore.ToString();

View File

@@ -47,6 +47,8 @@ namespace TcgEngine.UI
private bool isHideObject = false;
public List<string> Usersid = new List<string>();
UserData udata = ApiClient.Get().UserData;
protected override void Awake()
{
base.Awake();
@@ -55,6 +57,7 @@ namespace TcgEngine.UI
my_line.onClick += OnClickLine;
my_ladderLine.onClick += OnClickRankLine;
InitLines();
}
@@ -123,7 +126,7 @@ namespace TcgEngine.UI
return lrline;
}
private async void RefreshPanel()
public async void RefreshPanel()
{
my_line.Hide();
foreach (RankLine line in lines)
@@ -134,8 +137,6 @@ namespace TcgEngine.UI
if (!Authenticator.Get().IsApi())
return;
UserData udata = ApiClient.Get().UserData;
int index = 0;
string url = ApiClient.ServerURL + "/users";
WebResponse res = await ApiClient.Get().SendGetRequest(url);
@@ -152,7 +153,7 @@ namespace TcgEngine.UI
if (user.permission_level != 1 || user.matches == 0)
continue; //Dont show admins and user with no matches
if (user.username == udata.username)
if (user.id == udata.id)
{
my_line.SetLine(user, index + 1, true);
}
@@ -168,11 +169,9 @@ namespace TcgEngine.UI
index++;
}
}
private async void RefreshLadderPanel()
public async void RefreshLadderPanel()
{
my_ladderLine.Hide();
foreach (LadderRankLine line in ladderLines)
@@ -183,8 +182,6 @@ namespace TcgEngine.UI
if (!Authenticator.Get().IsApi())
return;
UserData udata = ApiClient.Get().UserData;
int index = 0;
string url = ApiClient.ServerURL + "/ladder/leaderboard";
WebResponse res = await ApiClient.Get().SendGetRequest(url);
@@ -210,7 +207,7 @@ namespace TcgEngine.UI
foreach (LadderLeaderboardEntry rankData in sorted_users)
{
if (rankData.username == udata.username)
if (rankData.playerId == udata.id)
{
my_ladderLine.SetLine(rankData, index + 1, GetAvatar(udata.avatar), rankData.rankId,
rankData.rankScore, rankData.stars, true);
@@ -287,6 +284,7 @@ namespace TcgEngine.UI
public override void Show(bool instant = false)
{
base.Show(instant);
udata = ApiClient.Get().UserData;
RefreshPanel();
RefreshLadderPanel();
ladderRank.Show();

View File

@@ -191,7 +191,7 @@ namespace TcgEngine.UI
error_msg.text = "";
test_area.SetActive(Authenticator.Get().IsTest());
string user = PlayerPrefs.GetString("tcg_last_user", "");
string user = PlayerPrefs.GetString("tcg_last_user");
login_user.text = user;
if (Authenticator.Get().IsTest())

View File

@@ -119,8 +119,8 @@ namespace TcgEngine.UI
credits_txt.text = GameUI.FormatNumber(user.coins);
// xp
level_text.text = user.GetLevel().ToString();
level_slider.value = user.GetLevelProgress();
level_text.text = GameplayData.Get().GetPlayerLevel(user.xp).ToString();
level_slider.value = GameplayData.Get().GetLevelProgress(user.xp);
AvatarData avatar = AvatarData.Get(user.avatar);
this.avatar.SetAvatar(avatar);

View File

@@ -15,7 +15,10 @@ namespace TcgEngine.UI
{
[Header("Player")]
public Text player_name;
public InputField renameInput;
public Button renameButton;
public Text player_level;
public Slider player_level_slider;
public AvatarUI avatar;
public CardbackUI cardback;
public Text elo;
@@ -24,6 +27,7 @@ namespace TcgEngine.UI
public Text victories;
public Text defeats;
public Text userId;
public Text player_error;
[Header("Bottom bar")]
public GameObject buttons_area;
@@ -70,12 +74,13 @@ namespace TcgEngine.UI
protected override void Update()
{
base.Update();
}
protected override void Start()
{
base.Start();
renameButton.onClick.AddListener(OnPlayerRename);
}
private async void LoadData()
@@ -95,6 +100,7 @@ namespace TcgEngine.UI
winrate.text = "";
player_level.text = "";
userId.text = "";
player_error.text = "";
avatar.Hide();
cardback.Hide();
}
@@ -109,6 +115,7 @@ namespace TcgEngine.UI
UserData user = user_data;
player_name.text = user.username;
player_level.text = GameplayData.Get().GetPlayerLevel(user.xp).ToString();
player_level_slider.value = GameplayData.Get().GetLevelProgress(user.xp);
userId.text = user.id;
AvatarData avatar = AvatarData.Get(user.avatar);
@@ -379,6 +386,35 @@ namespace TcgEngine.UI
username = user;
LoadData();
}
private async void OnPlayerRename()
{
if (string.IsNullOrEmpty(renameInput.text))
{
player_error.text = "请输入更改的用户名!";
}
else if (renameInput.text == player_name.text)
{
player_error.text = "新用户名不能和旧用户名一样!";
}
else
{
bool success = await ApiClient.Get().UpdateUsername(renameInput.text);
if (success)
{
player_name.text = renameInput.text;
renameInput.text = "";
player_error.text = "修改成功!";
LeaderboardPanel.Get()?.RefreshPanel();
LeaderboardPanel.Get()?.RefreshLadderPanel();
}
else
{
player_error.text = ApiClient.Get().GetLastError();
}
}
}
public override void Show(bool instant = false)
{