From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/UI/PVPActivityDlg.cs | 292 +++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/PVPActivityDlg.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/PVPActivityDlg.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/PVPActivityDlg.cs b/Client/Assets/Scripts/XMainClient/UI/PVPActivityDlg.cs new file mode 100644 index 00000000..14a16b07 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/PVPActivityDlg.cs @@ -0,0 +1,292 @@ +using System; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class PVPActivityDlg : DlgHandlerBase + { + protected override string FileName + { + get + { + return "GameSystem/DailyActivity/PVPActivityFrame"; + } + } + + private XPVPActivityDocument _doc; + + public XUIPool m_ActivityPool = new XUIPool(XSingleton.singleton.m_uiTool); + + public IXUIScrollView m_ScrollView; + + private IXUIButton m_FameHallBtn; + + private static readonly string ATLAS_PATH = "atlas/UI/GameSystem/Activity/"; + + public IXUIButton m_MilitaryRankBtn; + + protected override void Init() + { + this._doc = (XSingleton.singleton.Doc.GetXComponent(XPVPActivityDocument.uuID) as XPVPActivityDocument); + this.m_ScrollView = (base.PanelObject.transform.Find("Panel").GetComponent("XUIScrollView") as IXUIScrollView); + Transform transform = base.PanelObject.transform.Find("Panel/Tpl"); + this.m_ActivityPool.SetupPool(transform.parent.gameObject, transform.gameObject, 2u, false); + this.m_FameHallBtn = (base.transform.Find("Down/Btn_MobaFamous").GetComponent("XUIButton") as IXUIButton); + this.m_FameHallBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClickedFameHallBtn)); + this.m_MilitaryRankBtn = (base.PanelObject.transform.Find("Down/Btn_MobaRank").GetComponent("XUIButton") as IXUIButton); + this.m_MilitaryRankBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnMilitaryRankBtnClick)); + } + + protected override void OnShow() + { + base.OnShow(); + this.m_MilitaryRankBtn.SetVisible(XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_MilitaryRank)); + this.Refresh(); + } + + protected override void OnHide() + { + base.OnHide(); + XSingleton.singleton.DestroyTextureInActivePool(this.m_ActivityPool, "Tex"); + } + + public override void StackRefresh() + { + base.StackRefresh(); + this.Refresh(); + this.RefreshHallFameBtn(); + } + + private bool OnMilitaryRankBtnClick(IXUIButton btn) + { + bool flag = !XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_MilitaryRank); + bool result; + if (flag) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("ERR_SYS_NOTOPEN"), "fece00"); + result = false; + } + else + { + int sysOpenLevel = XSingleton.singleton.GetSysOpenLevel(XSysDefine.XSys_MilitaryRank); + bool flag2 = (ulong)XSingleton.singleton.XPlayerData.Level < (ulong)((long)sysOpenLevel); + if (flag2) + { + XSingleton.singleton.ShowSystemTip(string.Format(XStringDefineProxy.GetString("LEVEL_REQUIRE_LEVEL"), sysOpenLevel), "fece00"); + } + else + { + XSingleton.singleton.OpenSystem(XSysDefine.XSys_MilitaryRank, 0UL); + } + result = true; + } + return result; + } + + private string GetMissConditionString(PVPActivityList.RowData data) + { + XActivityDocument specificDocument = XDocuments.GetSpecificDocument(XActivityDocument.uuID); + int sysOpenServerDay = XSingleton.singleton.GetSysOpenServerDay((int)data.SysID); + bool flag = specificDocument.ServerOpenDay < sysOpenServerDay; + string result; + if (flag) + { + result = string.Format(XStringDefineProxy.GetString("MulActivity_ServerOpenDay"), sysOpenServerDay - specificDocument.ServerOpenDay); + } + else + { + bool flag2 = XSingleton.singleton.XPlayerData != null && (ulong)XSingleton.singleton.XPlayerData.Level < (ulong)((long)XSingleton.singleton.GetSysOpenLevel((int)data.SysID)); + if (flag2) + { + int sysOpenLevel = XSingleton.singleton.GetSysOpenLevel((int)data.SysID); + result = string.Format(XStringDefineProxy.GetString("MulActivity_ShowTips9"), sysOpenLevel); + } + else + { + result = XStringDefineProxy.GetString("PVPActivityUnOpen"); + } + } + return result; + } + + public void OnPVPActivityClick(IXUISprite iSp) + { + XSysDefine xsysDefine = (XSysDefine)iSp.ID; + PVPActivityList.RowData bySysID = this._doc.PVPActivityTable.GetBySysID((uint)iSp.ID); + XActivityDocument specificDocument = XDocuments.GetSpecificDocument(XActivityDocument.uuID); + XFreeTeamVersusLeagueDocument specificDocument2 = XDocuments.GetSpecificDocument(XFreeTeamVersusLeagueDocument.uuID); + int sysOpenServerDay = XSingleton.singleton.GetSysOpenServerDay((int)iSp.ID); + bool flag = specificDocument.ServerOpenDay < sysOpenServerDay; + if (flag) + { + XSingleton.singleton.ShowSystemTip(string.Format(XStringDefineProxy.GetString("MulActivity_ServerOpenDay"), sysOpenServerDay - specificDocument.ServerOpenDay), "fece00"); + } + else + { + bool flag2 = !XSingleton.singleton.IsSystemOpened(xsysDefine); + if (flag2) + { + bool flag3 = XSingleton.singleton.XPlayerData != null && (ulong)XSingleton.singleton.XPlayerData.Level < (ulong)((long)XSingleton.singleton.GetSysOpenLevel((int)bySysID.SysID)); + if (flag3) + { + int sysid = XFastEnumIntEqualityComparer.ToInt(xsysDefine); + int sysOpenLevel = XSingleton.singleton.GetSysOpenLevel(sysid); + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("EXPEDITION_REQUIRED_LEVEL", new object[] + { + sysOpenLevel + }) + XSingleton.singleton.GetSysName(sysid), "fece00"); + } + else + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("PVPActivityUnOpen"), "fece00"); + } + } + else + { + bool flag4 = xsysDefine == XSysDefine.XSys_TeamLeague && !specificDocument2.IsOpen; + if (flag4) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("PVPActivityUnOpen"), "fece00"); + } + else + { + XSingleton.singleton.OpenSystem(xsysDefine, 0UL); + } + } + } + } + + public void Refresh() + { + this.RefreshHallFameBtn(); + this.m_ScrollView.SetPosition(0f); + this.m_ActivityPool.ReturnAll(false); + XFreeTeamVersusLeagueDocument specificDocument = XDocuments.GetSpecificDocument(XFreeTeamVersusLeagueDocument.uuID); + XActivityDocument specificDocument2 = XDocuments.GetSpecificDocument(XActivityDocument.uuID); + for (int i = 0; i < this._doc.PVPActivityTable.Table.Length; i++) + { + PVPActivityList.RowData rowData = this._doc.PVPActivityTable.Table[i]; + GameObject gameObject = this.m_ActivityPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(this.m_ActivityPool.TplPos.x + (float)(i * this.m_ActivityPool.TplWidth), this.m_ActivityPool.TplPos.y, 0f); + IXUISprite ixuisprite = gameObject.GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)rowData.SysID; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnPVPActivityClick)); + IXUITexture ixuitexture = gameObject.transform.Find("Tex").GetComponent("XUITexture") as IXUITexture; + IXUILabel ixuilabel = gameObject.transform.Find("Desc").GetComponent("XUILabel") as IXUILabel; + IXUILabel ixuilabel2 = gameObject.transform.Find("Go").GetComponent("XUILabel") as IXUILabel; + GameObject gameObject2 = gameObject.transform.Find("Lock").gameObject; + GameObject gameObject3 = gameObject.transform.Find("kf").gameObject; + GameObject gameObject4 = gameObject.transform.Find("RedPoint").gameObject; + bool flag = XSingleton.singleton.IsSystemOpened((XSysDefine)rowData.SysID) && specificDocument2.ServerOpenDay >= XSingleton.singleton.GetSysOpenServerDay((int)rowData.SysID); + bool flag2 = true; + bool flag3 = rowData.SysID == 960u; + if (flag3) + { + flag2 = specificDocument.IsOpen; + } + string texturePath = string.Format("{0}{1}", PVPActivityDlg.ATLAS_PATH, rowData.Icon); + ixuitexture.SetTexturePath(texturePath); + ixuitexture.SetEnabled(flag && flag2); + bool flag4 = flag && flag2; + if (flag4) + { + ixuitexture.SetAlpha(1f); + } + else + { + ixuitexture.SetAlpha(0.7058824f); + } + gameObject2.SetActive(!flag); + gameObject3.SetActive(rowData.SysID == 960u && specificDocument.IsCross); + bool sysRedPointState = XSingleton.singleton.GetSysRedPointState((int)rowData.SysID); + gameObject4.SetActive(sysRedPointState); + bool flag5 = sysRedPointState; + if (flag5) + { + IXUILabel ixuilabel3 = gameObject4.gameObject.transform.Find("Num").GetComponent("XUILabel") as IXUILabel; + ixuilabel3.SetText(this.GetLeftCount((XSysDefine)rowData.SysID).ToString()); + } + bool flag6 = !flag; + if (flag6) + { + ixuilabel2.SetText(this.GetMissConditionString(rowData)); + } + else + { + bool flag7 = !flag2; + if (flag7) + { + ixuilabel2.SetText(XStringDefineProxy.GetString("PVPActivityUnOpen")); + } + else + { + ixuilabel2.SetText(""); + } + } + ixuilabel.SetText(rowData.Description); + } + } + + private void RefreshHallFameBtn() + { + bool flag = XSingleton.singleton.IsSystemOpened(XSysDefine.XSys_HallFame); + this.m_FameHallBtn.gameObject.SetActive(flag); + bool flag2 = flag; + if (flag2) + { + Transform transform = this.m_FameHallBtn.gameObject.transform.Find("RedPoint"); + transform.gameObject.SetActive(XHallFameDocument.Doc.CanSupportType.Count > 0); + } + } + + private int GetLeftCount(XSysDefine sys) + { + XSysDefine xsysDefine = sys; + if (xsysDefine <= XSysDefine.XSys_CustomBattle) + { + if (xsysDefine == XSysDefine.XSys_Qualifying) + { + XQualifyingDocument specificDocument = XDocuments.GetSpecificDocument(XQualifyingDocument.uuID); + int @int = XSingleton.singleton.GetInt("QualifyingFirstRewardCount"); + return Mathf.Max(@int - (int)specificDocument.LeftFirstRewardCount, 0); + } + if (xsysDefine == XSysDefine.XSys_CustomBattle) + { + XCustomBattleDocument specificDocument2 = XDocuments.GetSpecificDocument(XCustomBattleDocument.uuID); + return (specificDocument2.BountyModeRedPoint ? 1 : 0) + (specificDocument2.CustomModeRedPoint ? 1 : 0); + } + } + else + { + if (xsysDefine == XSysDefine.XSys_WeekNest) + { + XExpeditionDocument specificDocument3 = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + return specificDocument3.GetDayCount(TeamLevelType.TeamLevelWeekNest, null); + } + if (xsysDefine == XSysDefine.XSys_HeroBattle) + { + XHeroBattleDocument specificDocument4 = XDocuments.GetSpecificDocument(XHeroBattleDocument.uuID); + int int2 = XSingleton.singleton.GetInt("HeroBattleSpecialNum"); + return Math.Max(int2 - (int)specificDocument4.JoinToday, 0); + } + if (xsysDefine == XSysDefine.XSys_Moba) + { + int int3 = XSingleton.singleton.GetInt("MobaStageNum"); + XMobaEntranceDocument specificDocument5 = XDocuments.GetSpecificDocument(XMobaEntranceDocument.uuID); + return ((ulong)specificDocument5.GetRewardStage < (ulong)((long)int3)) ? 1 : 0; + } + } + XSingleton.singleton.AddErrorLog("needless pvpactivity count but try to get it. sys = ", sys.ToString(), null, null, null, null); + return 0; + } + + private bool OnClickedFameHallBtn(IXUIButton button) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + return true; + } + } +} -- cgit v1.1-26-g67d0