From 045b294b18d7e77a4bc5ea223f7744fd58f3e467 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 23 八月 2018 18:23:19 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/HappyXB/HappyXBModel.cs      |   78 +++++++++++++++
 System/HappyXB/RuneXBWin.cs         |   85 +++-------------
 System/HappyXB/HappyXBGetItemWin.cs |   36 ++++--
 System/HappyXB/BestXBWin.cs         |   80 ++--------------
 4 files changed, 128 insertions(+), 151 deletions(-)

diff --git a/System/HappyXB/BestXBWin.cs b/System/HappyXB/BestXBWin.cs
index 567c351..bbc484b 100644
--- a/System/HappyXB/BestXBWin.cs
+++ b/System/HappyXB/BestXBWin.cs
@@ -94,7 +94,7 @@
         }
         protected override void OnPreOpen()
         {
-            XBModel.RefreshAgainXBAct += RefreshAgainXB;
+            XBModel.StartXBEvent += OnStartXB;
             XBModel.RefreshBestXBTimeAct += RefreshFreeTime;
             XBModel.RefreshXBTypeInfoAct += RefreshXBTypeInfo;
             XBModel.RefreshXBResultAct += RefreshXBResult;
@@ -125,8 +125,8 @@
             XBModel.RefreshBestXBTimeAct -= RefreshFreeTime;
             XBModel.RefreshXBResultAct -= RefreshXBResult;
             XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
-            XBModel.RefreshAgainXBAct -= RefreshAgainXB;
             playerPack.RefreshItemCountAct -= RefreshItemCount;
+            XBModel.StartXBEvent -= OnStartXB;
             GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
         }
         protected override void OnAfterClose()
@@ -246,98 +246,38 @@
             }
         }
 
-
-        private void RefreshAgainXB(HappXBTitle title, int xbType)
-        {
-            if (title != HappXBTitle.Best) return;
-            if (xbType == 0) ClickXBBtn();
-            else if (xbType == 1) ClickXBManyBtn();
-        }
-
         bool isXBMany = false;
         private void ClickXBManyBtn()
         {
-            if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
-            {
-                int toolCnt = 0;
-                int needToolCnt = 0;
-                if (XBModel.IsHaveManyXBTool(1,out toolCnt,out needToolCnt))
-                {
-                    needToolCnt= needToolCnt - toolCnt;
-                    int needMoney = needToolCnt * xbOneMoney;
-                    if(needToolCnt > 0)
-                    {
-                        ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
-                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName,needMoney, needToolCnt), (bool isOk) =>
-                        {
-                            if (isOk)
-                            {
-                                CheckXBManyLimit(needMoney);
-                            }
-                            return;
-                        });
-                    }
-                    else
-                    {
-                        CheckXBManyLimit(xbManyMoney);
-                    }
-                   
-                }
-                else
-                {
-                    CheckXBManyLimit(xbManyMoney);
-                }
-               
-            }
+            XBModel.SendXBManyQuest(PackType.rptTreasure,1);
         }
 
-        private void CheckXBManyLimit(int needMoney)
+        private void OnStartXB(int oneOrMany)
         {
-            if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
+            if(oneOrMany == 0)
             {
                 maskObj.SetActive(true);
-                isXBMany = true;
-                XBModel.SendXBQuest(1, 1, 2);
+                isXBMany = false;
             }
             else
             {
-                WindowCenter.Instance.Open<RechargeTipWin>();
+                maskObj.SetActive(true);
+                isXBMany = true;
             }
+           
         }
 
         private void ClickFreeXbBtn()
         {
             if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
             {
-                maskObj.SetActive(true);
-                isXBMany = false;
                 XBModel.SendXBQuest(1, 0, 1);
             }
         }
 
         private void ClickXBBtn()
         {
-            if (XBModel.CheckIsEmptyGrid(PackType.rptTreasure))
-            {
-                if(XBModel.IsHaveOneXBTool(1))
-                {
-                    XBModel.SendXBQuest(1, 0, 2);
-                }
-                else
-                {
-                    if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
-                    {
-                        maskObj.SetActive(true);
-                        isXBMany = false;
-                        XBModel.SendXBQuest(1, 0, 0);
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<RechargeTipWin>();
-                    }
-                }
-               
-            }
+            XBModel.SendOneXBQuest(PackType.rptTreasure, 1);
         }
 
         private void RefreshXBTypeInfo()
