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<ChatCenter>());
|
}
|
}
|
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));
|
}
|
}
|
}
|
|