lzx пре 4 дана
родитељ
комит
9f5e2f9e2f

+ 4 - 0
Assets/Res/UI/XianTuLogPanel/XianTuLogInfoPanel.prefab

@@ -1030,6 +1030,10 @@ PrefabInstance:
       propertyPath: m_Name
       value: EventLogTitleWidget
       objectReference: {fileID: 0}
+    - target: {fileID: 3113180148145525686, guid: 034392a467bb69a46b538612078936bc, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6003345465301013575, guid: 034392a467bb69a46b538612078936bc, type: 3}
       propertyPath: data.Array.size
       value: 6

+ 114 - 38
Assets/Scripts/GameUI/UI/XianTuLogPanel/XianTuLogInfoPanel.cs

@@ -5,6 +5,7 @@ using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
 using UnityEngine;
+using Utility;
 
 namespace Fort23.Mono
 {
@@ -23,13 +24,17 @@ namespace Fort23.Mono
     public partial class XianTuLogInfoPanel : UIPanel, IScrollListContent
     {
         private EventLogTitleWidget eventLogTitleWidget;
-        
+
         private XianTuLogConfig _xianTuLogConfig;
 
         List<XianTuLogInfoData> showXianTuLogInfoData = new List<XianTuLogInfoData>();
 
         List<UIComponent> components = new List<UIComponent>();
 
+        List<EventLogTitleWidget> titleWidgets = new List<EventLogTitleWidget>();
+
+        private int type;
+
         private void Init()
         {
         }
@@ -49,61 +54,92 @@ namespace Fort23.Mono
 
         public async void CustomInit(int type, int id)
         {
-            // eventLogTitleWidget = await UIManager.Instance.CreateGComponentForObject<EventLogTitleWidget>(gam, null);
+            this.type = type;
+            eventLogTitleWidget = await UIManager.Instance.CreateGComponentForObject<EventLogTitleWidget>(EventLogTitleWidget, null);
+            Map<int, List<EventConfig>> eventConfigMap = new Map<int, List<EventConfig>>();
+
 
-            
             showXianTuLogInfoData.Clear();
             _xianTuLogConfig = ConfigComponent.Instance.Get<XianTuLogConfig>(id);
-            XianTuLogInfoData xianTuLogInfoData3 = new XianTuLogInfoData();
-            xianTuLogInfoData3.type = 1;
-            xianTuLogInfoData3.message = "北海";
-            showXianTuLogInfoData.Add(xianTuLogInfoData3);
+
             var configs = EventSystemManager.Instance.eventConfigsMap[_xianTuLogConfig.ID];
+
             foreach (var @c in configs)
             {
                 EventConfig eventConfig = c;
-                AccountFileInfo.EventList eventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(cl => cl.eventID == c.ID);
-                if (eventList == null)
+                if (!eventConfigMap.ContainsKey(eventConfig.placeID))
+                {
+                    eventConfigMap.Add(eventConfig.placeID, new List<EventConfig>());
+                }
+
+                eventConfigMap[eventConfig.placeID].Add(eventConfig);
+            }
+
+            foreach (var keyValuePair in eventConfigMap)
+            {
+                if (type == 1)
                 {
-                    //主线没有做不显示问好
-                    if (_xianTuLogConfig.EventType == 2)
+                    PlacesConfig placesConfig = ConfigComponent.Instance.Get<PlacesConfig>(keyValuePair.Key);
+                    XianTuLogInfoData xianTuLogInfoData3 = new XianTuLogInfoData();
+                    xianTuLogInfoData3.type = 1;
+                    xianTuLogInfoData3.message = LanguageManager.Instance.Text(placesConfig.placeName);
+                    showXianTuLogInfoData.Add(xianTuLogInfoData3);
+                }
+
+                foreach (var eventConfig in keyValuePair.Value)
+                {
+                    AccountFileInfo.EventList eventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(cl => cl.eventID == eventConfig.ID);
+                    if (eventList == null)
+                    {
+                        //主线没有做不显示问好
+                        if (_xianTuLogConfig.EventType == 2)
+                        {
+                            XianTuLogInfoData xianTuLogInfoData = new XianTuLogInfoData();
+                            xianTuLogInfoData.type = 2;
+                            xianTuLogInfoData.message = "????????";
+
+                            XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
+                            xianTuLogInfoData1.type = 3;
+                            xianTuLogInfoData1.message = "?????????????????????????????????";
+
+                            showXianTuLogInfoData.Add(xianTuLogInfoData);
+                            showXianTuLogInfoData.Add(xianTuLogInfoData1);
+                        }
+                    }
+                    else
                     {
                         XianTuLogInfoData xianTuLogInfoData = new XianTuLogInfoData();
                         xianTuLogInfoData.type = 2;
-                        xianTuLogInfoData.message = "????????";
-                    
-                        XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
-                        xianTuLogInfoData1.type = 3;
-                        xianTuLogInfoData1.message = "?????????????????????????????????";
-                    
+                        xianTuLogInfoData.message = LanguageManager.Instance.Text(eventConfig.EventName);
                         showXianTuLogInfoData.Add(xianTuLogInfoData);
-                        showXianTuLogInfoData.Add(xianTuLogInfoData1);
-                    }
-                    
-                }
-                else
-                {
-                    XianTuLogInfoData xianTuLogInfoData = new XianTuLogInfoData();
-                    xianTuLogInfoData.type = 2;
-                    xianTuLogInfoData.message = LanguageManager.Instance.Text(eventConfig.EventName);
-                    showXianTuLogInfoData.Add(xianTuLogInfoData);
-                    foreach (var eventListSelectEventLinkId in eventList.selectEventLinkIds)
-                    {
-                        EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventListSelectEventLinkId);
-                        if (eventLinkConfig.LanID != null)
+                        foreach (var eventListSelectEventLinkId in eventList.selectEventLinkIds)
                         {
-                            foreach (var i in eventLinkConfig.LanID)
+                            EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventListSelectEventLinkId);
+                            if (eventLinkConfig.LanID != null)
                             {
-                                XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
-                                xianTuLogInfoData1.type = 3;
-                                xianTuLogInfoData1.message = LanguageManager.Instance.Text(i);
-                                showXianTuLogInfoData.Add(xianTuLogInfoData1);
+                                foreach (var i in eventLinkConfig.LanID)
+                                {
+                                    XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
+                                    xianTuLogInfoData1.type = 3;
+                                    xianTuLogInfoData1.message = LanguageManager.Instance.Text(i);
+                                    showXianTuLogInfoData.Add(xianTuLogInfoData1);
+                                }
                             }
                         }
                     }
                 }
             }
 
+            if (type == 1)
+            {
+                // eventLogTitleWidget.SetActive(true);
+                eventLogTitleWidget.CustomInit(showXianTuLogInfoData[0].message);
+                eventLogTitleWidget.own.SetActive(true);
+            }
+            else if (type == 2)
+            {
+                eventLogTitleWidget.own.SetActive(false);
+            }
 
             Content.Init(this, showXianTuLogInfoData.Count);
         }
