lzx 1 päivä sitten
vanhempi
commit
98b4f9a76e

+ 5 - 1
Assets/Scripts/Core/Event/Event/CustomEventType.cs

@@ -110,7 +110,11 @@ namespace Fort23.Core
       /// <summary>
       /// 切换地图
       /// </summary>
-      ChangeMap
+      ChangeMap,
+      /// <summary>
+      /// 获得道具
+      /// </summary>
+      AddItem
       
     }
 }

+ 3 - 2
Assets/Scripts/GameLogic/Bag/BagController.cs

@@ -178,8 +178,9 @@ namespace GameLogic.Bag
             }
 
             item.count += count;
-            EventManager.Instance.Dispatch(CustomEventType.ItemUpdate, new ItemUpdateData() { ItemInfo = item });
-
+            
+            EventManager.Instance.Dispatch(CustomEventType.ItemUpdate, new ItemUpdateData() { ItemInfo = item,Count = (int)count});
+            EventManager.Instance.Dispatch(CustomEventType.AddItem, new ItemUpdateData() { ItemInfo = item,Count = (int)count});
             AccountFileInfo.Instance.SaveItemData(item);
         
             return true;

+ 1 - 0
Assets/Scripts/GameLogic/Combat/CombatEvent/ItemUpdateData.cs

@@ -7,5 +7,6 @@ namespace Common.Utility.CombatEvent
     public class ItemUpdateData : EventDataBasic<ItemUpdateData>
     {
         public ItemInfo ItemInfo;
+        public int Count;
     }
 }

+ 11 - 0
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -38,6 +38,8 @@ public class PlayerManager : Singleton<PlayerManager>
         set { currentPlaces = value; }
     }
 
+    public float PlacesBl => GetMapBl(CurrentPlaces.id);
+
 
     public void Init()
     {
@@ -87,6 +89,15 @@ public class PlayerManager : Singleton<PlayerManager>
         return AccountFileInfo.Instance.playerData.placesDatas.FirstOrDefault(p => p.id == placesId);
     }
 
+    public float GetMapBl(int map)
+    {
+        AccountFileInfo.PlacesData placesData = GetPlacesData(map);
+        PlacesConfig placesConfig = ConfigComponent.Instance.Get<PlacesConfig>(map);
+        return ((float)placesData.progress / placesConfig.TotalScore) * 100;
+        // AccountFileInfo.Instance.playerData.completeEvents.Where(ce =>placesConfig.MainTaskID.Contains(ce.eventID) || placesConfig.ZhixianID.Contains(ce.eventID) || placesConfig.ZhixianID.Contains(ce.1001
+        // ))
+    }
+
     private void Update()
     {
         timer += Time.deltaTime;

+ 1 - 1
Assets/Scripts/GameUI/Combat/CombatDrive.cs

@@ -122,7 +122,7 @@ namespace GameLogic.Combat
             if (isWin)
             {
                 LevelBattleCombatType levelBattleCombatType = CombatController.CombatTypeBasic as LevelBattleCombatType;
-                EventSystemManager.Instance.CeekEventCompletes(5, levelBattleCombatType.levelbattleConfig.ID);
+                EventSystemManager.Instance.CeekEventCompletes(5, new []{levelBattleCombatType.levelbattleConfig.ID} );
             }
 
             caombatFinish?.Invoke(isWin);

+ 56 - 16
Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -38,20 +38,20 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
         StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
         EventManager.Instance.AddEventListener(CustomEventType.DetectRandomEvent, RenfenceRandomEvent);
-        EventManager.Instance.AddEventListener(CustomEventType.ItemUpdate, ItemUpdate);
+        EventManager.Instance.AddEventListener(CustomEventType.AddItem, ItemUpdate);
         EventManager.Instance.AddEventListener(CustomEventType.JingJieUpgrade, JingJieUpgrade);
     }
 
     private void JingJieUpgrade(IEventData e)
     {
-        CeekEventCompletes(3, 0);
+        CeekEventCompletes(3, null);
     }
 
     private void ItemUpdate(IEventData e)
     {
         ItemUpdateData data = e as ItemUpdateData;
-        CeekEventCompletes(1, data.ItemInfo.itemID);
-        CeekEventCompletes(6, data.ItemInfo.itemID);
+        CeekEventCompletes(1, new[] { data.ItemInfo.itemID });
+        CeekEventCompletes(6, new[] { data.ItemInfo.itemID, data.Count });
     }
 
     private void RenfenceRandomEvent(IEventData e)
