using System.Collections.Generic; using UnityEngine; using System; public class ArenaRecordCell : MonoBehaviour { [SerializeField] AvatarCell avatarCell; [SerializeField] TextEx txtName; [SerializeField] TextEx txtDate; [SerializeField] TextEx txtFightPoint; [SerializeField] TextEx txtState; [SerializeField] TextEx txtAdd; [SerializeField] TextEx txtTimeInvalid; [SerializeField] TextEx txtNeedCount; [SerializeField] ImageEx imgMoneyIcon; [SerializeField] ImageEx imgType; [SerializeField] Transform transChallenge; [SerializeField] OfficialTitleCell officialTitleCell; [SerializeField] ButtonEx btnChallenge; ArenaGameRec arenaGameRec; void Start() { btnChallenge.SetListener(() => { if (arenaGameRec == null) return; BattleManager.Instance.SendTurnFight(3, 0, 1, (uint)arenaGameRec.Value3); ArenaManager.Instance.atkPlayerId = arenaGameRec.Value3; }); } public void Display(int index) { uint playerID = PlayerDatas.Instance.baseData.PlayerID; ArenaManager.Instance.TryGetSortedArenaGameRecList(playerID, out List sortedList); if (sortedList.IsNullOrEmpty() || index < 0 || index >= sortedList.Count) return; arenaGameRec = sortedList[index]; imgType.SetSprite(arenaGameRec.Value2 == 1 ? "ArenaRecordTypeAtk" : "ArenaRecordTypeDef"); txtDate.text = FormatTime(arenaGameRec.Time); // true 已失效 false 未失效 bool isTimeInvalid = ArenaManager.Instance.IsTimeInvalid(arenaGameRec.Time); // 发起攻击,打赢有积分,打输没有 //被攻击的,打赢没有积分,打输扣积分 // 0 打别人胜利 1 打别人输 2 被打,我赢 3 被打,我输 int state = GetState(arenaGameRec.Value2, arenaGameRec.Value4); transChallenge.SetActive(!isTimeInvalid && state == 3); txtTimeInvalid.SetActive(isTimeInvalid); if (state == 0 || state == 2) { txtState.text = UIHelper.AppendColor(TextColType.Green, Language.Get("Arena09")); txtAdd.text = UIHelper.AppendColor(TextColType.Green, Language.Get("Arena17", arenaGameRec.AddScore)); } else { txtState.text = UIHelper.AppendColor(TextColType.Red, Language.Get("Arena10")); if (arenaGameRec.AddScore == 0) { txtAdd.text = UIHelper.AppendColor(TextColType.Red, Language.Get("Arena21", arenaGameRec.AddScore)); } else { txtAdd.text = UIHelper.AppendColor(TextColType.Red, Language.Get("Arena18", arenaGameRec.AddScore)); } } avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)arenaGameRec.Value3, (int)arenaGameRec.Value5, (int)arenaGameRec.Value6)); txtName.text = arenaGameRec.Name; txtFightPoint.text = UIHelper.ReplaceLargeArtNum(arenaGameRec.FightPower); officialTitleCell.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID); imgMoneyIcon.SetIconWithMoneyType(ArenaManager.Instance.ChallengeMoneyType); txtNeedCount.text = ArenaManager.Instance.NeedChallengeMoneyCnt.ToString(); } // 0 打别人胜利 1 打别人输 2 被打,我赢 3 被打,我输 public int GetState(uint isAtk, uint isWin) { if (isAtk == 1) // 发起攻击 { return isWin == 1 ? 0 : 1; } else // 被攻击 { return isWin == 1 ? 2 : 3; } } /// /// 格式化时间戳为 "月-日 时:分:秒" 格式 /// /// 时间戳 /// 格式化后的时间字符串 private string FormatTime(uint timeStamp) { DateTime dateTime = TimeUtility.GetTime(timeStamp); return dateTime.ToString("MM-dd HH:mm:ss"); } }