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