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 { 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.ToInt(XSysDefine.XSys_BigMelee); } } private XBigMeleeEntranceDocument doc = null; private PointRewardHandler _PointRewardHandler; private RankRewardHandler _RankRewardHandler; private string[] reward = XSingleton.singleton.GetValue("BigMeleeShowReward").Split(new char[] { '|' }); protected override void Init() { this.doc = XDocuments.GetSpecificDocument(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.singleton.ReplaceReturn(XStringDefineProxy.GetString("BIG_MELEE_RULE"))); base.uiBehaviour.m_Time.SetText(XSingleton.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.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.singleton.OnItemClick)); } base.uiBehaviour.m_RewardShowPool.ActualReturnAll(false); } protected override void OnHide() { base.OnHide(); } protected override void OnUnload() { DlgHandlerBase.EnsureUnload(ref this._PointRewardHandler); DlgHandlerBase.EnsureUnload(ref this._RankRewardHandler); base.OnUnload(); } public bool OnCloseClicked(IXUIButton btn) { this.SetVisibleWithAnimation(false, null); return true; } private bool OnHelpClicked(IXUIButton btn) { DlgBase.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(ref this._PointRewardHandler, base.uiBehaviour.m_Bg, false, null); bool flag = this._PointRewardHandler.Sys != XSysDefine.XSys_BigMelee; if (flag) { List pointRewardList = this.doc.GetPointRewardList(); List list = new List(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(ref this._RankRewardHandler, base.uiBehaviour.m_Bg, false, null); bool flag = this._RankRewardHandler.Sys != XSysDefine.XSys_BigMelee; if (flag) { List rankRewardList = this.doc.GetRankRewardList(); List list = new List(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; } } }