using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace TcgEngine.UI { public class LadderRankLine : MonoBehaviour { [Header("排名文本")] public Text ranking; [Header("排名Icon")] public Image rankingIcon; [Header("玩家名称")] public Text playerName; [Header("头像")] public Image avatar; [Header("天梯ID")] public Image rankId; // 天梯ID [Header("天梯分数")] public Text rankScore; [Header("天梯星星")] public Text stars; // [Header("胜利场次")] // public Text totalWins; [Header("下划线")] public Image highlight; [Header("查看牌组")] public Button viewCardButton; public UnityAction onClick; public string username; 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; RankMedalShow(ranking); this.playerName.text = username; this.rankScore.text = rankScore.ToString(); this.stars.text = "星×" + stars; this.avatar.sprite = avatar; PlayerRank pr = PlayerRank.Bronze; // 默认 switch(rankId) { 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) { this.rankScore.gameObject.SetActive(true); this.stars.gameObject.SetActive(false); } else { this.rankScore.gameObject.SetActive(false); this.stars.gameObject.SetActive(true); } this.highlight.enabled = highlight; 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); } public string GetUsername() { return username; } public void OnClick() { onClick?.Invoke(username); } } }