using Snxxz.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace EnhancedUI.EnhancedScroller { public class ChatOtherVoiceCell : ScrollerUI { [SerializeField] Text m_VoiceTxt; [SerializeField] Button m_VoiceBtn; [SerializeField] RichText m_ChatTxt; [SerializeField] Image m_ChatBubble; [SerializeField] Text vipText; [SerializeField] Text playerNameText; [SerializeField] Image m_ChatIcon; [SerializeField] ImageFitterText m_Fitter; [SerializeField] Button m_ViewPlayer; ChatCenter m_ChatCenter; ChatCenter chatCenter { get { return m_ChatCenter ?? (m_ChatCenter = ModelCenter.Instance.GetModel()); } } public override void Refresh(CellView cell) { m_ViewPlayer.RemoveAllListeners(); ChatUeseData _data = chatCenter.GetChatData(ChatCtrl.Inst.presentChatType, cell.index) as ChatUeseData; if (_data == null) { return; } m_ViewPlayer.onClick.AddListener(() => { ViewPlayer(_data); }); m_ChatTxt.text = _data.content; m_Fitter.gameObject.SetActive(!string.IsNullOrEmpty(_data.content)); m_ChatIcon.SetSprite(GeneralConfig.Instance.GetJobHeadPortrait(_data.job, 0)); playerNameText.text = _data.name; if (_data.vipLv > 0) { vipText.text = string.Format("V{0}", _data.vipLv); } else { vipText.text = string.Empty; } m_VoiceBtn.onClick.RemoveAllListeners(); m_VoiceTxt.text = _data.soundLength.ToString("0.0"); m_VoiceBtn.onClick.AddListener(() => { OnVoiceClick(_data, Mathf.Min(8.0f, _data.soundLength)); }); } private void OnVoiceClick(ChatUeseData _chat, float _length) { if (_chat != null) { chatCenter.PlaySpeech(_chat.player, _chat.soundTick, _length); } } void ViewPlayer(ChatUeseData _chat) { ChatUeseData user = _chat as ChatUeseData; if (user.player == PlayerDatas.Instance.baseData.PlayerID) { return; } HrefAnalysis.Inst.ExcuteHrefEvent(string.Format("showplayer={0}", user.player)); } } }