//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); } } }