@@ -135,6 +135,19 @@ public class EventSystemManager : Singleton<EventSystemManager>
         return false;
     }
 
+    private bool IsEventTrigger(int eventID)
+    {
+        foreach (var eventList in AccountFileInfo.Instance.playerData.completeEvents)
+        {
+            if (eventList.eventID == eventID)
+            {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     private List<AccountFileInfo.EventList> DetectEvents(int eventCount)
     {
         PlacesConfig bigMap = ConfigComponent.Instance.Get<PlacesConfig>(PlayerManager.Instance.CurrentPlaces.id);
@@ -152,11 +165,11 @@ public class EventSystemManager : Singleton<EventSystemManager>
             List<EventConfig> zhiXianEvents = new List<EventConfig>();
             for (var i = 0; i < bigMap.ZhixianActivatedPercentage.Length; i++)
             {
-                if (PlayerManager.Instance.CurrentPlaces.progress >= bigMap.ZhixianActivatedPercentage[i])
+                if (PlayerManager.Instance.PlacesBl >= bigMap.ZhixianActivatedPercentage[i])
                 {
-                    if (!BagIsEvent(bigMap.ZhixianActivatedPercentage[i]) && CanTriggerEvent(bigMap.ZhixianActivatedPercentage[i]))
+                    if (!BagIsEvent(bigMap.ZhixianID[i]) && !IsEventTrigger(bigMap.ZhixianID[i]) && CanTriggerEvent(bigMap.ZhixianID[i]))
                     {
-                        zhiXianEvents.Add(ConfigComponent.Instance.Get<EventConfig>(bigMap.ZhixianActivatedPercentage[i]));
+                        zhiXianEvents.Add(ConfigComponent.Instance.Get<EventConfig>(bigMap.ZhixianID[i]));
                     }
                 }
             }
@@ -265,8 +278,8 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
                 eventLinkData.fishCount = 0;
                 //初始化先检测一些条件
-                CeekTaskComplete(eventLinkData.eventLinkId, 1, 0);
-                CeekTaskComplete(eventLinkData.eventLinkId, 3, 0);
+                CeekTaskComplete(eventLinkData.eventLinkId, 1, null);
+                CeekTaskComplete(eventLinkData.eventLinkId, 3, null);
             }
         }
 
@@ -370,7 +383,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
         return false;
     }
 
-    public void CeekEventCompletes(int type, int value)
+    public void CeekEventCompletes(int type, int[] value)
     {
         foreach (var playerDataEventLinkData in AccountFileInfo.Instance.playerData.eventLinkDatas)
         {
@@ -380,7 +393,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
         EventManager.Instance.Dispatch(CustomEventType.RemoveEvent, null);
     }
 
-    public void CeekTaskComplete(int eventLiknId, int type, int value)
+    public void CeekTaskComplete(int eventLiknId, int type, int[] value)
     {
         //任务完成了跳过检测
         if (IsEvenkLinkComplete(eventLiknId))
@@ -420,7 +433,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
             //战斗胜利
             case 5:
-                if (eventLinkConfig.ConditionType == 5 && eventLinkConfig.ConditionPara[0] == value)
+                if (eventLinkConfig.ConditionType == 5 && eventLinkConfig.ConditionPara[0] == value[0])
                 {
                     eventLinkData.fishCount++;
 
@@ -434,9 +447,9 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
             //获得道具
             case 6:
-                if (eventLinkConfig.ConditionType == 6 && eventLinkConfig.ConditionPara[0] == value)
+                if (eventLinkConfig.ConditionType == 6 && eventLinkConfig.ConditionPara[0] == value[0])
                 {
-                    eventLinkData.fishCount++;
+                    eventLinkData.fishCount += value[1];
 
                     if (IsEvenkLinkComplete(eventLiknId))
                     {
@@ -518,11 +531,38 @@ public class EventSystemManager : Singleton<EventSystemManager>
         LogTool.Log($"完成事件{eventList.eventID}");
 
         EventConfig eventConfig = ConfigComponent.Instance.Get<EventConfig>(eventList.eventID);
+        AccountFileInfo.EventList ceventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(ce => ce.eventID == eventList.eventID);
+
+        if (ceventList == null)
+        {
+            PlacesConfig[] placesConfigs = ConfigComponent.Instance.GetAll<PlacesConfig>();
+            int pId = 0;
+            for (var i = 0; i < placesConfigs.Length; i++)
+            {
+                if (placesConfigs[i].MainTaskID == null || placesConfigs[i].ZhixianID == null)
+                    continue;
+                if (placesConfigs[i].MainTaskID.Contains(eventConfig.ID) ||
+                    placesConfigs[i].ZhixianID.Contains(eventConfig.ID))
+                {
+                    pId = placesConfigs[i].ID;
+                    break;
+                }
+            }
+
+            if (pId == 0)
+            {
+                PlayerManager.Instance.CurrentPlaces.progress += eventConfig.Score;
+            }
+            else
+            {
+                PlayerManager.Instance.GetPlacesData(pId).progress += eventConfig.Score;
+            }
+        }
 
         AccountFileInfo.Instance.playerData.completeEvents.Add(eventList);
 
-        if (PlayerManager.Instance.CurrentPlaces.progress < 100)
-            PlayerManager.Instance.CurrentPlaces.progress += eventConfig.Score;
+        // if (PlayerManager.Instance.CurrentPlaces.progress < 100)
+        //    
 
 
         AccountFileInfo.Instance.playerData.eventList.Remove(eventList);

+ 10 - 0
Assets/Scripts/GameUI/UI/LevelChoosePanel/MapHelper.cs

@@ -0,0 +1,10 @@
+using Excel2Json;
+using Fort23.UTool;
+
+namespace Fort23.Mono
+{
+    public class MapHelper
+    {
+    
+    }
+}

+ 3 - 0
Assets/Scripts/GameUI/UI/LevelChoosePanel/MapHelper.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 2795d425be0d45f0b9cb9f86008b631a
+timeCreated: 1748940916

+ 6 - 3
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -92,6 +92,9 @@ namespace Fort23.Mono
         {
             await base.Show();
 
+            PlacesConfig placesConfig = ConfigComponent.Instance.Get<PlacesConfig>(PlayerManager.Instance.CurrentPlaces.id);
+            Slider_Map.maxValue = placesConfig.TotalScore;
+
             ChagneShenshiBtnActive();
             CreatShengShiEvent();
             ChangeMap(null);
@@ -133,8 +136,8 @@ namespace Fort23.Mono
                 ConfigComponent.Instance.Get<PlacesConfig>(PlayerManager.Instance.CurrentPlaces.id);
 
             Text_ExplorationProgress.text =
-                $"{LanguageManager.Instance.Text(placesConfig.placeName)}   {PlayerManager.Instance.CurrentPlaces.progress}%";
-            Slider_Map.value = PlayerManager.Instance.CurrentPlaces.progress;
+                $"{LanguageManager.Instance.Text(placesConfig.placeName)}   {PlayerManager.Instance.PlacesBl}%";
+            Slider_Map.value = PlayerManager.Instance.PlacesBl;
         }
 
 
@@ -160,7 +163,7 @@ namespace Fort23.Mono
         public async void CreatShengShiEvent()
         {
             AccountFileInfo.EventList eventList = EventSystemManager.Instance.GetMainEventDta();
-            if(AccountFileInfo.Instance.playerData.eventList.Count > 0)
+            if (AccountFileInfo.Instance.playerData.eventList.Count > 0)
                 eventList = eventList == null ? AccountFileInfo.Instance.playerData.eventList[0] : eventList;
             if (eventList != null)
             {