Browse Source

添加部分华容道逻辑

leiyasi 1 year ago
parent
commit
a3ff11f7aa

+ 9 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityHuaRongDao/UI_ActivityHuaRongDaoSuccessUI.cs

@@ -7,9 +7,11 @@ namespace UI.ActivityHuaRongDao
     public partial class UI_ActivityHuaRongDaoSuccessUI
     {
         public GComponent target;
+        public GList m_listReward;
         public UI_Again m_againCom;
+        public GButton m_btnExit2;
+        public GComponent m_reward;
         public GButton m_btnExit;
-        public GList m_listReward;
         public const string URL = "ui://wf8geywtltoyj";
         public const string PACKAGE_NAME = "ActivityHuaRongDao";
         public const string RES_NAME = "ActivityHuaRongDaoSuccessUI";
@@ -57,16 +59,20 @@ namespace UI.ActivityHuaRongDao
 
         private void Init(GComponent comp)
         {
+            m_listReward = (GList)comp.GetChild("listReward");
             m_againCom = (UI_Again)UI_Again.Create(comp.GetChild("againCom"));
+            m_btnExit2 = (GButton)comp.GetChild("btnExit2");
+            m_reward = (GComponent)comp.GetChild("reward");
             m_btnExit = (GButton)comp.GetChild("btnExit");
-            m_listReward = (GList)comp.GetChild("listReward");
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_listReward = null;
             m_againCom.Dispose();
             m_againCom = null;
+            m_btnExit2 = null;
+            m_reward = null;
             m_btnExit = null;
-            m_listReward = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 32 - 7
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityHuaRongDao/UI_ActivityHuaRongDaoUI.cs

@@ -7,13 +7,21 @@ namespace UI.ActivityHuaRongDao
     public partial class UI_ActivityHuaRongDaoUI
     {
         public GComponent target;
+        public Controller m_state;
+        public GLoader m_loaBg;
         public UI_item m_item;
-        public UI_items m_items;
         public GTextField m_seconds;
         public GGroup m_tips;
-        public GButton m_btnBack;
         public GButton m_btnLookPic;
+        public GButton m_btnHidePic;
         public GButton m_btnRefresh;
+        public UI_items m_items;
+        public UI_items m_itemsOrigin;
+        public GGraph m_mask;
+        public GGraph m_maskGlobal;
+        public GButton m_btnBack;
+        public Transition m_showMask;
+        public Transition m_hideMask;
         public const string URL = "ui://wf8geywtnx120";
         public const string PACKAGE_NAME = "ActivityHuaRongDao";
         public const string RES_NAME = "ActivityHuaRongDaoUI";
@@ -61,25 +69,42 @@ namespace UI.ActivityHuaRongDao
 
         private void Init(GComponent comp)
         {
+            m_state = comp.GetController("state");
+            m_loaBg = (GLoader)comp.GetChild("loaBg");
             m_item = (UI_item)UI_item.Create(comp.GetChild("item"));
-            m_items = (UI_items)UI_items.Create(comp.GetChild("items"));
             m_seconds = (GTextField)comp.GetChild("seconds");
             m_tips = (GGroup)comp.GetChild("tips");
-            m_btnBack = (GButton)comp.GetChild("btnBack");
             m_btnLookPic = (GButton)comp.GetChild("btnLookPic");
+            m_btnHidePic = (GButton)comp.GetChild("btnHidePic");
             m_btnRefresh = (GButton)comp.GetChild("btnRefresh");
+            m_items = (UI_items)UI_items.Create(comp.GetChild("items"));
+            m_itemsOrigin = (UI_items)UI_items.Create(comp.GetChild("itemsOrigin"));
+            m_mask = (GGraph)comp.GetChild("mask");
+            m_maskGlobal = (GGraph)comp.GetChild("maskGlobal");
+            m_btnBack = (GButton)comp.GetChild("btnBack");
+            m_showMask = comp.GetTransition("showMask");
+            m_hideMask = comp.GetTransition("hideMask");
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_state = null;
+            m_loaBg = null;
             m_item.Dispose();
             m_item = null;
-            m_items.Dispose();
-            m_items = null;
             m_seconds = null;
             m_tips = null;
-            m_btnBack = null;
             m_btnLookPic = null;
+            m_btnHidePic = null;
             m_btnRefresh = null;
+            m_items.Dispose();
+            m_items = null;
+            m_itemsOrigin.Dispose();
+            m_itemsOrigin = null;
+            m_mask = null;
+            m_maskGlobal = null;
+            m_btnBack = null;
+            m_showMask = null;
+            m_hideMask = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 6 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityHuaRongDao/UI_item.cs

@@ -9,6 +9,8 @@ namespace UI.ActivityHuaRongDao
         public GComponent target;
         public GLoader m_icon;
         public GTextField m_index;
+        public Transition m_show;
+        public Transition m_hide;
         public const string URL = "ui://wf8geywtnx121";
         public const string PACKAGE_NAME = "ActivityHuaRongDao";
         public const string RES_NAME = "item";
@@ -58,11 +60,15 @@ namespace UI.ActivityHuaRongDao
         {
             m_icon = (GLoader)comp.GetChild("icon");
             m_index = (GTextField)comp.GetChild("index");
+            m_show = comp.GetTransition("show");
+            m_hide = comp.GetTransition("hide");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_icon = null;
             m_index = null;
+            m_show = null;
+            m_hide = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 14 - 11
GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoEntryView.cs

@@ -24,8 +24,8 @@ namespace GFGGame
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("quanping_moren_bg");
 
             _ui.m_btnStart.onClick.Add(OnBtnStartClick);
-            _ui.m_btnRule.onClick.Add(OnBtnRuleClick);
             _ui.m_btnBack.onClick.Add(OnBtnBackClick);
+            InitBtnRule();
 
             InitIDList();
             _ui.m_scrollPane.m_listBg.itemRenderer = RenderListItem;
@@ -81,9 +81,12 @@ namespace GFGGame
 
         private void InitInfo()
         {
+            RoleLimitData limitData = RoleLimitDataManager.GetLimitData(HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel]).comsumeLimit);
+            int times = limitData.TotalPlayMax - limitData.PlayTimes;
+
             _ui.m_curLevel.text = curLevel.ToString();
-            _ui.m_challengeTimes.SetVar("have", haveTimes.ToString())
-                .SetVar("sum", HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel]).comsumeLimit.ToString()).FlushVars();
+            _ui.m_challengeTimes.SetVar("have", times.ToString())
+                .SetVar("sum", limitData.TotalPlayMax.ToString()).FlushVars();
 
             InitProgress();
             ProgressAutoLocate();
@@ -95,8 +98,6 @@ namespace GFGGame
             _ui.m_scrollPane.m_listBg.numItems = IDList.Count;
             _ui.m_scrollPane.m_listItems.numItems = IDList.Count;
             _ui.m_scrollPane.m_listBg.ResizeToFit();
-            //_ui.m_scrollPane.m_listBg.width = IDList.Count * 244 + (IDList)
-            //_ui.m_scrollPane.m_listBg.
         }
 
 
@@ -133,7 +134,8 @@ namespace GFGGame
         {
             GObject obj = (GObject)eventContext.sender;
             int id = (int)obj.data;
-            ViewManager.Show<GiftDetailView>(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr);
+            //ViewManager.Show<GiftDetailView>(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr);
+            GoodsItemTipsController.ShowItemTips(HuarongRoadGameArray.Instance.GetCfg(IDList[id]).bonusWinArr[0][0]);
         }
 
         private void OnBtnBackClick()
@@ -141,17 +143,18 @@ namespace GFGGame
             Hide();
         }
 
