using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using Games.GlobeDefine; using GCGame.Table; using GCGame; public class RedPacketSendRankRoot : UIControllerBase { void OnEnable() { SetInstance(this); ReqRankData(); } void OnDisable() { SetInstance(null); } public void CloseWindow() { UIManager.CloseUI(UIInfo.RedPacketSendRankRoot); } #region public RedPacketSendRankItem[] _Top3RedPacketSendItem; public UIContainerBase _RankContainer; public RedPacketSendRankItem _MyRankInfo; public void ReqRankData() { CG_REQ_RED_PACKET_RANK packet = (CG_REQ_RED_PACKET_RANK)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_RED_PACKET_RANK); packet.ByteFlag = 1; packet.SendPacket(); } public void ShowRedPacketSendRank(GC_RET_RED_PACKET_RANK packet) { List rankInfos = new List(); List topRankInfo = new List(); RedPacketSendRankInfo myRankInfo = new RedPacketSendRankInfo(); var rankTabs = TableManager.GetRedPacketRank().Values; foreach (var rankTab in rankTabs) { if (rankTab.RankMin <= 10) { for (int i = rankTab.RankMin; i <= rankTab.RankMax; ++i) { RedPacketSendRankInfo rankInfo = new RedPacketSendRankInfo(); rankInfo.Rank = i; rankInfo.NeedValue = rankTab.RankMinMoney; rankInfo.AwardTitleID = rankTab.TitleId; if (rankTab.RankMax <= 3) { topRankInfo.Add(rankInfo); } else { rankInfos.Add(rankInfo); } } } else if (rankTab.RankMin == 11) { RedPacketSendRankInfo rankInfo = new RedPacketSendRankInfo(); rankInfo.Rank = 11; rankInfo.NeedValue = rankTab.RankMinMoney; rankInfo.AwardTitleID = rankTab.TitleId; rankInfo.IsLastMsg = true; rankInfos.Add(rankInfo); } } for (int i = 0; i < packet.redPacketRankList.Count; ++i) { RedPacketSendRankInfo rankInfo = null; if (packet.redPacketRankList[i].Rank > 3) { if (rankInfos.Count >= packet.redPacketRankList[i].Rank - 3) { rankInfo = rankInfos[packet.redPacketRankList[i].Rank - 3]; } else { rankInfo = rankInfos[rankInfos.Count - 1]; } } else if(packet.redPacketRankList[i].Rank > 0) { if (rankInfos.Count >= packet.redPacketRankList[i].Rank) { rankInfo = topRankInfo[packet.redPacketRankList[i].Rank - 1]; } } if (rankInfo == null) { //LogModule.ErrorLog("RankError:" + packet.redPacketRankList[i].Rank); } else { rankInfo.PlayerGuid = packet.redPacketRankList[i].Guid; rankInfo.PlayerName = packet.redPacketRankList[i].Name; rankInfo.SendPacketValue = packet.redPacketRankList[i].Num; } if (packet.redPacketRankList[i].Guid == GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid) { myRankInfo.PlayerGuid = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid; myRankInfo.PlayerName = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName; myRankInfo.SendPacketValue = packet.redPacketRankList[i].Num; myRankInfo.Rank = packet.redPacketRankList[i].Rank; myRankInfo.MyMsg = true; if (rankInfo != null) { myRankInfo.AwardTitleID = rankInfo.AwardTitleID; myRankInfo.NeedValue = rankInfo.NeedValue; } } } Hashtable myHash = new Hashtable(); myHash.Add("InitObj", myRankInfo); _MyRankInfo.Show(myHash); _RankContainer.InitContentItem(rankInfos); for (int i = 0; i < _Top3RedPacketSendItem.Length; ++i) { Hashtable hash = new Hashtable(); hash.Add("InitObj", topRankInfo[i]); _Top3RedPacketSendItem[i].Show(hash); } //for (int i = 2; i < 10; ++i) //{ // RedPacketSendRankInfo rankInfo = new RedPacketSendRankInfo(); // rankInfo.Rank = i + 1; // if (i % 2 == 0) // { // rankInfo.PlayerGuid = 1; // rankInfo.PlayerName = "test" + i; // } // else // { // rankInfo.PlayerGuid = Games.GlobeDefine.GlobeVar.INVALID_GUID; // rankInfo.PlayerName = ""; // } // rankInfo.SendPacketValue = 100000; // rankInfo.NeedValue = 10000; // rankInfo.IsLastMsg = false; // rankInfo.AwardTitleID = 1; // rankInfos.Add(rankInfo); //} //RedPacketSendRankInfo rankInfoLast = new RedPacketSendRankInfo(); //rankInfoLast.IsLastMsg = true; //rankInfoLast.AwardTitleID = 1; //rankInfos.Add(rankInfoLast); //for (int i = 0; i < _Top3RedPacketSendItem.Length; ++i) //{ // RedPacketSendRankInfo rankInfo = new RedPacketSendRankInfo(); // rankInfo.Rank = i + 1; // if (i % 2 == 0) // { // rankInfo.PlayerGuid = 1; // rankInfo.PlayerName = "test" + i; // } // else // { // rankInfo.PlayerGuid = Games.GlobeDefine.GlobeVar.INVALID_GUID; // rankInfo.PlayerName = ""; // } // rankInfo.SendPacketValue = 100000; // rankInfo.NeedValue = 10000; // rankInfo.IsLastMsg = false; // rankInfo.AwardTitleID = 1; // Hashtable hash = new Hashtable(); // hash.Add("InitObj", rankInfo); // _Top3RedPacketSendItem[i].Show(hash); //} //_RankContainer.InitContentItem(rankInfos); //RedPacketSendRankInfo myRankInfo = new RedPacketSendRankInfo(); //myRankInfo.Rank = -1; //myRankInfo.PlayerGuid = Singleton.GetInstance().MainPlayer.BaseAttr.Guid; //myRankInfo.PlayerName = Singleton.GetInstance().MainPlayer.BaseAttr.RoleName; //myRankInfo.SendPacketValue = 100000; //myRankInfo.NeedValue = 10000; //myRankInfo.IsLastMsg = false; //myRankInfo.AwardTitleID = 1; //Hashtable myHash = new Hashtable(); //myHash.Add("InitObj", myRankInfo); //_MyRankInfo.Show(myHash); //for() } #endregion }