public void UpdateCurrentTask()
 {
     currentTask.ResetTask();
     currentTask      = taskList[currentTaskNum];
     currentTaskTimer = currentTask.duration;
     taskBarText.text = currentTask.taskName;
 }
    // Use this for initialization
    public void Start()
    {
        currentTask    = taskList[startingTask];
        currentTaskNum = startingTask;

        taskBar = Instantiate(Resources.Load <GameObject>("Prefabs/RobotTaskBar"));
        taskBar.transform.parent        = gameObject.transform;
        taskBar.transform.localPosition = new Vector3(0f, 2f, -10f);
        taskBarText    = taskBar.transform.Find("TaskText").GetComponent <TextMesh>();
        triggerObj     = transform.Find("Trigger").gameObject;
        generalManager = GameObject.Find("GeneralManager");

        UpdateCurrentTask();

        camera      = GameObject.Find("Main Camera");
        audioSource = Instantiate(Resources.Load <GameObject>("Prefabs/AudioHolder")).GetComponent <AudioSource>();
        audioSource.transform.parent = transform;
        audioSource.gameObject.transform.position = new Vector3(transform.position.x, transform.position.y, -100);
        audioSource.loop         = true;
        wheels                   = Resources.Load <AudioClip>("Audio/wheels");
        audioSource.clip         = wheels;
        audioSource.spatialBlend = 1f;
        audioSource.rolloffMode  = AudioRolloffMode.Linear;
        audioSource.maxDistance  = 40f;
        audioSource.volume       = 0.3f;
    }
예제 #3
0
        static void Main(string[] args)
        {
            // database of tasks
            TaskTrackerList myTaskList = new TaskTrackerList();


            // create new general task
            GeneralTask mynewTask = new GeneralTask("firsttask", 5, 30);

            // create new specific tasks and add to the general
            Bug newBug1 = new Bug("first bug");
            Bug newBug2 = new Bug("second bug");

            mynewTask.AddSpecificTask(newBug1);
            mynewTask.AddSpecificTask(newBug2);

            // add general task to the database
            myTaskList.AddGeneralTask(mynewTask);

            // print how many iteration we have in the current task
            TaskTrackerList.myList[0].PrintTotalDiff();
            // run the task
            TaskTrackerList.myList[0].MakeTask();

            Console.ReadKey();
        }
예제 #4
0
 public void Failure()
 {
     soundManager.Failure();
     failureImage.SetActive(true);
     currentTask.gameObject.SetActive(false);
     currentTask.Teardown();
     currentTask = null;
     StartCoroutine(TaskEndImage(failureImage));
 }
예제 #5
0
 protected void Delete(object sender, EventArgs e)
 {
     if (!Request.GetUser().OperateTasks)
     {
         Response.StatusCode = 401;
         return;
     }
     foreach (var id in TaskList.Items.GetSelectedItemsID())
     {
         CloudTask.KillProcessTree(GeneralTask.Create(id).PID);
         FileHelper.DeleteWithRetries(Server.MapPath("~/Data/" + id + ".task"));
     }
     Response.Redirect(Request.RawUrl);
 }
예제 #6
0
    private IEnumerator StartTask()
    {
        yield return(new WaitForSeconds(1f));

        screenIntroText.SetActive(false);
        if (currentTask == null)
        {
            if (taskIndex >= tasks.Length)
            {
                taskIndex = 0;
            }
            currentTask = tasks[taskIndex];
            currentTask.Setup();
            taskIndex = taskIndex + 1;
        }
    }
예제 #7
0
        protected void Page_Init(object sender, EventArgs e)
        {
            if (!Request.GetUser().Browse)
            {
                Response.StatusCode = 401;
                return;
            }
            var info = new FileInfo(logPath = FileHelper.GetDataPath("error.log"));

            LogSize = Mygod.Helper.GetSize(info.Exists ? info.Length : 0);
            var tasks = Directory.EnumerateFiles(Server.MapPath("~/Data"), "*.task")
                        .Select(path => GeneralTask.Create(Path.GetFileNameWithoutExtension(path))).Where(task => task != null)
                        .OrderBy(task => task.Status).ThenByDescending(task => task.StartTime).ToList();

            TaskList.DataSource = tasks;
            TaskList.DataBind();
            TaskCount = tasks.Count;
        }
예제 #8
0
    private IEnumerator DelayedSuccess()
    {
        var cachedTask      = currentTask;
        var waitInstruction = new WaitForSeconds(delayAfterSuccess);

        yield return(waitInstruction);

        if (cachedTask.hasSucceeded)
        {
            soundManager.Success();
            successImage.SetActive(true);
            currentTask.gameObject.SetActive(false);
            currentTask.Teardown();
            currentTask = null;
            ++completedTasks;
            completedTasksUGUI.text = string.Format("{0}/20 completed tasks", completedTasks);
            StartCoroutine(TaskEndImage(successImage, !CanBeRunAgain));
        }
    }
예제 #9
0
 protected void Page_Init(object sender, EventArgs e)
 {
     if (!Request.GetUser().Browse)
     {
         Response.StatusCode = 401;
         return;
     }
     try
     {
         Task = GeneralTask.Create(ID = RouteData.GetRouteString("ID"));
         if (Task != null)
         {
             Title = TaskHelper.GetName(Task.Type) + "中";
         }
         Viewer.SetTask(Task);
     }
     catch
     {
         Viewer.Never();
     }
 }
예제 #10
0
 private void Start()
 {
     currentTask    = null;
     taskIndex      = 0;
     completedTasks = 0;
 }
예제 #11
0
 public bool ExecuteTask(GeneralTask executeTask)
 {
     return(executeTask.MakeTask());
 }
예제 #12
0
 public void AddGeneralTask(GeneralTask newTask)
 {
     myList.Add(newTask);
 }
예제 #13
0
        static int Main(string[] args)
        {
            if (args.Length < 1)
            {
                return(PrintUsage());
            }
            string mode = args[0];

            SomeTask[] tasks   = null;
            int        threads = 1;

            try {
                threads = int.Parse(args[1]); // arg 1: number of threads

                switch (mode)
                {
                case "sweep": {
                    int IE = int.Parse(args[3]);         // arg 3: last task (one-based)
                    int I0 = int.Parse(args[2]);         // arg 2: first task

                    tasks = new SomeTask[IE - I0 + 1];
                    for (int i = I0; i <= IE; i++)
                    {
                        tasks[i - I0] = new SweepTask(
                            i - 1,
                            args[4],          // arg 4: exe file
                            args[5]           // arg 5: control file
                            );
                    }

                    break;
                }

                case "general": {
                    tasks = new SomeTask[args.Length - 2];
                    for (int i = 2; i < args.Length; i++)
                    {
                        //Console.WriteLine("#" + i + ":   " + args[i]);
                        tasks[i - 2] = new GeneralTask(i - 2, args[i].Replace("@@", "  "));
                    }

                    break;
                }

                default:
                    return(PrintUsage());
                }
            } catch (Exception) {
                return(PrintUsage());
            }

            var options = new ParallelOptions()
            {
                MaxDegreeOfParallelism = threads
            };

            Parallel.Invoke(options, tasks.Select(t => ((Action)t.Run)).ToArray());

            for (int i = 0; i < tasks.Length; i++)
            {
                if (!tasks[i].success)
                {
                    return(i + 1);
                }
            }
            return(0);

            //tasks[0].RunExample();
        }