Selaa lähdekoodia

添加事件刷新前置事件条件

lzx 1 päivä sitten
vanhempi
commit
ffa99cec49

+ 7 - 3
Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -303,7 +303,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
             int randomValue3 = Random.Range(0, 101);
 
             //先刷事件关联的事件
-            if (randomValue3 >= 50)
+            if (randomValue3 <= PlayerManager.Instance.gameConstantConfig.RefreshRelevanceEventProbability)
             {
                 bool isRefence = false;
                 foreach (var eventList in AccountFileInfo.Instance.playerData.eventList)
@@ -362,11 +362,11 @@ public class EventSystemManager : Singleton<EventSystemManager>
             // List<EventConfig> candidateEvents = eventConfigs.Where(e => bigMap.SpecialTaskID.Contains(e.ID) && CanTriggerEvent(e.ID) && e.EventQuality == quality && !BagIsEvent(e.ID) && eventLists.FirstOrDefault(el => el.eventID == e.ID) == null).ToList();
 
             // 获取通用事件
-            List<EventConfig> globalEvents = eventConfigs.Where(e => e.EventTriggerType == 1 && e.EventQuality == quality && eventLists.FirstOrDefault(el => el.eventID == e.ID) == null).ToList();
+            List<EventConfig> globalEvents = eventConfigs.Where(e => e.EventTriggerType == 1 && e.EventQuality == quality && eventLists.FirstOrDefault(el => el.eventID == e.ID) == null && CanTriggerEvent(e.ID)).ToList();
 
 
             //场景特定事件
-            List<EventConfig> candidateEvents = eventConfigs.Where(e => bigMap.SpecialTaskID.Contains(e.ID) && e.EventQuality == quality && eventLists.FirstOrDefault(el => el.eventID == e.ID) == null).ToList();
+            List<EventConfig> candidateEvents = eventConfigs.Where(e => bigMap.SpecialTaskID.Contains(e.ID) && e.EventQuality == quality && eventLists.FirstOrDefault(el => el.eventID == e.ID) == null && CanTriggerEvent(e.ID)).ToList();
 
             if (candidateEvents.Count == 0 && globalEvents.Count == 0)
             {
@@ -751,6 +751,10 @@ public class EventSystemManager : Singleton<EventSystemManager>
                 int randomValue1 = Random.Range(0, 1001);
 
                 return randomValue1 <= evt.EventCount;
+            //完成事件判断
+            case 10:
+                AccountFileInfo.EventList eventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(ce => ce.eventID == evt.EventValue[0]);
+                return eventList != null;
         }
 
         return true;

+ 2 - 0
Assets/Scripts/GameUI/UI/DialoguePanel/DialoguePanel.cs

@@ -189,6 +189,8 @@ namespace Fort23.Mono
 
         private void StartShowMassge()
         {
+            
+            
             if (index >= dialogueMessaga.Length)
             {
                 if (eventConditionConfig.ID != 0 && !_isShowingOptions)