瀏覽代碼

翻牌玩法修改,特效补充提交

zhangyuqian 1 年之前
父節點
當前提交
6fbf442b2d

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

@@ -216,5 +216,8 @@ namespace GFGGame
 
         // 更新华容道活动界面数据
         public const string ACTIVITY_HUARONGDAO_UPDATE = "ACTIVITY_HUARONGDAO_UPDATE";
+
+        //更新2048游戏关卡状态
+        public const string TZFE_GAME_UPDATE = "TZFE_GAME_UPDATE";
     }
 }

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -275,6 +275,8 @@ namespace GFGGame
             GameGlobal.AutoSevenDayLoginView = true;
             GameGlobal.AutoDailySignView = true;
             GameGlobal.AutoSpecialOfferGiftBoxView = true;
+            GameGlobal.AutoAcitivtyTipsLoginView = true;
+            GameGlobal.AutoMonthlyCardView = true;
             GameGlobal.AutoShowCompleted = false;
             GameGlobal.PreDataInited = false;
             GameGlobal.AfterDataInited = false;

+ 9 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MiniGame/UI_FlipGameUI.cs

@@ -8,6 +8,7 @@ namespace UI.MiniGame
     {
         public GComponent target;
         public GLoader m_loaBg;
+        public GImage m_title;
         public GList m_cardList;
         public GLoader m_back;
         public GProgressBar m_ScareBar;
@@ -21,6 +22,8 @@ namespace UI.MiniGame
         public GImage m_star32;
         public GImage m_star33;
         public GGroup m_star3;
+        public GGraph m_barEffect;
+        public GGraph m_titleEffec;
         public const string URL = "ui://wgkh30qjjmg10";
         public const string PACKAGE_NAME = "MiniGame";
         public const string RES_NAME = "FlipGameUI";
@@ -69,6 +72,7 @@ namespace UI.MiniGame
         private void Init(GComponent comp)
         {
             m_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_title = (GImage)comp.GetChild("title");
             m_cardList = (GList)comp.GetChild("cardList");
             m_back = (GLoader)comp.GetChild("back");
             m_ScareBar = (GProgressBar)comp.GetChild("ScareBar");
@@ -82,10 +86,13 @@ namespace UI.MiniGame
             m_star32 = (GImage)comp.GetChild("star32");
             m_star33 = (GImage)comp.GetChild("star33");
             m_star3 = (GGroup)comp.GetChild("star3");
+            m_barEffect = (GGraph)comp.GetChild("barEffect");
+            m_titleEffec = (GGraph)comp.GetChild("titleEffec");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_loaBg = null;
+            m_title = null;
             m_cardList = null;
             m_back = null;
             m_ScareBar = null;
@@ -99,6 +106,8 @@ namespace UI.MiniGame
             m_star32 = null;
             m_star33 = null;
             m_star3 = null;
+            m_barEffect = null;
+            m_titleEffec = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MiniGame/UI_TZFEGameCheckUI.cs

@@ -14,6 +14,7 @@ namespace UI.MiniGame
         public GLoader m_newGame1;
         public GLoader m_needIcon1;
         public GTextField m_needNum1;
+        public GLoader m_gameLock1;
         public GTextField m_gameTitle2;
         public GLoader m_game2;
         public GLoader m_newGame2;
@@ -81,6 +82,7 @@ namespace UI.MiniGame
             m_newGame1 = (GLoader)comp.GetChild("newGame1");
             m_needIcon1 = (GLoader)comp.GetChild("needIcon1");
             m_needNum1 = (GTextField)comp.GetChild("needNum1");
+            m_gameLock1 = (GLoader)comp.GetChild("gameLock1");
             m_gameTitle2 = (GTextField)comp.GetChild("gameTitle2");
             m_game2 = (GLoader)comp.GetChild("game2");
             m_newGame2 = (GLoader)comp.GetChild("newGame2");
@@ -104,6 +106,7 @@ namespace UI.MiniGame
             m_newGame1 = null;
             m_needIcon1 = null;
             m_needNum1 = null;
+            m_gameLock1 = null;
             m_gameTitle2 = null;
             m_game2 = null;
             m_newGame2 = null;

+ 9 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/MiniGame/UI_cardItem.cs

@@ -10,6 +10,9 @@ namespace UI.MiniGame
         public Controller m_state;
         public GButton m_card;
         public GTextField m_id;
+        public GGraph m_removeEffect;
+        public GGraph m_flipEffect;
+        public Transition m_t0;
         public const string URL = "ui://wgkh30qjjmg11";
         public const string PACKAGE_NAME = "MiniGame";
         public const string RES_NAME = "cardItem";
@@ -60,12 +63,18 @@ namespace UI.MiniGame
             m_state = comp.GetController("state");
             m_card = (GButton)comp.GetChild("card");
             m_id = (GTextField)comp.GetChild("id");
+            m_removeEffect = (GGraph)comp.GetChild("removeEffect");
+            m_flipEffect = (GGraph)comp.GetChild("flipEffect");
+            m_t0 = comp.GetTransition("t0");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_state = null;
             m_card = null;
             m_id = null;
+            m_removeEffect = null;
+            m_flipEffect = null;
+            m_t0 = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 19 - 11
GameClient/Assets/Game/HotUpdate/Views/MiniGame/ChallengeRewardView.cs

@@ -16,8 +16,9 @@ namespace GFGGame
         private MiniGame[] gameNameDate;
         //由于每个游戏都有一个表
         private List<CardGame> CardGameDate;
+        private List<GameInfoProto> CardGameInfo;
         private List<Merge2048Game> Merge2048GameDate;
-        private List<HuarongRoadGame> HuarongRoadGameDate;
+        private List<GameInfoProto> Merge2048GameInfo;
 
         private int oneNumItems;
         private int twoNumItems;
@@ -57,23 +58,31 @@ namespace GFGGame
             {
                 case 0:
                     oneNumItems = 0;
-                    twoNumItems = 0;
                     break;
                 case 2:
                     oneNumItems = 3;
-                    twoNumItems = 0;
                     break;
                 case 4:
                     oneNumItems = 3;
-                    twoNumItems = 3;
                     break;
                 default:
                     oneNumItems = 0;
-                    twoNumItems = 0;
                     break;
             }
-            _ui.m_reward.m_rewardOneList.numItems = oneNumItems;
-            _ui.m_reward.m_rewardTwoList.numItems = twoNumItems;
+            foreach(GameInfoProto t in MiniGameDateManager.Instance.gameinfoList)
+            {
+                if(t.GameType == 1)
+                {
+                    CardGameInfo.Add(t);
+                }
+                if(t.GameType == 2)
+                {
+                    Merge2048GameInfo.Add(t);
+                }
+            }
+
+            _ui.m_reward.m_rewardOneList.numItems = CardGameInfo[0].StarRewardStatus.Count == 0? CardGameInfo.Count : CardGameInfo[0].StarRewardStatus.Count;
+            _ui.m_reward.m_rewardTwoList.numItems = Merge2048GameInfo[0].StarRewardStatus.Count == 0 ? Merge2048GameInfo.Count : Merge2048GameInfo[0].StarRewardStatus.Count;
 
         }
         protected override void OnHide()
@@ -114,7 +123,7 @@ namespace GFGGame
             item.m_rewardList.itemRenderer = RenditemReward;
             //读表
             //var reward;
-            item.m_getBtn.m_c1.selectedIndex = MiniGameDateManager.Instance.gameinfoList[1].StarRewardStatus[2 - index];
+            item.m_getBtn.m_c1.selectedIndex = Merge2048GameInfo[index].IsCleared? 1:0;
             item.m_rewardList.data = gameList[2];
             item.m_rewardList.numItems = Merge2048GameDate[0].bonusStar3Arr.Length;
 
@@ -128,7 +137,7 @@ namespace GFGGame
             rewardList.Add(Merge2048GameDate[0].type);
             rewardList.Add(1);
             rewardList.Add(3 - index);
-            rewardList.Add(MiniGameDateManager.Instance.gameinfoList[1].StarRewardStatus[2 - index]);
+            rewardList.Add(Merge2048GameInfo[index].IsCleared ? 1 : 0);
             item.m_getBtn.target.data = rewardList;
             UI_ChallengeRewardItemUI.ProxyEnd();
         }
