public void NextTask() { if (curTask == null) { return; } IGuideManagerData data = curTask.GetIGuideTaskData(); curTask = null; LoadUiResource.DestroyLoad(GameConstDefine.UIGuideRestPath); if (data.NextTaskId.ElementAt(0) == -1) { //ask all end HolyGameLogic.Instance.EmsgTocsAskFinishUIGuideTask(1, data.TaskId, 1); data = null; StartTriggerTask(); SetTaskIsFinish(true, true); return; } // ask end HolyGameLogic.Instance.EmsgTocsAskFinishUIGuideTask(1, data.TaskId, 0); for (int i = 0; i < data.NextTaskId.Count; i++) { SetTaskId(data.NextTaskId.ElementAt(i)); } data = null; }
public void StartTriggerTask()// start trigger task { triggerTaskList.Clear(); for (int i = ConfigReader.ITriggerGuideManagerDatalXmlInfoDict.Count - 1; i >= 0; i--) { IGuideManagerData data = ConfigReader.ITriggerGuideManagerDatalXmlInfoDict.ElementAt(i).Value; if (IsTaskTriggered(data.TaskId)) { continue; } IGuideTaskList task = new IGuideTriggerTaskList(data.TaskId); task.OnEnter(); triggerTaskList.Add(task); } }
protected virtual void SetTaskData(int id) { taskId = id; taskData = ConfigReader.GetIGuideManagerInfo(taskId); }
public IGuideTaskEffect(IGuideManagerData parentData, int id) { pData = parentData; taskId = id; taskData = ConfigReader.GetIGuideInfo(taskId); }
public ReadIGuideTaskManagerConfig(string xmlFilePath) { //TextAsset xmlfile = Resources.Load(xmlFilePath) as TextAsset; ResourceItem xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET); TextAsset xmlfile = xmlfileUnit.Asset as TextAsset; if (!xmlfile) { Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath); } xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlfile.text); XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("UiTaskmanager").ChildNodes; for (int i = 0; i < infoNodeList.Count; i++)//(XmlNode xNode in infoNodeList) { if ((infoNodeList[i] as XmlElement).GetAttributeNode("id") == null) { continue; } string typeName = (infoNodeList[i] as XmlElement).GetAttributeNode("id").InnerText; IGuideManagerData managerInfo = new IGuideManagerData(); managerInfo.TaskId = Convert.ToInt32(typeName); managerInfo.IsTriggerTask = false; foreach (XmlElement xEle in infoNodeList[i].ChildNodes) { #region 搜索 switch (xEle.Name) { case "sontaskid": managerInfo.SonTaskList = GameMethod.ResolveToIntList(Convert.ToString(xEle.InnerText), ';'); break; case "trigger": managerInfo.TriggerInterface = Convert.ToInt32(xEle.InnerText); break; case "NextID": managerInfo.NextTaskId = GameMethod.ResolveToIntList(Convert.ToString(xEle.InnerText), ';'); break; case "istrigger": managerInfo.IsTriggerTask = (Convert.ToInt32(xEle.InnerText) == 1) ? true : false; break; } #endregion } if (managerInfo.IsTriggerTask) { ConfigReader.iTriggerGuideManagerDatalXmlInfoDict.Add(managerInfo.TaskId, managerInfo); } else { ConfigReader.iGuideManagerDatalXmlInfoDict.Add(managerInfo.TaskId, managerInfo); } } }