From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/LevelRewardArenaHandler.cs | 351 +++++++++++++++++++++ 1 file changed, 351 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/LevelRewardArenaHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/LevelRewardArenaHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/LevelRewardArenaHandler.cs b/Client/Assets/Scripts/XMainClient/LevelRewardArenaHandler.cs new file mode 100644 index 00000000..f11dd8b1 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/LevelRewardArenaHandler.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class LevelRewardArenaHandler : DlgHandlerBase + { + protected override string FileName + { + get + { + return "Battle/LevelReward/LevelRewardArenaFrame"; + } + } + + private XLevelRewardDocument _doc = null; + + private Transform m_ArenaWinFrame; + + private Transform m_ArenaDrawFrame; + + private Transform m_ArenaLoseFrame; + + private IXUISprite m_ArenaContinue; + + private IXUILabel m_ArenaReturnLabel; + + private IXUILabel m_ArenaRankUpNum; + + private IXUISprite m_ArenaRankUpArrow; + + private IXUISprite m_ArenaRankUp; + + private IXUILabel m_ArenaGemNum; + + private IXUILabel m_ArenaMissTip; + + private IXUILabel m_InvitePKResult; + + private GameObject m_InvitePK; + + private IXUISprite m_InvitePKReturn; + + private IXUISprite m_InvitePKAgain; + + private IXUISprite m_Qualifying; + + private IXUISprite m_QualifyRankUpArrow; + + private IXUILabel m_QualifyFirstRank; + + private GameObject m_QualifyRankTips; + + private IXUILabel m_QualifyRankUpNum; + + private IXUISprite m_QualifyPointUpArrow; + + private IXUILabel m_QualifyPointUpNum; + + private IXUILabel m_QualifyHonorNum; + + private XUIPool m_RewardPool; + + private IXUIList m_RewardList; + + private IXUILabel m_HonorUpTip2; + + private Vector3 m_itemScale = new Vector3(0.6f, 0.6f, 0.6f); + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XLevelRewardDocument.uuID); + this.InitUI(); + } + + private void InitUI() + { + this.m_ArenaWinFrame = base.transform.Find("Result/Win"); + this.m_ArenaDrawFrame = base.transform.Find("Result/Draw"); + this.m_ArenaLoseFrame = base.transform.Find("Result/Lose"); + this.m_ArenaContinue = (base.transform.Find("Continue").GetComponent("XUISprite") as IXUISprite); + this.m_ArenaReturnLabel = (base.transform.Find("Continue/Text").GetComponent("XUILabel") as IXUILabel); + this.m_ArenaRankUp = (base.transform.Find("ArenaUp").GetComponent("XUISprite") as IXUISprite); + this.m_ArenaRankUpNum = (base.transform.Find("ArenaUp/ArenaRankUpNum").GetComponent("XUILabel") as IXUILabel); + this.m_ArenaRankUpArrow = (base.transform.Find("ArenaUp/RankUpArrow").GetComponent("XUISprite") as IXUISprite); + this.m_ArenaGemNum = (base.transform.Find("ArenaUp/GemUpNum").GetComponent("XUILabel") as IXUILabel); + this.m_ArenaMissTip = (base.transform.Find("ArenaUp/ArenaMissTip").GetComponent("XUILabel") as IXUILabel); + this.m_Qualifying = (base.transform.Find("Qualifying").GetComponent("XUISprite") as IXUISprite); + this.m_QualifyFirstRank = (base.transform.Find("Qualifying/FirstRank").GetComponent("XUILabel") as IXUILabel); + this.m_QualifyRankTips = base.transform.Find("Qualifying/RankUpTip").gameObject; + this.m_QualifyRankUpNum = (base.transform.Find("Qualifying/RankUpNum").GetComponent("XUILabel") as IXUILabel); + this.m_QualifyRankUpArrow = (base.transform.Find("Qualifying/RankUpArrow").GetComponent("XUISprite") as IXUISprite); + this.m_QualifyPointUpNum = (base.transform.Find("Qualifying/PointUpNum").GetComponent("XUILabel") as IXUILabel); + this.m_QualifyPointUpArrow = (base.transform.Find("Qualifying/PointUpArrow").GetComponent("XUISprite") as IXUISprite); + this.m_QualifyHonorNum = (base.transform.Find("Qualifying/HonorUpNum").GetComponent("XUILabel") as IXUILabel); + this.m_InvitePKResult = (base.transform.Find("InvitePK").GetComponent("XUILabel") as IXUILabel); + this.m_InvitePK = base.transform.Find("InvitePKAgain").gameObject; + this.m_InvitePKReturn = (base.transform.Find("InvitePKAgain/Return").GetComponent("XUISprite") as IXUISprite); + this.m_InvitePKAgain = (base.transform.Find("InvitePKAgain/Again").GetComponent("XUISprite") as IXUISprite); + this.m_RewardPool = new XUIPool(XSingleton.singleton.m_uiTool); + Transform transform = base.transform.Find("Qualifying/HonorExtra/item"); + this.m_RewardPool.SetupPool(transform.parent.parent.gameObject, transform.gameObject, 3u, false); + this.m_RewardList = (base.transform.Find("Qualifying/HonorExtra").GetComponent("XUIList") as IXUIList); + this.m_HonorUpTip2 = (base.transform.Find("Qualifying/HonorUpTip2").GetComponent("XUILabel") as IXUILabel); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_ArenaContinue.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnContinueClick)); + this.m_InvitePKAgain.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnInvitePKAgain)); + this.m_InvitePKReturn.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnContinueClick)); + } + + private void OnContinueClick(IXUISprite sp) + { + this._doc.SendLeaveScene(); + } + + private void OnInvitePKAgain(IXUISprite sp) + { + XPKInvitationDocument specificDocument = XDocuments.GetSpecificDocument(XPKInvitationDocument.uuID); + specificDocument.AskInvitePKAgain(); + } + + private void ShowQualifying(IXUISprite sp) + { + base.SetVisible(false); + DlgBase.singleton.SetVisibleWithAnimation(true, null); + } + + protected override void OnShow() + { + base.OnShow(); + this.ShowArenaFrame(); + } + + private void InitAwardList(List items) + { + bool flag = items == null || items.Count == 0; + if (flag) + { + this.m_HonorUpTip2.Alpha = 0f; + this.m_RewardList.SetVisible(false); + } + else + { + this.m_HonorUpTip2.Alpha = 1f; + this.m_RewardList.SetVisible(true); + this.m_RewardPool.FakeReturnAll(); + int i = 0; + int count = items.Count; + while (i < count) + { + GameObject gameObject = this.m_RewardPool.FetchGameObject(false); + gameObject.transform.parent = this.m_RewardList.gameObject.transform; + gameObject.transform.localPosition = new Vector3((float)(i * 60), 0f, 0f); + gameObject.transform.localScale = this.m_itemScale; + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, (int)items[i].itemID, (int)items[i].itemCount, false); + IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = (ulong)items[i].itemID; + bool isbind = items[i].isbind; + if (isbind) + { + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnBindItemClick)); + } + else + { + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton.singleton.OnItemClick)); + } + i++; + } + this.m_RewardPool.ActualReturnAll(false); + this.m_RewardList.Refresh(); + } + } + + public void ShowArenaFrame() + { + SceneType currentStage = this._doc.CurrentStage; + if (currentStage <= SceneType.SCENE_PK) + { + if (currentStage == SceneType.SCENE_ARENA) + { + this.m_ArenaRankUp.SetVisible(true); + this.m_Qualifying.SetVisible(false); + this.m_InvitePKResult.SetVisible(false); + this.m_InvitePK.SetActive(false); + this.m_ArenaContinue.SetVisible(true); + this.m_ArenaRankUpNum.SetText(this._doc.ArenaRankUp.ToString()); + this.m_ArenaGemNum.SetText(this._doc.ArenaGemUp.ToString()); + this.SetBattleResultTitle(PkResultType.PkResult_Win); + bool isArenaMiss = this._doc.IsArenaMiss; + if (isArenaMiss) + { + this.m_ArenaMissTip.SetVisible(true); + bool flag = this._doc.ArenaRankUp == 0; + if (flag) + { + this.m_ArenaMissTip.SetText(XStringDefineProxy.GetString("ArenaTargetMissed")); + } + else + { + this.m_ArenaMissTip.SetText(XStringDefineProxy.GetString("ArenaTargetRankChanged", new object[] + { + this._doc.ArenaRankUp + })); + } + } + else + { + this.m_ArenaMissTip.SetVisible(false); + } + this.m_ArenaReturnLabel.SetText(XStringDefineProxy.GetString("LEVEL_REWARD_RETURN_ARENA")); + return; + } + if (currentStage != SceneType.SCENE_PK) + { + return; + } + } + else + { + if (currentStage == SceneType.SCENE_INVFIGHT) + { + this.m_ArenaRankUp.SetVisible(false); + this.m_Qualifying.SetVisible(false); + this.m_InvitePKResult.SetVisible(true); + this.m_InvitePK.SetActive(true); + this.m_ArenaContinue.SetVisible(false); + bool isWin = this._doc.InvFightBattleData.isWin; + if (isWin) + { + this.SetBattleResultTitle(PkResultType.PkResult_Win); + this.m_InvitePKResult.SetText(XStringDefineProxy.GetString("PK_RESULT_WIN", new object[] + { + this._doc.InvFightBattleData.rivalName + })); + } + else + { + this.SetBattleResultTitle(PkResultType.PkResult_Lose); + this.m_InvitePKResult.SetText(XStringDefineProxy.GetString("PK_RESULT_LOSE", new object[] + { + this._doc.InvFightBattleData.rivalName + })); + } + this.m_ArenaReturnLabel.SetText(XStringDefineProxy.GetString("LEVEL_REWARD_RETURN_ARENA")); + return; + } + if (currentStage != SceneType.SCENE_PKTWO) + { + return; + } + } + bool flag2 = this._doc.CurrentStage == SceneType.SCENE_PK; + if (flag2) + { + this.m_ArenaContinue.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.ShowQualifying)); + } + this.m_ArenaRankUp.SetVisible(false); + this.m_InvitePKResult.SetVisible(false); + this.m_Qualifying.SetVisible(true); + this.m_InvitePK.SetActive(false); + this.m_ArenaContinue.SetVisible(true); + this.SetBattleResultTitle(this._doc.QualifyingBattleData.QualifyingResult); + switch (this._doc.QualifyingBattleData.QualifyingResult) + { + case PkResultType.PkResult_Win: + { + bool flag3 = this._doc.QualifyingBattleData.opState == KKVsRoleState.KK_VS_ROLE_UNLOAD; + if (flag3) + { + XSingleton.singleton.ShowSystemNoticeTip(XSingleton.singleton.GetString("LoadTimeOutWin")); + } + break; + } + case PkResultType.PkResult_Lose: + { + bool flag4 = this._doc.QualifyingBattleData.myState == KKVsRoleState.KK_VS_ROLE_UNLOAD; + if (flag4) + { + XSingleton.singleton.ShowSystemNoticeTip(XSingleton.singleton.GetString("LoadTimeOutLose")); + } + break; + } + case PkResultType.PkResult_Draw: + { + bool flag5 = this._doc.QualifyingBattleData.myState == KKVsRoleState.KK_VS_ROLE_UNLOAD || this._doc.QualifyingBattleData.opState == KKVsRoleState.KK_VS_ROLE_UNLOAD; + if (flag5) + { + XSingleton.singleton.ShowSystemNoticeTip(XSingleton.singleton.GetString("LoadTimeOutDraw")); + } + break; + } + } + this.m_ArenaReturnLabel.SetText(XStringDefineProxy.GetString("LEVEL_REWARD_RETURN_ARENA")); + bool flag6 = this._doc.QualifyingBattleData.FirstRank == 0; + if (flag6) + { + this.m_QualifyRankTips.SetActive(true); + this.m_QualifyRankUpNum.SetVisible(true); + this.m_QualifyRankUpArrow.SetVisible(true); + this.m_QualifyFirstRank.SetVisible(false); + this.m_QualifyRankUpNum.SetText(string.Format("{0}{1}", (this._doc.QualifyingBattleData.QualifyingRankChange >= 0) ? "+" : "", this._doc.QualifyingBattleData.QualifyingRankChange)); + this.m_QualifyRankUpArrow.SetSprite((this._doc.QualifyingBattleData.QualifyingRankChange >= 0) ? "hall_zljt_0" : "hall_zljt_1"); + } + else + { + this.m_QualifyRankTips.SetActive(false); + this.m_QualifyRankUpNum.SetVisible(false); + this.m_QualifyRankUpArrow.SetVisible(false); + this.m_QualifyFirstRank.SetVisible(true); + this.m_QualifyFirstRank.SetText(string.Format(XStringDefineProxy.GetString("PVP_FIRSTRANK"), this._doc.QualifyingBattleData.FirstRank)); + } + this.m_QualifyPointUpNum.SetText(string.Format("{0}{1}", (this._doc.QualifyingBattleData.QualifyingPointChange >= 0) ? "+" : "", this._doc.QualifyingBattleData.QualifyingPointChange)); + this.m_QualifyHonorNum.SetText(this._doc.QualifyingBattleData.QualifyingHonorChange.ToString()); + this.m_QualifyPointUpArrow.SetSprite((this._doc.QualifyingBattleData.QualifyingPointChange >= 0) ? "hall_zljt_0" : "hall_zljt_1"); + this.InitAwardList(this._doc.QualifyingBattleData.QualifyingHonorItems); + } + + private void SetBattleResultTitle(PkResultType state) + { + switch (state) + { + case PkResultType.PkResult_Win: + this.m_ArenaWinFrame.gameObject.SetActive(true); + this.m_ArenaDrawFrame.gameObject.SetActive(false); + this.m_ArenaLoseFrame.gameObject.SetActive(false); + break; + case PkResultType.PkResult_Lose: + this.m_ArenaWinFrame.gameObject.SetActive(false); + this.m_ArenaDrawFrame.gameObject.SetActive(false); + this.m_ArenaLoseFrame.gameObject.SetActive(true); + break; + case PkResultType.PkResult_Draw: + this.m_ArenaWinFrame.gameObject.SetActive(false); + this.m_ArenaDrawFrame.gameObject.SetActive(true); + this.m_ArenaLoseFrame.gameObject.SetActive(false); + break; + } + } + } +} -- cgit v1.1-26-g67d0