Ejemplo n.º 1
0
    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;
                }
            }
        }
    }
Ejemplo n.º 2
0
 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);
 }