@@ -121,6 +157,7 @@ namespace Fort23.Mono
             {
                 EventLogTitleWidget eventLogTitleWidget = await UIManager.Instance.CreateGComponent<EventLogTitleWidget>(null, ContentRoot);
                 eventLogTitleWidget.CustomInit(xianTuLogInfoData.message);
+                titleWidgets.Add(eventLogTitleWidget);
                 components.Add(eventLogTitleWidget);
                 return eventLogTitleWidget;
             }
@@ -145,6 +182,15 @@ namespace Fort23.Mono
         public void HindIScorllListWidget(IScorllListWidget widget)
         {
             UIManager.Instance.DormancyGComponent(widget as UIComponent);
+            if (components.Contains(widget as UIComponent))
+            {
+                components.Remove(widget as UIComponent);
+            }
+
+            if (titleWidgets.Contains(widget as EventLogTitleWidget))
+            {
+                titleWidgets.Remove(widget as EventLogTitleWidget);
+            }
         }
 
         public override void Close()
@@ -156,14 +202,44 @@ namespace Fort23.Mono
             }
 
             components.Clear();
+            titleWidgets.Clear();
 
             base.Close();
         }
 
-        public async static CTask OpenPanel(int type,int id)
+        [CustomMethod(CustomMethodType.Update)]
+        public void Update()
+        {
+            if (type != 2)
+                return;
+            EventLogTitleWidget highestItem = null;
+            float maxY = float.MinValue;
+
+
+            foreach (var xianTuTitleWidget in titleWidgets)
+            {
+                float itemY = xianTuTitleWidget.own.transform.position.y; // 使用世界坐标的 Y 值
+                if (itemY > maxY)
+                {
+                    maxY = itemY;
+                    highestItem = xianTuTitleWidget;
+                }
+            }
+
+            if (highestItem != null)
+            {
+                float outsideY = eventLogTitleWidget.own.transform.position.y;
+                if (maxY > outsideY - 5)
+                {
+                    eventLogTitleWidget.CustomInit(highestItem.Text_Name.text);
+                }
+            }
+        }
+
+        public async static CTask OpenPanel(int type, int id)
         {
             XianTuLogInfoPanel xianTuLogInfoPanel = await UIManager.Instance.LoadAndOpenPanel<XianTuLogInfoPanel>(null);
-            xianTuLogInfoPanel.CustomInit(type,id);
+            xianTuLogInfoPanel.CustomInit(type, id);
         }
     }
 }

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


Неке датотеке нису приказане због велике количине промена