Browse Source

限定盲盒

hexiaojie 8 months ago
parent
commit
1863e104a2
73 changed files with 2090 additions and 117 deletions
  1. 4 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  2. 3 3
      GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs
  3. 5 0
      GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs
  4. 12 0
      GameClient/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs
  5. 8 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox.meta
  6. 83 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxBuyTipsUI.cs
  7. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxBuyTipsUI.cs.meta
  8. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxRewardUI.cs
  9. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxRewardUI.cs.meta
  10. 111 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxUI.cs
  11. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxUI.cs.meta
  12. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Button1.cs
  13. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Button1.cs.meta
  14. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Itemitem.cs
  15. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Itemitem.cs.meta
  16. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_RuleTipsUI.cs
  17. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_RuleTipsUI.cs.meta
  18. 80 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_boxItem.cs
  19. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_boxItem.cs.meta
  20. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_rewardItem.cs
  21. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_rewardItem.cs.meta
  22. 4 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_MainUI.cs
  23. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryChapterListUI.cs
  24. 44 10
      GameClient/Assets/Game/HotUpdate/ServerProxy/LuckyBoxSProxy.cs
  25. 71 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxBuyTipView.cs
  26. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxBuyTipView.cs.meta
  27. 95 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs
  28. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs.meta
  29. 44 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRuleView.cs
  30. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRuleView.cs.meta
  31. 276 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs
  32. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs.meta
  33. 249 103
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  34. 1 1
      GameClient/Assets/Game/Launcher/Log/LogServerHelperHttp.cs
  35. BIN
      GameClient/Assets/ResIn/UI/ActivityThemeLuckyBox/ActivityThemeLuckyBox_fui.bytes
  36. 8 0
      GameClient/Assets/ResIn/UI/BlindBox.meta
  37. BIN
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0!a.png
  38. 120 0
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0!a.png.meta
  39. BIN
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0.png
  40. 120 0
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0.png.meta
  41. BIN
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1!a.png
  42. 120 0
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1!a.png.meta
  43. BIN
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1.png
  44. 120 0
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1.png.meta
  45. BIN
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_fui.bytes
  46. 7 0
      GameClient/Assets/ResIn/UI/BlindBox/BlindBox_fui.bytes.meta
  47. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0!a.png
  48. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0.png
  49. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_1!a.png
  50. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_1.png
  51. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_10!a.png
  52. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_10.png
  53. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_11!a.png
  54. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_11.png
  55. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_2!a.png
  56. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_2.png
  57. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_3!a.png
  58. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_3.png
  59. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_4!a.png
  60. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_4.png
  61. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_5!a.png
  62. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_5.png
  63. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_6!a.png
  64. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_6.png
  65. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_7!a.png
  66. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_7.png
  67. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_8!a.png
  68. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_8.png
  69. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_9!a.png
  70. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_9.png
  71. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas10!a.png
  72. BIN
      GameClient/Assets/ResIn/UI/Main/Main_atlas10.png
  73. BIN
      GameClient/Assets/ResIn/UI/Main/Main_fui.bytes

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -268,5 +268,9 @@ namespace GFGGame
         public const string FieldWork_StateCHANGE = "FieldWork_StateCHANGE";
         //转盘数据改变
         public const string TurnTable_DateCHANGE = "TurnTable_DateCHANGE";
+        //盲盒购买单个
+        public const string BlindBox_BuyOne = "BlindBox_BuyOne";
+        //盲盒购买所有
+        public const string BlindBox_BuyAll = "BlindBox_BuyAll";
     }
 }

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs

@@ -22,7 +22,7 @@ namespace GFGGame
             logData.EventType = node;
             var logStr = zoneScene.GetComponent<LogSplicingComponent>().LogObjectToStr(logData);
             var body = $"?logStr={logStr}";
-            HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
+            //HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
         }
 
         /// <summary>
@@ -44,7 +44,7 @@ namespace GFGGame
             var logStr = zoneScene.GetComponent<LogSplicingComponent>().LogObjectToStr(logData);
             //HttpTool.Instance.Post(GameConfig.logApiReportUrl, logStr);
             var body = $"?logStr={logStr}";
-            HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
+            //HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
         }
 
         /// <summary>
@@ -65,7 +65,7 @@ namespace GFGGame
             logData.PlayerName = zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRoleName();
             var logStr = zoneScene.GetComponent<LogSplicingComponent>().LogObjectToStr(logData);
             var body = $"?logStr={logStr}";
-            HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
+            //HttpTool.Instance.Get(GameConfig.logApiReportUrl + body, null, false);
         }
     }
 }

+ 5 - 0
GameClient/Assets/Game/HotUpdate/Data/ActivityDataManager.cs

@@ -440,6 +440,11 @@ namespace GFGGame
             return false;
         }
         /*****************************************************************/
