修改天梯UI数据,及任务的UI数据的初步同步

This commit is contained in:
YiHan0621
2025-09-04 18:04:09 +08:00
parent 9275b66383
commit 1f8e74b6c5
92 changed files with 6288 additions and 1393 deletions

View File

@@ -9,13 +9,14 @@ namespace TcgEngine.UI
{
public class LadderRankLine : MonoBehaviour
{
[Header("排名")] public Text ranking;
[Header("排名文本")] public Text ranking;
[Header("排名Icon")] public Image rankingIcon;
[Header("玩家名称")] public Text playerName;
[Header("头像")] public Image avatar;
[Header("天梯ID")] public Text rankId; // 天梯ID
[Header("天梯ID")] public Image rankId; // 天梯ID
[Header("天梯分数")] public Text rankScore;
@@ -31,46 +32,47 @@ namespace TcgEngine.UI
public string username;
private void Start()
public PlayerRank pd;
private void Awake()
{
highlight.enabled = false;
RankingData.Load();
RankMedalData.Load();
}
public void SetLine(LadderLeaderboardEntry udata, int ranking, Sprite avatar,
int rankId, int rankScore, int stars, bool highlight)
{
this.username = udata.username;
this.ranking.text = ranking.ToString();
RankMedalShow(ranking);
this.playerName.text = username;
this.rankId.text = rankId.ToString();
this.rankScore.text = rankScore.ToString();
this.stars.text = "星×" + stars;
this.avatar.sprite = avatar;
switch (rankId)
PlayerRank pr = PlayerRank.Bronze; // 默认
switch(rankId)
{
case 1:
this.rankId.text = "青铜";
break;
case 2:
this.rankId.text = "白银";
break;
case 3:
this.rankId.text = "黄金";
break;
case 4:
this.rankId.text = "铂金";
break;
case 5:
this.rankId.text = "钻石";
break;
case 6:
this.rankId.text = "王者";
break;
default:
this.rankId.text = "青铜";
break;
case 1: pr = PlayerRank.Bronze; break;
case 2: pr = PlayerRank.Silver; break;
case 3: pr = PlayerRank.Gold; break;
case 4: pr = PlayerRank.Platinum; break;
case 5: pr = PlayerRank.Diamond; break;
case 6: pr = PlayerRank.King; break;
}
pd = pr;
// 获取段位数据
RankingData rankData = RankingData.Get(pr);
if (rankData != null && rankData.rankIcon != null)
{
this.rankId.sprite = rankData.rankIcon;
}
else
{
this.rankId.sprite = null; // 或者默认图
}
if (rankScore != 0)
@@ -90,6 +92,41 @@ namespace TcgEngine.UI
gameObject.SetActive(true);
}
public void RankMedalShow(int rank)
{
string rankStr = "";
switch (rank)
{
case 1:
rankStr = "Champion";
break;
case 2:
rankStr = "Runner_up";
break;
case 3:
rankStr = "Third_place";
break;
default:
ranking.text = rank.ToString();
break;
}
// 获取段位数据
RankMedalData rankData = RankMedalData.Get(rankStr);
if (rankData != null && rankData.sprite != null)
{
ranking.gameObject.SetActive(false);
rankingIcon.gameObject.SetActive(true);
rankingIcon.sprite = rankData.sprite;
}
else
{
ranking.gameObject.SetActive(true);
rankingIcon.gameObject.SetActive(false);
ranking.text = rank.ToString();
}
}
public void Hide()
{
gameObject.SetActive(false);

View File

@@ -12,19 +12,21 @@ namespace TcgEngine.UI
public class LeaderboardPanel : UIPanel
{
#region
[Header("-----默认排行榜参数------")]
public RectTransform content;
public RankLine line_template;
public RankLine my_line;
public float line_spacing = 80f;
[Header("----------------------")]
#endregion
#region
[Header("-----天梯排行榜参数------")]
public RectTransform ladderContent;
public LadderRankLine ladderLine_template;
public LadderRankLine my_ladderLine;
public float ladderLine_spacing = 120f;
[Header("----------------------")]
#endregion
public Text test_text;
@@ -35,18 +37,17 @@ namespace TcgEngine.UI
public List<RankLine> lines = new List<RankLine>();
public List<LadderRankLine> ladderLines = new List<LadderRankLine>();
[Header("返回主页")]
public Button returnToHome_button;
private const string DefaultAvatarId = "bear";
private static LeaderboardPanel instance;
#region
[SerializeField] private Button defaultRankButton;
[SerializeField] private Button ladderRankButton;
#endregion
[Header("管理指定组件")]
public GameObject[] hideGameObject;
private bool isHideObject = false;
protected override void Awake()
{
@@ -55,29 +56,34 @@ namespace TcgEngine.UI
//lines = scroll_content.GetComponentsInChildren<RankLine>();
my_line.onClick += OnClickLine;
my_ladderLine.onClick += OnClickRankLine;
InitLines();
#region
returnToHome_button.onClick.AddListener(OnReturnToHome);
}
defaultRankButton.onClick.AddListener(() =>
/// <summary>
/// 返回主页
/// </summary>
public void OnReturnToHome()
{
isHideObject = !isHideObject;
if (isHideObject)
{
isLadderRank = false;
RankPanelColl();
});
ladderRankButton.onClick.AddListener(() =>
Show();
}
else
{
isLadderRank = true;
RankPanelColl();
});
#endregion
Hide();
}
foreach (var obj in hideGameObject)
{
obj.SetActive(!isHideObject);
}
}
private void OnDestroy()
{
}
private void InitLines()
@@ -110,7 +116,7 @@ namespace TcgEngine.UI
ladderLines.Add(line);
}
ladderContent.sizeDelta = new Vector2(content.sizeDelta.x, ladderNlines * line_spacing + 20f);
ladderContent.sizeDelta = new Vector2(content.sizeDelta.x, ladderNlines * ladderLine_spacing + 20f);
#endregion
}
@@ -130,14 +136,14 @@ namespace TcgEngine.UI
private LadderRankLine LadderAddLine(LadderRankLine template, int index)
{
Vector2 pos = Vector2.down * ladderLine_spacing;
Vector2 pos = Vector2.down * (ladderLine_spacing-75);
GameObject line = Instantiate(template.gameObject, ladderContent);
RectTransform rtrans = line.GetComponent<RectTransform>();
LadderRankLine lrline = line.GetComponent<LadderRankLine>();
rtrans.anchorMin = new Vector2(0.5f, 1);
rtrans.anchorMax = new Vector2(0.5f, 1f);
rtrans.anchoredPosition = pos + Vector2.down * index * ladderLine_spacing;
lrline.onClick += OnClickLine;
rtrans.anchoredPosition = pos + Vector2.down * index * (ladderLine_spacing + 15);
lrline.onClick += OnClickRankLine;
return lrline;
}
@@ -192,7 +198,7 @@ namespace TcgEngine.UI
private async void RefreshLadderPanel()
{
my_line.Hide();
my_ladderLine.Hide();
foreach (LadderRankLine line in ladderLines)
line.Hide();
@@ -217,8 +223,6 @@ namespace TcgEngine.UI
int previous_rank = 0;
int previous_index = 0;
if (users == null || users.Length == 0)
{
Debug.LogError("玩家数据为空");
@@ -226,6 +230,7 @@ namespace TcgEngine.UI
}
Debug.Log($"收到排行榜数据,共 {users.Length} 条");
ladderContent.sizeDelta = new Vector2(content.sizeDelta.x, users.Length * (ladderLine_spacing + 20f));
foreach (LadderLeaderboardEntry rankData in sorted_users)
{
@@ -249,44 +254,49 @@ namespace TcgEngine.UI
}
}
private void RankPanelColl()
{
if (isLadderRank)
{
ladderRank.Show();
var lColor = ladderRankButton.image.color;
lColor.a = 0.5f;
ladderRankButton.image.color = lColor;
defaultRank.Hide();
var dColor = defaultRankButton.image.color;
dColor.a = 1f;
defaultRankButton.image.color = dColor;
}
else
{
ladderRank.Hide();
var lColor = ladderRankButton.image.color;
lColor.a = 1f;
ladderRankButton.image.color = lColor;
defaultRank.Show();
var dColor = defaultRankButton.image.color;
dColor.a = 0.5f;
defaultRankButton.image.color = dColor;
}
ladderRankButton.enabled = !isLadderRank;
defaultRankButton.enabled = isLadderRank;
}
//
// private void RankPanelColl()
// {
// if (isLadderRank)
// {
// ladderRank.Show();
// var lColor = ladderRankButton.image.color;
// lColor.a = 0.5f;
// ladderRankButton.image.color = lColor;
//
//
// defaultRank.Hide();
// var dColor = defaultRankButton.image.color;
// dColor.a = 1f;
// defaultRankButton.image.color = dColor;
// }
// else
// {
// ladderRank.Hide();
// var lColor = ladderRankButton.image.color;
// lColor.a = 1f;
// ladderRankButton.image.color = lColor;
//
// defaultRank.Show();
// var dColor = defaultRankButton.image.color;
// dColor.a = 0.5f;
// defaultRankButton.image.color = dColor;
//
// }
// ladderRankButton.enabled = !isLadderRank;
// defaultRankButton.enabled = isLadderRank;
// }
private void OnClickLine(string username)
{
}
private void OnClickRankLine(string username)
{
}
private Sprite GetAvatar(string id)
{
@@ -301,7 +311,6 @@ namespace TcgEngine.UI
base.Show(instant);
RefreshPanel();
RefreshLadderPanel();
RankPanelColl();
}
public void OnClickBack()