//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, September 11, 2017
|
//--------------------------------------------------------
|
|
using System.Collections;
|
using UnityEngine;
|
using UnityEngine.UI;
|
//红包详情面板
|
namespace vnxbqy.UI
|
{
|
|
public class RedDetailsTipsWin : Window
|
{
|
[SerializeField] ScrollerController m_ScrollerController;
|
[SerializeField] AvatarCell avatarCell;
|
[SerializeField] Text _NameText;//红包发放人
|
[SerializeField] Text _StateText;//红包状态
|
[SerializeField] Button _CloseBtnXQ;//红包详情关闭按钮
|
[SerializeField] Text _DetailText;//红包信息详情
|
[SerializeField] RectTransform m_ContainerDisplay;
|
[SerializeField] UIEffect m_RedpackSfx;
|
[SerializeField] Button m_SpaceClose;
|
[SerializeField] Button m_CloseSfxBtn;
|
#region Built-in
|
RedPacketModel m_RedPacket;
|
RedPacketModel redPacket { get { return m_RedPacket ?? (m_RedPacket = ModelCenter.Instance.GetModel<RedPacketModel>()); } }
|
RedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<RedEnvelopeModel>(); } }
|
protected override void BindController()
|
{
|
}
|
protected override void AddListeners()
|
{
|
_CloseBtnXQ.onClick.AddListener(CloseButtonXQ);
|
m_SpaceClose.onClick.AddListener(CloseClick);
|
m_CloseSfxBtn.onClick.AddListener(CloseSfx);
|
m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
|
}
|
|
protected override void OnPreOpen()
|
{
|
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
m_RedpackSfx.Play();
|
Animator _animator=null;
|
if (m_RedpackSfx.target != null)
|
{
|
_animator = m_RedpackSfx.target.GetAnimator();
|
}
|
if (envelopeModel.envelopeSfx == redPacket.redpackDetailId)
|
{
|
if (_animator != null)
|
{
|
_animator.Play("Effect_HongBao_02", 0, 0);
|
}
|
m_ContainerDisplay.SetActive(false);
|
StartCoroutine(Co_Display());
|
}
|
else
|
{
|
if (_animator != null)
|
{
|
_animator.Play("Effect_HongBao_03", 0, 0);
|
}
|
m_ContainerDisplay.SetActive(true);
|
DetailsRedEnvelope(redPacket.redpackDetailId);
|
OnCreateGridLineCell(m_ScrollerController);
|
}
|
envelopeModel.envelopeSfx = 0;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
redPacket.redpackDetailId = 0;
|
envelopeModel.envelopeSfx = 0;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void CloseSfx()
|
{
|
Animator _animator = null;
|
if (m_RedpackSfx.target != null)
|
{
|
_animator = m_RedpackSfx.target.GetAnimator();
|
if (_animator != null)
|
{
|
_animator.Play("Effect_HongBao_02", 0, 0.99f);
|
}
|
m_ContainerDisplay.SetActive(true);
|
DetailsRedEnvelope(redPacket.redpackDetailId);
|
OnCreateGridLineCell(m_ScrollerController);
|
}
|
}
|
|
private IEnumerator Co_Display()
|
{
|
yield return WaitingForSecondConst.WaitMS1500;
|
if (!m_ContainerDisplay.gameObject.activeSelf)
|
{
|
m_ContainerDisplay.SetActive(true);
|
DetailsRedEnvelope(redPacket.redpackDetailId);
|
OnCreateGridLineCell(m_ScrollerController);
|
}
|
}
|
|
private void OnCreateGridLineCell(ScrollerController gridCtrl)//动态创建
|
{
|
gridCtrl.Refresh();
|
for (int i = redPacket._DicRedGrabinfo.Count - 1; i >= 0; i--)
|
{
|
gridCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
gridCtrl.Restart();
|
}
|
|
private void OnRefreshGridCell(ScrollerDataType type, CellView cell)
|
{
|
int Index = cell.index;
|
RedBagD _redbag = cell.GetComponent<RedBagD>();
|
|
_redbag.CountText.text = redPacket._DicRedGrabinfo[Index].MoneyNum.ToString();
|
_redbag.NameText.text = redPacket._DicRedGrabinfo[Index].Name;
|
|
if (!redPacket._DicRedBag.ContainsKey(redPacket.redpackDetailId))
|
{
|
return;
|
}
|
|
_redbag.MoneyBG.SetSprite("item_bandingxianyu");//绑定
|
_redbag.AvatarCell.InitUI(AvatarHelper.GetOtherAvatarModel(redPacket._DicRedGrabinfo[Index].Face, redPacket._DicRedGrabinfo[Index].FacePic, redPacket._DicRedGrabinfo[Index].PlayerJob));
|
_redbag.BestLuck.SetActive(false);
|
if (redPacket._DicRedBag[redPacket.redpackDetailId].PacketCnt ==
|
redPacket._DicRedGrabinfo.Count && redPacket.RedPacketMaxName
|
== redPacket._DicRedGrabinfo[Index].Name)
|
{
|
_redbag.BestLuck.SetActive(true);
|
}
|
}
|
#endregion
|
|
void CloseButtonXQ()//红包详情关闭按钮
|
{
|
Close();
|
}
|
|
|
void DetailsRedEnvelope(int _redID)//红包详情
|
{
|
|
if (!redPacket._DicRedBag.ContainsKey(_redID))
|
{
|
Close();
|
return;
|
}
|
|
if (redPacket._DicRedBag[_redID].PlayeJob > 10)
|
{
|
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)redPacket._DicRedBag[_redID].PlayerID, (int)redPacket._DicRedBag[_redID].Face, (int)redPacket._DicRedBag[_redID].FacePic, redPacket._DicRedBag[_redID].PlayeJob % 10));
|
}
|
else
|
{
|
avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)redPacket._DicRedBag[_redID].PlayerID, (int)redPacket._DicRedBag[_redID].Face, (int)redPacket._DicRedBag[_redID].FacePic, redPacket._DicRedBag[_redID].PlayeJob));
|
}
|
|
_NameText.text = redPacket._DicRedBag[_redID].Name + Language.Get("Z1056")+Language.Get("RedEnvelope_Z");
|
bool _self = false;
|
if (redPacket._DicRedGrabinfo != null)
|
{
|
foreach (var data in redPacket._DicRedGrabinfo.Values)
|
{
|
if (UIHelper.ServerStringTrim(data.Name).Equals(UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName)))
|
{
|
_self = true;
|
break;
|
}
|
}
|
}
|
if (!_self && redPacket._DicRedBag[_redID].PacketCnt == redPacket._DicRedGrabinfo.Count)
|
{
|
_StateText.text = Language.Get("Z1045");// "红包派完了";
|
_DetailText.SetActive(true);
|
if (redPacket._DicRedBag[_redID].MoneyType == 1)
|
{
|
_DetailText.text = string.Format(Language.Get("RedEnvelope_xZ"), redPacket._DicRedBag[_redID].PacketCnt, redPacket._DicRedBag[_redID].MoneyNum);
|
}
|
else
|
{
|
_DetailText.text = string.Format(Language.Get("RedEnvelope_bZ"), redPacket._DicRedBag[_redID].PacketCnt, redPacket._DicRedBag[_redID].MoneyNum);
|
}
|
}
|
else
|
{
|
_DetailText.SetActive(false);
|
foreach (int key in redPacket._DicRedGrabinfo.Keys)
|
{
|
if (redPacket._DicRedGrabinfo[key].Name == PlayerDatas.Instance.baseData.PlayerName)
|
{
|
if (redPacket._DicRedBag[_redID].MoneyType == 1)
|
{
|
_StateText.text = string.Format(Language.Get("GainTiedX_Z"), redPacket._DicRedGrabinfo[key].MoneyNum.ToString());
|
}
|
else
|
{
|
_StateText.text = string.Format(Language.Get("GainTiedB_Z"), redPacket._DicRedGrabinfo[key].MoneyNum.ToString());
|
}
|
|
}
|
}
|
}
|
}
|
}
|
|
}
|
|
|
|
|