|
@@ -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);
|