using System; using System.Collections.Generic; using UILib; using UnityEngine; using XMainClient.UI; using XMainClient.UI.UICommon; using XUtliPoolLib; namespace XMainClient { internal class BigMeleeEntranceView : DlgBase<BigMeleeEntranceView, BigMeleeEntranceBehaviour> { public override bool autoload { get { return true; } } public override bool pushstack { get { return true; } } public override bool hideMainMenu { get { return true; } } public override bool fullscreenui { get { return true; } } public override string fileName { get { return "GameSystem/BigMelee/BigMeleeEntrance"; } } public override int sysid { get { return XFastEnumIntEqualityComparer<XSysDefine>.ToInt(XSysDefine.XSys_BigMelee); } } private XBigMeleeEntranceDocument doc = null; private PointRewardHandler _PointRewardHandler; private RankRewardHandler _RankRewardHandler; private string[] reward = XSingleton<XGlobalConfig>.singleton.GetValue("BigMeleeShowReward").Split(new char[] { '|' }); protected override void Init() { this.doc = XDocuments.GetSpecificDocument<XBigMeleeEntranceDocument>(XBigMeleeEntranceDocument.uuID); } public override void RegisterEvent() { base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseClicked)); base.uiBehaviour.m_Help.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnHelpClicked)); base.uiBehaviour.m_Join.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnJoinClicked)); base.uiBehaviour.m_PointRewardBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnPointRewardClicked)); base.uiBehaviour.m_RankRewardBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnRankRewardClicked)); } protected override void OnShow() { base.OnShow(); base.uiBehaviour.m_Rule.SetText(XSingleton<UiUtility>.singleton.ReplaceReturn(XStringDefineProxy.GetString("BIG_MELEE_RULE"))); base.uiBehaviour.m_Time.SetText(XSingleton<UiUtility>.singleton.ReplaceReturn(XStringDefineProxy.GetString("BIG_MELEE_TIME"))); this.Refresh(); } public void Refresh() { base.uiBehaviour.m_RewardShowPool.FakeReturnAll(); for (int i = 0; i < this.reward.Length; i++) { GameObject gameObject = base.uiBehaviour.m_RewardShowPool.FetchGameObject(false); gameObject.transform.localPosition = new Vector3((float)(i * base.uiBehaviour.m_RewardShowPool.TplWidth), 0f, 0f) + base.uiBehaviour.m_RewardShowPool.TplPos; uint num = uint.Parse(this.reward[i]); Transform transform = gameObject.transform.Find("Item"); XSingleton<XItemDrawerMgr>.singleton.normalItemDrawer.DrawItem(transform.gameObject, (int)num, 0, false); IXUISprite ixuisprite = transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; ixuisprite.ID = (ulong)num; ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton<UiUtility>.singleton.OnItemClick)); } base.uiBehaviour.m_RewardShowPool.ActualReturnAll(false); } protected override void OnHide() { base.OnHide(); } protected override void OnUnload() { DlgHandlerBase.EnsureUnload<PointRewardHandler>(ref this._PointRewardHandler); DlgHandlerBase.EnsureUnload<RankRewardHandler>(ref this._RankRewardHandler); base.OnUnload(); } public bool OnCloseClicked(IXUIButton btn) { this.SetVisibleWithAnimation(false, null); return true; } private bool OnHelpClicked(IXUIButton btn) { DlgBase<XCommonHelpTipView, XCommonHelpTipBehaviour>.singleton.ShowHelp(XSysDefine.XSys_BigMelee); return true; } public bool OnJoinClicked(IXUIButton btn) { bool flag = XTeamDocument.GoSingleBattleBeforeNeed(new ButtonClickEventHandler(this.OnJoinClicked), btn); bool result; if (flag) { result = true; } else { this.doc.ReqJoin(); result = true; } return result; } public bool OnPointRewardClicked(IXUIButton btn) { DlgHandlerBase.EnsureCreate<PointRewardHandler>(ref this._PointRewardHandler, base.uiBehaviour.m_Bg, false, null); bool flag = this._PointRewardHandler.Sys != XSysDefine.XSys_BigMelee; if (flag) { List<BigMeleePointReward.RowData> pointRewardList = this.doc.GetPointRewardList(); List<PointRewardData> list = new List<PointRewardData>(pointRewardList.Count); for (int i = 0; i < pointRewardList.Count; i++) { PointRewardData pointRewardData = default(PointRewardData); pointRewardData.Init(); pointRewardData.point = pointRewardList[i].point; for (int j = 0; j < pointRewardList[i].reward.Count; j++) { pointRewardData.rewardItem.Add(pointRewardList[i].reward[j, 0], pointRewardList[i].reward[j, 1]); } list.Add(pointRewardData); } this._PointRewardHandler.SetData(list, XSysDefine.XSys_BigMelee); } this._PointRewardHandler.SetVisible(true); return true; } public bool OnRankRewardClicked(IXUIButton btn) { DlgHandlerBase.EnsureCreate<RankRewardHandler>(ref this._RankRewardHandler, base.uiBehaviour.m_Bg, false, null); bool flag = this._RankRewardHandler.Sys != XSysDefine.XSys_BigMelee; if (flag) { List<BigMeleeRankReward.RowData> rankRewardList = this.doc.GetRankRewardList(); List<RankRewardData> list = new List<RankRewardData>(rankRewardList.Count); for (int i = 0; i < rankRewardList.Count; i++) { list.Add(new RankRewardData { rankMIN = rankRewardList[i].rank[0], rankMAX = rankRewardList[i].rank[1], rewardID = { rankRewardList[i].reward[i, 0] }, rewardCount = { rankRewardList[i].reward[i, 1] } }); } this._RankRewardHandler.SetData(list, XSysDefine.XSys_BigMelee); } this._RankRewardHandler.SetVisible(true); return true; } } }