예제 #1
0
    public void Sync(LevelTask task)
    {
        blockFail.SetActive(false);
        blockWin.SetActive(false);

        startTime = task.time;
        time      = task.time;
        id        = task.id;

        rewardText.text = task.rewardPoints.ToString();

        if (task.taskKind != TaskKind.None)
        {
            taskImage.sprite = The.tasks.GetTaskByKind(task.taskKind).icon;
        }
        else
        {
            taskImage.sprite = The.gameGui.recipieIcon;
            RecipieConfig c = The.recipies.GetRecipie(task.recipieKind);
            foreach (RecipieRequirements r in c.reqirements)
            {
                RecipieItemPanel p = Instantiate(recipieItem, Vector3.zero, Quaternion.identity);
                p.transform.parent     = recipieIemWrap.transform;
                p.transform.localScale = Vector3.one;
                p.count.text           = r.count.ToString();
                p.icon.sprite          = The.ingredients.GetIngredientConfig(r.ingredient).icon;
            }
        }

        progWidth  = progressBar.rect.width;
        progHeight = progressBar.rect.height;
        active     = true;
    }
예제 #2
0
    public void SetActiveEnviromentTask(LevelTask levelTask)
    {
        TaskConfig taskConfig = The.tasks.GetTaskByKind(levelTask.taskKind);

        taskId     = levelTask.id;
        actionTime = taskConfig.performingTime;
        taskIdle.SetActive(false);
        taskActive.SetActive(true);
    }
예제 #3
0
        public static ITaskManager CreateTaskManager()
        {
            ILevelTask simpleTaskA = new LevelTask(Strings.TAG_REDCIRCLE, 1);
            ILevelTask simpleTaskB = new LevelTask(Strings.TAG_BLUEMULTIANGLE, 1);

            ILevelTask[] levelTasks = new ILevelTask[] { simpleTaskA, simpleTaskB };

            ITaskManager taskManager = new TaskManager(levelTasks);

            return(taskManager);
        }
예제 #4
0
 public void NextTask()
 {
     if (currentTaskIndex >= levelTasks.Count)
     {
         //Level finished
         return;
     }
     levelTasks[currentTaskIndex].StartTask();
     timeToNextTask = levelTasks[currentTaskIndex].taskTime + timeBetweenTasks;
     currentTask    = levelTasks[currentTaskIndex];
     currentTaskIndex++;
 }
예제 #5
0
    /// <summary>
    /// Finds a free stask spot in scene and assign selected level task to it
    /// </summary>
    /// <param name="levelTask">Currently selected level task</param>
    void CreateAndAssignTaskInScene(LevelTask levelTask)
    {
        List <TaskEnviromentSpot> listToUse = new List <TaskEnviromentSpot>();

        foreach (TaskEnviromentSpot enviromentSpot in taskSpots)
        {
            if (enviromentSpot.kind == levelTask.taskKind && enviromentSpot.taskId < 0)
            {
                listToUse.Add(enviromentSpot);
            }
        }
        listToUse[UnityEngine.Random.Range(0, listToUse.Count)].SetActiveEnviromentTask(levelTask);
    }
예제 #6
0
    /// <summary>
    /// Create any yet unfinished task from levels tasklist and does a full setup for both classes, visuals, ui
    /// </summary>
    /// <param name="delay">Initial delay for doing that</param>
    /// <returns></returns>
    IEnumerator InstantiateTask(float delay)
    {
        yield return(new WaitForSeconds(delay));

        LevelTask levelTask = GetUnfinishedTask();

        if (levelTask != null)
        {
            openTasks.Add(levelTask.id, levelTask);
            GameObject t = Instantiate(The.gameGui.taskItem, Vector3.zero, Quaternion.identity);
            t.transform.parent     = The.gameGui.taskParent.transform;
            t.transform.localScale = Vector3.one;
            t.GetComponent <TaskContainer>().Sync(levelTask);
            taskUiCards.Add(levelTask.id, t.GetComponent <TaskContainer>());
            currentTaskCount++;
            if (levelTask.taskKind != TaskKind.None)
            {
                CreateAndAssignTaskInScene(levelTask);
            }
        }
    }
예제 #7
0
 public void pushTask(LevelTask task)
 {
     _tasks.Add(task);
 }
예제 #8
0
        public static ILevelTask CreateLevelTask(string elementTag, int count)
        {
            ILevelTask levelTask = new LevelTask(elementTag, count);

            return(levelTask);
        }
예제 #9
0
 public void pushTask(LevelTask task)
 {
     _tasks.Add(task);
 }