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; }
public void SetActiveEnviromentTask(LevelTask levelTask) { TaskConfig taskConfig = The.tasks.GetTaskByKind(levelTask.taskKind); taskId = levelTask.id; actionTime = taskConfig.performingTime; taskIdle.SetActive(false); taskActive.SetActive(true); }
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); }
public void NextTask() { if (currentTaskIndex >= levelTasks.Count) { //Level finished return; } levelTasks[currentTaskIndex].StartTask(); timeToNextTask = levelTasks[currentTaskIndex].taskTime + timeBetweenTasks; currentTask = levelTasks[currentTaskIndex]; currentTaskIndex++; }
/// <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); }
/// <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); } } }
public void pushTask(LevelTask task) { _tasks.Add(task); }
public static ILevelTask CreateLevelTask(string elementTag, int count) { ILevelTask levelTask = new LevelTask(elementTag, count); return(levelTask); }