private List <SM4Event> AddEventsToList(string path, string parentNode, List <SM4Event> listEvents, XElement xElement) { if (listEvents == null) { listEvents = new List <SM4Event>(); } if (xElement != null) { foreach (XElement element in xElement.Elements()) { if (element.NodeType != XmlNodeType.Comment) { SM4Event node = new SM4Event(); listEvents.Add(node); node.eventName = element.Name.ToString(); foreach (var attribute in element.Attributes()) { node.attributes.Add(new KeyValuePair <string, string> (attribute.Name.ToString(), attribute.Value.ToString())); } node.xElement = element; } } } else { ErrorLogger.LogErrorInFile("Error due to null in WriteEventsToList in Sm4EventLoader.cs"); } return(listEvents); }
public void DoStoredEvent() { if (sm4Event != null) { SM4EventExecute.instance.ExecuteEvent(sm4Event); sm4Event = null; } else { World.instance.Turn(); } }
public bool CheckIfEventValid(SM4Event sm4Event) { foreach (var attribute in sm4Event.attributes) { if (!CheckAttribute(attribute.Key, attribute.Value)) { return(false); } } return(true); }
public bool ExecuteEvent(SM4Event sm4Event) { try { ReadSubTree(sm4Event.xElement); return(true); } catch { ErrorLogger.LogErrorInFile("Error when Executing event" + sm4Event.eventName); return(false); } }
public void EndQuestion(SM4Event sm4Event) { SM4Event sm4EventBU = new SM4Event(); sm4EventBU = sm4Event; foreach (var answer in answers) { Destroy(answer.gameObject); } answers.Clear(); this.gameObject.SetActive(false); SM4UIMainTextfield.instance.activeQuestion = false; SM4EventExecute.instance.ExecuteEvent(sm4EventBU); }
public void EndQuestion(SM4Event sm4Event) { SM4Event sm4EventBU = new SM4Event(); sm4EventBU = sm4Event; foreach (var answer in answers) { Destroy(answer.gameObject); } answers.Clear(); HidePopup(); ResetPortraits(); SM4UIMainTextfield.instance.activeQuestion = false; SM4EventExecute.instance.ExecuteEvent(sm4EventBU); }
IEnumerator FindEventByNameCouroutine(string eventName, SM4Event sm4Event) { foreach (var region in SM4EventListsContainer.instance.regions) { foreach (var area in region.areas) { foreach (var location in area.locations) { foreach (var eventInList in location.eventList.eventList) { if (eventInList.eventName == eventName) { yield return(eventInList); } } } } } yield return(null); }
public void GetXMLPlanningFile(string planningDirectory) { XDocument doc; try { doc = XDocument.Load(planningDirectory); } catch { doc = null; } XElement xElement = null; try { xElement = doc.Descendants("Planning").First(); } catch { xElement = null; } if (xElement == null) { ErrorLogger.LogErrorInFile("In " + this.name + "planning was null"); return; } foreach (var planningElement in xElement.Elements()) { if (planningElement.NodeType != XmlNodeType.Comment) { PlanningActButtonData planningAct = new PlanningActButtonData(); planningAct.gameobjectName = planningElement.Name.ToString(); foreach (var attribute in planningElement.Attributes()) { switch (attribute.Name.ToString()) { case "location": planningAct.location = attribute.Value; break; case "characterID": planningAct.characterID = Int32.Parse(attribute.Value); break; case "tab": planningAct.tab = Int32.Parse(attribute.Value); break; case "subtab": planningAct.subtab = Int32.Parse(attribute.Value); break; case "label": planningAct.label = attribute.Value; break; case "hintCode": planningAct.hintCode = attribute.Value; break; case "planningEvent": planningAct.planningEvent = attribute.Value; break; case "buttonNumber": planningAct.buttonNumber = Int32.Parse(attribute.Value); break; } } planningActs.Add(planningAct); } } XElement xElementHints = null; try { xElementHints = doc.Descendants("Hints").First(); } catch { xElementHints = null; } if (xElementHints == null) { ErrorLogger.LogErrorInFile("In " + this.name + "planningHints was null"); return; } foreach (var planningHintsElememts in xElementHints.Elements()) { if (planningHintsElememts.NodeType != XmlNodeType.Comment) { PlanningActHintData hint = new PlanningActHintData(); foreach (var hintAttritbute in planningHintsElememts.Attributes()) { switch (hintAttritbute.Name.ToString()) { case "hintCode": hint.hintCode = hintAttritbute.Value; break; case "text": hint.text = hintAttritbute.Value; break; } } planningActHints.Add(hint); } } XElement xElementEvents = null; try { xElementEvents = doc.Descendants("PlanningEvents").First(); } catch { xElementEvents = null; } if (xElementEvents == null) { ErrorLogger.LogErrorInFile("In " + this.name + "PlanningEvents was null"); return; } foreach (var planningEventsElememts in xElementEvents.Elements()) { if (planningEventsElememts.NodeType != XmlNodeType.Comment) { SM4Event sm4Event = new SM4Event(); sm4Event.xElement = planningEventsElememts; foreach (var xAttribute in planningEventsElememts.Attributes()) { sm4Event.attributes.Add(new KeyValuePair <string, string>(xAttribute.Name.ToString(), xAttribute.Value.ToString())); } sm4Event.eventName = planningEventsElememts.Name.LocalName; planningEvents.Add(sm4Event); } } }
public void LoadEventsIntoEventList(string eventXmlFilePath) { XDocument doc; try { doc = XDocument.Load(eventXmlFilePath); } catch { doc = null; } XElement xElement = null; try { xElement = doc.Descendants("Region").First(); } catch { xElement = null; } if (xElement == null) { ErrorLogger.LogErrorInFile("In " + this.name + "Region was null"); return; } foreach (var xRegion in xElement.Elements()) { if (xRegion.NodeType != XmlNodeType.Comment) { var region = new SM4Region(); region.regionName = xRegion.Name.ToString(); evCon.regions.Add(region); } } foreach (var region in evCon.regions) { XElement xAreas = null; try { xAreas = doc.Descendants(region.regionName).First(); } catch { xAreas = null; } foreach (var xArea in xAreas.Elements()) { if (xArea.NodeType != XmlNodeType.Comment) { SM4Area area = new SM4Area(); area.areaName = xArea.Name.LocalName; region.areas.Add(area); } } foreach (var area in region.areas) { XElement xLocations = null; try { xLocations = doc.Descendants(area.areaName).First(); } catch { xLocations = null; } foreach (var xLocation in xLocations.Elements()) { if (xLocation.NodeType != XmlNodeType.Comment) { SM4Location location = new SM4Location(); location.locationName = xLocation.Name.LocalName; location.eventList.listName = location.locationName; area.locations.Add(location); } } foreach (var location in area.locations) { try { XElement xLocationSubArea = doc.Descendants(location.locationName).First(); XElement xLocationSubtree = XElement.Load(xLocationSubArea.CreateNavigator().ReadSubtree()); XElement xEvents = xLocationSubtree.Descendants("Events").First(); foreach (var xEvent in xEvents.Elements()) { if (xEvent.NodeType != XmlNodeType.Comment) { SM4Event sm4Event = new SM4Event(); sm4Event.xElement = xEvent; foreach (var xAttribute in xEvent.Attributes()) { sm4Event.attributes.Add( new KeyValuePair <string, string> (xAttribute.Name.ToString(), xAttribute.Value.ToString()) ); } sm4Event.eventName = xEvent.Name.LocalName; location.eventList.eventList.Add(sm4Event); } } } catch { } } } } }
public void StoreNextEvent(SM4Event nextSm4Event) { sm4Event = nextSm4Event; }
public void SetEvent(SM4Event sm4Event) { nextEvent = sm4Event; }
public void FindEventByNameViaCouroutine(string eventName, SM4Event sm4Event) { StartCoroutine(FindEventByNameCouroutine(eventName, sm4Event)); }