using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class FairyFeastMemberCell : CellView { [SerializeField] Text m_PlayerName; [SerializeField] Text m_Level; [SerializeField] Text m_Duty; [SerializeField] Text m_State; [SerializeField] Image m_Realm; [SerializeField] Button m_Transmit; [SerializeField] Text m_Inviting; FairyFeastModel model { get { return ModelCenter.Instance.GetModel(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } public void Display(int index) { m_Transmit.RemoveAllListeners(); if (index >= model.displayFairyMembers.Count) { return; } var fairyMember = model.displayFairyMembers[index]; m_PlayerName.text = fairyMember.Name; m_Level.text = fairyMember.LV.ToString(); m_Duty.text = Language.Get(string.Format("L102{0}", fairyMember.FamilyLV + 1)); if (fairyMember.Exattr2 != 0) { m_State.text = Language.Get("Offline"); m_State.color = UIHelper.GetUIColor(TextColType.White, true); } else { m_State.text = Language.Get("L1025"); m_State.color = UIHelper.GetUIColor(TextColType.Green, true); } var realmLevel = fairyMember.OfficialRank; var config = RealmConfig.Get(realmLevel); if (realmLevel>0&& config != null) { m_Realm.SetActive(true); m_Realm.SetSprite(config.Img); } else { m_Realm.SetActive(false); } var state = dailyQuestModel.GetQuestState((int)DailyQuestType.FairyChuanGong); if (model.inviteTimes.ContainsKey((int)fairyMember.PlayerID) && Time.time - model.inviteTimes[(int)fairyMember.PlayerID] < 10) { m_Transmit.SetActive(false); m_Inviting.SetActive(true); } else { m_Inviting.SetActive(false); m_Transmit.SetActive(fairyMember.PlayerID != PlayerDatas.Instance.baseData.PlayerID && state == DailyQuestModel.DailyQuestState.Normal); } if (fairyMember.PlayerID != PlayerDatas.Instance.baseData.PlayerID) { m_Transmit.AddListener(() => { if (state != DailyQuestModel.DailyQuestState.Normal) return; OnTransmit(fairyMember); if (model.inviteTimes.ContainsKey((int)fairyMember.PlayerID) && Time.time - model.inviteTimes[(int)fairyMember.PlayerID] < 10) { m_Transmit.SetActive(false); m_Inviting.SetActive(true); } }); } } private void OnTransmit(PlayerFairyData.FairyMember fairyMember) { if (fairyMember != null) { model.Transmit(fairyMember); } } } }