@@ -203,8 +212,7 @@ namespace GFGGame
                 case 2:
                     Merge2048GameDate = Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(i,j);
                     break;
-                case 3:
-                    HuarongRoadGameDate = HuarongRoadGameArray.Instance.GetCfgsBytypeAndsubType(i, j);
+                default:
                     break;
             }
 

+ 57 - 16
GameClient/Assets/Game/HotUpdate/Views/MiniGame/FlipGameView.cs

@@ -62,18 +62,15 @@ namespace GFGGame
 
         private EffectUI _effectUI1;
         private EffectUI _effectUI2;
-        private EffectUI _effectUI3;
-        private EffectUI _effectUI4;
+        private List<EffectUI> _effectFlipList = new List<EffectUI>();
+        private List<EffectUI> _effectRemoveList = new List<EffectUI>();
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
             _effectUI1 = null;
             EffectUIPool.Recycle(_effectUI2);
             _effectUI2 = null;
-            EffectUIPool.Recycle(_effectUI3);
-            _effectUI3 = null;
-            EffectUIPool.Recycle(_effectUI4);
-            _effectUI4 = null;
+            DestroyObjectFromView();
             if (_ui != null)
             {
                 _ui.Dispose();
@@ -94,6 +91,8 @@ namespace GFGGame
 
             UIObjectFactory.SetPackageItemExtension("ui://MiniGame/CardComponent", typeof(Card));
 
+            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_barEffect, "ui_Activity", "YXJY_Game_JinDu");
+            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_titleEffec, "ui_Activity", "YXJY_Game_Text");
         }
 
         protected override void OnShown()
