//-------------------------------------------------------- // [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()); } } RedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel(); } } 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(); _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()); } } } } } } }