Beispiel #1
0
        static WaitTimeManager()
        {
            GameObject go = new GameObject("#WaitTimeManager");

            GameObject.DontDestroyOnLoad(go);
            m_Task = go.AddComponent <TaskBehaviour>();
        }
        //静态构造函数
        static DelayToInvoke()
        {
            var gameObject = new GameObject(typeof(DelayToInvoke).FullName, typeof(DelayToInvoke));

            Object.DontDestroyOnLoad(gameObject);
            taskBehaviour = gameObject.AddComponent <TaskBehaviour>();
        }
Beispiel #3
0
 public Task(GameObject owner)
 {
     this.owner        = owner;
     aiController      = owner.GetComponent <AIController>();
     combatStats       = owner.GetComponent <CombatStats>();
     taskMngr          = owner.GetComponent <TaskManager>();
     characterAnimator = owner.GetComponent <Animator>();
     navAgent          = owner.GetComponent <NavMeshAgent>();
     taskBehaviour     = ExecuteBehaviour;
 }
Beispiel #4
0
        // 静态构造函数
        static DelayInvoke()
        {
            // 创建 GameObject
            GameObject gameObject = new GameObject("DelayInvoke");

            // 场景切换不会销毁该对象
            UnityEngine.Object.DontDestroyOnLoad(gameObject);
            // 给 GameObject 添加 TaskBehaviour 组件,这样非 Mono 类也可以使用 Mono 中的一些方法
            TaskBehaviourInstance = gameObject.AddComponent <TaskBehaviour>();
        }
        private bool MakeRandomMistake(TaskBehaviour handledTask)
        {
            var madeMistake = false;

            if (handledTask.CurrentLane.laneType == TaskboardLaneType.DONE)
            {
                var testedRnd = Random.Range(0f, 1f);
                if (testedRnd < MistakeChance)
                {
                    handledTask.IsTested = false;
                    madeMistake          = true;
                }

                var documentedRnd = Random.Range(0f, 1f);
                if (documentedRnd < MistakeChance)
                {
                    handledTask.IsDocumented = false;
                    madeMistake = true;
                }
            }
            else if (handledTask.CurrentLane.laneType == TaskboardLaneType.DOING)
            {
                var rnd = Random.Range(0f, 1f);
                if (rnd < MistakeChance)
                {
                    handledTask.StartTime = "";
                    handledTask.IsStarted = false;
                    madeMistake           = true;
                }

                rnd = Random.Range(0f, 1f);
                if (rnd < MistakeChance)
                {
                    handledTask.Owner     = null;
                    handledTask.IsStarted = false;
                    madeMistake           = true;
                }
            }

            if (madeMistake)
            {
                GameManager.Instance
                .NotificationController
                .DisplayNotification(
                    "Auf dem Taskboard ist etwas nicht richtig eingeordnet.",
                    NotificationType.Warning);
            }

            return(madeMistake);
        }
    // Update is called once per frame
    void Update()
    {
        if (concorrentTask != null && !concorrentTask.IsFinished())
        {
            taskDescription = tempTaskDescription + " ou " + concorrentTask.taskDescription;
        }
        else
        {
            taskDescription = tempTaskDescription;
        }

        if (concorrentTask != null && concorrentTask.IsFinished() && concorrentTask.concorrentTask != null && !concorrentTask.concorrentTask.IsFinished())
        {
            concorrentTask = concorrentTask.concorrentTask;
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (tasks[tasks.Count - 1].IsFinished() && !completed)
        {
            CompleteEvent();
        }

        bool findCurrentTask = false;

        foreach (TaskBehaviour t in tasks)
        {
            if (!findCurrentTask)
            {
                if (!t.IsFinished())
                {
                    currentTask     = t;
                    findCurrentTask = true;
                }
            }
        }
    }
 protected override void OnReset()
 {
     concorrentTask = startConcorrentTask;
 }
 // Use this for initialization
 void Start()
 {
     tempTaskDescription = taskDescription;
     startConcorrentTask = concorrentTask;
 }
Beispiel #10
0
    public static void AddToPool(TaskBehaviour abandonedTask)
    {
        Debug.Log("Adding task to pool");

        AbandonedTasks.Enqueue(abandonedTask);
    }
Beispiel #11
0
 // Maybe there's no need for this?
 public void RemoveBehaviour(TaskBehaviour behaviour)
 {
     taskBehaviour -= behaviour;
 }
Beispiel #12
0
 // Maybe there's no need for this?
 public void AddBehaviour(TaskBehaviour behaviour)
 {
     taskBehaviour += behaviour;
 }
Beispiel #13
0
    //public void Kill()
    //{
    //    StopAllCoroutines();
    //}

    public void ChangeBehaviour(TaskBehaviour newBehaviour)
    {
        taskBehaviour = newBehaviour;
    }