void Start() { if (dataFile == null) { enabled = false; return; } // Grab the data Serializer<DrugEntry[]> serializer = new Serializer<DrugEntry[]>(); drugEntries = serializer.Load("XML/DrugData/" + dataFile.name); if (drugEntries != null) { drugMerge = new List<DrugMerge>(); // Form merger list foreach (DrugEntry entry in drugEntries) { // Check if the drug is in the merge list bool found = false; foreach(DrugMerge merge in drugMerge) if (entry.name == merge.drugName) { found = true; break; } // Create entry if not found if(!found) { DrugMerge newItem = new DrugMerge(); newItem.drugName = entry.name; drugMerge.Add(newItem); } } // Compulate data foreach (DrugMerge merge in drugMerge) { foreach (DrugEntry entry in drugEntries) { if (merge.drugName == entry.name) { bool found = false; // Check dosage if(merge.doses != null) { foreach (DrugMerge.DoseOrder order in merge.doses) { if (entry.dosage == order.amount && entry.doseType == order.type) { found = true; break; } } } if (!found) { // Add data to this merge entry DrugMerge.DoseOrder newOrder = new DrugMerge.DoseOrder(); newOrder.amount = entry.dosage; newOrder.type = entry.doseType; merge.doses.Add(newOrder); } found = false; // Check delivery if(merge.delivery != null) { foreach (DrugMerge.DeliveryOrder order in merge.delivery) { if (entry.delivery == order.type) { found = true; break; } } } if (!found) { DrugMerge.DeliveryOrder newOrder = new DrugMerge.DeliveryOrder(); newOrder.type = entry.delivery; merge.delivery.Add(newOrder); } found = false; // Check Interval if(merge.intervals != null) { foreach (DrugMerge.IntervalOrder order in merge.intervals) { if (entry.time == order.amount && entry.interval == order.type) { found = true; break; } } } if (!found) { DrugMerge.IntervalOrder newOrder = new DrugMerge.IntervalOrder(); newOrder.amount = entry.time; newOrder.type = entry.interval; merge.intervals.Add(newOrder); } } } } } objMgr = ObjectManager.GetInstance(); if (objMgr != null) objMgr.RegisterObject(this); else return; InteractionMgr interactionMgr = InteractionMgr.GetInstance(); if(interactionMgr != null) { character = gameObject.AddComponent<Character>(); character.ItemResponse = new List<InteractionMap>(); foreach (InteractionMap map in interactionMgr.Interactions) { if (map.item == "MED:ORDERDRUGS") { character.ItemResponse.Add(map); character.AllMaps = character.ItemResponse; objMgr.RegisterObject(character); character.Name = "PharMgr"; character.prettyname = "PharMgr"; //character.Awake(); character.Start(); return; } } } }
public DrugEntry CheckItem(string name, DrugMerge.DoseOrder doseTest, DrugMerge.DeliveryOrder deliveryTest, DrugMerge.IntervalOrder intervalTest) { //CheckOrder(GetDrug(name), doseTest, deliveryTest, intervalTest); return CheckItem(name, doseTest.amount, doseTest.type, deliveryTest.type, intervalTest.amount, intervalTest.type); }