@@ -114,15 +113,33 @@ namespace GFGGame
         }
         protected override void OnHide()
         {
-            _ui.m_cardList.RemoveChildrenToPool();
-            base.OnHide();
+            DestroyObjectFromView();
             cardList.Clear();
             Timers.inst.Remove(UpdateTime);
             Timers.inst.Remove(UpdateBar);
             Timers.inst.Remove(UpdateHit);
             Timers.inst.Remove(StartTime);
+            
+            base.OnHide();
+
         }
 
+        private void DestroyObjectFromView()
+        {
+            for (int i = 0; i < _effectFlipList.Count; i++)
+            {
+                EffectUIPool.Recycle(_effectFlipList[i]);
+                _effectFlipList[i] = null;
+            }
+            _effectFlipList.Clear();
+
+            for (int i = 0; i < _effectRemoveList.Count; i++)
+            {
+                EffectUIPool.Recycle(_effectRemoveList[i]);
+                _effectRemoveList[i] = null;
+            }
+            _effectRemoveList.Clear();
+        }
         private void OnClickBtnBack()
         {
             Timers.inst.Remove(UpdateTime);
@@ -156,6 +173,15 @@ namespace GFGGame
             UI_cardItem cardItem = UI_cardItem.Proxy(item);
             Dictionary<string, int> itemInfo = new Dictionary<string, int>();
 
+            cardItem.target.visible = true;
+            cardItem.target.alpha = 1;
+            EffectUI _effectUI1 = EffectUIPool.CreateEffectUI(cardItem.m_flipEffect, "ui_Activity", "YXJY_Game_OpenCard");
+            _effectFlipList.Add(_effectUI1);
+            cardItem.m_flipEffect.visible = false;
+            EffectUI _effectUI2 = EffectUIPool.CreateEffectUI(cardItem.m_removeEffect, "ui_Activity", "YXJY_Game_CardDie");
+            _effectRemoveList.Add(_effectUI2);
+            cardItem.m_removeEffect.visible = false;
+
             cardItem.m_card.GetChild("icon").icon = ResPathUtil.GetMiniGamePicPath(CardCfgArray.Instance.dataArray[cardArray[index]].resName);
             if (cardItem.target.data == null)
             {
@@ -210,9 +236,13 @@ namespace GFGGame
             _ui.m_ScareBar.min = 0;
             _ui.m_ScareBar.value = gameTime;
             _ui.m_star1.SetPosition(((float)(gameTime - CustemsNum[0])/(float)gameTime) * _ui.m_ScareBar.width + 70,_ui.m_star1.position.y, _ui.m_star1.position.z);
-            _ui.m_star2.SetPosition(((float)(gameTime - CustemsNum[1]) / (float)gameTime) * _ui.m_ScareBar.width, _ui.m_star1.position.y, _ui.m_star1.position.z);
+            _ui.m_star2.SetPosition(((float)(gameTime - CustemsNum[1]) / (float)gameTime) * _ui.m_ScareBar.width + 10, _ui.m_star1.position.y, _ui.m_star1.position.z);
             _ui.m_star3.SetPosition(((float)(gameTime - CustemsNum[2]) / (float)gameTime) * _ui.m_ScareBar.width, _ui.m_star1.position.y, _ui.m_star1.position.z);
 
+            _ui.m_title.visible = false;
+            _ui.m_titleEffec.visible = true;
+            _ui.m_barEffect.x = _ui.m_ScareBar.width;
+
             _ui.m_cardList.touchable = true;
             //计时器
             Timers.inst.Add(1.0f, 0, UpdateTime);
@@ -250,8 +280,8 @@ namespace GFGGame
                         //翻牌
                         card.Turn();
                         //.
-                        cardList.Remove(cardInfo);
-                        
+                        cardList.RemoveAt(0);
+                        isSame = true;
                         break;
                  }
                 else
@@ -269,29 +299,37 @@ namespace GFGGame
             {
                 cardInfo["state"] = 1;
                 card.Turn();
+                item.m_flipEffect.visible = true;
                 cardList.Add(cardInfo);
             }
             UI_cardItem.ProxyEnd();
         }
         private void StartTime(object param = null)
         {
+
             _ui.m_cardList.touchable = false;
             canHit = false;
             UpdateCard();
-            Timers.inst.Remove(StartTime);
         }
         //这里是处理已翻开的数量
         private void UpdateCard()
         {
+            Timers.inst.Remove(StartTime);
             List<Dictionary<string, int>> removeList = new List<Dictionary<string, int>>();
-            for (int i = 1; i < cardList.Count; i++)
+            for (int i = 1; i < cardList.Count; i+= 2)
             {
                 if(cardList[i]["id"] == cardList[i-1]["id"])
                 {
                     cardList[i]["state"] = 2;
                     //消除
-                    _ui.m_cardList.GetChildAt(cardList[i]["index"]).visible = false;
-                    _ui.m_cardList.GetChildAt(cardList[i - 1]["index"]).visible = false;
+                    UI_cardItem item1 = UI_cardItem.Proxy(_ui.m_cardList.GetChildAt(cardList[i]["index"]));
+                    item1.m_t0.Play();
+                    UI_cardItem.ProxyEnd();
+
+                    UI_cardItem item2 = UI_cardItem.Proxy(_ui.m_cardList.GetChildAt(cardList[i-1]["index"]));
+                    item2.m_t0.Play();
+                    UI_cardItem.ProxyEnd();
+
                     currentCardNum -= 2;
                     removeList.Add(cardList[i-1]);
                     removeList.Add(cardList[i]);
@@ -316,6 +354,7 @@ namespace GFGGame
                     //翻回去
                     Card card = (Card)item.m_card;
                     card.Turn();
+                    item.m_flipEffect.visible = false;
                     cardList[i - 1]["state"] = 0;
                     UI_cardItem.ProxyEnd();
                     if (cardList.Count % 2 == 0 && i == cardList.Count - 1)
@@ -324,6 +363,7 @@ namespace GFGGame
                         //翻回去
                         Card cardLast = (Card)carditem.m_card;
                         cardLast.Turn();
+                        carditem.m_flipEffect.visible = false;
                         cardList[i]["state"] = 0;
                         UI_cardItem.ProxyEnd();
                     }
@@ -346,11 +386,11 @@ namespace GFGGame
         }
         private void UpdateHit(object param = null)
         {
-            Timers.inst.Remove(UpdateHit);
             StartHit = true;
             firstHit = true;
             canHit = true;
             _ui.m_cardList.touchable = true;
+            Timers.inst.Remove(UpdateHit);
         }
         private void UpdateTime(object param = null)
         {
@@ -367,6 +407,7 @@ namespace GFGGame
         {
             barTime -= 0.1f;
             _ui.m_ScareBar.value = barTime;
+            _ui.m_barEffect.x -= (880.0f/ (float)(gameTime*10));
         }
 
         private void Gameover(bool isPass = false)

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/MiniGame/ResultTipsView.cs

@@ -150,6 +150,7 @@ namespace GFGGame
         {
             this.Hide();
             ViewManager.Hide(viewJumpView[gameType]);
+            EventAgent.DispatchEvent(ConstMessage.TZFE_GAME_UPDATE);
         }
         private async void OnClickAgain()
         {

+ 53 - 2
GameClient/Assets/Game/HotUpdate/Views/MiniGame/TZFEGameCheckView.cs

@@ -42,6 +42,14 @@ namespace GFGGame
             _ui.m_backBtn.onClick.Add(OnClickBtnBack);
             _ui.m_tipsOne.onClick.Add(RuleController.ShowRuleView);
         }
+        protected override void AddEventListener()
+        {
+            EventAgent.AddEventListener(ConstMessage.TZFE_GAME_UPDATE, OnCheckChange);
+        }
+        protected override void RemoveEventListener()
+        {
+            EventAgent.RemoveEventListener(ConstMessage.TZFE_GAME_UPDATE, OnCheckChange);
+        }
 
         protected override void OnShown()
         {
@@ -64,8 +72,8 @@ namespace GFGGame
             _ui.m_needIcon1.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
             _ui.m_needIcon2.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
             _ui.m_needIcon3.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(3000017).res);
-            _ui.m_gameLock2.visible = false;
-            _ui.m_gameLock3.visible = false;
+
+            OnCheckChange();
             _ui.m_tipsOne.data = 300027;
         }
         private void OnClickBtnBack()
@@ -73,8 +81,41 @@ namespace GFGGame
             this.Hide();
         }
 
