using System; using UILib; using UnityEngine; using XMainClient.UI.UICommon; using XUtliPoolLib; namespace XMainClient.UI { internal class FirstPassMainHandler : DlgHandlerBase { private FirstPassDocument m_doc { get { return FirstPassDocument.Doc; } } public FirstPassTeamInfoHandler TeamInfoHandler { get { return this.m_TeamInfoHandler; } } protected override string FileName { get { return "OperatingActivity/FirstPassMain"; } } private IXUILabel m_tittle1Lab; private IXUILabel m_tittle2Lab; private IXUILabel m_myRankLab; private IXUILabel m_itemTittleLab; private IXUILabel m_goLab; private IXUILabel m_tipsLab; private IXUILabel m_timeLab; private IXUIButton m_viewRewardBtn; private IXUIButton m_topTeamInfoBtn; private IXUIButton m_goBtn; private IXUISprite m_leftSpr; private IXUISprite m_rightSpr; private IXUITexture m_bgTexture; private GameObject m_getRewardRedDot; private GameObject m_leftRedDot; private GameObject m_rightRedDot; private GameObject m_itemsGo; private GameObject m_PariseRedDot; private FirstPassTeamInfoHandler m_TeamInfoHandler; private XUIPool m_ItemPool = new XUIPool(XSingleton.singleton.m_uiTool); protected override void Init() { base.Init(); this.m_doc.View = this; this.m_leftSpr = (base.PanelObject.transform.Find("Arrow/Left").GetComponent("XUISprite") as IXUISprite); this.m_rightSpr = (base.PanelObject.transform.Find("Arrow/Right").GetComponent("XUISprite") as IXUISprite); this.m_leftRedDot = this.m_leftSpr.gameObject.transform.Find("RedPoint").gameObject; this.m_rightRedDot = this.m_rightSpr.gameObject.transform.Find("RedPoint").gameObject; Transform transform = base.PanelObject.transform.Find("Main/Tittles"); this.m_tittle1Lab = (transform.Find("Tittle1").GetComponent("XUILabel") as IXUILabel); this.m_tittle2Lab = (transform.Find("Tittle2").GetComponent("XUILabel") as IXUILabel); this.m_myRankLab = (transform.Find("MyRank").GetComponent("XUILabel") as IXUILabel); this.m_tipsLab = (transform.Find("Tips").GetComponent("XUILabel") as IXUILabel); transform = base.PanelObject.transform.Find("Main/Btns"); this.m_viewRewardBtn = (transform.Find("ViewRewardBtn").GetComponent("XUIButton") as IXUIButton); this.m_topTeamInfoBtn = (transform.Find("TopTeamInfoBtn").GetComponent("XUIButton") as IXUIButton); this.m_goBtn = (transform.Find("GoBtn").GetComponent("XUIButton") as IXUIButton); this.m_goLab = (transform.Find("GoBtn/T").GetComponent("XUILabel") as IXUILabel); this.m_getRewardRedDot = transform.Find("GoBtn/RedPoint").gameObject; this.m_PariseRedDot = transform.Find("TopTeamInfoBtn/RedPoint").gameObject; this.m_bgTexture = (base.PanelObject.transform.Find("Main/P").GetComponent("XUITexture") as IXUITexture); transform = base.PanelObject.transform.Find("Main/Items"); this.m_itemsGo = transform.gameObject; this.m_ItemPool.SetupPool(this.m_itemsGo, transform.Find("Item").gameObject, 2u, false); this.m_itemTittleLab = (transform.Find("Tittle").GetComponent("XUILabel") as IXUILabel); this.m_timeLab = (base.PanelObject.transform.Find("Main/TimeLab").GetComponent("XUILabel") as IXUILabel); } public override void RegisterEvent() { base.RegisterEvent(); this.m_viewRewardBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnViewRewardClicked)); this.m_topTeamInfoBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnTopTeamInfoClicked)); this.m_goBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnGoClicked)); this.m_leftSpr.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnLeftClicked)); this.m_rightSpr.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnRightClicked)); } protected override void OnShow() { base.OnShow(); this.m_doc.CurData = this.m_doc.AutoSelectFirstPassData; this.FillBgTexture(); this.m_doc.ReqFirstPassInfo(); } protected override void OnHide() { base.OnHide(); this.m_bgTexture.SetTexturePath(""); bool flag = this.m_TeamInfoHandler != null; if (flag) { this.m_TeamInfoHandler.SetVisible(false); } } public override void StackRefresh() { base.StackRefresh(); } public override void OnUnload() { DlgHandlerBase.EnsureUnload(ref this.m_TeamInfoHandler); base.OnUnload(); } public void RefreshUI() { this.FillContent(); } public void UiBackRefrsh() { this.FillBgTexture(); this.FillContent(); } private void FillContent() { bool flag = this.m_doc.CurData == null; if (!flag) { this.FillTime(); this.m_tittle1Lab.SetText(string.Format(XStringDefineProxy.GetString("FirstPassTips"), this.m_doc.CurData.FirstPassRow.Des)); string text = string.Format(XStringDefineProxy.GetString("CanGetReward"), this.m_doc.NeedPassTeamCount); text = string.Format("{0}({1}/{2})", text, this.m_doc.CurData.PassTeamCount, this.m_doc.NeedPassTeamCount); this.m_tittle2Lab.SetText(text); bool flag2 = this.m_doc.CurData.CurRank == 0; if (flag2) { text = XStringDefineProxy.GetString("NoPass"); } else { text = string.Format(XStringDefineProxy.GetString("MyRank"), this.m_doc.CurData.CurRank); } this.m_myRankLab.SetText(text); bool isHadReward = this.m_doc.CurData.IsHadReward; if (isHadReward) { this.m_goLab.SetText(XStringDefineProxy.GetString("SRS_FETCH")); this.m_getRewardRedDot.SetActive(true); } else { this.m_goLab.SetText(XStringDefineProxy.GetString("GoToBattle")); this.m_getRewardRedDot.SetActive(false); } this.m_leftSpr.gameObject.SetActive(this.m_doc.IsHadLastData); this.m_rightSpr.gameObject.SetActive(this.m_doc.IsHadNextData); this.m_leftRedDot.SetActive(this.m_doc.MainArrowRedDot(ArrowDirection.Left)); this.m_rightRedDot.SetActive(this.m_doc.MainArrowRedDot(ArrowDirection.Right)); this.m_PariseRedDot.SetActive(this.m_doc.CurData.IsCanPrise); bool flag3 = this.m_doc.CurData.PassTeamCount >= this.m_doc.NeedPassTeamCount; if (flag3) { this.m_tipsLab.gameObject.SetActive(true); this.m_tipsLab.SetText(XStringDefineProxy.GetString("RewardIsNone")); this.m_itemsGo.SetActive(false); } else { this.m_tipsLab.gameObject.SetActive(false); this.m_itemsGo.SetActive(true); bool flag4 = !this.m_doc.CurData.IsHadReward; if (flag4) { this.FileItems(this.m_doc.CurData.GetFirstPassReward(this.m_doc.CurData.PassTeamCount + 1)); } else { this.FileItems(this.m_doc.CurData.GetFirstPassReward(this.m_doc.CurData.CurRank)); } } } } private void FillTime() { XExpeditionDocument specificDocument = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); bool flag = this.m_doc.CurData == null || this.m_doc.CurData.FirstPassRow == null || this.m_doc.CurData.FirstPassRow.SceneID.Length < 1; if (!flag) { ExpeditionTable.RowData expeditionDataByID = specificDocument.GetExpeditionDataByID(this.m_doc.CurData.FirstPassRow.SceneID[0]); bool flag2 = expeditionDataByID == null; if (flag2) { this.m_timeLab.SetText(""); } else { string text = ""; int num = (int)expeditionDataByID.ServerOpenTime[0]; int num2 = (int)expeditionDataByID.ServerOpenTime[1]; XActivityDocument doc = XActivityDocument.Doc; uint severOpenSecond = doc.SeverOpenSecond; bool flag3 = doc.ServerOpenDay < num; if (flag3) { text = string.Format(XSingleton.singleton.GetString("MulActivity_ServerOpenDay"), num - doc.ServerOpenDay); } else { bool flag4 = doc.ServerOpenDay == num; if (flag4) { bool flag5 = severOpenSecond % 3600u == 0u; uint num3; if (flag5) { num3 = severOpenSecond / 3600u; } else { num3 = severOpenSecond / 3600u + 1u; } bool flag6 = (ulong)num3 < (ulong)((long)num2); if (flag6) { text = string.Format("{0}{1}", (long)num2 - (long)((ulong)num3), XSingleton.singleton.GetString("HOUR_DUARATION")); text = string.Format(XSingleton.singleton.GetString("ActivityOpenTime"), text); } else { bool flag7 = (ulong)num3 == (ulong)((long)num2); if (flag7) { bool flag8 = severOpenSecond % 3600u < 60u; if (flag8) { text = string.Format(XSingleton.singleton.GetString("ActivityOpenTime"), XSingleton.singleton.GetString("LessOneHour")); } } } } } this.m_timeLab.SetText(text); } } } private void FillBgTexture() { this.m_bgTexture.SetTexturePath("atlas/UI/common/Pic/" + this.m_doc.CurData.FirstPassRow.BgTexName); } private void FileItems(RewardAuxData data) { bool flag = data == null; if (!flag) { bool flag2 = data.RankRang[1] == 1; if (flag2) { this.m_itemTittleLab.SetText(XStringDefineProxy.GetString("FirstPassReward")); } else { this.m_itemTittleLab.SetText(string.Format(XStringDefineProxy.GetString("RankReward1"), data.RankRang[1])); } this.m_ItemPool.ReturnAll(false); for (int i = 0; i < data.RewardDataList.Count; i++) { GameObject gameObject = this.m_ItemPool.FetchGameObject(false); gameObject.transform.parent = this.m_itemsGo.transform; gameObject.name = i.ToString(); gameObject.transform.localScale = Vector3.one; gameObject.transform.localPosition = new Vector3((float)(this.m_ItemPool.TplWidth * i), 0f, 0f); IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; ixuisprite.ID = (ulong)((long)data.RewardDataList[i].Id); XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, data.RewardDataList[i].Id, data.RewardDataList[i].Count, false); ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); } } } private bool OnViewRewardClicked(IXUIButton sp) { DlgBase.singleton.SetVisible(true, true); return true; } private bool OnTopTeamInfoClicked(IXUIButton sp) { this.m_leftSpr.gameObject.SetActive(false); this.m_rightSpr.gameObject.SetActive(false); DlgHandlerBase.EnsureCreate(ref this.m_TeamInfoHandler, this.parent, true, this); return true; } private bool OnGoClicked(IXUIButton sp) { bool flag = this.m_doc.CurData == null; bool result; if (flag) { result = true; } else { bool isHadReward = this.m_doc.CurData.IsHadReward; if (isHadReward) { this.m_doc.ReqFirstPassReward(this.m_doc.CurData.Id); } else { bool flag2 = !XSingleton.singleton.IsSystemOpened((XSysDefine)this.m_doc.CurData.FirstPassRow.SystemId); if (flag2) { int sysOpenServerDay = XSingleton.singleton.GetSysOpenServerDay(this.m_doc.CurData.FirstPassRow.SystemId); XActivityDocument specificDocument = XDocuments.GetSpecificDocument(XActivityDocument.uuID); int serverOpenDay = specificDocument.ServerOpenDay; int num = sysOpenServerDay - serverOpenDay; bool flag3 = sysOpenServerDay == 0 || num <= 0; if (flag3) { XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("SYSTEM_NOT_OPEN"), "fece00"); } else { XSingleton.singleton.ShowSystemTip(string.Format(XStringDefineProxy.GetString("MulActivity_ServerOpenDay"), num), "fece00"); } return true; } XSingleton.singleton.OpenSystem(this.m_doc.CurData.FirstPassRow.SystemId); } result = true; } return result; } private void OnLeftClicked(IXUISprite sp) { bool isHadLastData = this.m_doc.IsHadLastData; if (isHadLastData) { this.m_doc.CurData = this.m_doc.GetLastFirstPassData(); this.FillBgTexture(); this.FillContent(); } } private void OnRightClicked(IXUISprite sp) { bool isHadNextData = this.m_doc.IsHadNextData; if (isHadNextData) { this.m_doc.CurData = this.m_doc.GetNextFirstPassData(); this.FillBgTexture(); this.FillContent(); } } } }