Files
JJBB/Assets/Project/Script/GUI/RedPacket/RedPacketSendRankRoot.cs

209 lines
7.1 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Games.GlobeDefine;
using GCGame.Table;
using GCGame;
public class RedPacketSendRankRoot : UIControllerBase<RedPacketSendRankRoot>
{
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<RedPacketSendRankInfo> rankInfos = new List<RedPacketSendRankInfo>();
List<RedPacketSendRankInfo> topRankInfo = new List<RedPacketSendRankInfo>();
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<ObjManager>.GetInstance().MainPlayer.BaseAttr.Guid;
//myRankInfo.PlayerName = Singleton<ObjManager>.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
}