+       private async void  OnCheckChange()
+        {
+            var result = await MiniGameProxy.ReqGetChallengeReward(1);
+            if (!result) return;
+            int j = 0;
+            foreach (GameInfoProto t in MiniGameDateManager.Instance.gameinfoList)
+            {
+                if (t.GameType == type)
+                {
+                    j++;
+                    switch (j)
+                    {
+                        case 1:
+                            _ui.m_gameLock1.visible = !t.IsUnlock;
+                            break;
+                        case 2:
+                            _ui.m_gameLock2.visible = !t.IsUnlock;
+                            break;
+                        case 3:
+                            _ui.m_gameLock3.visible = !t.IsUnlock;
+                            break;
+                        default:
+                            break;
+                    }
+                }
+            }
+        }
+
         private async void OnClickBtnGameOne()
         {
+            if(_ui.m_gameLock1.visible == true)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("未解锁,请通关前置关卡");
+                return;
+            }
             var result = await MiniGameProxy.ReqMiniGameStart(Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(type, subType)[0].id, type, activityGameDate[0].id);
             if (!result) return;
             //当存在关卡时需要获取后台数据,哪一关了,这个可以在关卡界面写
@@ -82,6 +123,11 @@ namespace GFGGame
         }
         private async void OnClickBtnGameTwo()
         {
+            if (_ui.m_gameLock2.visible == true)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("未解锁,请通关前置关卡");
+                return;
+            }
             var result = await MiniGameProxy.ReqMiniGameStart(Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(type, subType)[1].id, type, activityGameDate[0].id);
             if (!result) return;
             //当存在关卡时需要获取后台数据,哪一关了,这个可以在关卡界面写
