Exemplo n.º 1
0
        private IOperation op;               //operation for this decision

        public Decision(DateTime startTime, DateTime endTime, SingleEquipment equipmentId, IOperation op)
        {
            this.startTime   = startTime;
            this.endTime     = endTime;
            this.equipmentId = equipmentId;
            this.op          = op;
        }
Exemplo n.º 2
0
    public void ShowUnEquipped(EquipmentType type)
    {
        for (int i = 0; i < list.Count; i++)
        {
            Destroy(list[i]);
        }
        if (temp == null)
        {
            temp = new GameObject();
            temp.transform.position = Camera.main.transform.position + Camera.main.transform.forward * 5.0f;
            temp.AddComponent <TextMesh>();
            var style = temp.GetComponent <TextMesh>();
            style.text     = "You don't have this type of equipments.";
            style.anchor   = TextAnchor.MiddleCenter;
            style.fontSize = 8;
            style.color    = Color.black;
        }
        temp.SetActive(false);
        equipments = EquipmentManager.instance.getUnequippedEquipment(type);
        if (equipments == null || equipments.Count == 0)
        {
            temp.SetActive(true);
            ui.SetActive(true);
            return;
        }

        int r = 0;
        int c = 0;

        for (int i = 0; i < equipments.Count; i++)
        {
            GameObject      singleEuipmentGo = (GameObject)Instantiate(prefab, transform.position, transform.rotation);
            SingleEquipment single           = singleEuipmentGo.GetComponent <SingleEquipment>();
            list.Add(singleEuipmentGo);
            single.setEquipment(equipments[i]);
            if (i % 5 == 0)
            {
                r++;
                c = 0;
                single.transform.position = new Vector3(UIvector.x - 200, UIvector.y + 200 - 150 * r, UIvector.z);
                Debug.Log(UIvector.y + single.transform.localPosition.y * c);
            }
            else
            {
                c++;
                single.transform.position = new Vector3(UIvector.x - 200 + 100 * c, UIvector.y + 200 - 150 * r, UIvector.z);
            }
        }
        ui.SetActive(true);
    }
Exemplo n.º 3
0
    void Awake()
    {
        prev                    = GameObject.Find("Knight1");
        fixedPosition           = new Vector3(150f, 320f, 0f);
        outposition             = new Vector3(-1000f, -1000f, 0f);
        prev.transform.position = fixedPosition;
        hasEquipment            = new bool[6];
        GameObject temp = GameObject.Find("/EquipmentUI/Equipments/Helmet");

        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Helmet";
        }
        temp = GameObject.Find("/EquipmentUI/Equipments/Weapon");
        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Weapon";
        }
        temp = GameObject.Find("/EquipmentUI/Equipments/Pants");
        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Pants";
        }
        temp = GameObject.Find("/EquipmentUI/Equipments/Gloves");
        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Gloves";
        }
        temp = GameObject.Find("/EquipmentUI/Equipments/Armor");
        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Armor";
        }
        temp = GameObject.Find("/EquipmentUI/Equipments/Shoes");
        if (temp != null)
        {
            SingleEquipment e = temp.GetComponent <SingleEquipment>();
            e.noneName = "Shoes";
        }
    }
