Browse Source

茶话会开启挑战后界面跳转处理

huangxiaoyue 1 year ago
parent
commit
4bf28f373a

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

@@ -164,6 +164,10 @@ namespace GFGGame
 
 
         //茶话会领取奖励刷新
         //茶话会领取奖励刷新
         public const string TEA_PARTY_REWARD = "TEA_PARTY_REWARD";
         public const string TEA_PARTY_REWARD = "TEA_PARTY_REWARD";
+        //茶话会扮演角色坑位数据刷新
+        public const string TEA_PARTY_ROLE_CONTAINER = "TEA_PARTY_ROLE_CONTAINER";
+        //茶会状态刷新
+        public const string TEA_PARTY_STATU = "TEA_PARTY_STATU";
 
 
         //MainView to 同步刷新特惠礼包 限时礼包倒计时
         //MainView to 同步刷新特惠礼包 限时礼包倒计时
         public const string LUCKY_BOX_TIME = "LUCKY_BOX_TIME";
         public const string LUCKY_BOX_TIME = "LUCKY_BOX_TIME";

+ 22 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/LeagueSproxy.cs

@@ -11,6 +11,7 @@ namespace GFGGame
         {
         {
             LeagueDataManager.Instance.TeaPartyId = message.TeapartyId;
             LeagueDataManager.Instance.TeaPartyId = message.TeapartyId;
             LeagueDataManager.Instance.TeaPartyStatus = message.Status;
             LeagueDataManager.Instance.TeaPartyStatus = message.Status;
+            EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_STATU);
             await ETTask.CompletedTask;
             await ETTask.CompletedTask;
         }
         }
     }
     }
@@ -21,6 +22,7 @@ namespace GFGGame
         protected override async ETTask Run(Session session, S2C_RoleContainerInfos message)
         protected override async ETTask Run(Session session, S2C_RoleContainerInfos message)
         {
         {
             LeagueDataManager.Instance.RoleContainerList = message.RoleContainerList;
             LeagueDataManager.Instance.RoleContainerList = message.RoleContainerList;
+            EventAgent.DispatchEvent(ConstMessage.TEA_PARTY_ROLE_CONTAINER);
             await ETTask.CompletedTask;
             await ETTask.CompletedTask;
         }
         }
     }
     }
@@ -854,6 +856,8 @@ namespace GFGGame
             return logData;
             return logData;
         }
         }
 
 
+        /*****************************************************************************************************************************************/
+
         //茶话会获取本期信息
         //茶话会获取本期信息
         public static async ETTask<bool> GetTeapartyInfos()
         public static async ETTask<bool> GetTeapartyInfos()
         {
         {
@@ -977,7 +981,7 @@ namespace GFGGame
         }
         }
 
 
         //走完剧情流程上报节点
         //走完剧情流程上报节点
-        public static async ETTask<bool> GetLeagueRatingAward(long roleId)
+        public static async ETTask<bool> ReportTeapartyComplete(long roleId)
         {
         {
             S2C_ReportTeapartyComplete response = null;
             S2C_ReportTeapartyComplete response = null;
 
 
@@ -992,5 +996,22 @@ namespace GFGGame
             }
             }
             return false;
             return false;
         }
         }
+
+        //出茶会话,服务端就不会再推送S2C_RoleContainerInfos,以及S2C_LeagueScore
+        public static async ETTask<bool> QuitTeapparty(long roleId)
+        {
+            S2C_QuitTeapparty response = null;
+
+            response = (S2C_QuitTeapparty)await MessageHelper.SendToServer(new C2S_QuitTeapparty() { RoleId = roleId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    //LeagueDataManager.Instance.RoleContainerList = response.PerScore;
+                    return true;
+                }
+            }
+            return false;
+        }
     }
     }
 }
 }

+ 15 - 0
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -130,6 +130,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
             EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
+            EventAgent.AddEventListener(ConstMessage.TEA_PARTY_STATU, TeaPartyStatuChange);
             // EventAgent.AddEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
             // EventAgent.AddEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
         }
         }
 
 
@@ -141,6 +142,7 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdateSerch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdateSerch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
             EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER_RESET, DressResetSerch);
+            EventAgent.RemoveEventListener(ConstMessage.TEA_PARTY_STATU, TeaPartyStatuChange);
             // EventAgent.RemoveEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
             // EventAgent.RemoveEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
         }
         }
 
 
@@ -247,6 +249,7 @@ namespace GFGGame
             }
             }
 
 
             Timers.inst.AddUpdate(CheckGuide);
             Timers.inst.AddUpdate(CheckGuide);
+            TeaPartyStatuChange();
         }
         }
 
 
         protected override void OnHide()
         protected override void OnHide()
@@ -1473,5 +1476,17 @@ namespace GFGGame
             base.TryCompleteGuide();
             base.TryCompleteGuide();
             // GuideController.TryCompleteGuide(ConstGuideId.START_FIGHT, 5);
             // GuideController.TryCompleteGuide(ConstGuideId.START_FIGHT, 5);
         }
         }
+
+        private void TeaPartyStatuChange()
+        {
+            if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo)
+            {
+                AlertUI.Show("管理员已开启茶会,请前往挑战!")
+                .SetLeftButton(false).SetRightButton(true, "确定", (object data) =>
+                {
+                    ViewManager.Show<LeagueTeaPartyView>();
+                });
+            }
+        }
     }
     }
 }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/League/LeagueTeaPartyOverView.cs

