From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/UI/XFreeTeamLeagueMainView.cs | 465 +++++++++++++++++++++ 1 file changed, 465 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/XFreeTeamLeagueMainView.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/XFreeTeamLeagueMainView.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/XFreeTeamLeagueMainView.cs b/Client/Assets/Scripts/XMainClient/UI/XFreeTeamLeagueMainView.cs new file mode 100644 index 00000000..511e80aa --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XFreeTeamLeagueMainView.cs @@ -0,0 +1,465 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class XFreeTeamLeagueMainView : DlgBase + { + public override string fileName + { + get + { + return "GameSystem/TeamLeague/TeamLeagueMain"; + } + } + + public override int layer + { + get + { + return 1; + } + } + + public override int group + { + get + { + return 1; + } + } + + public override bool autoload + { + get + { + return true; + } + } + + public override bool hideMainMenu + { + get + { + return true; + } + } + + public override bool pushstack + { + get + { + return true; + } + } + + public override bool fullscreenui + { + get + { + return true; + } + } + + private XDummy[] _Avatars; + + protected override void Init() + { + this.InitProperties(); + this.InitTopRewards(); + } + + protected override void OnUnload() + { + base.OnUnload(); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + } + + public override void StackRefresh() + { + base.StackRefresh(); + XFreeTeamVersusLeagueDocument.Doc.SendGetLeagueBattleInfo(); + } + + protected override void OnShow() + { + base.OnShow(); + XFreeTeamVersusLeagueDocument.Doc.SendGetLeagueBattleInfo(); + this.InitRankRewards(); + base.uiBehaviour.RankListRoot.gameObject.SetActive(false); + } + + protected override void OnHide() + { + this.ClearState(); + base.OnHide(); + } + + public void RefreshUI() + { + this.UpdateActivityRules(); + this.UpdateTeamDetailInfo(); + this.UpdateRoleAvartars(); + this.UpdateActivityRewards(); + this.UpdateFinalResultFlag(); + this.RefreshMyRank(); + } + + public void ClearState() + { + base.uiBehaviour.rankWrapContent.SetContentCount(0, false); + base.uiBehaviour.MemberUIPool.ReturnAll(false); + XSingleton.singleton.EnableMainDummy(false, null); + base.Return3DAvatarPool(); + this.ClearAvatarStates(); + } + + public void UpdateTeamDetailInfo() + { + XFreeTeamVersusLeagueDocument doc = XFreeTeamVersusLeagueDocument.Doc; + base.uiBehaviour.CreateTeamBtn.gameObject.SetActive(false); + base.uiBehaviour.TeamMatchBtn.gameObject.SetActive(doc.TeamLeagueID > 0UL); + base.uiBehaviour.TeamQuitBtn.gameObject.SetActive(doc.TeamLeagueID > 0UL); + base.uiBehaviour.TeamInfoRoot.gameObject.SetActive(true); + bool flag = doc.TeamLeagueID > 0UL; + if (flag) + { + base.uiBehaviour.PartInTimesLabel.SetText(doc.BattledTimes.ToString()); + base.uiBehaviour.TeamNameLabel.SetText(doc.LeagueTeamName); + base.uiBehaviour.TeamScoreLabel.SetText(doc.BattleScore.ToString()); + base.uiBehaviour.WinPercentageLabel.SetText((int)(doc.BattleWinRate * 100f) + "%"); + } + else + { + base.uiBehaviour.CreateTeamBtn.gameObject.SetActive(true); + base.uiBehaviour.TeamInfoRoot.gameObject.SetActive(false); + } + } + + public void UpdateRoleAvartars() + { + base.Return3DAvatarPool(); + base.Alloc3DAvatarPool("TeamLeagueMain"); + bool flag = XFreeTeamVersusLeagueDocument.Doc.TeamLeagueID > 0UL; + if (flag) + { + base.uiBehaviour.MemberUIPool.ReturnAll(false); + int myTeamMemberCount = XFreeTeamVersusLeagueDocument.Doc.GetMyTeamMemberCount(); + for (int i = 0; i < myTeamMemberCount; i++) + { + LeagueTeamDetailInfo myTeamMemberInfoByIndex = XFreeTeamVersusLeagueDocument.Doc.GetMyTeamMemberInfoByIndex(i); + GameObject gameObject = base.uiBehaviour.MemberUIPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3((float)(base.uiBehaviour.MemberUIPool.TplWidth * i), 0f, 0f); + this.UpdateTeamMemberInfo(gameObject, myTeamMemberInfoByIndex, i); + } + } + } + + public void RefreshMyRank() + { + uint myTeamRank = XFreeTeamVersusLeagueDocument.Doc.MyTeamRank; + bool flag = myTeamRank == XRankDocument.INVALID_RANK; + if (flag) + { + base.uiBehaviour.MainViewRankLabel.SetText(XSingleton.singleton.GetString("ARENA_NO_RANK")); + } + else + { + base.uiBehaviour.MainViewRankLabel.SetText(string.Format(XStringDefineProxy.GetString("Qualifying_Rank_Reward_Desc1"), myTeamRank + 1u)); + } + bool activeSelf = base.uiBehaviour.RankListRoot.gameObject.activeSelf; + if (activeSelf) + { + bool flag2 = myTeamRank == XRankDocument.INVALID_RANK; + if (flag2) + { + base.uiBehaviour.MyRankLabel.SetText(XSingleton.singleton.GetString("ARENA_NO_RANK")); + } + else + { + base.uiBehaviour.MyRankLabel.SetText(string.Format(XStringDefineProxy.GetString("Qualifying_Rank_Reward_Desc1"), myTeamRank + 1u)); + } + } + } + + public override void OnUpdate() + { + base.OnUpdate(); + bool activeSelf = base.uiBehaviour.RankListRoot.gameObject.activeSelf; + if (activeSelf) + { + this.SetRewardLeftTime(); + } + } + + private void SetRewardLeftTime() + { + int rewardsLeftTime = XFreeTeamVersusLeagueDocument.Doc.GetRewardsLeftTime(); + bool flag = rewardsLeftTime >= 1; + if (flag) + { + base.uiBehaviour.RewardsLeftTimeLabel.gameObject.SetActive(true); + bool flag2 = rewardsLeftTime >= 43200; + if (flag2) + { + base.uiBehaviour.RewardsLeftTimeLabel.SetText(XSingleton.singleton.TimeDuarationFormatString(rewardsLeftTime, 4)); + } + else + { + base.uiBehaviour.RewardsLeftTimeLabel.SetText(XSingleton.singleton.TimeDuarationFormatString(rewardsLeftTime, 5)); + } + } + else + { + base.uiBehaviour.RewardsLeftTimeLabel.gameObject.SetActive(false); + } + } + + private void InitProperties() + { + this._Avatars = new XDummy[4]; + base.uiBehaviour.HonorShopBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnShopBtnClicked)); + base.uiBehaviour.RankBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRankBtnClicked)); + base.uiBehaviour.RankRewardsBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRankRewardsBtnClicked)); + base.uiBehaviour.VersusRecordsBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnVersusRecordsBtnClicked)); + base.uiBehaviour.FinalResultBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnFinalResultBtnClicked)); + base.uiBehaviour.CreateTeamBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCreateOrMatchClicked)); + base.uiBehaviour.TeamMatchBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCreateOrMatchClicked)); + base.uiBehaviour.TeamQuitBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnQuitTeamLeagueClicked)); + base.uiBehaviour.CloseBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseBtnClicked)); + base.uiBehaviour.HelpBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnHelpBtnClicked)); + base.uiBehaviour.RankListRoot.gameObject.SetActive(true); + base.uiBehaviour.rankWrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this.UpdateRankRewardsItem)); + base.uiBehaviour.RankListMask.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnCloseRankList)); + } + + private void UpdateRankRewardsItem(Transform itemTransform, int index) + { + LeagueRankReward leagueRankRewardTable = XFreeTeamVersusLeagueDocument.LeagueRankRewardTable; + bool flag = index < leagueRankRewardTable.Table.Length; + if (flag) + { + LeagueRankReward.RowData rowData = leagueRankRewardTable.Table[index]; + IXUISprite ixuisprite = itemTransform.Find("RankImage").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel = itemTransform.Find("Rank").GetComponent("XUILabel") as IXUILabel; + bool flag2 = rowData.rank[0] == rowData.rank[1] && rowData.rank[0] <= 3u; + if (flag2) + { + ixuilabel.gameObject.SetActive(false); + ixuisprite.gameObject.SetActive(true); + ixuisprite.SetSprite(ixuisprite.spriteName.Substring(0, ixuisprite.spriteName.Length - 1) + rowData.rank[0]); + } + else + { + ixuilabel.gameObject.SetActive(true); + ixuisprite.gameObject.SetActive(false); + ixuilabel.SetText(string.Format(XSingleton.singleton.GetString("LeagueTeamNormalRank"), rowData.rank[0], rowData.rank[1])); + } + Transform transform = itemTransform.Find("Grid"); + int childCount = transform.childCount; + int count = rowData.reward.Count; + int num = Mathf.Min(childCount, count); + int i; + for (i = 0; i < num; i++) + { + Transform child = transform.GetChild(i); + child.gameObject.SetActive(true); + XSingleton.singleton.normalItemDrawer.DrawItem(child.gameObject, (int)rowData.reward[i, 0], (int)rowData.reward[i, 1], false); + IXUISprite ixuisprite2 = child.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite2.ID = (ulong)rowData.reward[i, 0]; + ixuisprite2.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); + } + while (i < childCount) + { + Transform child2 = transform.GetChild(i); + child2.gameObject.SetActive(false); + i++; + } + } + } + + private bool OnFinalResultBtnClicked(IXUIButton button) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + return true; + } + + private bool OnVersusRecordsBtnClicked(IXUIButton button) + { + bool flag = XFreeTeamVersusLeagueDocument.Doc.TeamLeagueID > 0UL; + if (flag) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + } + else + { + XSingleton.singleton.ShowSystemTip(XSingleton.singleton.GetString("CreateLeagueTeamFirst"), "fece00"); + } + return true; + } + + private bool OnRankBtnClicked(IXUIButton button) + { + DlgBase.singleton.SetVisibleWithAnimation(true, null); + XRankDocument specificDocument = XDocuments.GetSpecificDocument(XRankDocument.uuID); + specificDocument.ReqRankList(XRankType.LeagueTeamRank); + return true; + } + + private bool OnRankRewardsBtnClicked(IXUIButton button) + { + base.uiBehaviour.RankListRoot.gameObject.SetActive(true); + this.RefreshMyRank(); + return true; + } + + private void OnCloseRankList(IXUISprite uiSprite) + { + base.uiBehaviour.RankListRoot.gameObject.SetActive(false); + } + + private void UpdateActivityRewards() + { + } + + private void UpdateFinalResultFlag() + { + IXUILabel ixuilabel = base.uiBehaviour.FinalResultBtn.gameObject.transform.Find("Type").GetComponent("XUILabel") as IXUILabel; + string text = (XFreeTeamVersusLeagueDocument.Doc.EliStateType == LeagueEliType.LeagueEliType_Cross) ? XSingleton.singleton.GetString("LeagueCrossSeverFight") : XSingleton.singleton.GetString("LeagueEliminationResult"); + ixuilabel.SetText(text); + base.uiBehaviour.FinalResultBtn.gameObject.SetActive(XFreeTeamVersusLeagueDocument.Doc.EliStateType != LeagueEliType.LeagueEliType_None); + } + + private void ClearAvatarStates() + { + for (int i = 0; i < 4; i++) + { + bool flag = this._Avatars[i] == null; + if (!flag) + { + this._Avatars[i] = null; + } + } + } + + private void UpdateTeamMemberInfo(GameObject obj, LeagueTeamDetailInfo info, int index) + { + Transform transform = obj.transform.Find("Info"); + IXUILabel ixuilabel = transform.Find("Name").GetComponent("XUILabel") as IXUILabel; + ixuilabel.SetText(info.roleBrief.name); + IXUILabel ixuilabel2 = transform.Find("Level").GetComponent("XUILabel") as IXUILabel; + ixuilabel2.SetText(info.roleBrief.level.ToString()); + IXUISprite ixuisprite = transform.Find("ProfIcon").GetComponent("XUISprite") as IXUISprite; + int profID = XFastEnumIntEqualityComparer.ToInt(info.roleBrief.profession); + ixuisprite.spriteName = XSingleton.singleton.GetProfIcon(profID); + Transform transform2 = transform.Find("Snapshot"); + IUIDummy snapShot = transform2.GetComponent("UIDummy") as IUIDummy; + bool flag = info.roleBrief.roleid == XSingleton.singleton.XPlayerData.RoleID; + if (flag) + { + XSingleton.singleton.EnableMainDummy(true, snapShot); + XSingleton.singleton.ResetMainAnimation(); + } + else + { + XDummy xdummy = XSingleton.singleton.FindCreateCommonRoleDummy(this.m_dummPool, info.roleBrief.roleid, (uint)XFastEnumIntEqualityComparer.ToInt(info.roleBrief.profession), info.roleBrief.outlook, snapShot, index); + this._Avatars[index] = xdummy; + } + } + + private bool OnCreateOrMatchClicked(IXUIButton btn) + { + XTeamDocument specificDocument = XDocuments.GetSpecificDocument(XTeamDocument.uuID); + XExpeditionDocument specificDocument2 = XDocuments.GetSpecificDocument(XExpeditionDocument.uuID); + List expeditionList = specificDocument2.GetExpeditionList(TeamLevelType.TeamLevelTeamLeague); + bool flag = expeditionList.Count > 0; + if (flag) + { + specificDocument.SetAndMatch(expeditionList[0].DNExpeditionID); + } + return true; + } + + private bool OnQuitTeamLeagueClicked(IXUIButton btn) + { + string @string = XStringDefineProxy.GetString("TEAM_LEAGUE_QUIT_TIP"); + string string2 = XStringDefineProxy.GetString("COMMON_OK"); + string string3 = XStringDefineProxy.GetString("COMMON_CANCEL"); + DlgBase.singleton.SetVisible(true, true); + DlgBase.singleton.SetSingleButtonMode(false); + DlgBase.singleton.SetLabelsWithSymbols(@string, string2, string3); + DlgBase.singleton.SetModalCallback(new ButtonClickEventHandler(this.OnEnsureQuitTeamLeague), null); + return true; + } + + private bool OnEnsureQuitTeamLeague(IXUIButton btn) + { + DlgBase.singleton.SetVisible(false, true); + XFreeTeamVersusLeagueDocument specificDocument = XDocuments.GetSpecificDocument(XFreeTeamVersusLeagueDocument.uuID); + specificDocument.ReqLeaveTeamLeague(); + return true; + } + + private bool OnCloseBtnClicked(IXUIButton btn) + { + this.SetVisibleWithAnimation(false, null); + return true; + } + + private bool OnHelpBtnClicked(IXUIButton btn) + { + DlgBase.singleton.ShowHelp(XSysDefine.XSys_TeamLeague); + return true; + } + + private bool OnShopBtnClicked(IXUIButton btn) + { + DlgBase.singleton.ShowShopSystem(XSysDefine.XSys_Mall_Honer, 0UL); + return true; + } + + private void InitRankRewards() + { + base.uiBehaviour.RankListRoot.gameObject.SetActive(true); + LeagueRankReward leagueRankRewardTable = XFreeTeamVersusLeagueDocument.LeagueRankRewardTable; + base.uiBehaviour.rankWrapContent.SetContentCount(leagueRankRewardTable.Table.Length, false); + base.uiBehaviour.rankScrollView.ResetPosition(); + } + + private void UpdateActivityRules() + { + base.uiBehaviour.ActivityRulesLabel.SetText(XSingleton.singleton.ReplaceReturn(XFreeTeamVersusLeagueDocument.Doc.GetOpenInstructionString())); + } + + private void InitTopRewards() + { + SeqList sequenceList = XSingleton.singleton.GetSequenceList("LeagueTeamRewards", true); + int i = 0; + int num = Mathf.Min(base.uiBehaviour.RewardsRoot.childCount, (int)sequenceList.Count); + while (i < num) + { + GameObject gameObject = base.uiBehaviour.RewardsRoot.GetChild(i).gameObject; + gameObject.SetActive(true); + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, sequenceList[i, 0], sequenceList[i, 1], false); + IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)((long)sequenceList[i, 0]); + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); + i++; + } + while (i < base.uiBehaviour.RewardsRoot.childCount) + { + base.uiBehaviour.RewardsRoot.GetChild(i).gameObject.SetActive(false); + i++; + } + } + } +} -- cgit v1.1-26-g67d0