Exemplo n.º 4
0
        private static void ReadEquipment(XElement group, GroupEquipment parent)
        {
            GroupEquipment tmp = new GroupEquipment(calendar, int.Parse(group.Attribute("id").Value), group.Attribute("name").Value);

            equipments.Add(tmp.GetId(), tmp);
            if (parent != null)
            {
                parent.AddEquipment(tmp);
            }

            foreach (XElement sgroup in group.Elements(df + "EquipmentGroup"))
            {
                ReadEquipment(sgroup, tmp);
            }

            foreach (XElement eq in group.Elements(df + "Equipment"))
            {
                SingleEquipment stmp = new SingleEquipment(calendar, int.Parse(eq.Attribute("id").Value), eq.Attribute("name").Value);
                equipments.Add(stmp.GetId(), stmp);
                tmp.AddEquipment(stmp);
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Set operation in plan
 /// </summary>
 public void SetOperationInPlan(DateTime realStartTime, DateTime realEndTime, SingleEquipment realEquipmentId)
 {
     enable   = true;
     decision = new Decision.Decision(realStartTime, realEndTime, realEquipmentId, this);
 }
Exemplo n.º 6
0
    public void Unequip()
    {
        hasClick = false;
        if (equipment == null || !equipment.isUsed)
        {
            ui.SetActive(false);
            GameObject      tempG;
            SingleEquipment tempS;
            tempG = GameObject.Find("/EquipmentUI/Equipments/Helmet");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            tempG = GameObject.Find("/EquipmentUI/Equipments/Armor");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            tempG = GameObject.Find("/EquipmentUI/Equipments/Pants");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            tempG = GameObject.Find("/EquipmentUI/Equipments/Shoes");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            tempG = GameObject.Find("/EquipmentUI/Equipments/Gloves");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            tempG = GameObject.Find("/EquipmentUI/Equipments/Weapon");
            tempS = tempG.GetComponent <SingleEquipment>();
            tempS.ui.SetActive(true);
            for (int i = 0; i < temp.Count; i++)
            {
                Destroy(temp[i]);
            }
            temp = new List <GameObject>();
            manager.ui.SetActive(false);
            addHero();
            return;
        }
        if (equipment.isUsed)
        {
            equipment.RemoveEquipmentFromHero(equipment.hero);
            equipment.isUsed = false;
            if (equipment.EquipmentType == EquipmentType.Helmet)
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Helmet");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            else if (equipment.EquipmentType == EquipmentType.Armor)
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Armor");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            else if (equipment.EquipmentType == EquipmentType.Gloves)
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Gloves");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            else if (equipment.EquipmentType == EquipmentType.Pants)
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Pants");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            else if (equipment.EquipmentType == EquipmentType.Shoes)
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Shoes");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            else
            {
                GameObject      tt = GameObject.Find("/EquipmentUI/Equipments/Weapon");
                SingleEquipment t  = tt.GetComponent <SingleEquipment>();
                t.setEquipment(null);
            }
            if (temp == null || temp.Count == 0)
            {
                List <Equipment> list;
                if (equipment == null)
                {
                    if (forNull == EquipmentType.Sword || forNull == EquipmentType.Shield)
                    {
                        list = EquipmentManager.instance.getUnequippedEquipment(forNull);
                        foreach (Equipment e1 in EquipmentManager.instance.getUnequippedEquipment(EquipmentType.Shield))
                        {
                            list.Add(e1);
                        }
                    }
                    else
                    {
                        list = EquipmentManager.instance.getUnequippedEquipment(forNull);
                        Debug.Log(list.Count);
                    }
                }
                else
                {
                    list = EquipmentManager.instance.getUnequippedEquipment(equipment.EquipmentType);
                }
                manager.ui.SetActive(true);
                for (int i = 0; i < list.Count; i++)
                {
                    GameObject      Single = (GameObject)Instantiate(prefab, transform.position, transform.rotation);
                    UnEquipmentNode node   = Single.GetComponent <UnEquipmentNode>();
                    node.index    = i;
                    node.tempList = temp;
                    Single.transform.localScale = new Vector3(0.4f, 0.4f, 0.3f);
                    node.transform.position     = new Vector3(100f, 540f - 150f * i, 0f);
                    node.ui.SetActive(true);
                    node.setHero(hero);
                    temp.Add(Single);
                    node.Set(list[i]);
                    Single.transform.SetParent(manager.transform.GetChild(0).GetChild(0));
                }
                manager.ui.SetActive(true);
                set(null, equipment.EquipmentType);
            }
            else
            {
                manager.ui.SetActive(true);
                GameObject      temp1  = (GameObject)Instantiate(prefab, transform.position, transform.rotation);
                UnEquipmentNode unNode = temp1.GetComponent <UnEquipmentNode>();
                unNode.setHero(hero);
                unNode.index    = temp.Count;
                unNode.tempList = temp;
                unNode.Set(equipment);
                set(null, equipment.EquipmentType);
                Vector3 v = temp[temp.Count - 1].transform.position;
                temp1.transform.position = new Vector3(100f, v.y - 150f, 0f);
                // temp1.transform.position = new Vector3(100f, 540f - (temp.Count - 1) * 150f, 0f);
                temp1.transform.localScale = new Vector3(0.5f, 0.5f, 0.3f);
                temp1.transform.SetParent(manager.transform.GetChild(0).GetChild(0));
                temp.Add(temp1);
            }

            /*manager.ui.SetActive(true);
             * GameObject temp1 = (GameObject)Instantiate(prefab, transform.position, transform.rotation);
             * UnEquipmentNode unNode = temp1.GetComponent<UnEquipmentNode>();
             * unNode.setHero(hero);
             * unNode.index = temp.Count;
             * unNode.tempList = temp;
             * unNode.Set(equipment);
             * set(null, equipment.EquipmentType);
             * temp.Add(temp1);
             * Debug.Log(temp.Count);
             * temp1.transform.position = new Vector3(100f, 540f - (temp.Count - 1) * 150f, 0f);
             * temp1.transform.localScale = new Vector3(0.4f, 0.4f, 0.3f);
             * temp1.transform.SetParent(manager.transform.GetChild(0).GetChild(0));
             * set(null, equipment.EquipmentType);*/
            removeHero();
        }
    }
Exemplo n.º 7
0
        /// <summary>
        /// Поиск свободного оборудования в списке
        /// </summary>
        /// <param name="time"></param>
        /// <param name="operation"></param>
        /// <param name="operationTime">время окончания операции (для первого случая) или  ближайшее время начала операции (для второго случая)</param>
        /// <param name="equipment"></param>
        /// <returns>возвращаем true, если находим свободное оборудование, false - иначе</returns>
        internal static bool IsFree(DateTime time, IOperation operation, out DateTime operationTime, out SingleEquipment equipment)
        {
            TimeSpan t = operation.GetDuration();
            int      intervalIndex;

            foreach (SingleEquipment e in operation.GetEquipment())
            {
                if ((e.IsNotOccupied(time)) && (e.GetCalendar().IsInterval(time, out intervalIndex)) && (e.GetCalendar().WillRelease(time, t, intervalIndex)))
                {
                    equipment     = e;
                    operationTime = e.GetCalendar().GetTimeofRelease(time, t, intervalIndex);
                    return(true);
                }
            }

            equipment = null;
            DateTime mintime = DateTime.MaxValue;

            foreach (SingleEquipment e in operation.GetEquipment())
            {
                if (e.GetCalendar().GetNearestStart(time) <= mintime)
                {
                    mintime = e.GetCalendar().GetNearestStart(time);
                }
            }
            operationTime = mintime;

            return(false);
        }