-        private void OnBtnRuleClick()
+        private void InitBtnRule()
         {
-
+            if (_ui.m_btnRule.data == null)
+            {
+                _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView);
+                _ui.m_btnRule.data = 300025;
+            }
         }
 
         private void OnBtnStartClick()
         {
             ViewManager.Show<ActivityHuaRongDaoView>(HuarongRoadGameArray.Instance.GetCfg(IDList[curLevel]));
         }
-
-
-
     }
 }

+ 10 - 3
GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoSuccessView.cs

@@ -30,6 +30,7 @@ namespace GFGGame
             _ui = UI_ActivityHuaRongDaoSuccessUI.Create();
             viewCom = _ui.target;
             viewCom.Center();
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
             modal = true;
             clickBlankToClose = false;
 
@@ -44,9 +45,9 @@ namespace GFGGame
 
             cfg = (HuarongRoadGame)viewData;
             itemDatas = ItemUtil.CreateItemDataList(cfg.bonusWinArr);
-            _ui.m_listReward.numItems = itemDatas.Count;
-
-            _ui.m_againCom.target.visible = (cfg.comsumeStartArr.Length > 0);
+            InitReward();
+            //_ui.m_listReward.numItems = itemDatas.Count;
+            //_ui.m_againCom.target.visible = (cfg.comsumeStartArr.Length > 0);
         }
 
         protected override void OnHide()
@@ -92,5 +93,11 @@ namespace GFGGame
             ViewManager.Hide<ActivityHuaRongDaoView>();
             Hide();
         }
+
+        private void InitReward()
+        {
+            _ui.m_reward.data = new ItemView(_ui.m_reward);
+            (_ui.m_reward.data as ItemView).SetData(itemDatas[0]);
+        }
     }
 }

