Example #1
0
 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);
 }
Example #2
0
 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);
    }
Example #4
0
 public bool ExecuteEvent(SM4Event sm4Event)
 {
     try
     {
         ReadSubTree(sm4Event.xElement);
         return(true);
     }
     catch
     {
         ErrorLogger.LogErrorInFile("Error when Executing event" + sm4Event.eventName);
         return(false);
     }
 }
Example #5
0
    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);
    }
Example #7
0
    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);
    }
Example #8
0
    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);
            }
        }
    }
Example #9
0
    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
                    {
                    }
                }
            }
        }
    }
Example #10
0
 public void StoreNextEvent(SM4Event nextSm4Event)
 {
     sm4Event = nextSm4Event;
 }
Example #11
0
 public void SetEvent(SM4Event sm4Event)
 {
     nextEvent = sm4Event;
 }
Example #12
0
 public void FindEventByNameViaCouroutine(string eventName, SM4Event sm4Event)
 {
     StartCoroutine(FindEventByNameCouroutine(eventName, sm4Event));
 }