diff --git a/System/HappyXB/HappyXBGetItemWin.cs b/System/HappyXB/HappyXBGetItemWin.cs
index eb4f6a1..2c0496c 100644
--- a/System/HappyXB/HappyXBGetItemWin.cs
+++ b/System/HappyXB/HappyXBGetItemWin.cs
@@ -55,6 +55,7 @@
 
         protected override void OnPreOpen()
         {
+            XBModel.StartXBEvent += OnStartXB;
             getItem.SetActive(false);       
             isHaveFreeTime = XBModel.IsHaveFreeXBTime((int)XBModel.title);
             InitUI();
@@ -105,6 +106,7 @@
                     XBModel.RefreshRuneXBTimeAct -= RefreshFreeTime;
                     break;
             }
+            XBModel.StartXBEvent -= OnStartXB;
         }
 
         protected override void OnAfterClose()
@@ -224,28 +226,34 @@
 
         private void ClickXBBtn()
         {
-            if(UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
+            switch (XBModel.title)
             {
-                XBModel.SetAgainXBEvent(XBModel.title,0);
-                ClickBackBtn();
+                case HappXBTitle.Best:
+                     XBModel.SendOneXBQuest(PackType.rptTreasure, 1);
+                    break;
+                case HappXBTitle.Rune:
+                    XBModel.SendOneXBQuest(PackType.rptRunePack, 2);
+                    break;
             }
-            else
-            {
-                WindowCenter.Instance.Open<RechargeTipWin>();
-            }
+          
         }
 
         private void ClickXBManyBtn()
         {
-            if (UIHelper.GetMoneyCnt(1) >= (ulong)xbManyMoney)
+            switch (XBModel.title)
             {
-                XBModel.SetAgainXBEvent(XBModel.title,1);
-                ClickBackBtn();
+                case HappXBTitle.Best:
+                    XBModel.SendXBManyQuest(PackType.rptTreasure, 1);
+                    break;
+                case HappXBTitle.Rune:
+                    XBModel.SendXBManyQuest(PackType.rptRunePack, 2);
+                    break;
             }
-            else
-            {
-                WindowCenter.Instance.Open<RechargeTipWin>();
-            }
+        }
+
+        private void OnStartXB(int oneOrMany)
+        {
+            ClickBackBtn();
         }
 
         private void ClickBackBtn()
diff --git a/System/HappyXB/HappyXBModel.cs b/System/HappyXB/HappyXBModel.cs
index 194da3b..dc4fbab 100644
--- a/System/HappyXB/HappyXBModel.cs
+++ b/System/HappyXB/HappyXBModel.cs
@@ -477,6 +477,7 @@
         /// </summary>
         /// <param name="type"></param>
         /// <param name="index"></param>
+        public event Action<int> StartXBEvent;
         public void SendXBQuest(int type,int index,int costType)
         {
             isXBCoolTime = true;
@@ -485,6 +486,10 @@
             treasure.TreasureIndex = (byte)index;
             treasure.CostType = (byte)costType;
             GameNetSystem.Instance.SendInfo(treasure);
+            if(StartXBEvent != null)
+            {
+                StartXBEvent(index);
+            }
         }
 
         public void SendPutOutXBItem(PackType curType,PackType targetType,int index,int isAll)
@@ -520,6 +525,79 @@
             }
             return true;
         }
+
+        public void SendOneXBQuest(PackType type,int xbType)
+        {
+            var funcSet = GetXBFuncSet(xbType);
+            if (CheckIsEmptyGrid(type))
+            {
+                if (IsHaveOneXBTool(xbType))
+                {
+                    SendXBQuest(xbType, 0, 2);
+                }
+                else
+                {
+                    int xbOneMoney = funcSet.xbPrices[0];
+                    if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
+                    {
+                        SendXBQuest(xbType, 0, 0);
+                    }
+                    else
+                    {
+                        WindowCenter.Instance.Open<RechargeTipWin>();
+                    }
+                }
+            }
+        }
+
+        public void SendXBManyQuest(PackType type, int xbType)
+        {
+            var funcSet = GetXBFuncSet(xbType);
+            if (CheckIsEmptyGrid(type))
+            {
+                int toolCnt = 0;
+                int needToolCnt = 0;
+                if (IsHaveManyXBTool(xbType, out toolCnt, out needToolCnt))
+                {
+                    needToolCnt = needToolCnt - toolCnt;
+                    int needMoney = needToolCnt * funcSet.xbPrices[0];
+                    if (needMoney > 0)
+                    {
+                        ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
+                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName, needMoney, needToolCnt), (bool isOk) =>
+                        {
+                            if (isOk)
+                            {
+                                CheckXBManyLimit(needMoney, xbType);
+                            }
+                            return;
+                        });
+                    }
+                    else
+                    {
+                        CheckXBManyLimit(0, xbType);
+                    }
+
+                }
+                else
+                {
+                    CheckXBManyLimit(funcSet.xbPrices[1],xbType);
+                }
+
+            }
+        }
+
+        public void CheckXBManyLimit(int needMoney,int xbtype)
+        {
+            if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
+            {
+                SendXBQuest(xbtype, 1, 2);
+            }
+            else
+            {
+                WindowCenter.Instance.Open<RechargeTipWin>();
+            }
+        }
         #endregion
 
         public bool IsHaveFreeXB(int type)
