289 lines
9.5 KiB
C#
289 lines
9.5 KiB
C#
using UnityEngine;
|
||
using System.Collections;
|
||
using UnityEngine.UI;
|
||
using System.Collections.Generic;
|
||
using GCGame.Table;
|
||
using Module.Log;
|
||
using GCGame;
|
||
|
||
// 排行榜显示界面
|
||
public class OpenServiceChallengListPageCS : MarketingUIBaseCS {
|
||
|
||
public Image banner; // 横幅图片
|
||
public List<Text> descList; // 文字描述
|
||
public Button btnAdvance; // 提升按钮(位于横幅图片右下角,可能更具不同的项目前往不同的UI)
|
||
public Text btnAdvanceUnderline; // 提升按钮下的下划线
|
||
public Text curAdvanceLevel; // 当前进阶项阶数
|
||
public Button btnCheckRank; // 查看排行榜按钮(更具当前显示的项目,会查看不同的排行榜)
|
||
public UICameraTexture model; // 显示3D模型
|
||
public AdvanceAnimation sequence; // 显示序列帧动画模型
|
||
|
||
public UIContainerBase firstContainer; // 第一名显示的奖品列表
|
||
public UIContainerBase otherContainer; // 第二名到第四名奖品列表
|
||
//public UIContainerBase selfContainer; // 自己的、可点击领取的列表
|
||
|
||
private Text btnAdvanceDesc; // 提升按钮的文字描述
|
||
private int advanceType = -1; // 实际代表的进阶类型
|
||
|
||
private void Awake()
|
||
{
|
||
// 按钮监听绑定
|
||
if(btnAdvance != null)
|
||
{
|
||
btnAdvance.onClick.AddListener(OnBtnAdvanceClick);
|
||
btnAdvanceDesc = btnAdvance.GetComponentInChildren<Text>();
|
||
}
|
||
|
||
if(btnCheckRank != null)
|
||
{
|
||
btnCheckRank.onClick.AddListener(OnBtnCheckRandClick);
|
||
}
|
||
}
|
||
|
||
private void OnEnable()
|
||
{
|
||
AskForInfo();
|
||
}
|
||
|
||
private void OnDisable()
|
||
{
|
||
advanceType = -1;
|
||
}
|
||
|
||
private void SetDesc(List<string> descs)
|
||
{
|
||
for(int i = 0; i < descList.Count; i++)
|
||
{
|
||
if(i < descs.Count && !string.IsNullOrEmpty(descs[i]))
|
||
{
|
||
descList[i].text = StrDictionary.GetServerDictionaryFormatString(descs[i]);
|
||
descList[i].gameObject.SetActive(true);
|
||
}
|
||
else
|
||
{
|
||
descList[i].gameObject.SetActive(false);
|
||
}
|
||
}
|
||
|
||
//Ride = 0, // 坐骑
|
||
//GodWeapon = 1, // 神石 -> 竖琴
|
||
//Wing = 2, // 翅膀
|
||
//Wish = 3, // 神环 -> 神戒
|
||
//Seal = 4, // 王冠 -> 魂器
|
||
//Mask = 5, // 面具
|
||
//Crown = 6, // 战旗 -> 火炮
|
||
|
||
// 设置前往进阶的按钮文字
|
||
if (btnAdvanceDesc != null)
|
||
{
|
||
string desc = "前往进阶";
|
||
switch (advanceType)
|
||
{
|
||
case 0:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62907}");
|
||
break;
|
||
case 1:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62910}");
|
||
break;
|
||
case 2:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62908}");
|
||
break;
|
||
case 3:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62911}");
|
||
break;
|
||
case 4:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62913}");
|
||
break;
|
||
case 5:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62909}");
|
||
break;
|
||
case 6:
|
||
desc = StrDictionary.GetClientDictionaryString("#{62912}");
|
||
break;
|
||
}
|
||
|
||
btnAdvanceDesc.text = desc;
|
||
btnAdvanceUnderline.text = "";
|
||
for(int i = 0; i < btnAdvanceDesc.text.Length; ++i)
|
||
{
|
||
btnAdvanceUnderline.text += "__";
|
||
}
|
||
}
|
||
}
|
||
|
||
private void SetBanner()
|
||
{
|
||
if(banner != null)
|
||
{
|
||
Tab_ActInfoClient tab = TableManager.GetActInfoClientByID(this._ActID, 0);
|
||
if(tab != null)
|
||
{
|
||
LoadAssetBundle.Instance.SetImageSprite(banner, tab.Icon);
|
||
banner.gameObject.SetActive(true);
|
||
}
|
||
else
|
||
{
|
||
banner.gameObject.SetActive(false);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 显示模型
|
||
// modelID - 需要显示的模型ID
|
||
// seqID - 需要显示的序列帧动画ID
|
||
// 需要显示时值不为 0 ,二者必有一个为0
|
||
private void SetModel(int modelID, int seqID)
|
||
{
|
||
if(model != null && sequence != null)
|
||
{
|
||
if(modelID != 0)
|
||
{
|
||
Tab_CharModel tab = TableManager.GetCharModelByID(modelID, 0);
|
||
model.InitModelPath(tab.Name, tab);
|
||
model.gameObject.SetActive(true);
|
||
sequence.gameObject.SetActive(false);
|
||
}
|
||
else if(seqID != 0)
|
||
{
|
||
sequence.ShowAnimationByModelID(seqID);
|
||
model.gameObject.SetActive(false);
|
||
sequence.gameObject.SetActive(true);
|
||
}
|
||
else
|
||
{
|
||
model.gameObject.SetActive(false);
|
||
sequence.gameObject.SetActive(false);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 显示有点特殊
|
||
// 分三部分,第一名的,二 - 四名的以及自己可领取一共三部分。
|
||
private void SetItems(List<MarketingActAwardTag> tags)
|
||
{
|
||
if(tags != null && tags.Count >= 3)
|
||
{
|
||
if (firstContainer != null)
|
||
{
|
||
List<MarketingActAwardTag> firstTag = new List<MarketingActAwardTag>();
|
||
firstTag.Add(tags[0]);
|
||
firstContainer.InitContentItem(firstTag);
|
||
}
|
||
if (otherContainer != null)
|
||
{
|
||
List<MarketingActAwardTag> otherTags = tags.GetRange(1, tags.Count - 1);
|
||
otherContainer.InitContentItem(otherTags);
|
||
}
|
||
//if (selfContainer != null)
|
||
//{
|
||
// List<MarketingActAwardTag> selfTag = new List<MarketingActAwardTag>();
|
||
// selfTag.Add(tags[tags.Count - 1]);
|
||
// selfContainer.InitContentItem(selfTag);
|
||
//}
|
||
}
|
||
}
|
||
|
||
#region 按钮点击处理
|
||
|
||
// 进阶跳转
|
||
public void OnBtnAdvanceClick()
|
||
{
|
||
if(advanceType != -1)
|
||
{
|
||
// 事先检查进阶项是否开启
|
||
if (!AdvanceCanadvanceCtr.Instance.IsAdvanceFuncOpen(advanceType))
|
||
{
|
||
GUIData.AddNotifyData("#{2182}");
|
||
return;
|
||
}
|
||
|
||
int tempType = advanceType;
|
||
UIManager.ShowUI(UIInfo.AdvanceMountPanel, delegate (bool bSucess, object param) {
|
||
if (bSucess)
|
||
{
|
||
AdvanceMountPanelCtr.Instance.SetAdvanceType(tempType);
|
||
AdvanceMountPanelCtr.Instance.menuItemPanelCtr.OnMenuItemClick(AdvanceMenuItemPanelCtr.MenuItemOptType.Advance); //打开进阶界面
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
// 排行榜跳转
|
||
public void OnBtnCheckRandClick()
|
||
{
|
||
//Ride = 0, // 坐骑
|
||
//GodWeapon = 1, // 神石 -> 竖琴
|
||
//Wing = 2, // 翅膀
|
||
//Wish = 3, // 神环 -> 神戒 -> 麒麟臂
|
||
//Seal = 4, // 王冠 -> 魂器
|
||
//Mask = 5, // 面具
|
||
//Crown = 6, // 战旗 -> 火炮
|
||
// int rankID = 101 + advanceType;
|
||
int rankID = 71 + advanceType;
|
||
|
||
//请求排行榜信息
|
||
//CG_REQ_RANK_LIST send = (CG_REQ_RANK_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_RANK_LIST);
|
||
//send.Ranktype = rankID;
|
||
//send.SendPacket();
|
||
RankWindowNew.ShowPage((RankWindowNew.RankType_T)rankID);
|
||
if (OpenServiceRootCS.Instance)
|
||
{
|
||
OpenServiceRootCS.Instance.Close();
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 信息请求与处理
|
||
|
||
public void AskForInfo()
|
||
{
|
||
MarketingActAwardPageReq req = new MarketingActAwardPageReq();
|
||
req.actID = this._ActID;
|
||
req.updateOrInit = 1;
|
||
|
||
req.SendMsg();
|
||
}
|
||
|
||
// 新数据接口
|
||
protected override void MarketingActPageAwardRetDelInner(object packet)
|
||
{
|
||
MarketingActAwardPageRet p = packet as MarketingActAwardPageRet;
|
||
if (p == null)
|
||
return;
|
||
|
||
LogModule.DebugLog(this.gameObject.name + " : Recieve message.");
|
||
advanceType = p.subGiftType;
|
||
int advanceLevel = GameManager.gameManager.PlayerDataPool.m_AdvanceData.GetAdvanceGrade(advanceType);
|
||
|
||
if(advanceLevel != -1 && advanceLevel != 0)
|
||
{
|
||
curAdvanceLevel.gameObject.SetActive(true);
|
||
curAdvanceLevel.text = StrDictionary.GetClientDictionaryString("#{" + (66005 + advanceType) + "}", GetNum(advanceLevel));
|
||
}
|
||
else
|
||
{
|
||
curAdvanceLevel.gameObject.SetActive(false);
|
||
}
|
||
|
||
SetBanner();
|
||
SetDesc(p.descList);
|
||
SetModel(p.awardTags[0].modleID, p.awardTags[0].SequenceID);
|
||
SetItems(p.awardTags);
|
||
}
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 输入数字,获得中文数字字符
|
||
/// </summary>
|
||
/// <param name="num"></param>
|
||
/// <returns></returns>
|
||
private string GetNum(int num)
|
||
{
|
||
//return StrDictionary.GetClientDictionaryString("#{" + (66012 + num) + "}");
|
||
var numb = Utils.NumStr(num);
|
||
return numb;
|
||
}
|
||
}
|