示例#1
0
    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);
        }
    } // Задача сформирована
示例#2
0
    } // Задача сформирована

    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);
        }
    }