Esempio n. 1
0
 //zaladuj dane przedmiotu z pojedynczego wezla XML
 public void LoadData(XmlDataInfo dataInfo, XElement elementXMLDanych, List <Substance> listaWzorcowSubstancji)
 {
     base.LoadData(dataInfo, elementXMLDanych);
     DurationRemained = Duration;
     foreach (XElement podElement in elementXMLDanych.Elements())
     {
         if (podElement.Name == "substance")
         {
             if (podElement.Attribute("type") == null)
             {
                 Debug.LogError("Brak atrybutu type w elemencie danych " + podElement.ToString());
             }
             else
             {
                 string    nazwaSubstancji      = podElement.Attribute("type").Value;
                 Substance ZnalezionaSubstancja = null;
                 foreach (Substance subst in listaWzorcowSubstancji)
                 {
                     if (subst.Type == nazwaSubstancji)
                     {
                         ZnalezionaSubstancja = new Substance(subst);
                     }
                 }
                 if (ZnalezionaSubstancja == null)
                 {
                     Debug.LogError("Nie można znaleźć substancji o nazwie " + nazwaSubstancji);
                 }
                 else
                 {
                     if (podElement.Attribute("ammount") == null)
                     {
                         ZnalezionaSubstancja.Ammount = 1;
                     }
                     else
                     {
                         ZnalezionaSubstancja.Ammount = int.Parse(podElement.Attribute("ammount").Value);
                     }
                     ActiveSubstances.Add(ZnalezionaSubstancja);
                 }
             }
         }
     }
 }
 public void OnConfigure()
 {
     if (_medicalEventTemplates.Count == 0)
     {
         //zdarzenia
         XmlDataInfo eventsInfo = Utils.LoadXmlAssetFile("data/medical_events", "medical_events");
         if (eventsInfo != null)
         {
             foreach (XElement element in eventsInfo.MainNodeElements)
             {
                 MedicalEvent noweZdarzenie = new MedicalEvent();
                 noweZdarzenie.LoadData(eventsInfo, element);
                 _medicalEventTemplates.Add(noweZdarzenie.Type, noweZdarzenie);
             }
         }
         //substancje
         XmlDataInfo substancesInfo = Utils.LoadXmlAssetFile("data/medical_substances", "substances");
         if (substancesInfo != null)
         {
             foreach (XElement element in substancesInfo.MainNodeElements)
             {
                 Substance nowaSubstancja = new Substance();
                 nowaSubstancja.LoadData(substancesInfo, element);
                 _substancesTemplates.Add(nowaSubstancja);
             }
         }
         //przedmioty lecznicze (ladowanie substancji musi tu byc skonczone poniewaz sa one uzywane do tworzenia klonow substancji aktywnych w przedmiotach)
         XmlDataInfo medicalItemsInfo = Utils.LoadXmlAssetFile("data/medical_items", "medical_items");
         if (medicalItemsInfo != null)
         {
             foreach (XElement element in medicalItemsInfo.MainNodeElements)
             {
                 MedicalItemDataAddon nowyPrzedmiot = new MedicalItemDataAddon();
                 nowyPrzedmiot.LoadData(medicalItemsInfo, element, _substancesTemplates);
                 _medicalItemTemplates.Add(nowyPrzedmiot.Type, nowyPrzedmiot);
             }
         }
     }
     if (_primalDiseasesTemplates.Count == 0)
     {
         try
         {
             //szanse
             XmlDataInfo chancesInfo = Utils.LoadXmlAssetFile("data/medical_chances", "chances");
             if (chancesInfo != null)
             {
                 foreach (XElement element in chancesInfo.MainNodeElements)
                 {
                     BaseDataAddon nowaSzansaNaZdarzenie = new BaseDataAddon();
                     nowaSzansaNaZdarzenie.LoadData(chancesInfo, element);
                     if ((string)nowaSzansaNaZdarzenie["last"] == "")
                     {
                         _primalDiseasesTemplates.Add(nowaSzansaNaZdarzenie);
                     }
                     else
                     {
                         _derivedDiseasesTemplates.Add(nowaSzansaNaZdarzenie);
                     }
                 }
             }
         }
         catch (System.Exception wyjatek)
         {
             Debug.LogError("Ogólny wyjątek: " + wyjatek.Message);
         }
     }
 }