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;
|
ArenaManager.Instance.SendTurnFight(arenaGameRec.Value3);
|
ArenaManager.Instance.atkPlayerId = arenaGameRec.Value3;
|
});
|
}
|
|
public void Display(int index)
|
{
|
uint playerID = PlayerDatas.Instance.baseData.PlayerID;
|
ArenaManager.Instance.TryGetSortedArenaGameRecList(playerID, out List<ArenaGameRec> 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;
|
}
|
}
|
|
/// <summary>
|
/// 格式化时间戳为 "月-日 时:分:秒" 格式
|
/// </summary>
|
/// <param name="timeStamp">时间戳</param>
|
/// <returns>格式化后的时间字符串</returns>
|
private string FormatTime(uint timeStamp)
|
{
|
DateTime dateTime = TimeUtility.GetTime(timeStamp);
|
return dateTime.ToString("MM-dd HH:mm:ss");
|
}
|
}
|