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/ExchangeItemDlg.cs | 367 +++++++++++++++++++++ 1 file changed, 367 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/ExchangeItemDlg.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/ExchangeItemDlg.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/ExchangeItemDlg.cs b/Client/Assets/Scripts/XMainClient/UI/ExchangeItemDlg.cs new file mode 100644 index 00000000..6b9fcc8e --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/ExchangeItemDlg.cs @@ -0,0 +1,367 @@ +using System; +using UILib; +using UnityEngine; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class ExchangeItemDlg : DlgBase + { + public override bool autoload + { + get + { + return true; + } + } + + public override string fileName + { + get + { + return "Guild/GuildCollect/ExchangeItemDlg"; + } + } + + private XExchangeItemDocument _doc = null; + + private readonly int COLNUM = 4; + + private Vector2 m_DragDistance = Vector2.zero; + + private bool m_CancelRecord = false; + + private uint _audioPlayToken; + + protected override void Init() + { + base.Init(); + this._doc = XDocuments.GetSpecificDocument(XExchangeItemDocument.uuID); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + base.uiBehaviour.m_Close.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCloseBtnClick)); + base.uiBehaviour.m_EnsureBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnEnsureBtnClick)); + base.uiBehaviour.m_Input.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnInputBtnClick)); + base.uiBehaviour.m_SpeakBtn.RegisterPressEventHandler(new ButtonPressEventHandler(this.OnVoiceButton)); + base.uiBehaviour.m_SpeakBtn.RegisterDragEventHandler(new ButtonDragEventHandler(this.OnVoiceButtonDrag)); + base.uiBehaviour.m_MyVoiceBtn.ID = 0UL; + base.uiBehaviour.m_MyVoiceBtn.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnAudioPlayClick)); + base.uiBehaviour.m_OtherVoiceBtn.ID = 1UL; + base.uiBehaviour.m_OtherVoiceBtn.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnAudioPlayClick)); + } + + protected override void OnShow() + { + base.uiBehaviour.m_MyVoiceBtn.SetVisible(false); + base.uiBehaviour.m_MyInputGo.SetActive(false); + base.uiBehaviour.m_OtherVoiceBtn.SetVisible(false); + base.uiBehaviour.m_OtherInputGo.SetActive(false); + XSingleton.singleton.SetBusStatuMute("bus:/MainGroupControl/Except_Quiz", 0f); + XSingleton.singleton.SetBusStatuMute("bus:/MainGroupControl/Quiz ", 1f); + DlgBase.singleton.SetMaqueeSwitch(false); + XSingleton.singleton.EnableAutoPlay(false); + base.OnShow(); + } + + public void InitShow(string name, uint prof) + { + this.SetVisibleWithAnimation(true, null); + base.uiBehaviour.m_Title.SetText(string.Format(XStringDefineProxy.GetString("ExchangeTitle"), this._doc.ExchangeItemStr)); + base.uiBehaviour.m_MyItemGo.SetActive(false); + base.uiBehaviour.m_OtherItemGo.SetActive(false); + IXUILabel ixuilabel = base.uiBehaviour.transform.Find("Bg/Other/Name").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite = base.uiBehaviour.transform.Find("Bg/Other/head").GetComponent("XUISprite") as IXUISprite; + ixuilabel.SetText(name); + ixuisprite.spriteName = XSingleton.singleton.GetSuperRiskAvatar(prof % 10u); + bool flag = XSingleton.singleton.XPlayerData != null; + if (flag) + { + IXUILabel ixuilabel2 = base.uiBehaviour.transform.Find("Bg/Self/Name").GetComponent("XUILabel") as IXUILabel; + IXUISprite ixuisprite2 = base.uiBehaviour.transform.Find("Bg/Self/head").GetComponent("XUISprite") as IXUISprite; + ixuilabel2.SetText(XSingleton.singleton.XPlayerData.Name); + ixuisprite2.spriteName = XSingleton.singleton.GetSuperRiskAvatar(XSingleton.singleton.XPlayerData.TypeID % 10u); + } + this.OnTipsChange(); + this.OnEnsureStateChange(); + ulong typeFilter = 1UL << this._doc.ExchangeType; + this._doc.ItemList.Clear(); + XSingleton.singleton.Doc.XBagDoc.GetItemsByType(typeFilter, ref this._doc.ItemList); + this.RefreshMyItemList(); + base.uiBehaviour.m_ItemScrollView.ResetPosition(); + } + + public void RefreshMyItemList() + { + base.uiBehaviour.m_MyItemPool.FakeReturnAll(); + Vector3 tplPos = base.uiBehaviour.m_MyItemPool.TplPos; + int num = 0; + for (int i = 0; i < this._doc.ItemList.Count; i++) + { + bool flag = this._doc.ItemList[i].uid == this._doc.CurrentSelectUid && this._doc.ItemList[i].itemCount == 1; + if (!flag) + { + GameObject gameObject = base.uiBehaviour.m_MyItemPool.FetchGameObject(false); + gameObject.transform.localPosition = new Vector3(tplPos.x + (float)(num % this.COLNUM * base.uiBehaviour.m_MyItemPool.TplWidth), tplPos.y - (float)(num / this.COLNUM * base.uiBehaviour.m_MyItemPool.TplHeight), 0f); + ItemList.RowData itemConf = XBagDocument.GetItemConf(this._doc.ItemList[i].itemID); + int itemCount = (this._doc.ItemList[i].uid == this._doc.CurrentSelectUid) ? (this._doc.ItemList[i].itemCount - 1) : this._doc.ItemList[i].itemCount; + XSingleton.singleton.normalItemDrawer.DrawItem(gameObject, itemConf, itemCount, false); + IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = this._doc.ItemList[i].uid; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnItemClick)); + num++; + } + } + base.uiBehaviour.m_MyItemPool.ActualReturnAll(false); + } + + public void OnMySelectChange(ulong SelectID) + { + bool flag = SelectID == 0UL; + if (flag) + { + base.uiBehaviour.m_MyItemGo.SetActive(false); + } + else + { + base.uiBehaviour.m_MyItemGo.SetActive(true); + int i = 0; + while (i < this._doc.ItemList.Count) + { + bool flag2 = this._doc.ItemList[i].uid == SelectID; + if (flag2) + { + ItemList.RowData itemConf = XBagDocument.GetItemConf(this._doc.ItemList[i].itemID); + bool flag3 = itemConf == null; + if (flag3) + { + XSingleton.singleton.AddErrorLog("Can't find my select itemid for itemlist. selectID = ", SelectID.ToString(), null, null, null, null); + return; + } + XSingleton.singleton.normalItemDrawer.DrawItem(base.uiBehaviour.m_MySelect, itemConf, 0, false); + base.uiBehaviour.m_MyItemName.SetText(XSingleton.singleton.ChooseProfString(itemConf.ItemName, 0u)); + IXUISprite ixuisprite = base.uiBehaviour.m_MySelect.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite; + ixuisprite.ID = 0UL; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnItemClick)); + return; + } + else + { + i++; + } + } + XSingleton.singleton.AddErrorLog("Can't find MySelectID for bag. MySelectID = ", SelectID.ToString(), null, null, null, null); + } + } + + public void OnOtherSelectChange(int SelectID) + { + bool flag = SelectID == 0; + if (flag) + { + base.uiBehaviour.m_OtherItemGo.SetActive(false); + } + else + { + base.uiBehaviour.m_OtherItemGo.SetActive(true); + ItemList.RowData itemConf = XBagDocument.GetItemConf(SelectID); + bool flag2 = itemConf == null; + if (flag2) + { + XSingleton.singleton.AddErrorLog("Can't find Other select itemid for itemlist. selectID = ", SelectID.ToString(), null, null, null, null); + } + else + { + XSingleton.singleton.normalItemDrawer.DrawItem(base.uiBehaviour.m_OtherSelect, itemConf, 0, false); + XSingleton.singleton.normalItemDrawer.OpenClickShowTooltipEvent(base.uiBehaviour.m_OtherSelect, SelectID); + base.uiBehaviour.m_OtherItemName.SetText(XSingleton.singleton.ChooseProfString(itemConf.ItemName, 0u)); + } + } + } + + public void OnEnsureStateChange() + { + base.uiBehaviour.m_MyEnsureText.SetText(XStringDefineProxy.GetString(string.Format("ExchangeMyEnsureTips_{0}", this._doc.MyEnsureState ? 1 : 0))); + base.uiBehaviour.m_OtherEnsureText.SetText(XStringDefineProxy.GetString(string.Format("ExchangeOtherEnsureTips_{0}", this._doc.OtherEnsureState ? 1 : 0))); + } + + public void OnTipsChange() + { + string text = XStringDefineProxy.GetString(string.Format("ExchangeTips_{0}", this._doc.TipsState)); + bool flag = this._doc.TipsState == 0 || this._doc.TipsState == 2; + if (flag) + { + text = string.Format(text, this._doc.ExchangeItemStr); + } + base.uiBehaviour.m_Tips.SetText(text); + } + + protected override void OnHide() + { + XSingleton.singleton.KillTimer(this._audioPlayToken); + XSingleton.singleton.SetBusStatuMute("bus:/MainGroupControl/Except_Quiz", 1f); + XSingleton.singleton.SetBusStatuMute("bus:/MainGroupControl/Quiz ", 1f); + DlgBase.singleton.SetMaqueeSwitch(true); + XSingleton.singleton.EnableAutoPlay(true); + XSingleton.singleton.StopAutoPlay(); + base.OnHide(); + } + + protected override void OnUnload() + { + XSingleton.singleton.KillTimer(this._audioPlayToken); + base.OnUnload(); + } + + private bool OnCloseBtnClick(IXUIButton btn) + { + this._doc.QueryCloseUI(); + return true; + } + + private void OnItemClick(IXUISprite iSp) + { + bool flag = this._doc.CurrentSelectUid != iSp.ID; + if (flag) + { + this._doc.QuerySelectItem(iSp.ID); + } + } + + private bool OnEnsureBtnClick(IXUIButton btn) + { + this._doc.QueryEnsureExchange(!this._doc.MyEnsureState); + return true; + } + + public void RefreshMyChat() + { + bool flag = this._doc.MyAudioID == 0UL; + if (flag) + { + base.uiBehaviour.m_MyInputGo.SetActive(true); + base.uiBehaviour.m_MyVoiceBtn.SetVisible(false); + base.uiBehaviour.m_MyInputText.SetText(this._doc.MyInputText); + } + else + { + base.uiBehaviour.m_MyInputGo.SetActive(false); + base.uiBehaviour.m_MyVoiceBtn.SetVisible(true); + this.OnAudioPlayClick(base.uiBehaviour.m_MyVoiceBtn); + base.uiBehaviour.m_MyVoiceText.SetText(this._doc.MyInputText); + } + } + + public void RefreshOtherChat() + { + bool flag = this._doc.OtherAudioID == 0UL; + if (flag) + { + base.uiBehaviour.m_OtherInputGo.SetActive(true); + base.uiBehaviour.m_OtherVoiceBtn.SetVisible(false); + base.uiBehaviour.m_OtherInputText.SetText(this._doc.OtherInputText); + } + else + { + base.uiBehaviour.m_OtherInputGo.SetActive(false); + base.uiBehaviour.m_OtherVoiceBtn.SetVisible(true); + this.OnAudioPlayClick(base.uiBehaviour.m_OtherVoiceBtn); + base.uiBehaviour.m_OtherVoiceText.SetText(this._doc.OtherInputText); + } + } + + private void OnAudioPlayClick(IXUISprite iSp) + { + XSingleton.singleton.StopAutoPlay(); + base.uiBehaviour.m_MyVoiceAni.StopAndReset(); + base.uiBehaviour.m_OtherVoiceAni.StopAndReset(); + XSingleton.singleton.KillTimer(this._audioPlayToken); + bool flag = iSp.ID == 0UL; + if (flag) + { + XSingleton.singleton.StartPlayAudioId(this._doc.MyAudioID); + base.uiBehaviour.m_MyVoiceAni.Reset(); + this._audioPlayToken = XSingleton.singleton.SetTimer(this._doc.MyAudioTime / 1000f, new XTimerMgr.ElapsedEventHandler(this.OnPlayEnd), null); + XSingleton.singleton.AddLog("exchange my voice time = ", this._doc.MyAudioTime.ToString(), null, null, null, null, XDebugColor.XDebug_None); + } + else + { + XSingleton.singleton.StartPlayAudioId(this._doc.OtherAudioID); + base.uiBehaviour.m_OtherVoiceAni.Reset(); + this._audioPlayToken = XSingleton.singleton.SetTimer(this._doc.OtherAudioTime / 1000f, new XTimerMgr.ElapsedEventHandler(this.OnPlayEnd), null); + XSingleton.singleton.AddLog("exchange other voice time = ", this._doc.OtherAudioTime.ToString(), null, null, null, null, XDebugColor.XDebug_None); + } + } + + private void OnPlayEnd(object o = null) + { + base.uiBehaviour.m_MyVoiceAni.StopAndReset(); + base.uiBehaviour.m_OtherVoiceAni.StopAndReset(); + } + + private bool OnInputBtnClick(IXUIButton btn) + { + DlgBase.singleton.ShowChatInput(new ChatInputStringBack(this.OnInputStringGet)); + DlgBase.singleton.SetInputType(ChatInputType.TEXT); + DlgBase.singleton.SetCharacterLimit(50); + return true; + } + + public void OnInputStringGet(string str) + { + XSingleton.singleton.AddLog("Player input string is ", str, null, null, null, null, XDebugColor.XDebug_None); + this._doc.SendChat(str, 0UL, 0u); + } + + private void OnVoiceButtonDrag(IXUIButton sp, Vector2 delta) + { + this.m_DragDistance += delta; + bool flag = this.m_DragDistance.magnitude >= 100f; + if (flag) + { + this.m_CancelRecord = true; + } + else + { + this.m_CancelRecord = false; + } + } + + private void OnVoiceButton(IXUIButton sp, bool state) + { + if (state) + { + this.m_CancelRecord = false; + XSingleton.singleton.AddLog("Press down", null, null, null, null, null, XDebugColor.XDebug_None); + this.m_DragDistance = Vector2.zero; + bool answerUseApollo = XChatDocument.m_AnswerUseApollo; + if (answerUseApollo) + { + XSingleton.singleton.StartRecord(VoiceUsage.GUILDCOLLECT, null); + } + else + { + XSingleton.singleton.StartRecord(VoiceUsage.GUILDCOLLECT, null); + } + } + else + { + XSingleton.singleton.AddLog("Press up", null, null, null, null, null, XDebugColor.XDebug_None); + DlgBase.singleton.SetActiveChannel(ChatChannelType.Team); + bool answerUseApollo2 = XChatDocument.m_AnswerUseApollo; + if (answerUseApollo2) + { + XSingleton.singleton.StopRecord(this.m_CancelRecord); + } + else + { + XSingleton.singleton.StopRecord(this.m_CancelRecord); + } + this.m_CancelRecord = false; + } + } + } +} -- cgit v1.1-26-g67d0