+        /***************************盲盒活动*******************************/
+        public int BlindBoxType = 0;
+        public BlindBoxType typeOne = new BlindBoxType { type = 1, check = false };
+        public BlindBoxType typeAll = new BlindBoxType { type = 6, check = false };
+        /*****************************************************************/
         public string PhoneNum = "";
     }
 }

+ 12 - 0
GameClient/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs

@@ -1,6 +1,12 @@
 using System;
 using System.Collections.Generic;
 using ET;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.Video;
+using YooAsset;
+using GFGGame.Launcher;
+using System.Collections;
 
 namespace GFGGame
 {
@@ -39,6 +45,12 @@ namespace GFGGame
 
 
         public int luckyBoxIndex;
+
+        public GameObject _ui = null;
+        public AssetOperationHandle handle = null;
+        public RawFileOperationHandle videoHandle = null;
+
+        public List<ItemInfoProto> BlindBoxReward = new List<ItemInfoProto>();
         public List<ItemData> RewardList
         {
             get { return _rewardsList; }

+ 8 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a69d3b3aff97ca944a1ff23decf89623
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxBuyTipsUI.cs

@@ -0,0 +1,83 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_BlindBoxBuyTipsUI
+    {
+        public GComponent target;
+        public GTextField m_desc;
+        public GButton m_cancelBtn;
+        public GButton m_sureBtn;
+        public GButton m_checkBtn;
+        public Transition m_t0;
+        public const string URL = "ui://zxtyrwszl4br15";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "BlindBoxBuyTipsUI";
+        private static UI_BlindBoxBuyTipsUI _proxy;
+
+        public static UI_BlindBoxBuyTipsUI Create(GObject gObject = null)
+        {
+            var ui = new UI_BlindBoxBuyTipsUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_BlindBoxBuyTipsUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_BlindBoxBuyTipsUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_desc = (GTextField)comp.GetChild("desc");
+            m_cancelBtn = (GButton)comp.GetChild("cancelBtn");
+            m_sureBtn = (GButton)comp.GetChild("sureBtn");
+            m_checkBtn = (GButton)comp.GetChild("checkBtn");
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_desc = null;
+            m_cancelBtn = null;
+            m_sureBtn = null;
+            m_checkBtn = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxBuyTipsUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aade8839410df5f46a1f796a2a762f3a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxRewardUI.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_BlindBoxRewardUI
+    {
+        public GComponent target;
+        public GList m_specialList;
+        public GList m_normalList;
+        public Transition m_t0;
+        public const string URL = "ui://zxtyrwszcf1aj";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "BlindBoxRewardUI";
+        private static UI_BlindBoxRewardUI _proxy;
+
+        public static UI_BlindBoxRewardUI Create(GObject gObject = null)
+        {
+            var ui = new UI_BlindBoxRewardUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_BlindBoxRewardUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_BlindBoxRewardUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_specialList = (GList)comp.GetChild("specialList");
+            m_normalList = (GList)comp.GetChild("normalList");
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_specialList = null;
+            m_normalList = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxRewardUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8310279eff4f2194c857242e497593a3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 111 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxUI.cs

@@ -0,0 +1,111 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_BlindBoxUI
+    {
+        public GComponent target;
+        public GGraph m_effect;
+        public GGroup m_bg;
+        public GButton m_ruleBtn;
+        public GTextField m_txtTime;
+        public GTextField m_txtDesc;
+        public GList m_boxList;
+        public GList m_rewardList;
+        public GLoader m_hiddenItem;
+        public GGroup m_reward;
+        public UI_Button1 m_buyBtn;
+        public GButton m_backBtn;
+        public GGroup m_show;
+        public Transition m_t0;
+        public Transition m_t1;
+        public const string URL = "ui://zxtyrwszcf1a0";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "BlindBoxUI";
+        private static UI_BlindBoxUI _proxy;
+
+        public static UI_BlindBoxUI Create(GObject gObject = null)
+        {
+            var ui = new UI_BlindBoxUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_BlindBoxUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_BlindBoxUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_effect = (GGraph)comp.GetChild("effect");
+            m_bg = (GGroup)comp.GetChild("bg");
+            m_ruleBtn = (GButton)comp.GetChild("ruleBtn");
+            m_txtTime = (GTextField)comp.GetChild("txtTime");
+            m_txtDesc = (GTextField)comp.GetChild("txtDesc");
+            m_boxList = (GList)comp.GetChild("boxList");
+            m_rewardList = (GList)comp.GetChild("rewardList");
+            m_hiddenItem = (GLoader)comp.GetChild("hiddenItem");
+            m_reward = (GGroup)comp.GetChild("reward");
+            m_buyBtn = (UI_Button1)UI_Button1.Create(comp.GetChild("buyBtn"));
+            m_backBtn = (GButton)comp.GetChild("backBtn");
+            m_show = (GGroup)comp.GetChild("show");
+            m_t0 = comp.GetTransition("t0");
+            m_t1 = comp.GetTransition("t1");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_effect = null;
+            m_bg = null;
+            m_ruleBtn = null;
+            m_txtTime = null;
+            m_txtDesc = null;
+            m_boxList = null;
+            m_rewardList = null;
+            m_hiddenItem = null;
+            m_reward = null;
+            m_buyBtn.Dispose();
+            m_buyBtn = null;
+            m_backBtn = null;
+            m_show = null;
+            m_t0 = null;
+            m_t1 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_BlindBoxUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3a4085db4ad799745b384e47a4f9769f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Button1.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_Button1
+    {
+        public GButton target;
+        public GLoader m_img;
+        public GTextField m_num;
+        public const string URL = "ui://zxtyrwszcf1ai";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "Button1";
+        private static UI_Button1 _proxy;
+
+        public static UI_Button1 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button1();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button1 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button1();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_img = (GLoader)comp.GetChild("img");
+            m_num = (GTextField)comp.GetChild("num");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_img = null;
+            m_num = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Button1.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5a705628434f8c1409bc433d7f4edbe7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Itemitem.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_Itemitem
+    {
+        public GComponent target;
+        public GLoader m_icon;
+        public GTextField m_name;
+        public const string URL = "ui://zxtyrwszl4br11";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "Itemitem";
+        private static UI_Itemitem _proxy;
+
+        public static UI_Itemitem Create(GObject gObject = null)
+        {
+            var ui = new UI_Itemitem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Itemitem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Itemitem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_name = (GTextField)comp.GetChild("name");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_icon = null;
+            m_name = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_Itemitem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cc05fb2df86b5d74abcfbe7725c43475
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_RuleTipsUI.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_RuleTipsUI
+    {
+        public GComponent target;
+        public GTextField m_desc;
+        public Transition m_t0;
+        public const string URL = "ui://zxtyrwszl4br13";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "RuleTipsUI";
+        private static UI_RuleTipsUI _proxy;
+
+        public static UI_RuleTipsUI Create(GObject gObject = null)
+        {
+            var ui = new UI_RuleTipsUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_RuleTipsUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_RuleTipsUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_desc = (GTextField)comp.GetChild("desc");
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_desc = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_RuleTipsUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 107800b34ae00854c94ef55d0e2842d1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 80 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_boxItem.cs

@@ -0,0 +1,80 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_boxItem
+    {
+        public GComponent target;
+        public GLoader m_icon;
+        public GGraph m_effect;
+        public GGraph m_effectOpen;
+        public Transition m_t0;
+        public const string URL = "ui://zxtyrwszcf1ae";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "boxItem";
+        private static UI_boxItem _proxy;
+
+        public static UI_boxItem Create(GObject gObject = null)
+        {
+            var ui = new UI_boxItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_boxItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_boxItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_effect = (GGraph)comp.GetChild("effect");
+            m_effectOpen = (GGraph)comp.GetChild("effectOpen");
+            m_t0 = comp.GetTransition("t0");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_icon = null;
+            m_effect = null;
+            m_effectOpen = null;
+            m_t0 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_boxItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0497f8c211c5dc047a8460dfd34c2162
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_rewardItem.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.BlindBox
+{
+    public partial class UI_rewardItem
+    {
+        public GComponent target;
+        public GLoader m_reward;
+        public const string URL = "ui://zxtyrwszcf1ah";
+        public const string PACKAGE_NAME = "BlindBox";
+        public const string RES_NAME = "rewardItem";
+        private static UI_rewardItem _proxy;
+
+        public static UI_rewardItem Create(GObject gObject = null)
+        {
+            var ui = new UI_rewardItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_rewardItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_rewardItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_reward = (GLoader)comp.GetChild("reward");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_reward = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/BlindBox/UI_rewardItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 554b829e03c874f4ea64b4abba010eb5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 4 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_MainUI.cs

@@ -32,6 +32,7 @@ namespace UI.Main
         public UI_BtnModle2 m_btnGetYuanXiao;
         public UI_BtnModle2 m_btnActivityFYJY;
         public UI_BtnModle2 m_btnActivityZQ;
+        public UI_BtnModle2 m_btnActivityXDMH;
         public GTextField m_serverTime;
         public GLoader m_loaGuidestudio;
         public UI_ComAd m_comListAd;
@@ -131,6 +132,7 @@ namespace UI.Main
             m_btnGetYuanXiao = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnGetYuanXiao"));
             m_btnActivityFYJY = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnActivityFYJY"));
             m_btnActivityZQ = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnActivityZQ"));
+            m_btnActivityXDMH = (UI_BtnModle2)UI_BtnModle2.Create(comp.GetChild("btnActivityXDMH"));
             m_serverTime = (GTextField)comp.GetChild("serverTime");
             m_loaGuidestudio = (GLoader)comp.GetChild("loaGuidestudio");
             m_comListAd = (UI_ComAd)UI_ComAd.Create(comp.GetChild("comListAd"));
@@ -200,6 +202,8 @@ namespace UI.Main
             m_btnActivityFYJY = null;
             m_btnActivityZQ.Dispose();
             m_btnActivityZQ = null;
+            m_btnActivityXDMH.Dispose();
+            m_btnActivityXDMH = null;
             m_serverTime = null;
             m_loaGuidestudio = null;
             m_comListAd.Dispose();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryChapterListUI.cs

@@ -14,6 +14,7 @@ namespace UI.Main
         public GImage m_bgTitle;
         public GList m_listTab;
         public GList m_listType;
+        public GLoader m_test;
         public Transition m_openViewAction;
         public const string URL = "ui://mfvz4q8kslb419";
         public const string PACKAGE_NAME = "Main";
@@ -69,6 +70,7 @@ namespace UI.Main
             m_bgTitle = (GImage)comp.GetChild("bgTitle");
             m_listTab = (GList)comp.GetChild("listTab");
             m_listType = (GList)comp.GetChild("listType");
+            m_test = (GLoader)comp.GetChild("test");
             m_openViewAction = comp.GetTransition("openViewAction");
         }
         public void Dispose(bool disposeTarget = false)
@@ -80,6 +82,7 @@ namespace UI.Main
             m_bgTitle = null;
             m_listTab = null;
             m_listType = null;
+            m_test = null;
             m_openViewAction = null;
             if(disposeTarget && target != null)
             {

+ 44 - 10
GameClient/Assets/Game/HotUpdate/ServerProxy/LuckyBoxSProxy.cs

@@ -26,14 +26,14 @@ namespace ET
 
 namespace GFGGame
 {
-
     public class LuckyBoxSProxy
     {
         //抽奖
-        public static async ETTask<bool> ReqGetBonus(int luckyBoxId, int times, bool free = false,int activityId = 0)
+        public static async ETTask<bool> ReqGetBonus(int luckyBoxId, int times, bool free = false, int activityId = 0)
         {
             M2C_DrawLuckyBox response = null;
-            response = (M2C_DrawLuckyBox)await MessageHelper.SendToServer(new C2M_DrawLuckyBox() { LuckyBoxId = luckyBoxId, Times = times, Free = free, ActivityId = activityId });
+            response = (M2C_DrawLuckyBox)await MessageHelper.SendToServer(new C2M_DrawLuckyBox()
+                { LuckyBoxId = luckyBoxId, Times = times, Free = free, ActivityId = activityId });
             if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
@@ -41,7 +41,6 @@ namespace GFGGame
                     ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(response.ActivityId);
                     if (activityOpenCfg != null && activityOpenCfg.paramsArr[0] == luckyBoxId)
                     {
-                        
                         var activityCfg = ActivityOpenCfgArray.Instance.GetCfg(response.ActivityId);
                         if (activityCfg.type == ConstLimitTimeActivityType.ActLimitLuckyBox)
                             ActivityDataManager.Instance.allPlayTimes += response.Times;
@@ -49,26 +48,32 @@ namespace GFGGame
                             ActivityDataManager.Instance.allTsyPlayTimes += response.Times;
                         else if (activityCfg.type == ConstLimitTimeActivityType.ActLimitStlyc)
                         {
-                            if (ActivityDataManager.Instance.allLimitStlycTimes < 20 && (ActivityDataManager.Instance.allLimitStlycTimes + response.Times) >= 20)
+                            if (ActivityDataManager.Instance.allLimitStlycTimes < 20 &&
+                                (ActivityDataManager.Instance.allLimitStlycTimes + response.Times) >= 20)
                             {
                                 LuckyBoxDataManager.Instance.OPEN_LUCKY_DISCONT = true;
                             }
+
                             ActivityDataManager.Instance.allLimitStlycTimes += response.Times;
                         }
                     }
+
                     LuckyBoxDataManager.Instance.UpdatePlayTimes(response.LuckyBoxId, response.Times);
                     // LuckyBoxDataManager.Instance.luckyBoxIndex = response.LuckyBoxId;
                     LuckyBoxDataManager.Instance.RewardList = ItemUtil.CreateItemDataList(response.bonusList);
                     return true;
                 }
             }
+
             return false;
         }
+
         //请求轮换抽奖活动信息
         public static async ETTask<int> ReqGetLuckyBoxRotatingInfo()
         {
             S2C_GetLuckyBoxRotatingInfo response = null;
-            response = (S2C_GetLuckyBoxRotatingInfo)await MessageHelper.SendToServer(new C2S_GetLuckyBoxRotatingInfo() { });
+            response = (S2C_GetLuckyBoxRotatingInfo)await MessageHelper.SendToServer(new C2S_GetLuckyBoxRotatingInfo()
+                { });
             if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
@@ -77,6 +82,7 @@ namespace GFGGame
                     return response.RotatingId;
                 }
             }
+
             return 0;
         }
 
@@ -85,7 +91,7 @@ namespace GFGGame
         {
             S2C_GetLuckyBoxInfo response = null;
             response = (S2C_GetLuckyBoxInfo)await MessageHelper.SendToServer(new C2S_GetLuckyBoxInfo() { });
-            if(response != null)
+            if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
@@ -95,11 +101,12 @@ namespace GFGGame
         }
 
         //许愿池许愿记录
-        public static async ETTask<bool> ReqAddWishingPoolInfo(int suitId,int activityId)
+        public static async ETTask<bool> ReqAddWishingPoolInfo(int suitId, int activityId)
         {
             S2C_AddWishingPoolInfo response = null;
 
-            response = (S2C_AddWishingPoolInfo)await MessageHelper.SendToServer(new C2S_AddWishingPoolInfo() { SuitId = suitId , ActivityId  = activityId });
+            response = (S2C_AddWishingPoolInfo)await MessageHelper.SendToServer(new C2S_AddWishingPoolInfo()
+                { SuitId = suitId, ActivityId = activityId });
             if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
@@ -109,9 +116,10 @@ namespace GFGGame
                     return true;
                 }
             }
+
             return false;
         }
-        
+
         ////获取许愿池许愿记录
         public static async ETTask<bool> ReqGetWishingPoolInfo()
         {
@@ -126,6 +134,32 @@ namespace GFGGame
                     return true;
                 }
             }
+
+            return false;
+        }
+
+        ////抽奖盲盒
+        public static async ETTask<bool> ReqGetBlindBox(int id, int times)
+        {
+            M2C_BlindBox response = null;
+            int activtyId = ActivityDataManager.Instance.GetCurOpenActiveByType(102);
+            response = (M2C_BlindBox)await MessageHelper.SendToServer(new C2M_BlindBox()
+                { BlindBoxId = id, Times = times, ActivityId = activtyId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    LuckyBoxDataManager.Instance.BlindBoxReward = response.bonusList;
+                    return true;
+                }
+                
+                //ErrorCodeController.Handler(response.Error);
+            }
+            else
+            {
+                ErrorCodeController.Handler(ErrorCode.ERR_NetWorkError);
+            }
+            
             return false;
         }
     }

+ 71 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxBuyTipView.cs

@@ -0,0 +1,71 @@
+using FairyGUI;
+using UI.BlindBox;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+
+namespace GFGGame
+{
+    public class BlindBoxBuyTIpView : BaseWindow
+    {
+        private UI_BlindBoxBuyTipsUI _ui;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_BlindBoxBuyTipsUI.PACKAGE_NAME;
+            _ui = UI_BlindBoxBuyTipsUI.Create();
+            this.viewCom = _ui.target;
+            modal = true;
+            this.viewCom.Center();
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_cancelBtn.onClick.Add(OnClickCancelBtn);
+            _ui.m_sureBtn.onClick.Add(OnClickSureBtn);
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            string desc = (string)this.viewData;
+            _ui.m_desc.text = desc;
+            _ui.m_checkBtn.selected = false;
+        }
+        private void OnClickCancelBtn()
+        {
+            this.Hide();
+        }
+        private void OnClickSureBtn()
+        {
+            this.Hide();
+            if (ActivityDataManager.Instance.BlindBoxType == ActivityDataManager.Instance.typeOne.type)
+            {
+                EventAgent.DispatchEvent(ConstMessage.BlindBox_BuyOne);
+            }
+            else if (ActivityDataManager.Instance.BlindBoxType == ActivityDataManager.Instance.typeAll.type)
+            {
+                EventAgent.DispatchEvent(ConstMessage.BlindBox_BuyAll);
+            }
+            
+        }
+        protected override void OnHide()
+        {
+            if (ActivityDataManager.Instance.BlindBoxType == ActivityDataManager.Instance.typeOne.type)
+            {
+                ActivityDataManager.Instance.typeOne.check = _ui.m_checkBtn.selected;
+            }
+            else if (ActivityDataManager.Instance.BlindBoxType == ActivityDataManager.Instance.typeAll.type)
+            {
+                ActivityDataManager.Instance.typeAll.check = _ui.m_checkBtn.selected;
+            }
+            base.OnHide();
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxBuyTipView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 11ae15e008f61c34d9e3500c9dd6967f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 95 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs

@@ -0,0 +1,95 @@
+using FairyGUI;
+using UI.BlindBox;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+
+namespace GFGGame
+{
+    public class BlindBoxRewardView : BaseWindow
+    {
+        private UI_BlindBoxRewardUI _ui;
+        private List<DropOutCfg> _rewardNormal = null;
+        private List<DropOutCfg> _rewardSpecial = null;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_BlindBoxRewardUI.PACKAGE_NAME;
+            _ui = UI_BlindBoxRewardUI.Create();
+            this.viewCom = _ui.target;
+            modal = true;
+            this.viewCom.Center();
+
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+            _ui.m_normalList.itemRenderer = NormalRewardList;
+            _ui.m_specialList.itemRenderer = SpecialRewardList;
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            BlindBoxCfg blindBoxCfg = BlindBoxCfgArray.Instance.GetCfg(1);
+            int id1 = blindBoxCfg.OrdinaryDropDisplay; //(int)(this.viewData as object[])[0];
+            int id2 = blindBoxCfg.HideDropDisplay; //(int)(this.viewData as object[])[1];
+            _rewardNormal = DropOutCfgArray.Instance.GetCfgsByid(id1);
+            _ui.m_normalList.numItems = _rewardNormal.Count;
+            _rewardSpecial = DropOutCfgArray.Instance.GetCfgsByid(id2);
+            _ui.m_specialList.numItems = _rewardSpecial.Count;
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+        }
+        private void NormalRewardList(int index, GObject obj)
+        {
+            UI_Itemitem item = UI_Itemitem.Proxy(obj);
+            int id = _rewardNormal[index].item;
+            ItemCfg itemcfg = ItemCfgArray.Instance.GetCfg(id);
+            item.m_icon.url = ResPathUtil.GetIconPath(itemcfg);
+            item.m_name.text = itemcfg.name;
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickItem);
+            }
+            item.target.data = id;
+            UI_Itemitem.ProxyEnd();
+        }
+        private void SpecialRewardList(int index, GObject obj)
+        {
+            UI_Itemitem item = UI_Itemitem.Proxy(obj);
+            int id = _rewardSpecial[index].item;
+            ItemCfg itemcfg = ItemCfgArray.Instance.GetCfg(id);
+            item.m_icon.url = ResPathUtil.GetIconPath(itemcfg);
+            item.m_name.text = itemcfg.name;
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickItem);
+            }
+            item.target.data = id;
+            UI_Itemitem.ProxyEnd();      
+        }
+        private void OnClickItem(EventContext context)
+        {
+            GObject obj = context.sender as GObject;
+            int id = (int)obj.data;
+            GoodsItemTipsController.ShowItemTips(id);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRewardView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9f535b59a7904c54f973e7de0d49983a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 44 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRuleView.cs

@@ -0,0 +1,44 @@
+using FairyGUI;
+using UI.BlindBox;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+
+namespace GFGGame
+{
+    public class BlindBoxRuleView : BaseWindow
+    {
+        private UI_RuleTipsUI _ui;
+        public override void Dispose()
+        {
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+            base.Dispose();
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_RuleTipsUI.PACKAGE_NAME;
+            _ui = UI_RuleTipsUI.Create();
+            this.viewCom = _ui.target;
+            modal = true;
+            this.viewCom.Center();
+
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+        }
+        protected override void OnShown()
+        {
+            base.OnShown();
+            int id = (int)this.viewData;
+            string content = TextDescCfgArray.Instance.GetCfg(id).text;
+            _ui.m_desc.text = content;
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxRuleView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cbf38f5d72f946f43a86668f034e1c1b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 276 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs

@@ -0,0 +1,276 @@
+using FairyGUI;
+using UI.BlindBox;
+using System.Collections;
+using System.Collections.Generic;
+using ET;
+using System.Threading.Tasks;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace GFGGame
+{
+    public struct BlindBoxType
+    {
+        public int type;
+        public bool check;
+    }
+
+    public class BlindBoxView : BaseWindow
+    {
+        private UI_BlindBoxUI _ui;
+        private EffectUI _effectUI1;
+        private Dictionary<string, EffectUI> _effectUIDic = new Dictionary<string, EffectUI>();
+        private ItemCfg itemcfg;
+        private int listIndex = 0;
+        BlindBoxCfg blindBoxCfg = BlindBoxCfgArray.Instance.GetCfg(1);
+        public override void Dispose()
+        {
+            EffectUIPool.Recycle(_effectUI1);
+            _effectUI1 = null;
+            foreach (var v in _effectUIDic)
+            {
+                EffectUIPool.Recycle(v.Value);
+            }
+
+            _effectUIDic.Clear();
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+
+            base.Dispose();
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_BlindBoxUI.PACKAGE_NAME;
+            _ui = UI_BlindBoxUI.Create();
+            this.viewCom = _ui.target;
+            modal = true;
+            this.viewCom.Center();
+            //viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_backBtn.onClick.Add(this.Hide);
+            _ui.m_buyBtn.target.onClick.Add(OnClickBuyAll);
+            _ui.m_hiddenItem.onClick.Add(OnClickRewardBtn);
+            _ui.m_rewardList.onClick.Add(OnClickRewardBtn);
+            _ui.m_ruleBtn.onClick.Add(OnClickRuleBtn);
+            _ui.m_rewardList.itemRenderer = RenderRewardList;
+            
+            List<DropOutCfg> dropOutCfgList = DropOutCfgArray.Instance.GetCfgsByid(blindBoxCfg.OrdinaryDropDisplay);
+            List<DropOutCfg> hidDropOutCfgList = DropOutCfgArray.Instance.GetCfgsByid(blindBoxCfg.HideDropDisplay);
+            ItemCfg hidItemCfg = ItemCfgArray.Instance.GetCfg(hidDropOutCfgList[0].item);
+            _ui.m_rewardList.numItems = dropOutCfgList.Count;
+            _ui.m_hiddenItem.url =  ResPathUtil.GetIconPath(hidItemCfg);
+
+            _ui.m_boxList.itemRenderer = RenderBoxList;
+            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effect, "ui_Activity", "WSJ_UI_DX/WSJ_UI_DX");
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_bg.visible = false;
+            _ui.m_t1.Play();
+            clickBlankToClose = false;
+            itemcfg = ItemCfgArray.Instance.GetCfg(blindBoxCfg.CostID);
+            if (itemcfg == null)
+            {
+                Log.Error(string.Format("没有{0}物品"));
+            }
+
+            //_ui.m_buyBtn.m_img.url = ResPathUtil.GetIconPath(itemcfg);
+            _ui.m_boxList.numItems = 6;
+            _ui.m_rewardList.numItems = 6;
+            UpdateTime(null);
+            Timers.inst.Add(1, 0, UpdateTime);
+            Timers.inst.Add(0.75f, 1, TimeUpdateShow);
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+            ActivityDataManager.Instance.BlindBoxType = 0;
+            Timers.inst.Remove(UpdateTime);
+            Timers.inst.Remove(TimeUpdateShow);
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.BlindBox_BuyOne, ReqBuyOne);
+            EventAgent.AddEventListener(ConstMessage.BlindBox_BuyAll, ReqBuyAll);
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.BlindBox_BuyOne, ReqBuyOne);
+            EventAgent.RemoveEventListener(ConstMessage.BlindBox_BuyAll, ReqBuyAll);
+        }
+
+        private void OnClickRewardBtn()
+        {
+            ViewManager.Show<BlindBoxRewardView>(new object[] { 30000066, 30000078 });
+        }
+
+        private void OnClickRuleBtn()
+        {
+            ViewManager.Show<BlindBoxRuleView>(300036);
+        }
+
+        private void RenderRewardList(int index, GObject obj)
+        {
+            UI_rewardItem uiItemChild = UI_rewardItem.Proxy(obj);
+            List<DropOutCfg> dropOutCfgList = DropOutCfgArray.Instance.GetCfgsByid(blindBoxCfg.OrdinaryDropDisplay);
+            ItemCfg itemCfgChild = ItemCfgArray.Instance.GetCfg(dropOutCfgList[index].item);
+            
+            uiItemChild.target.data = itemCfgChild;
+            uiItemChild.m_reward.url = ResPathUtil.GetIconPath(itemCfgChild);
+            
+            UI_rewardItem.ProxyEnd();
+        }
+
+        private void RenderBoxList(int index, GObject obj)
+        {
+            UI_boxItem item = UI_boxItem.Proxy(obj);
+            item.target.onClick.Add(OnClickBuyOne);
+            if (!_effectUIDic.ContainsKey("WSJ_Box" + index.ToString()))
+            {
+                _effectUIDic.Add("WSJ_Box" + index.ToString(),
+                    EffectUIPool.CreateEffectUI(item.m_effect, "ui_Activity", "WSJ_Box/WSJ_Box"));
+            }
+
+            if (!_effectUIDic.ContainsKey("WSJ_OpenBox" + index.ToString()))
+            {
+                _effectUIDic.Add("WSJ_OpenBox" + index.ToString(),
+                    EffectUIPool.CreateEffectUI(item.m_effectOpen, "ui_Activity", "WSJ_OpenBox/WSJ_OpenBox"));
+                item.m_effectOpen.visible = false;
+            }
+
+            UI_boxItem.ProxyEnd();
+        }
+
+        private void OnClickBuyAll()
+        {
+            ActivityDataManager.Instance.BlindBoxType = 6;
+            int costNum = blindBoxCfg.CostIDNumArr[1];
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemcfg.id);
+            if (ActivityDataManager.Instance.typeAll.check == false)
+            {
+                string desc = string.Format("确认是否消耗{0}{1}打开{2}个盲盒?", costNum, itemCfg.name, _ui.m_boxList.numItems);
+                ViewManager.Show<BlindBoxBuyTIpView>(desc);
+            }
+            else
+            {
+                ReqBuyAll();
+            }
+        }
+
+        private async void ReqBuyAll()
+        {
+            bool result;
+            result = await LuckyBoxSProxy.ReqGetBlindBox(1, 6);
+            if (result)
+            {
+                UpdateAllBoxAni();
+            }
+        }
+
+        private async void ReqBuyOne()
+        {
+            bool result;
+            result = await LuckyBoxSProxy.ReqGetBlindBox(1, 1);
+            if (result)
+            {
+                UI_boxItem listItem = UI_boxItem.Proxy(_ui.m_boxList.GetChildAt(listIndex));
+                _ui.m_backBtn.touchable = false;
+                _ui.m_buyBtn.target.touchable = false;
+                _ui.m_boxList.touchable = false;
+                clickBlankToClose = false;
+                listItem.m_t0.Play(() =>
+                {
+                    BonusController.TryShowBonusList(
+                        ItemUtil.CreateItemDataList(LuckyBoxDataManager.Instance.BlindBoxReward));
+                    _ui.m_backBtn.touchable = true;
+                    _ui.m_buyBtn.target.touchable = true;
+                    _ui.m_boxList.touchable = true;
+                    clickBlankToClose = true;
+                });
+                UI_boxItem.ProxyEnd();
+            }
+        }
+
+        private void OnClickBuyOne(EventContext context)
+        {
+            GObject sender = context.sender as GObject;
+            GObject obj = sender.parent;
+            listIndex = _ui.m_boxList.GetChildIndex(sender);
+            ActivityDataManager.Instance.BlindBoxType = 1;
+            int costNum = blindBoxCfg.CostIDNumArr[0];
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemcfg.id);
+            if (ActivityDataManager.Instance.typeOne.check == false)
+            {
+                string desc = string.Format("确认是否消耗{0}{1}打开一个盲盒?", costNum, itemCfg.name);
+                ViewManager.Show<BlindBoxBuyTIpView>(desc);
+            }
+            else
+            {
+                ReqBuyOne();
+            }
+        }
+
+        private async void UpdateAllBoxAni()
+        {
+            _ui.m_backBtn.touchable = false;
+            _ui.m_buyBtn.target.touchable = false;
+            _ui.m_boxList.touchable = false;
+            clickBlankToClose = false;
+            for (int i = 0; i < _ui.m_boxList.numItems; i++)
+            {
+                UI_boxItem item = UI_boxItem.Proxy(_ui.m_boxList.GetChildAt(i));
+                item.m_effect.visible = false;
+                item.m_effectOpen.visible = true;
+                await Task.Delay(200);
+                UI_boxItem.ProxyEnd();
+            }
+
+            BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(LuckyBoxDataManager.Instance.BlindBoxReward));
+            for (int i = 0; i < _ui.m_boxList.numItems; i++)
+            {
+                UI_boxItem item = UI_boxItem.Proxy(_ui.m_boxList.GetChildAt(i));
+                item.m_effect.visible = true;
+                item.m_effectOpen.visible = false;
+                UI_boxItem.ProxyEnd();
+            }
+
+            _ui.m_backBtn.touchable = true;
+            _ui.m_buyBtn.target.touchable = true;
+            _ui.m_boxList.touchable = true;
+            clickBlankToClose = true;
+        }
+
+        private void TimeUpdateShow(object param)
+        {
+            clickBlankToClose = true;
+        }
+
+        private void UpdateTime(object param)
+        {
+            if (!ActivityAfuGiftDataManager.Instance.IsOpen)
+            {
+                return;
+            }
+
+            long curTime = TimeHelper.ServerNow();
+            var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.BlindBoxType);
+            if (activityInfo != null)
+            {
+                long endTime = activityInfo.EndTime;
+                _ui.m_txtTime.text = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/BlindBoxView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fae7ee1ecdc2eda4b97f44df7c6a6297
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

File diff suppressed because it is too large
+ 249 - 103
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs


+ 1 - 1
GameClient/Assets/Game/Launcher/Log/LogServerHelperHttp.cs

@@ -13,7 +13,7 @@ namespace GFGGame
         public static void SendNodeLog(int node)
         {
             var body = $"?logStr={LauncherConfig.platformId}|{DeviceUniqueIdHelper.GetDeviceUniqueId()}|{node}|{LauncherConfig.ChannelId}";
-            HttpTool.Instance.Get(LauncherConfig.logApiReportLauncherUrl + body, null,false);
+            //HttpTool.Instance.Get(LauncherConfig.logApiReportLauncherUrl + body, null,false);
         }
     }
 }

BIN
GameClient/Assets/ResIn/UI/ActivityThemeLuckyBox/ActivityThemeLuckyBox_fui.bytes


+ 8 - 0
GameClient/Assets/ResIn/UI/BlindBox.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 738e21d86c8b06748808b020fe043781
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 6882f787b2b721e4db866c18dc1122a5
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0.png


+ 120 - 0
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 474a45e708a11624e87fd06470581543
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1!a.png


+ 120 - 0
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1!a.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: 2dbb6d13f684a794da45fe8e5feaeb3a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1.png


+ 120 - 0
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_atlas0_1.png.meta

@@ -0,0 +1,120 @@
+fileFormatVersion: 2
+guid: c93d193d996ba3d419220f128d36ca72
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: 50
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 1
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_fui.bytes


+ 7 - 0
GameClient/Assets/ResIn/UI/BlindBox/BlindBox_fui.bytes.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d248978e432729c4cb4177240a35652f
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_10!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_10.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_11!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_11.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_2!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_2.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_3!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_3.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_4!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_4.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_5!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_5.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_6!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_6.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_7!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_7.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_8!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_8.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_9!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas0_9.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas10!a.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_atlas10.png


BIN
GameClient/Assets/ResIn/UI/Main/Main_fui.bytes


Some files were not shown because too many files changed in this diff