@@ -60,7 +60,7 @@ namespace GFGGame
 
 
         private async void GetLeagueRatingAward()
         private async void GetLeagueRatingAward()
         {
         {
-            bool result = await LeagueSproxy.GetLeagueRatingAward(RoleDataManager.roleId);
+            bool result = await LeagueSproxy.ReportTeapartyComplete(RoleDataManager.roleId);
             if (result)
             if (result)
             {
             {
             }
             }

+ 58 - 31
GameClient/Assets/Game/HotUpdate/Views/League/LeagueTeaPartyView.cs

@@ -70,6 +70,8 @@ namespace GFGGame
         protected override void AddEventListener()
         protected override void AddEventListener()
         {
         {
             base.AddEventListener();
             base.AddEventListener();
+            EventAgent.AddEventListener(ConstMessage.TEA_PARTY_ROLE_CONTAINER, RefreshListTeaParty);
+            EventAgent.AddEventListener(ConstMessage.TEA_PARTY_STATU, TeaPartyStatuChange);
         }
         }
 
 
         protected override void OnShown()
         protected override void OnShown()
@@ -86,49 +88,28 @@ namespace GFGGame
             GetRoleContainerInfos();
             GetRoleContainerInfos();
         }
         }
 
 
-        private void UpDataTime(object param = null)
-        {
-            UpDataOverTime();
-            if (TimeInfo.Instance.ServerNow() >= LeagueDataManager.Instance.TeaPartyCloseTime)
-                Timers.inst.Remove(UpDataTime);
-        }
-
-        private void UpDataOverTime()
+        protected override void OnHide()
         {
         {
-            _ui.m_txtOverTime.text = "挑战剩余时间:" + TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), LeagueDataManager.Instance.TeaPartyCloseTime);
+            base.OnHide();
+            QuitTeapparty();
+            Timers.inst.Remove(UpDataTime);
         }
         }
 
 
-        private async void GetTeapartyMatchingInfos()
+        protected override void RemoveEventListener()
         {
         {
-            bool result = await LeagueSproxy.GetTeapartyMatchingInfos(RoleDataManager.roleId);
-            if (result)
-            {
-                _ui.m_ListTeaParty.numItems = 6;
-            }
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.TEA_PARTY_ROLE_CONTAINER, RefreshListTeaParty);
+            EventAgent.RemoveEventListener(ConstMessage.TEA_PARTY_STATU, TeaPartyStatuChange);
         }
         }
 
 
-        private async void GetRoleContainerInfos()
+        private async void QuitTeapparty()
         {
         {
-            bool result = await LeagueSproxy.GetRoleContainerInfos(RoleDataManager.roleId);
+            bool result = await LeagueSproxy.QuitTeapparty(RoleDataManager.roleId);
             if (result)
             if (result)
             {
             {
-                UpDataOverTime();
-                Timers.inst.Add(1f, 0, UpDataTime);
-                _ui.m_ListTeaParty.numItems = 6;
             }
             }
         }
         }
 
 
-        protected override void OnHide()
-        {
-            base.OnHide();
-            Timers.inst.Remove(UpDataTime);
-        }
-
-        protected override void RemoveEventListener()
-        {
-            base.RemoveEventListener();
-        }
-
         private void OnBtnChatClick()
         private void OnBtnChatClick()
         {
         {
             ViewManager.Show<LeagueChatView>();
             ViewManager.Show<LeagueChatView>();
@@ -203,5 +184,51 @@ namespace GFGGame
             dressUpFightType.teaPartID = LeagueDataManager.Instance.ChooseTeaPartId;
             dressUpFightType.teaPartID = LeagueDataManager.Instance.ChooseTeaPartId;
             ViewManager.Show<DressUpFightView>(dressUpFightType, new object[] { typeof(LeagueTeaPartyView).FullName, null }, true);
             ViewManager.Show<DressUpFightView>(dressUpFightType, new object[] { typeof(LeagueTeaPartyView).FullName, null }, true);
         }
         }
+
+        private void UpDataTime(object param = null)
+        {
+            UpDataOverTime();
+            if (TimeInfo.Instance.ServerNow() >= LeagueDataManager.Instance.TeaPartyCloseTime)
+                Timers.inst.Remove(UpDataTime);
+        }
+        private void UpDataOverTime()
+        {
+            _ui.m_txtOverTime.text = "挑战剩余时间:" + TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), LeagueDataManager.Instance.TeaPartyCloseTime);
+        }
+
+        private async void GetTeapartyMatchingInfos()
+        {
+            bool result = await LeagueSproxy.GetTeapartyMatchingInfos(RoleDataManager.roleId);
+            if (result)
+            {
+                RefreshListTeaParty();
+            }
+        }
+
+        private async void GetRoleContainerInfos()
+        {
+            bool result = await LeagueSproxy.GetRoleContainerInfos(RoleDataManager.roleId);
+            if (result)
+            {
+                UpDataOverTime();
+                Timers.inst.Add(1f, 0, UpDataTime);
+                RefreshListTeaParty();
+            }
+        }
+
+        private void RefreshListTeaParty()
+        {
+            _ui.m_ListTeaParty.numItems = teapartyRoleCfg.Count;
+        }
+
+        private void TeaPartyStatuChange()
+        {
+            if (LeagueDataManager.Instance.TeaPartyStatus == LeagueTeaPartyStatus.YesGo) {
+                if (LeagueDataManager.Instance.RoleTeapartyInfo.Status)
+                    ViewManager.Show<LeagueTeaPartyShowView>();
+                else
+                    OnBtnRewardClick();
+            }
+        }
     }
     }
 }
 }