+ 163 - 22
GameClient/Assets/Game/HotUpdate/Views/ActivityHuaRongDao/ActivityHuaRongDaoView.cs

@@ -3,6 +3,8 @@ using System.Collections.Generic;
 using UnityEngine;
 using UI.ActivityHuaRongDao;
 using FairyGUI;
+using System.Threading.Tasks;
+using System.Threading;
 
 namespace GFGGame
 {
@@ -20,6 +22,8 @@ namespace GFGGame
         private List<GObject> _items;
         private bool _gameStart;
         private HuarongRoadGame cfg;
+        private CancellationTokenSource cancellationTokenSource;
+        private GObject blankItem;
 
         public override void Dispose()
         {
@@ -38,16 +42,23 @@ namespace GFGGame
             packageName = UI_ActivityHuaRongDaoUI.PACKAGE_NAME;
             _ui = UI_ActivityHuaRongDaoUI.Create();
             viewCom = _ui.target;
-            viewCom.Center();
+            _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("quanping_moren_bg");
             isReturnView = true;
-            modal = true;
 
             _ui.m_item.target.visible = false;
             _ui.m_btnBack.onClick.Add(OnBtnBackClick);
+            _ui.m_btnLookPic.onClick.Add(OnClickBtnShowOriginPic);
+            _ui.m_btnHidePic.onClick.Add(OnClickBtnHideOriginPic);
+            _ui.m_btnRefresh.onClick.Add(OnClickBtnRefresh);
 
             InitGridInfo();
             CreateItems();
-
+            // 初始化空白处图片
+            if (blankItem == null)
+            {
+                blankItem = UIPackage.CreateObject("ActivityHuaRongDao", "item");
+                _ui.target.AddChild(blankItem);
+            }
         }
 
         protected override void OnShown()
@@ -55,17 +66,22 @@ namespace GFGGame
             base.OnShown();
 
             cfg = (HuarongRoadGame)viewData;
-            SetGridInfo();
-            InitItems();
+
+            blankItem.visible = false;
             _gameStart = false;
-            ResetCountdown();
-            Countdown(null);
-            Timers.inst.Add(1, 0, Countdown);
+            cancellationTokenSource = new CancellationTokenSource();
+            Task task = StartAnimation(cancellationTokenSource.Token);
+
+            // 倒计时相关
+            //ResetCountdown();
+            //Countdown(null);
+            //Timers.inst.Add(1, 0, Countdown);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            StopMyAsyncFunction();
         }
 
         /// <summary>
@@ -86,14 +102,11 @@ namespace GFGGame
 
         }
 
-        private void SetGridInfo()
+        private void SetGridInfo(List<int> numList)
         {
             //List<int> numList = GetRandomArr(1, 8);
-            List<int> numList = GetArrByConfigStep(cfg.step);
-            while (CheckListCorrect(numList))
-            {
-                numList = GetArrByConfigStep(cfg.step);
-            }
+
+
             Vector2 originPos = _ui.m_item.target.position;
 
             for (int i = 0; i < _gridNum; i++)
@@ -152,12 +165,7 @@ namespace GFGGame
             return list;
         }
 
-        /// <summary>
-        /// 根据配置步数打乱数组
-        /// </summary>
-        /// <param name="configStep"></param>
-        /// <returns></returns>
-        private List<int> GetArrByConfigStep(int configStep)
+        private List<int> CreateIncreaseArr()
         {
             List<int> list = new List<int>();
 
@@ -167,6 +175,18 @@ namespace GFGGame
                 list.Add(i);
             }
 
+            return list;
+        }
+
+        /// <summary>
+        /// 根据配置步数打乱数组
+        /// </summary>
+        /// <param name="configStep"></param>
+        /// <returns></returns>
+        private List<int> GetArrByConfigStep(int configStep)
+        {
+            List<int> list = CreateIncreaseArr();
+
             int num = 0;
             Vector2 zeroPos = new Vector2(0, 0);
             Vector2[] dirArr = { new Vector2(-1, 0), new Vector2(1, 0), new Vector2(0, -1), new Vector2(0, 1) };
@@ -223,7 +243,9 @@ namespace GFGGame
                 gObject.name = "item" + i;
                 gObject.onClick.Add(OnItemClick);
                 _ui.m_items.target.AddChild(gObject);
+                UI_item item = UI_item.Proxy(gObject);
                 _items.Add(gObject);
+                UI_item.ProxyEnd();
             }
         }
 
@@ -240,7 +262,8 @@ namespace GFGGame
                     _ui.m_items.target.touchable = true;
                     if (CheckWin())
                     {
-                        Win();
+                        _ui.m_maskGlobal.visible = true;
+                        Win(cancellationTokenSource.Token);
                     }
                 });
             }
@@ -358,8 +381,16 @@ namespace GFGGame
             return false;
         }
 