@@ -90,6 +136,11 @@ namespace GFGGame
 
         private async void OnClickBtnGameThree()
         {
+            if (_ui.m_gameLock3.visible == true)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("未解锁,请通关前置关卡");
+                return;
+            }
             var result = await MiniGameProxy.ReqMiniGameStart(Merge2048GameArray.Instance.GetCfgsBytypeAndsubType(type, subType)[2].id, type, activityGameDate[0].id);
             if (!result) return;
             //当存在关卡时需要获取后台数据,哪一关了,这个可以在关卡界面写

二進制
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0.png


+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: fa2a3c0c31a363a4fb4237b7c97dc34e
+guid: 1db29bf9ff0692045ac4f59cb2b34cbb
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

二進制
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0_1.png


+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0_1.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 023ab59054f19c547877c830b3460dc9
+guid: 25dc8c3b188c0104e94f3f7ff3f37976
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0_2.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 954f701dda00a7e4ba94a7b5e5da951d
+guid: dcef95d2b22de4f45bc0dd74b89091e7
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0_3.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 96d0b2af4d098fc41a3c7ec5de901ebd
+guid: 9928da8862c10de46bba71d1e1f81149
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_atlas0_4.png.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: f4233f01723bfaf4b8d4eab8396b04b9
+guid: e7e6403e08c196842807ec3ea7a1e2d6
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}

二進制
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_fui.bytes


+ 1 - 1
GameClient/Assets/ResIn/UI/MiniGame/MiniGame_fui.bytes.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 44c9ff70c2f5e7a419e6369c859c7776
+guid: 6e54089c5db82c54080b087d3ac27dd7
 TextScriptImporter:
   externalObjects: {}
   userData: