zhangyuqian 1 жил өмнө
parent
commit
f125c026e7
15 өөрчлөгдсөн 293 нэмэгдсэн , 18 устгасан
  1. 3 0
      GameClient/Assets/Game/HotUpdate/Data/MiniGameDateManager.cs
  2. 6 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityVIsitItemUI.cs
  3. 6 2
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityVisitNPCUI.cs
  4. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component1.cs
  5. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component1.cs.meta
  6. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component2.cs
  7. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component2.cs.meta
  8. 11 3
      GameClient/Assets/Game/HotUpdate/ServerProxy/ActivityTeaSProxy.cs
  9. 2 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs
  10. 35 4
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs
  11. 65 4
      GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityVisitNpcView.cs
  12. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0!a.png
  13. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0.png
  14. BIN
      GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_fui.bytes
  15. 1 1
      GameClient/Assets/ResIn/UI/OpenServerActivity_fui.bytes.meta

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Data/MiniGameDateManager.cs

@@ -10,5 +10,8 @@ namespace GFGGame
     {
         public List<ItemInfoProto> itemList = new List<ItemInfoProto>();
         public List<GameInfoProto> gameinfoList = new List<GameInfoProto>();
+
+        /**********************************************************新春活动_暂用*************************************************/
+        public List<NpcVisitProto> NpcInfoList = new List<NpcVisitProto>();
     }
 }

+ 6 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityVIsitItemUI.cs

@@ -13,7 +13,8 @@ namespace UI.ActivityAfternoonTea
         public GLoader m_lockIcon;
         public GTextField m_name;
         public GTextField m_lockTitle;
-        public GLoader m_visitBtn;
+        public UI_Component1 m_visitBtn;
+        public GGroup m_visitG;
         public GGroup m_unLock;
         public const string URL = "ui://wpsqkdbznjonl";
         public const string PACKAGE_NAME = "ActivityAfternoonTea";
@@ -68,7 +69,8 @@ namespace UI.ActivityAfternoonTea
             m_lockIcon = (GLoader)comp.GetChild("lockIcon");
             m_name = (GTextField)comp.GetChild("name");
             m_lockTitle = (GTextField)comp.GetChild("lockTitle");
-            m_visitBtn = (GLoader)comp.GetChild("visitBtn");
+            m_visitBtn = (UI_Component1)UI_Component1.Create(comp.GetChild("visitBtn"));
+            m_visitG = (GGroup)comp.GetChild("visitG");
             m_unLock = (GGroup)comp.GetChild("unLock");
         }
         public void Dispose(bool disposeTarget = false)
@@ -80,7 +82,9 @@ namespace UI.ActivityAfternoonTea
             m_lockIcon = null;
             m_name = null;
             m_lockTitle = null;
+            m_visitBtn.Dispose();
             m_visitBtn = null;
+            m_visitG = null;
             m_unLock = null;
             if(disposeTarget && target != null)
             {

+ 6 - 2
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_ActivityVisitNPCUI.cs

@@ -14,9 +14,10 @@ namespace UI.ActivityAfternoonTea
         public GButton m_btnBack;
         public GTextField m_name;
         public GTextField m_titleIcon;
-        public GLoader m_taskIcon;
+        public UI_Component2 m_taskIcon;
         public GLoader m_listBg;
         public GList m_taskList;
+        public GLoader m_gotReward;
         public const string URL = "ui://wpsqkdbznjonj";
         public const string PACKAGE_NAME = "ActivityAfternoonTea";
         public const string RES_NAME = "ActivityVisitNPCUI";
@@ -71,9 +72,10 @@ namespace UI.ActivityAfternoonTea
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_name = (GTextField)comp.GetChild("name");
             m_titleIcon = (GTextField)comp.GetChild("titleIcon");
-            m_taskIcon = (GLoader)comp.GetChild("taskIcon");
+            m_taskIcon = (UI_Component2)UI_Component2.Create(comp.GetChild("taskIcon"));
             m_listBg = (GLoader)comp.GetChild("listBg");
             m_taskList = (GList)comp.GetChild("taskList");
+            m_gotReward = (GLoader)comp.GetChild("gotReward");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -85,9 +87,11 @@ namespace UI.ActivityAfternoonTea
             m_btnBack = null;
             m_name = null;
             m_titleIcon = null;
+            m_taskIcon.Dispose();
             m_taskIcon = null;
             m_listBg = null;
             m_taskList = null;
+            m_gotReward = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component1.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ActivityAfternoonTea
+{
+    public partial class UI_Component1
+    {
+        public GComponent target;
+        public GLoader m_visitBtn;
+        public const string URL = "ui://wpsqkdbzqbf42o";
+        public const string PACKAGE_NAME = "ActivityAfternoonTea";
+        public const string RES_NAME = "Component1";
+        private static UI_Component1 _proxy;
+
+        public static UI_Component1 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component1();
+            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_Component1 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component1();
+            }
+            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_visitBtn = (GLoader)comp.GetChild("visitBtn");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_visitBtn = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component1.cs.meta

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

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component2.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ActivityAfternoonTea
+{
+    public partial class UI_Component2
+    {
+        public GComponent target;
+        public GLoader m_taskIcon;
+        public const string URL = "ui://wpsqkdbzqbf42p";
+        public const string PACKAGE_NAME = "ActivityAfternoonTea";
+        public const string RES_NAME = "Component2";
+        private static UI_Component2 _proxy;
+
+        public static UI_Component2 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component2();
+            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_Component2 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component2();
+            }
+            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_taskIcon = (GLoader)comp.GetChild("taskIcon");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_taskIcon = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ActivityAfternoonTea/UI_Component2.cs.meta

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

+ 11 - 3
GameClient/Assets/Game/HotUpdate/ServerProxy/ActivityTeaSProxy.cs

@@ -5,13 +5,21 @@ using ET;
 
 namespace GFGGame
 {
+    public class ActivityNPCRewardProtoHandler : AMHandler<S2C_PushNpcVisits>
+    {
+        protected override async ETTask Run(Session session, S2C_PushNpcVisits message)
+        {
+            MiniGameDateManager.Instance.NpcInfoList = message.NpcVisits;
+            await ETTask.CompletedTask;
+        }
+    }
     public class ActivityTeaSProxy
     {
         public static async ETTask<bool> ReqGetNPCVisitInfo(int id)
         {
             var response = (S2C_GetNpcVisits) await MessageHelper.SendToServer(new C2S_GetNpcVisits { ActivityId = id });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
-            //MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
+            MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
             return true;
         }
 
@@ -19,7 +27,7 @@ namespace GFGGame
         {
             var response = (S2C_UnlockNpcVisit)await MessageHelper.SendToServer(new C2S_UnlockNpcVisit { ActivityId = id , NpcId = npcid});
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
-            //MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
+            MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
             return true;
         }
 
@@ -29,7 +37,7 @@ namespace GFGGame
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             // 奖励弹窗
             BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.BonusList));
-            //MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
+            MiniGameDateManager.Instance.NpcInfoList = response.NpcVisits;
             return true;
         }
 

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaMainView.cs

@@ -73,8 +73,8 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("活动未在开启时间");
                 return;
             }
-            //var result = await ActivityTeaSProxy.ReqGetNPCVisitInfo(5004);
-            //if (!result) return;
+            var result = await ActivityTeaSProxy.ReqGetNPCVisitInfo(5004);
+            if (!result) return;
             //拜访入口
             ViewManager.Show<ActivityTeaVisitView>();
         }

+ 35 - 4
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityTeaVisitView.cs

@@ -7,6 +7,7 @@ namespace GFGGame
     public class ActivityTeaVisitView : BaseWindow
     {
         private UI_ActivityTeaVisitUI _ui;
+        private int time;
         public override void Dispose()
         {
             if (_ui != null)
@@ -45,6 +46,10 @@ namespace GFGGame
             _ui.m_ruleIcon.data = 300026;
             _ui.m_visitNumTips.data = 300026;
             _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length;
+
+            RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId);
+            time = limitData.TotalPlayMax - limitData.PlayTimes;
+            _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax;
         }
 
         protected override void OnHide()
@@ -63,17 +68,43 @@ namespace GFGGame
             UI_ActivityVIsitItemUI item = UI_ActivityVIsitItemUI.Proxy(obj);
             item.m_head.m_loaIcon.url = ResPathUtil.GetNpcHeadPath(ActivityVisitCfgArray.Instance.dataArray[index].picRes);
             item.m_name.text = ActivityVisitCfgArray.Instance.dataArray[index].name;
-            if(item.m_visitBtn.data == null)
+
+            if (index != 0)
+            {
+                item.m_unLock.visible = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false;
+                item.m_lockTitle.visible = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false;
+                item.m_visitG.visible = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? false : true;
+            }
+            else
             {
-                item.m_visitBtn.onClick.Add(OnClickVisitBtn);
+                item.m_unLock.visible = false;
+                item.m_lockTitle.visible = false;
+                item.m_visitG.visible = true;
             }
-            item.m_visitBtn.data = index;
+            item.m_lockIcon.visible = MiniGameDateManager.Instance.NpcInfoList[index].RewrdStatus == 2 ? true : false;
+
+            if (item.m_visitBtn.target.visible == true)
+            {
+                item.m_c1.selectedIndex = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus;
+                RedDotController.Instance.SetComRedDot(item.m_visitBtn.target, (MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 1 && time > 0));
+            }
+            if(item.m_visitBtn.target.data == null)
+            {
+                item.m_visitBtn.target.onClick.Add(OnClickVisitBtn);
+            }
+            item.m_visitBtn.target.data = index;
             UI_ActivityVIsitItemUI.ProxyEnd();
         }
-        private void OnClickVisitBtn(EventContext context)
+        private async void OnClickVisitBtn(EventContext context)
         {
             if (!(context.sender is GObject btnVisit)) return;
             int itemID = (int)btnVisit.data;
+            if (MiniGameDateManager.Instance.NpcInfoList[itemID].UnlockStatus == 1)
+            {
+                bool result = await ActivityTeaSProxy.ReqUnLockNPCVisit(5004,itemID+1);
+                if (!result) return;
+                _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length;
+            }
             ViewManager.Show<ActivityVisitNpcView>(itemID);
         }
 

+ 65 - 4
GameClient/Assets/Game/HotUpdate/Views/ActivityAfternoonTea/ActivityVisitNpcView.cs

@@ -4,6 +4,7 @@ using System;
 using System.Collections.Generic;
 using UI.ActivityAfternoonTea;
 using UI.Task;
+using ET;
 
 namespace GFGGame
 {
@@ -11,6 +12,9 @@ namespace GFGGame
     {
         private UI_ActivityVisitNPCUI _ui;
         private int npcId;
+        private int activityId;
+        private bool redDot = false;
+        private bool canGetReward;
         private string _currentWords;
         private bool isNextChat = false;
         private int indexChat;
@@ -44,7 +48,7 @@ namespace GFGGame
             _ui.m_taskList.itemRenderer = RenderTaskList;
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
             _ui.m_nextChatBtn.onClick.Add(OnClickNextChat);
-            _ui.m_taskIcon.onClick.Add(OnClickRewardTIps);
+            _ui.m_taskIcon.target.onClick.Add(OnClickRewardTIps);
         }
         protected override void AddEventListener()
         {
@@ -68,11 +72,21 @@ namespace GFGGame
             _ui.m_loaBg.url = ResPathUtil.GetSceneBgPath(ActivityVisitCfgArray.Instance.dataArray[npcId].bgRes);
             _ui.m_name.text = ActivityVisitCfgArray.Instance.dataArray[npcId].name;
             _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray[npcId].taskIdArr.Length;
+            redDot = true;
+            for (int i = 0; i < taskCfgs.Count; i++)
+            {
+                var taskCfg = taskCfgs[i];
+                if (TaskDataManager.Instance.GetTaskStateById(taskCfg.id) == 0)
+                {
+                    redDot = false;
+                }
+            }
+            GetRewardState();
+
             _ui.m_DialogText.m_txtName.text = ActivityVisitCfgArray.Instance.dataArray[npcId].name;
             _ui.m_DialogText.m_txtContent.text = "";
             _ui.m_DialogText.m_In.Play();
             _wordTextField = null;
-
             isNextChat = false;
             indexChat = 0;
             SetTypeWriting();
@@ -89,10 +103,45 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(ActivityVisitNpcView).FullName);
         }
-        private void OnClickRewardTIps()
+        private async void OnClickRewardTIps()
         {
+            if(canGetReward)
+            {
+                bool result = await ActivityTeaSProxy.ReqGetNPCVisitReward(activityId, npcId);
+                if (!result) return;
+            }
             ViewManager.Show<ReWardTipsView>(npcId);
         }
+
+        private void GetRewardState()
+        {
+            foreach (NpcVisitProto t in MiniGameDateManager.Instance.NpcInfoList)
+            {
+                if (t.NpcId == npcId + 1)
+                {
+                    activityId = t.ActivityId;
+                    switch (t.RewrdStatus)
+                    {
+                        case 0:
+                            canGetReward = false;
+                            _ui.m_gotReward.visible = false;
+                            break;
+                        case 1:
+                            canGetReward = true;
+                            _ui.m_gotReward.visible = false;
+                            RedDotController.Instance.SetComRedDot(_ui.m_taskIcon.target, (canGetReward && redDot));
+                            break;
+                        case 2:
+                            canGetReward = false;
+                            _ui.m_gotReward.visible = true;
+                            break;
+                        default:
+                            break;
+                    }
+                }
+
+            }
+        }
         private void RenderTaskList(int index, GObject obj)
         {
             UI_ActivityVIsitRewardItemUI item = UI_ActivityVIsitRewardItemUI.Proxy(obj);
@@ -146,16 +195,28 @@ namespace GFGGame
             ViewManager.JumpToView(taskCfg.jumpId, param);
         }
 
-        private static void ListTaskRewardItemRender(int index, GObject obj)
+        private void ListTaskRewardItemRender(int index, GObject obj)
         {
             var rewards = (int[][])obj.parent.data;
             UI_RewardItemUI item = UI_RewardItemUI.Proxy(obj);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(rewards[index][0]);
             item.m_rewardIcon.url = ResPathUtil.GetIconPath(itemCfg);
             item.m_rewardNum.text = rewards[index][1].ToString();
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnClickVisitRewardItem);
+            }
+            item.target.data = itemCfg.id;
             UI_RewardItemUI.ProxyEnd();
         }
 
+        private void OnClickVisitRewardItem(EventContext context)
+        {
+            if (!(context.sender is GObject btnVisit)) return;
+            int itemID = (int)btnVisit.data;
+            GoodsItemTipsController.ShowItemTips(itemID);
+        }
+
         private void OnTasksChange(EventContext context)
         {
             _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray[npcId].taskIdArr.Length;

BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_atlas0.png


BIN
GameClient/Assets/ResIn/UI/ActivityAfternoonTea/ActivityAfternoonTea_fui.bytes


+ 1 - 1
GameClient/Assets/ResIn/UI/OpenServerActivity_fui.bytes.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 926612a375fc11948af33dc54a3f567f
+guid: cbaeef8ffe035ee41959f856d1883c9b
 TextScriptImporter:
   externalObjects: {}
   userData: