public void doZada4a(List <GameObject> arrObj, GameObject building, int prioritet) { // Формируем задачу if (building == null) { Zada4isha zada4ka = new Zada4isha(prioritet, true); arrObjects.Clear(); foreach (GameObject tar in arrObj) { Objectishe tar_tar = new Objectishe(tar); arrObjects.Add(tar_tar); } zada4ka.Add_List(arrObjects); zada4ka.creep1 = zapros_creepa(zada4ka.name); zada4ka.creep2 = zapros_creepa(zada4ka.name); zada4ka.creep3 = zapros_creepa(zada4ka.name); arr_Zada4i.Add(zada4ka); // Добавляем задачу в список готовых к исполнению задач } else if (building != null) { Zada4isha zada4ka = new Zada4isha(prioritet, false); zada4ka.Add_target(building); zada4ka.creep1 = zapros_creepa(zada4ka.name); zada4ka.creep2 = zapros_creepa(zada4ka.name); zada4ka.creep3 = zapros_creepa(zada4ka.name); arr_Zada4i.Add(zada4ka); } } // Задача сформирована
} // Задача сформирована void Dotask(Zada4isha task) { if (task.arrtar.Count > 0 && (task.creep1 != null || task.creep2 != null || task.creep3 != null)) { if (task.creep1.creep != null && task.arrtar.Count > 0) { if (task.creep1.zada4a == "Stroim") { foreach (Objectishe tar in task.arrtar) { creepNaZazada4u(task.creep1.creep, tar.ObjectOBJ); task.creep1.zada4a = "zanyat"; task.arrtar2.Add(tar); task.arrtar.Remove(tar); break; } } } else { task.creep1 = zapros_creepa(task.name); } if (task.creep2.creep != null && task.arrtar.Count > 0) { if (task.creep2.zada4a == "Stroim") { foreach (Objectishe tar in task.arrtar) { creepNaZazada4u(task.creep2.creep, tar.ObjectOBJ); task.creep2.zada4a = "zanyat"; task.arrtar2.Add(tar); task.arrtar.Remove(tar); break; } } } else { task.creep2 = zapros_creepa(task.name); } if (task.creep3.creep != null && task.arrtar.Count > 0) { if (task.creep3.zada4a == "Stroim") { foreach (Objectishe tar in task.arrtar) { creepNaZazada4u(task.creep3.creep, tar.ObjectOBJ); task.creep3.zada4a = "zanyat"; task.arrtar2.Add(tar); task.arrtar.Remove(tar); break; } } } else { task.creep3 = zapros_creepa(task.name); } } else if (task.arrtar.Count == 0) { Zada4isha miInList = arr_Zada4i.Find(p => p.name == task.name); arr_Zada4i.Remove(miInList); } }