From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/ArtifactFuseDocument.cs | 287 +++++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/ArtifactFuseDocument.cs (limited to 'Client/Assets/Scripts/XMainClient/ArtifactFuseDocument.cs') diff --git a/Client/Assets/Scripts/XMainClient/ArtifactFuseDocument.cs b/Client/Assets/Scripts/XMainClient/ArtifactFuseDocument.cs new file mode 100644 index 00000000..0de1dda5 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/ArtifactFuseDocument.cs @@ -0,0 +1,287 @@ +using System; +using KKSG; +using XMainClient.UI; +using XMainClient.UI.UICommon; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class ArtifactFuseDocument : XDocComponent + { + public override uint ID + { + get + { + return ArtifactFuseDocument.uuID; + } + } + + public static ArtifactFuseDocument Doc + { + get + { + return XSingleton.singleton.Doc.GetXComponent(ArtifactFuseDocument.uuID) as ArtifactFuseDocument; + } + } + + public ulong FuseUid + { + get + { + return this.m_fuseUid; + } + } + + public ulong FusedUid + { + get + { + return this.m_fusedUid; + } + } + + public int FuseStoneItemId + { + get + { + bool flag = this.m_fuseStoneItemId == -1; + if (flag) + { + this.m_fuseStoneItemId = XSingleton.singleton.GetInt("FuseStoneItemId"); + } + return this.m_fuseStoneItemId; + } + } + + public ulong LastSelectUid + { + get + { + return this.m_lastSelectUid; + } + } + + public new static readonly uint uuID = XSingleton.singleton.XHash("ArtifactFuseDocument"); + + public static XTableAsyncLoader AsyncLoader = new XTableAsyncLoader(); + + private ulong m_fuseUid = 0UL; + + private ulong m_fusedUid = 0UL; + + private int m_fuseStoneItemId = -1; + + private ulong m_lastSelectUid = 0UL; + + public bool UseFuseStone = true; + + public ArtifactFuseHandler Handler; + + public static void Execute(OnLoadedCallback callback = null) + { + ArtifactFuseDocument.AsyncLoader.Execute(callback); + } + + public override void OnAttachToHost(XObject host) + { + base.OnAttachToHost(host); + } + + protected override void EventSubscribe() + { + base.EventSubscribe(); + } + + public override void OnDetachFromHost() + { + base.OnDetachFromHost(); + } + + protected override void OnReconnected(XReconnectedEventArgs arg) + { + bool flag = this.m_fuseUid > 0UL; + if (flag) + { + XItem itemByUID = XBagDocument.BagDoc.GetItemByUID(this.m_fuseUid); + bool flag2 = itemByUID == null; + if (flag2) + { + this.m_fuseUid = 0UL; + } + } + bool flag3 = this.m_fusedUid > 0UL; + if (flag3) + { + XItem itemByUID2 = XBagDocument.BagDoc.GetItemByUID(this.m_fusedUid); + bool flag4 = itemByUID2 == null; + if (flag4) + { + this.m_fusedUid = 0UL; + } + } + this.RefreshUi(FuseEffectType.None); + } + + public override void OnEnterSceneFinally() + { + base.OnEnterSceneFinally(); + } + + public void RefreshUi(FuseEffectType type = FuseEffectType.None) + { + bool flag = this.Handler != null && this.Handler.IsVisible(); + if (flag) + { + this.Handler.RefreshUi(type); + } + ArtifactDeityStoveDocument.Doc.RefreshUi(); + } + + public bool IsSelectUid(ulong uid) + { + return this.m_fusedUid == uid || this.m_fuseUid == uid; + } + + public void ResetSelectUid(bool isRefeshUi, FuseEffectType type = FuseEffectType.None) + { + this.m_fuseUid = 0UL; + this.m_fusedUid = 0UL; + if (isRefeshUi) + { + this.RefreshUi(type); + } + } + + public void AddItem(ulong uid) + { + bool flag = this.m_fuseUid == 0UL; + if (flag) + { + this.m_fuseUid = uid; + } + else + { + XItem itemByUID = XBagDocument.BagDoc.GetItemByUID(this.m_fuseUid); + bool flag2 = itemByUID == null; + if (flag2) + { + this.m_fuseUid = uid; + } + else + { + bool flag3 = XBagDocument.BagDoc.ArtifactBag.HasItem(uid); + if (flag3) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("EquipedArtifactCannotFuse"), "fece00"); + return; + } + XItem itemByUID2 = XBagDocument.BagDoc.GetItemByUID(uid); + bool flag4 = itemByUID2 == null; + if (flag4) + { + XSingleton.singleton.AddErrorLog(string.Format("not find this uid = {0}", uid), null, null, null, null, null); + return; + } + bool flag5 = itemByUID.itemConf == null || itemByUID2.itemConf == null; + if (flag5) + { + return; + } + bool flag6 = itemByUID.itemConf.ItemQuality != itemByUID2.itemConf.ItemQuality; + if (flag6) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FuseNotTips"), "fece00"); + return; + } + ArtifactListTable.RowData artifactListRowData = ArtifactDocument.GetArtifactListRowData((uint)itemByUID.itemID); + bool flag7 = artifactListRowData == null; + if (flag7) + { + XSingleton.singleton.AddErrorLog(string.Format("artifactlist not find this itemId = {0}", itemByUID.itemID), null, null, null, null, null); + return; + } + ArtifactListTable.RowData artifactListRowData2 = ArtifactDocument.GetArtifactListRowData((uint)itemByUID2.itemID); + bool flag8 = artifactListRowData2 == null; + if (flag8) + { + XSingleton.singleton.AddErrorLog(string.Format("artifactlist not find this itemId = {0}", itemByUID2.itemID), null, null, null, null, null); + return; + } + bool flag9 = artifactListRowData.ArtifactPos != artifactListRowData2.ArtifactPos; + if (flag9) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FuseNotTips"), "fece00"); + return; + } + bool flag10 = this.m_fusedUid > 0UL; + if (flag10) + { + XSingleton.singleton.ShowSystemTip(XStringDefineProxy.GetString("FuseRepleaseSuc"), "fece00"); + } + this.m_fusedUid = uid; + } + } + this.RefreshUi(FuseEffectType.None); + } + + public void TakeOut(ulong uid) + { + bool flag = uid == this.m_fuseUid; + if (flag) + { + this.m_fuseUid = 0UL; + } + else + { + bool flag2 = uid == this.m_fusedUid; + if (!flag2) + { + XSingleton.singleton.AddGreenLog("this item not put in uid = " + uid.ToString(), null, null, null, null, null); + return; + } + this.m_fusedUid = 0UL; + } + this.RefreshUi(FuseEffectType.None); + } + + public void ReqFuse() + { + this.m_lastSelectUid = this.m_fuseUid; + RpcC2G_ArtifactDeityStoveOp rpcC2G_ArtifactDeityStoveOp = new RpcC2G_ArtifactDeityStoveOp(); + rpcC2G_ArtifactDeityStoveOp.oArg.type = ArtifactDeityStoveOpType.ArtifactDeityStove_Fuse; + rpcC2G_ArtifactDeityStoveOp.oArg.uid1 = this.m_fuseUid; + rpcC2G_ArtifactDeityStoveOp.oArg.uid2 = this.m_fusedUid; + rpcC2G_ArtifactDeityStoveOp.oArg.isUsedStone = this.UseFuseStone; + XSingleton.singleton.Send(rpcC2G_ArtifactDeityStoveOp); + } + + public void OnReqFuseBack(ArtifactDeityStoveOpRes oRes) + { + bool flag = oRes.errorcode > ErrorCode.ERR_SUCCESS; + if (flag) + { + bool flag2 = oRes.errorcode == ErrorCode.ERR_ARTIFACT_FUSEFAILED; + if (flag2) + { + this.m_fusedUid = 0UL; + this.RefreshUi(FuseEffectType.Fail); + } + else + { + XSingleton.singleton.ShowSystemTip(oRes.errorcode, "fece00"); + } + } + else + { + this.ResetSelectUid(true, FuseEffectType.Sucess); + } + } + + public void ResetSetting() + { + DlgBase.singleton.ForceSetTipsValue(XTempTipDefine.OD_FUSE_CONFIRM, false); + XOptionsDocument specificDocument = XDocuments.GetSpecificDocument(XOptionsDocument.uuID); + specificDocument.SetValue(XOptionsDefine.OD_NO_FUSE_CONFIRM, 0, true); + } + } +} -- cgit v1.1-26-g67d0