//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, January 10, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class ServerBehaviour : MonoBehaviour { [SerializeField] Image m_ServerState; [SerializeField] Text m_ServerName; [SerializeField] Text m_OpenTime; [SerializeField] Button m_Select; [SerializeField] Image m_RoleHead; [SerializeField] Text m_RoleName; [SerializeField] Text m_RoleLevel; ServerData m_ServerData; public void Display(ServerData _serverData) { m_ServerData = _serverData; switch ((ServerState)_serverData.running_status) { case ServerState.Maintain: case ServerState.Predicted: m_ServerState.SetSprite("XT_FWQ_TB4"); break; case ServerState.Normal: m_ServerState.SetSprite("XT_FWQ_TB2"); break; case ServerState.Busy: m_ServerState.SetSprite("XT_FWQ_TB3"); break; case ServerState.Hot: m_ServerState.SetSprite("XT_FWQ_TB1"); break; } m_ServerName.text = _serverData.name; var job = 0; if (!string.IsNullOrEmpty(_serverData.job)) { int.TryParse(_serverData.job, out job); } if (job != 0) { m_RoleHead.gameObject.SetActive(true); m_RoleName.gameObject.SetActive(true); m_RoleLevel.gameObject.SetActive(true); m_OpenTime.gameObject.SetActive(false); m_RoleHead.SetSprite(GeneralDefine.GetJobHeadPortrait(job, 0)); m_RoleName.text = _serverData.roleid; m_RoleLevel.text = Language.Get("Z1024", _serverData.level); } else { m_OpenTime.gameObject.SetActive(m_ServerData.start_date > DateTime.Now); if (m_ServerData.start_date > DateTime.Now) { m_OpenTime.text = Language.Get("ServerOnTime", m_ServerData.start_date.ToString("MM-dd HH:mm")); } m_RoleHead.gameObject.SetActive(false); m_RoleName.gameObject.SetActive(false); m_RoleLevel.gameObject.SetActive(false); } m_Select.RemoveAllListeners(); m_Select.AddListener(SelectServer); } private void SelectServer() { if (DebugUtility.Instance.isWhiteListAccount) { ServerListCenter.Instance.currentServer = m_ServerData; WindowCenter.Instance.Close(); } else { switch ((ServerState)m_ServerData.running_status) { case ServerState.Maintain: SysNotifyMgr.Instance.ShowTip("ServerDown"); break; case ServerState.Predicted: SysNotifyMgr.Instance.ShowTip("ServerOpen", m_ServerData.start_date.ToString("MM-dd HH:mm")); break; default: ServerListCenter.Instance.currentServer = m_ServerData; WindowCenter.Instance.Close(); break; } } } } }