//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, November 13, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; //红包点击赋值 namespace vnxbqy.UI { public class RedBagScripts:MonoBehaviour { [SerializeField] GameObject m_NullObj; [SerializeField] GameObject m_open;//可开 [SerializeField] Text m_PlayerName2;//玩家名 [SerializeField] Text m_TextMatter;//红包来源 [SerializeField] GameObject m_OpenImg;//红包圆钮图标 [SerializeField] GameObject m_State;//开 [SerializeField] GameObject m_SendOut;//发 [SerializeField] GameObject m_BroughtOut;//领完了 [SerializeField] GameObject m_HasBrought;//已领 [SerializeField] GameObject m_RedBagObj;//红包 [SerializeField] GameObject m_ViewText; public GameObject RedBag { get { return m_RedBagObj; } set { m_RedBagObj = value; } } [SerializeField] Button RedBagBtn;//红包 RedPacketModel m_RedPacket; RedPacketModel redPacket { get { return m_RedPacket ?? (m_RedPacket = ModelCenter.Instance.GetModel()); } } public void RedPacket(int State ,int redPackeIndex)//关于红包类型 { m_NullObj.SetActive(false); m_open.SetActive(false); m_OpenImg.SetActive(false); m_State.SetActive(false); m_SendOut.SetActive(false); m_BroughtOut.SetActive(false); m_HasBrought.SetActive(false); Image OpenImg = m_OpenImg.GetComponent(); Image SendOut = m_SendOut.GetComponent(); OpenImg.color =new Color32(255,255,255,255); if (redPacket._DicRedBag[redPackeIndex].GetWay == 0 && redPacket._DicRedBag[redPackeIndex].Wish != null) { m_TextMatter.text = redPacket._DicRedBag[redPackeIndex].Wish; } else { m_TextMatter.text = RedEnvelopeContent(redPacket._DicRedBag[redPackeIndex].GetWay); } var redpackInfo = redPacket._DicRedBag[redPackeIndex]; switch (State) { case 0://未发放 m_ViewText.SetActive(false); m_NullObj.SetActive(true); m_OpenImg.SetActive(true); m_SendOut.SetActive(true); if ((int)PlayerDatas.Instance.baseData.PlayerID == redPacket._DicRedBag[redPackeIndex].PlayerID) { SendOut.color= new Color32(255, 255, 255,255); RedBagBtn.RemoveAllListeners(); RedBagBtn.AddListener(() => { redPacket.RedBagId = redPacket._DicRedBag[redPackeIndex].RedPacketID; WindowCenter.Instance.Open();//打开发放红包界面 }); } else { OpenImg.color = new Color32(180,115,115,255); SendOut.color = new Color32(180, 115, 115,255); RedBagBtn.RemoveAllListeners(); RedBagBtn.AddListener(() => { SysNotifyMgr.Instance.ShowTip("FairyRedBag");//信息提示 }); } break; case 1://可领取 m_ViewText.SetActive(false); m_NullObj.SetActive(true); m_open.SetActive(true); m_PlayerName2.text = redPacket._DicRedBag[redPackeIndex].Name; m_OpenImg.SetActive(true); m_State.SetActive(true); RedBagBtn.RemoveAllListeners(); RedBagBtn.AddListener(() => { redPacket.RedBagId = redPacket._DicRedBag[redPackeIndex].RedPacketID; //WindowCenter.Instance.Open();//打开领取界面 OpenButton(redPacket.RedBagId); }); break; case 2://已领取 m_ViewText.SetActive(true); m_open.SetActive(true); m_PlayerName2.text = redPacket._DicRedBag[redPackeIndex].Name; m_HasBrought.SetActive(true); RedBagBtn.RemoveAllListeners(); RedBagBtn.AddListener(()=> { redPacket.RedBagId = redPacket._DicRedBag[redPackeIndex].RedPacketID; RedPacketInquire(redPacket.RedBagId, redpackInfo.GetWay); }); break; case 3://红包派完了 m_ViewText.SetActive(true); m_open.SetActive(true); m_PlayerName2.text = redPacket._DicRedBag[redPackeIndex].Name; m_BroughtOut.SetActive(true); RedBagBtn.RemoveAllListeners(); RedBagBtn.AddListener(() => { redPacket.RedBagId = redPacket._DicRedBag[redPackeIndex].RedPacketID; RedPacketInquire(redPacket.RedBagId, redpackInfo.GetWay); }); break; default: break; } } void OpenButton(int redpackServerId) { if (!redPacket._DicRedBag.ContainsKey(redpackServerId)) { return; } var redpack = redPacket._DicRedBag[redpackServerId]; switch (redpack.GetWay) { case 5: var OSRedModel = ModelCenter.Instance.GetModel(); if (redpack.PlayerID != PlayerDatas.Instance.PlayerId && OSRedModel.getEnvelopeTimes <= 0) { SysNotifyMgr.Instance.ShowTip("OpenRedBag4"); return; } break; case FestivalRedpackModel.FESTIVALTASKREDPACKTYPE: var festivalRedpackModel = ModelCenter.Instance.GetModel(); if (redpack.PlayerID != PlayerDatas.Instance.PlayerId && festivalRedpackModel.grabRedpackTimes <= 0) { SysNotifyMgr.Instance.ShowTip("OpenRedBag4"); return; } break; } CAB12_tagCMGrabFamilyRedPacket _pak = new CAB12_tagCMGrabFamilyRedPacket(); _pak.RedPaketID = (uint)redpackServerId; _pak.GetWay = (byte)redpack.GetWay; GameNetSystem.Instance.SendInfo(_pak); } List redpack = new List(); string RedEnvelopeContent(int _getWay)//红包显示内容 { string _str = null; if (_getWay == 0) { _str = Language.Get("AnswerThree_Z"); return _str; } if (redpack.Count <= 0) { redpack = RedPackConfig.GetValues(); } // var redpack = RedPackConfig.GetValues(); foreach (var value in redpack) { if (value.RedEnvelopeType == _getWay) { _str = value.content; return _str; } } return _str; } private void RedPacketInquire(int redbagID, int getWay)//红包查询 { ModelCenter.Instance.GetModel().cacheEnvelopeId = redbagID; CAB12_tagCMGrabFamilyRedPacket pack = new CAB12_tagCMGrabFamilyRedPacket(); pack.RedPaketID = (uint)redbagID; pack.GetWay = (byte)getWay; GameNetSystem.Instance.SendInfo(pack); } } }