using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 公会大厅 成员 /// public class GuildMemberCell : CellView { [SerializeField] AvatarCell avatarCell; [SerializeField] OfficialTitleCell titleCell; [SerializeField] Text lvText; [SerializeField] Text guildJobText; [SerializeField] Image guildJobImg; [SerializeField] Text nameText; [SerializeField] Text fightPowerText; [SerializeField] Text contribText; [SerializeField] Text loginTimeText; [SerializeField] Button showOpBtn; [SerializeField] Image showArrowImg; public void Display(int index) { var playerID = PlayerDatas.Instance.fairyData.memberIDList[index]; var playerInfo = PlayerDatas.Instance.fairyData.GetMember(playerID); nameText.text = playerInfo.Name; avatarCell.InitUI(AvatarHelper.GetAvatarModel(0, playerInfo.Face, playerInfo.FacePic)); titleCell.InitUI(playerInfo.RealmLV, playerInfo.TitleID); lvText.text = playerInfo.LV.ToString(); if (playerInfo.FmLV > 0) { guildJobImg.SetActive(true); guildJobText.text = RichTextMsgReplaceConfig.GetRichReplace("FAMILY", playerInfo.FmLV); guildJobImg.SetSprite("GuildJob" + playerInfo.FmLV); } else { guildJobImg.SetActive(false); } fightPowerText.text = UIHelper.ReplaceLargeArtNum(playerInfo.FightPower); avatarCell.AddListener(() => { OtherPlayerDetailManager.Instance.ViewPlayerDetail(playerID); }); contribText.text = playerInfo.ContribDay + "/" + playerInfo.ContribTotal; int leftTime = TimeUtility.AllSeconds - playerInfo.OffTime; if (playerInfo.OffTime == 0) { loginTimeText.text = UIHelper.AppendColor(TextColType.Green, Language.Get("L1025")); } else if (leftTime < 60) { loginTimeText.text = Language.Get("Guild_63"); //刚刚在线 } else { loginTimeText.text = Language.Get("Guild_61", SecondsToOnlyTime(leftTime)); } showOpBtn.SetActive(PlayerDatas.Instance.fairyData.mine.FmLV >= GuildManager.Instance.GetNeedGuildJobLV((int)GuildFuncType.ChangeJob) && PlayerDatas.Instance.fairyData.mine.FmLV > playerInfo.FmLV); showOpBtn.AddListener(() => { if (GuildManager.Instance.memberOPIndex == index) { GuildManager.Instance.memberOPIndex = -1; return; } GuildManager.Instance.memberOPIndex = index; }); if (GuildManager.Instance.memberOPIndex == index) { //展开 showArrowImg.transform.localScale = new Vector3(1, 1, 1); } else { showArrowImg.transform.localScale = new Vector3(1, -1, 1); } } //例子 取整处理, 1.5天 显示1天; 最大7天特殊处理 //x天 //x时 //x分 //x秒 public static string SecondsToOnlyTime(int _seconds) { float days = (float)_seconds / 86400; float hours = (float)_seconds % 86400 / 3600; int mins = _seconds % 3600 / 60; float seconds = (float)_seconds % 60; if (days >= 1) { days = Math.Min(days, 7); return StringUtility.Concat(((int)days).ToString(), Language.Get("L1074")); } else if (hours >= 1) { return StringUtility.Concat(((int)hours).ToString(), Language.Get("L1072")); } else if (mins >= 1) { return StringUtility.Concat(mins.ToString(), Language.Get("L1073")); } else { return StringUtility.Concat(seconds.ToString(), Language.Get("L1075")); } } }