using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class TeamInvitationBehaviour : ScrollItem { [SerializeField] Image m_Realm; [SerializeField] Text m_PlayerName; [SerializeField] Text m_Job; [SerializeField] Image m_LevelSign; [SerializeField] Text m_Level; [SerializeField] Button m_Select; [SerializeField] Image m_Selected; TeamModel m_Model; TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } TeamInvitation invitation; public override void Display(object _data) { base.Display(_data); invitation = (TeamInvitation)_data; m_Realm.gameObject.SetActive(invitation.realm > 0); if (invitation.realm > 0) { var realmConfig = Config.Instance.Get(invitation.realm); if (realmConfig != null) { m_Realm.SetSprite(realmConfig.Img); } } m_PlayerName.text = invitation.playerName; m_Job.text = OccupationNameConfig.GetOccupationName(invitation.job, invitation.jobLevel); var isNirvanaLevel = invitation.level > GeneralConfig.Instance.greatMasterStartLV; m_LevelSign.gameObject.SetActive(isNirvanaLevel); m_Level.text = isNirvanaLevel ? (invitation.level - GeneralConfig.Instance.greatMasterStartLV).ToString() : invitation.level.ToString(); m_Selected.gameObject.SetActive(invitation.playerId == model.currentSelectedInvitation); m_Select.RemoveAllListeners(); m_Select.AddListener(SelectInvitation); model.selectedInvitationChangeEvent -= OnInvitationSelected; model.selectedInvitationChangeEvent += OnInvitationSelected; } public override void Dispose() { base.Dispose(); m_Select.RemoveAllListeners(); model.selectedInvitationChangeEvent -= OnInvitationSelected; } private void SelectInvitation() { model.currentSelectedInvitation = invitation.playerId; } private void OnInvitationSelected(int _playerId) { m_Selected.gameObject.SetActive(invitation.playerId == _playerId); } } }