diff --git a/System/HappyXB/RuneXBWin.cs b/System/HappyXB/RuneXBWin.cs
index 5dea506..caba398 100644
--- a/System/HappyXB/RuneXBWin.cs
+++ b/System/HappyXB/RuneXBWin.cs
@@ -102,6 +102,7 @@
 
         protected override void OnPreOpen()
         {
+            XBModel.StartXBEvent += OnStartXB;
             playerPack.RefreshItemCountAct += RefreshItemCount;
             XBModel.RefreshAgainXBAct += RefreshAgainXB;
             XBModel.RefreshRuneXBTimeAct += RefreshFreeTime;
@@ -136,6 +137,7 @@
             XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
             playerPack.RefreshItemCountAct -= RefreshItemCount;
             GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
+            XBModel.StartXBEvent -= OnStartXB;
         }
         protected override void OnAfterClose()
         {
@@ -263,87 +265,36 @@
         bool isXBMany = false;
         private void ClickXBManyBtn()
         {
-            if (XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
-            {
-                int toolCnt = 0;
-                int needToolCnt = 0;
-                if (XBModel.IsHaveManyXBTool(2, out toolCnt,out needToolCnt))
-                {
-                    needToolCnt = funcSet.costToolNums[1] - toolCnt;
-                    int needMoney = needToolCnt * xbOneMoney;
-                    if (needToolCnt > 0)
-                    {
-                        ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(funcSet.costToolIds[1]);
-                        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HappyXBCostTools", funcSet.costToolNums[1], itemConfig.ItemName,needMoney, needToolCnt), (bool isOk) =>
-                        {
-                            if (isOk)
-                            {
-                                CheckXBManyLimit(needMoney);
-                            }
-                            return;
-                        });
-                    }
-                    else
-                    {
-                        CheckXBManyLimit(xbManyMoney);
-                    }
-
-                }
-                else
-                {
-                    CheckXBManyLimit(xbManyMoney);
-                }
-            }
-        }
-
-        private void CheckXBManyLimit(int needMoney)
-        {
-            if (UIHelper.GetMoneyCnt(1) >= (ulong)needMoney)
-            {
-                maskObj.SetActive(true);
-                isXBMany = true;
-                XBModel.SendXBQuest(2, 1, 2);
-            }
-            else
-            {
-                WindowCenter.Instance.Open<RechargeTipWin>();
-            }
+            XBModel.SendXBManyQuest(PackType.rptRunePack, 2);
         }
 
         private void ClickXBBtn()
         {
-            if(XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
-            {
-                if (XBModel.IsHaveOneXBTool(2))
-                {
-                    XBModel.SendXBQuest(2, 0, 2);
-                }
-                else
-                {
-                    if (UIHelper.GetMoneyCnt(1) >= (ulong)xbOneMoney)
-                    {
-                        maskObj.SetActive(true);
-                        isXBMany = false;
-                        XBModel.SendXBQuest(2, 0, 0);
-                    }
-                    else
-                    {
-                        WindowCenter.Instance.Open<RechargeTipWin>();
-                    }
-                }
-            }
+            XBModel.SendOneXBQuest(PackType.rptRunePack, 2);
         }
 
         private void ClickFreeXbBtn()
         {
             if (XBModel.CheckIsEmptyGrid(PackType.rptRunePack))
             {
-                maskObj.SetActive(true);
-                isXBMany = false;
                 XBModel.SendXBQuest(2, 0, 1);
             }
         }
 
+        private void OnStartXB(int oneOrMany)
+        {
+            maskObj.SetActive(true);
+            if (oneOrMany == 0)
+            {
+                isXBMany = false;
+            }
+            else
+            {
+                isXBMany = true;
+            }
+
+        }
+
         private void RefreshXBTypeInfo()
         {
             XBTypeInfo typeInfo = XBModel.GetXBInfoByType(2);

--
Gitblit v1.8.0