-        private void Win()
+        private async Task Win(CancellationToken cancellationToken)
         {
+            await Task.Delay(200, cancellationToken);
+            blankItem.visible = true;
+            blankItem.position = _gridArr[0, 0].pos;
+            UI_item item = UI_item.Proxy(blankItem);
+            item.m_icon.url = string.Format("ui://ActivityHuaRongDao/hrd_1-{0}", 1);
+            UI_item.ProxyEnd();
+            await Task.Delay(400, cancellationToken);
+
             // 关卡推进
             int passLevel = cfg.resArr[0];
             ActivityHuaRongDaoEntryView.curLevel = Mathf.Max(passLevel, ActivityHuaRongDaoEntryView.curLevel);
@@ -368,6 +399,7 @@ namespace GFGGame
             ViewManager.Show<ActivityHuaRongDaoSuccessView>(cfg);
         }
 
+
         private int countDownNum;
         private void Countdown(object param)
         {
@@ -406,5 +438,114 @@ namespace GFGGame
                 Hide();
             }
         }
+
+        private async Task StartAnimation(CancellationToken cancellationToken)
+        {
+            try
+            {
+                _ui.m_hideMask.Play();
+                _ui.m_maskGlobal.visible = true;
+                List<int> numList = CreateIncreaseArr();
+                SetGridInfo(numList);
+                InitItems();
+                CreateOriginPic();
+
+                // 隐藏所有
+                UI_item item;
+                for (int i = 0; i < _items.Count; i++)
+                {
+                    item = UI_item.Proxy(_items[i]);
+                    item.m_hide.Play();
+                }
+
+                // 入场
+                for (int i = 0; i < _items.Count; i++)
+                {
+                    item = UI_item.Proxy(_items[i]);
+                    item.m_show.Play();
+                    await Task.Delay(100, cancellationToken);
+                }
+                UI_item.ProxyEnd();
+
+                // 出现白色遮罩,刷新数组
+                await Task.Delay(900, cancellationToken);
+                _ui.m_showMask.Play(() =>
+                {
+                    _ui.m_maskGlobal.visible = false;
+                    _ui.m_hideMask.Play();
+                    _gameStart = true;
+                });
+
+                await Task.Delay(200, cancellationToken);
+                numList = GetArrByConfigStep(cfg.step);
+                while (CheckListCorrect(numList))
+                {
+                    numList = GetArrByConfigStep(cfg.step);
+                }
+                SetGridInfo(numList);
+                InitItems();
+            }
+
+            catch (TaskCanceledException)
+            {
+                //Debug.Log("异步函数被停止");
+            }
+        }
+
+        // 取消异步函数
+        public void StopMyAsyncFunction()
+        {
+            if (cancellationTokenSource != null)
+            {
+                cancellationTokenSource.Cancel();
+                cancellationTokenSource.Dispose();
+                cancellationTokenSource = null;
+            }
+        }
+
+        /// <summary>
+        /// 创建原图
+        /// </summary>
+        private void CreateOriginPic()
+        {
+            List<GObject> items = new List<GObject>();
+            for (int i = 1; i <= _gridNum * _gridNum; i++)
+            {
+                GObject gObject = UIPackage.CreateObject("ActivityHuaRongDao", "item");
+                _ui.m_itemsOrigin.target.AddChild(gObject);
+                items.Add(gObject);
+            }
+
+            int itemIndex = 0;
+            for (int i = 0; i < _gridNum; i++)
+            {
+                for (int j = 0; j < _gridNum; j++)
+                {
+                    items[itemIndex].position = _gridArr[i, j].pos;
+                    UI_item item = UI_item.Proxy(items[itemIndex]);
+                    item.m_index.text = _gridArr[i, j].num.ToString();
+                    item.m_icon.url = string.Format("ui://ActivityHuaRongDao/hrd_1-{0}", _gridArr[i, j].num + 1);
+                    UI_item.ProxyEnd();
+                    ++itemIndex;
+                }
+            }
+        }
+
+        private void OnClickBtnShowOriginPic()
+        {
+            _ui.m_items.target.visible = false;
+            _ui.m_itemsOrigin.target.visible = true;
+        }
+
+        private void OnClickBtnHideOriginPic()
+        {
+            _ui.m_items.target.visible = true;
+            _ui.m_itemsOrigin.target.visible = false;
+        }
+
+        private void OnClickBtnRefresh()
+        {
+            StartAnimation(cancellationTokenSource.Token);
+        }
     }
 }

BIN
GameClient/Assets/ResIn/UI/ActivityHuaRongDao/ActivityHuaRongDao_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/ActivityHuaRongDao/ActivityHuaRongDao_atlas0.png


BIN
GameClient/Assets/ResIn/UI/ActivityHuaRongDao/ActivityHuaRongDao_fui.bytes