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 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(); } if(btnCheckRank != null) { btnCheckRank.onClick.AddListener(OnBtnCheckRandClick); } } private void OnEnable() { AskForInfo(); } private void OnDisable() { advanceType = -1; } private void SetDesc(List 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 tags) { if(tags != null && tags.Count >= 3) { if (firstContainer != null) { List firstTag = new List(); firstTag.Add(tags[0]); firstContainer.InitContentItem(firstTag); } if (otherContainer != null) { List otherTags = tags.GetRange(1, tags.Count - 1); otherContainer.InitContentItem(otherTags); } //if (selfContainer != null) //{ // List selfTag = new List(); // 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 /// /// 输入数字,获得中文数字字符 /// /// /// private string GetNum(int num) { //return StrDictionary.GetClientDictionaryString("#{" + (66012 + num) + "}"); var numb = Utils.NumStr(num); return numb; } }