private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp = -1;

            int     n0c   = -1;
            int     n2c   = -1;
            int     n3c   = -1;
            int     n4c   = -1;
            int     n5c   = -1;
            int     n6c   = -1;
            NodeVal n0_1r = NodeVal.Invalid;
            NodeVal n3_1r = NodeVal.Invalid;
            NodeVal n4_1r = NodeVal.Invalid;
            NodeVal n5_1r = NodeVal.Invalid;
            NodeVal n6_1r = NodeVal.Invalid;


            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }

            do
            {
                switch (node)
                {
                case 0:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(14, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c   = 1;
                    node  = 1;
                    n0_1r = NodeVal.Success;
                    break;

                case 15:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    n0_1r = (NodeVal)System.Math.Max((int)n0_1r, (int)ret);
                    if (ret == NodeVal.Success && n0c < 2)
                    {
                        node = ++n0c;
                    }
                    else
                    {
                        n0c  = 1;
                        node = 0;
                        ret  = n0_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(14, _liveHandle, ret, true, false);
                        }
                        #endif
                        yield return(null);
                    }
                    break;

                case 1:


                    ret  = (this.GrowUp());
                    node = 15;

                    ret = NodeVal.Success;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 2:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n2c  = 3;
                    node = 3;
                    break;

                case 17:

                    if (ret != NodeVal.Success)
                    {
                        if (++n2c > 6)
                        {
                            n2c  = 3;
                            node = 15;
                        }
                        else
                        {
                            node = n2c;
                        }
                    }
                    else
                    {
                        n2c  = 3;
                        node = 15;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 3:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n3c   = 7;
                    node  = 7;
                    n3_1r = NodeVal.Success;
                    break;

                case 18:

                    n3_1r = (NodeVal)System.Math.Max((int)n3_1r, (int)ret);
                    if (ret == NodeVal.Success && n3c < 8)
                    {
                        node = ++n3c;
                    }
                    else
                    {
                        n3c  = 7;
                        node = 17;
                        ret  = n3_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 4:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(0, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n4c   = 9;
                    node  = 9;
                    n4_1r = NodeVal.Success;
                    break;

                case 19:

                    n4_1r = (NodeVal)System.Math.Max((int)n4_1r, (int)ret);
                    if (ret == NodeVal.Success && n4c < 10)
                    {
                        node = ++n4c;
                    }
                    else
                    {
                        n4c  = 9;
                        node = 17;
                        ret  = n4_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(0, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 5:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n5c   = 11;
                    node  = 11;
                    n5_1r = NodeVal.Success;
                    break;

                case 20:

                    n5_1r = (NodeVal)System.Math.Max((int)n5_1r, (int)ret);
                    if (ret == NodeVal.Success && n5c < 12)
                    {
                        node = ++n5c;
                    }
                    else
                    {
                        n5c  = 11;
                        node = 17;
                        ret  = n5_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 6:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n6c   = 13;
                    node  = 13;
                    n6_1r = NodeVal.Success;
                    break;

                case 21:

                    n6_1r = (NodeVal)System.Math.Max((int)n6_1r, (int)ret);
                    if (ret == NodeVal.Success && n6c < 14)
                    {
                        node = ++n6c;
                    }
                    else
                    {
                        n6c  = 13;
                        node = 17;
                        ret  = n6_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 7:


                    ret  = (this.FindPredators());
                    node = 18;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 8:


                    ret  = (this.MoveToEscape());
                    node = 18;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(15, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 9:


                    ret  = (this.FindMate());
                    node = 19;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 10:


                    ret  = (this.MoveToMate());
                    node = 19;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(11, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 11:


                    ret  = (this.FindPreys());
                    node = 20;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 12:


                    ret  = (this.MoveToPrey());
                    node = 20;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(12, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 13:


                    ret  = (this.Wander());
                    node = 21;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 14:


                    ret  = (this.MoveToWander());
                    node = 21;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(13, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);

            yield return(null);
        }
Exemplo n.º 2
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp              = -1;
            comp_Animator     = GetComponent <Animator>();
            comp_navMeshAgent = GetComponent <UnityEngine.AI.NavMeshAgent>();
            float   f1    = 0.0f;
            int     n0c   = -1;
            int     n1_1i = 0;
            NodeVal n0_1r = NodeVal.Invalid;
            NodeVal r1    = NodeVal.Invalid;
            NodeVal r2    = NodeVal.Invalid;

            valid = valid && (comp_Animator != null);
            valid = valid && (comp_navMeshAgent != null);
            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c   = 1;
                    node  = 1;
                    n0_1r = NodeVal.Success;
                    break;

                case 12:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    n0_1r = (NodeVal)System.Math.Max((int)n0_1r, (int)ret);
                    if (ret == NodeVal.Success && n0c < 3)
                    {
                        node = ++n0c;
                    }
                    else
                    {
                        n0c  = 1;
                        node = 0;
                        ret  = n0_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(1, _liveHandle, ret, true, false);
                        }
                        #endif
                        yield return(null);
                    }
                    break;

                case 1:


                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    do
                    {
                        node = UnityEngine.Random.Range(4, 10);
                    } while (n1_1i == node);
                    n1_1i = node;
                    break;

                case 13:

                    node = 12;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 2:

                    if (!comp_navMeshAgent.SetDestination((this.Target).position))
                    {
                        node = 12;
                        ret  = NodeVal.Fail;
                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                        }
                        #endif

                        break;
                    }
                    do
                    {
                        ret = (comp_navMeshAgent.pathPending || comp_navMeshAgent.remainingDistance > comp_navMeshAgent.stoppingDistance || comp_navMeshAgent.velocity.sqrMagnitude != 0f)? NodeVal.Running : NodeVal.Success;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(9, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 12;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 3:


                    f1  = Time.time;
                    r1  = NodeVal.Running;
                    r2  = NodeVal.Running;
                    ret = NodeVal.Success;

                    do
                    {
                        if (r1 == NodeVal.Running)
                        {
                            /* Animation */
                            comp_Animator.SetTrigger("Tip");
                            r1 = NodeVal.Success;
                        }
                        ret = r1;
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(11, _liveHandle, r1, false, false);
                        }
                                #endif

                        if (r2 == NodeVal.Running)
                        {
                            /* Wait */
                            r2 = ((Time.time - f1) > 2f)? NodeVal.Success : NodeVal.Running;
                        }
                        ret = (NodeVal)System.Math.Max((int)r2, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(12, _liveHandle, r2, false, false);
                        }
                                #endif
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(10, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 12;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 4:



                    this.Target = this.Target1;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 5:



                    this.Target = this.Target2;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 6:



                    this.Target = this.Target3;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(5, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 7:



                    this.Target = this.Target4;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 8:



                    this.Target = this.Target5;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 9:



                    this.Target = this.Target6;
                    ret         = NodeVal.Success;
                    node        = 13;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Exemplo n.º 3
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp          = -1;
            comp_Animator = GetComponent <Animator>();
            float   f1  = 0.0f;
            float   f2  = 0.0f;
            int     n0c = -1;
            NodeVal n0r = NodeVal.Invalid;

            valid = valid && (comp_Animator != null);
            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:
                    /* Sequence */

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(0, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c  = 1;
                    node = 1;
                    n0r  = NodeVal.Success;
                    break;

                case 3:
                    /* Sequence */
                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    n0r = (NodeVal)System.Math.Max((int)n0r, (int)ret);
                    if ((ret == NodeVal.Running || ret == NodeVal.Success) && n0c < 2)
                    {
                        node = ++n0c;
                    }
                    else
                    {
                        n0c  = 1;
                        node = 0;
                        ret  = n0r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(0, _liveHandle, ret, true, false);
                        }
                        #endif
                    }
                    yield return(null);

                    break;

                case 1:
                    /* Wait */

                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(5f, 10f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(1, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 3;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 2:
                    /* Say miow */


                    comp_Animator.SetTrigger("Miow");
                    ret  = NodeVal.Success;
                    node = 3;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Exemplo n.º 4
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp        = -1;
            comp_Walker = GetComponent <Walker>();
            int     n0_1n  = 0;
            int     n15c   = -1;
            int     n1c    = -1;
            int     n21c   = -1;
            int     n27c   = -1;
            int     n3c    = -1;
            int     n4c    = -1;
            int     n5c    = -1;
            int     n6c    = -1;
            int     n7c    = -1;
            int     n9c    = -1;
            NodeVal n15_1r = NodeVal.Invalid;
            NodeVal n21_1r = NodeVal.Invalid;
            NodeVal n27_1r = NodeVal.Invalid;
            NodeVal n3_1r  = NodeVal.Invalid;
            NodeVal n9_1r  = NodeVal.Invalid;

            valid = valid && (comp_Walker != null);
            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:

                    n0_1n = 0;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(26, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    node = 1;
                    break;

                case 31:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }

                    if (++n0_1n >= 0)
                    {
                        node  = 0;
                        n0_1n = 0;
                    }
                    else
                    {
                        node = 1;
                        ret  = NodeVal.Running;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(26, _liveHandle, ret, true, false);
                    }
                        #endif

                    yield return(null);

                    break;

                case 1:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(28, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n1c  = 2;
                    node = 2;
                    break;

                case 32:

                    if (ret != NodeVal.Success)
                    {
                        if (++n1c > 3)
                        {
                            n1c  = 2;
                            node = 31;
                        }
                        else
                        {
                            node = n1c;
                        }
                    }
                    else
                    {
                        n1c  = 2;
                        node = 31;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(28, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 2:

                    ret = (!comp_Walker.active)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(29, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 32;
                    break;

                case 3:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(27, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n3c   = 4;
                    node  = 4;
                    n3_1r = NodeVal.Success;
                    break;

                case 34:

                    n3_1r = (NodeVal)System.Math.Max((int)n3_1r, (int)ret);
                    if (ret == NodeVal.Success && n3c < 7)
                    {
                        node = ++n3c;
                    }
                    else
                    {
                        n3c  = 4;
                        node = 32;
                        ret  = n3_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(27, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 4:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(22, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n4c  = 8;
                    node = 8;
                    break;

                case 35:

                    if (ret != NodeVal.Success)
                    {
                        if (++n4c > 9)
                        {
                            n4c  = 8;
                            node = 34;
                        }
                        else
                        {
                            node = n4c;
                        }
                    }
                    else
                    {
                        n4c  = 8;
                        node = 34;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(22, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 5:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(13, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n5c  = 14;
                    node = 14;
                    break;

                case 36:

                    if (ret != NodeVal.Success)
                    {
                        if (++n5c > 15)
                        {
                            n5c  = 14;
                            node = 34;
                        }
                        else
                        {
                            node = n5c;
                        }
                    }
                    else
                    {
                        n5c  = 14;
                        node = 34;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(13, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 6:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n6c  = 20;
                    node = 20;
                    break;

                case 37:

                    if (ret != NodeVal.Success)
                    {
                        if (++n6c > 21)
                        {
                            n6c  = 20;
                            node = 34;
                        }
                        else
                        {
                            node = n6c;
                        }
                    }
                    else
                    {
                        n6c  = 20;
                        node = 34;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 7:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n7c  = 26;
                    node = 26;
                    break;

                case 38:

                    if (ret != NodeVal.Success)
                    {
                        if (++n7c > 27)
                        {
                            n7c  = 26;
                            node = 34;
                        }
                        else
                        {
                            node = n7c;
                        }
                    }
                    else
                    {
                        n7c  = 26;
                        node = 34;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 8:

                    ret = (comp_Walker.worked)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(19, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 35;
                    break;

                case 9:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(23, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n9c   = 10;
                    node  = 10;
                    n9_1r = NodeVal.Success;
                    break;

                case 40:

                    n9_1r = (NodeVal)System.Math.Max((int)n9_1r, (int)ret);
                    if (ret == NodeVal.Success && n9c < 13)
                    {
                        node = ++n9c;
                    }
                    else
                    {
                        n9c  = 10;
                        node = 35;
                        ret  = n9_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(23, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 10:


                    do
                    {
                        ret = (this.goToWork());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(18, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 40;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(18, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 11:


                    do
                    {
                        ret = (this.moveToWaypoint());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(17, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 40;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(17, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 12:


                    do
                    {
                        ret = (this.enterWork());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(24, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 40;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(24, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 13:


                    do
                    {
                        ret = (this.deactive());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(25, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 40;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(25, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 14:

                    ret = (comp_Walker.eaten)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(21, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 36;
                    break;

                case 15:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(20, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n15c   = 16;
                    node   = 16;
                    n15_1r = NodeVal.Success;
                    break;

                case 46:

                    n15_1r = (NodeVal)System.Math.Max((int)n15_1r, (int)ret);
                    if (ret == NodeVal.Success && n15c < 19)
                    {
                        node = ++n15c;
                    }
                    else
                    {
                        n15c = 16;
                        node = 36;
                        ret  = n15_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(20, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 16:


                    do
                    {
                        ret = (this.listenForThings());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(14, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 46;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(14, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 17:


                    do
                    {
                        ret = (this.moveToWaypoint());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(15, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 46;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(15, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 18:


                    do
                    {
                        ret = (this.enterStore());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(30, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 46;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(30, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 19:


                    do
                    {
                        ret = (this.deactive());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(31, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 46;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(31, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 20:

                    ret = (comp_Walker.atHome)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(16, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 37;
                    break;

                case 21:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n21c   = 22;
                    node   = 22;
                    n21_1r = NodeVal.Success;
                    break;

                case 52:

                    n21_1r = (NodeVal)System.Math.Max((int)n21_1r, (int)ret);
                    if (ret == NodeVal.Success && n21c < 25)
                    {
                        node = ++n21c;
                    }
                    else
                    {
                        n21c = 22;
                        node = 37;
                        ret  = n21_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 22:


                    do
                    {
                        ret = (this.goHome());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(7, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 52;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 23:


                    do
                    {
                        ret = (this.moveToWaypoint());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(6, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 52;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 24:


                    do
                    {
                        ret = (this.checkPrice());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(5, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 52;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(5, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 25:


                    do
                    {
                        ret = (this.deactive());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(4, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 52;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 26:

                    ret = (comp_Walker.haveHome)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(11, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 38;
                    break;

                case 27:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(12, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n27c   = 28;
                    node   = 28;
                    n27_1r = NodeVal.Success;
                    break;

                case 58:

                    n27_1r = (NodeVal)System.Math.Max((int)n27_1r, (int)ret);
                    if (ret == NodeVal.Success && n27c < 30)
                    {
                        node = ++n27c;
                    }
                    else
                    {
                        n27c = 28;
                        node = 38;
                        ret  = n27_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(12, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 28:


                    do
                    {
                        ret = (this.leave());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(3, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 58;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 29:


                    do
                    {
                        ret = (this.moveToWaypoint());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(2, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 58;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 30:


                    do
                    {
                        ret = (this.deactive());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(1, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 58;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Exemplo n.º 5
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp          = -1;
            comp_Animator = GetComponent <Animator>();
            float   f1    = 0.0f;
            int     n0c   = -1;
            int     n1c   = -1;
            int     n2c   = -1;
            int     n4c   = -1;
            NodeVal n1_1r = NodeVal.Invalid;
            NodeVal n2_1r = NodeVal.Invalid;
            NodeVal n4_1r = NodeVal.Invalid;
            NodeVal r1    = NodeVal.Invalid;
            NodeVal r2    = NodeVal.Invalid;
            Vector3 v1    = Vector3.zero;

            valid = valid && (comp_Animator != null);
            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:
                    /* Root selector */

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c  = 1;
                    node = 1;
                    break;

                case 11:
                    /* Root selector */
                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    if (ret != NodeVal.Success)
                    {
                        if (++n0c > 2)
                        {
                            n0c  = 1;
                            node = 0;
                        }
                        else
                        {
                            node = n0c;
                        }
                    }
                    else
                    {
                        n0c  = 1;
                        node = 0;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, ret, true, false);
                    }
                        #endif
                    yield return(null);

                    break;

                case 1:
                    /* Hit sequence */

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n1c   = 3;
                    node  = 3;
                    n1_1r = NodeVal.Success;
                    break;

                case 12:
                    /* Hit sequence */

                    n1_1r = (NodeVal)System.Math.Max((int)n1_1r, (int)ret);
                    if ((ret == NodeVal.Running || ret == NodeVal.Success) && n1c < 4)
                    {
                        node = ++n1c;
                    }
                    else
                    {
                        n1c  = 3;
                        node = 11;
                        ret  = n1_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(2, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 2:
                    /* Idle sequence */

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n2c   = 9;
                    node  = 9;
                    n2_1r = NodeVal.Success;
                    break;

                case 13:
                    /* Idle sequence */

                    n2_1r = (NodeVal)System.Math.Max((int)n2_1r, (int)ret);
                    if ((ret == NodeVal.Running || ret == NodeVal.Success) && n2c < 10)
                    {
                        node = ++n2c;
                    }
                    else
                    {
                        n2c  = 9;
                        node = 11;
                        ret  = n2_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 3:
                    /* Condition */

                    ret = (this.IsHit(true))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 12;
                    break;

                case 4:
                    /* Recoil sequence */

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(6, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n4c   = 5;
                    node  = 5;
                    n4_1r = NodeVal.Success;
                    break;

                case 15:
                    /* Recoil sequence */

                    n4_1r = (NodeVal)System.Math.Max((int)n4_1r, (int)ret);
                    if ((ret == NodeVal.Running || ret == NodeVal.Success) && n4c < 6)
                    {
                        node = ++n4c;
                    }
                    else
                    {
                        n4c  = 5;
                        node = 12;
                        ret  = n4_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 5:
                    /* Move */

                    f1 = Time.time;

                    do
                    {
                        v1 = this.MousePosition();
                        transform.position = Vector3.MoveTowards(transform.position, v1, -3f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if ((Time.time - f1) > 0.3f)
                            {
                                ret  = NodeVal.Success;
                                node = 15;
                                yield return(null);

                                break;
                            }

                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(11, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 15;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(11, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 6:
                    /* Parallel 1 */

                    f1  = Time.time;
                    r1  = NodeVal.Running;
                    r2  = NodeVal.Running;
                    ret = NodeVal.Success;

                    do
                    {
                        if (r1 == NodeVal.Running)
                        {
                            /* Animation */
                            comp_Animator.SetTrigger("Stun");
                            r1 = NodeVal.Success;
                        }
                        ret = r1;
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(8, _liveHandle, r1, false, false);
                        }
                                #endif

                        if (r2 == NodeVal.Running)
                        {
                            /* Wait 1 */
                            r2 = ((Time.time - f1) > 0.75f)? NodeVal.Success : NodeVal.Running;
                        }
                        ret = (NodeVal)System.Math.Max((int)r2, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(10, _liveHandle, r2, false, false);
                        }
                                #endif
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(9, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 15;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 9:
                    /* Action */

                    do
                    {
                        ret = (this.ChooseWanderTarget());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(1, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 13;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 10:
                    /* Move to wander target */

                    do
                    {
                        v1 = this.WanderTarget;
                        transform.position = Vector3.MoveTowards(transform.position, v1, 0.7f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.IsHit(false))
                            {
                                node = 0;
                                yield return(null);

                                break;
                            }

                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(5, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 13;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(5, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Exemplo n.º 6
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp = -1;
            float   f1     = 0.0f;
            int     n0c    = -1;
            int     n14c   = -1;
            int     n15c   = -1;
            int     n16c   = -1;
            int     n1c    = -1;
            int     n2c    = -1;
            int     n36c   = -1;
            int     n3c    = -1;
            int     n42c   = -1;
            int     n43c   = -1;
            int     n4c    = -1;
            int     n5c    = -1;
            int     n6c    = -1;
            NodeVal n1_1r  = NodeVal.Invalid;
            NodeVal n15_1r = NodeVal.Invalid;
            NodeVal n16_1r = NodeVal.Invalid;
            NodeVal n2_1r  = NodeVal.Invalid;
            NodeVal n3_1r  = NodeVal.Invalid;
            NodeVal n36_1r = NodeVal.Invalid;
            NodeVal n4_1r  = NodeVal.Invalid;
            NodeVal n42_1r = NodeVal.Invalid;
            NodeVal n43_1r = NodeVal.Invalid;
            NodeVal n5_1r  = NodeVal.Invalid;
            NodeVal n6_1r  = NodeVal.Invalid;
            Vector3 v1     = Vector3.zero;

            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c  = 1;
                    node = 1;
                    break;

                case 50:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    if (ret != NodeVal.Success)
                    {
                        if (++n0c > 7)
                        {
                            n0c  = 1;
                            node = 0;
                            yield return(null);
                        }
                        else
                        {
                            node = n0c;
                        }
                    }
                    else
                    {
                        n0c  = 1;
                        node = 0;
                        yield return(null);
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, ret, true, false);
                    }
                        #endif
                    break;

                case 1:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(64, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n1c   = 8;
                    node  = 8;
                    n1_1r = NodeVal.Success;
                    break;

                case 51:

                    n1_1r = (NodeVal)System.Math.Max((int)n1_1r, (int)ret);
                    if (ret == NodeVal.Success && n1c < 12)
                    {
                        node = ++n1c;
                    }
                    else
                    {
                        n1c  = 8;
                        node = 50;
                        ret  = n1_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(64, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 2:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(68, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n2c   = 13;
                    node  = 13;
                    n2_1r = NodeVal.Success;
                    break;

                case 52:

                    n2_1r = (NodeVal)System.Math.Max((int)n2_1r, (int)ret);
                    if (ret == NodeVal.Success && n2c < 14)
                    {
                        node = ++n2c;
                    }
                    else
                    {
                        n2c  = 13;
                        node = 50;
                        ret  = n2_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(68, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 3:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(72, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n3c   = 23;
                    node  = 23;
                    n3_1r = NodeVal.Success;
                    break;

                case 53:

                    n3_1r = (NodeVal)System.Math.Max((int)n3_1r, (int)ret);
                    if (ret == NodeVal.Success && n3c < 27)
                    {
                        node = ++n3c;
                    }
                    else
                    {
                        n3c  = 23;
                        node = 50;
                        ret  = n3_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(72, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 4:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(57, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n4c   = 28;
                    node  = 28;
                    n4_1r = NodeVal.Success;
                    break;

                case 54:

                    n4_1r = (NodeVal)System.Math.Max((int)n4_1r, (int)ret);
                    if (ret == NodeVal.Success && n4c < 33)
                    {
                        node = ++n4c;
                    }
                    else
                    {
                        n4c  = 28;
                        node = 50;
                        ret  = n4_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(57, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 5:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(50, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n5c   = 34;
                    node  = 34;
                    n5_1r = NodeVal.Success;
                    break;

                case 55:

                    n5_1r = (NodeVal)System.Math.Max((int)n5_1r, (int)ret);
                    if (ret == NodeVal.Success && n5c < 36)
                    {
                        node = ++n5c;
                    }
                    else
                    {
                        n5c  = 34;
                        node = 50;
                        ret  = n5_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(50, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 6:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(51, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n6c   = 39;
                    node  = 39;
                    n6_1r = NodeVal.Success;
                    break;

                case 56:

                    n6_1r = (NodeVal)System.Math.Max((int)n6_1r, (int)ret);
                    if (ret == NodeVal.Success && n6c < 41)
                    {
                        node = ++n6c;
                    }
                    else
                    {
                        n6c  = 39;
                        node = 50;
                        ret  = n6_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(51, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 7:


                    do
                    {
                        ret = (this.LightRemotePos());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(61, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 50;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(61, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 8:

                    ret = (this.hasRemote)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(19, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 51;
                    break;

                case 9:


                    f1 = Time.time;

                    do
                    {
                        ret = ((Time.time - f1) > 1f)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(20, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 51;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(20, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 10:


                    do
                    {
                        ret = (this.ChangeAC());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 51;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 11:


                    f1 = Time.time;

                    do
                    {
                        ret = ((Time.time - f1) > 1f)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(22, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 51;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(22, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 12:


                    do
                    {
                        ret = (this.ThrowRemote());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(21, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 51;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(21, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 13:

                    ret = (!this.isACGood())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(65, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 52;
                    break;

                case 14:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(73, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n14c = 15;
                    node = 15;
                    break;

                case 64:

                    if (ret != NodeVal.Success)
                    {
                        if (++n14c > 16)
                        {
                            n14c = 15;
                            node = 52;
                        }
                        else
                        {
                            node = n14c;
                        }
                    }
                    else
                    {
                        n14c = 15;
                        node = 52;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(73, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 15:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(74, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n15c   = 17;
                    node   = 17;
                    n15_1r = NodeVal.Success;
                    break;

                case 65:

                    n15_1r = (NodeVal)System.Math.Max((int)n15_1r, (int)ret);
                    if (ret == NodeVal.Success && n15c < 19)
                    {
                        node = ++n15c;
                    }
                    else
                    {
                        n15c = 17;
                        node = 64;
                        ret  = n15_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(74, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 16:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(75, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n16c   = 20;
                    node   = 20;
                    n16_1r = NodeVal.Success;
                    break;

                case 66:

                    n16_1r = (NodeVal)System.Math.Max((int)n16_1r, (int)ret);
                    if (ret == NodeVal.Success && n16c < 22)
                    {
                        node = ++n16c;
                    }
                    else
                    {
                        n16c = 20;
                        node = 64;
                        ret  = n16_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(75, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 17:

                    ret = (this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(77, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 65;
                    break;

                case 18:

                    ret = ((transform.position - this.RemoteLoc).sqrMagnitude <= (9f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(78, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 65;
                    break;

                case 19:


                    do
                    {
                        ret = (this.PickUpRemote());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(76, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 65;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(76, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 20:

                    ret = (!this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(79, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 66;
                    break;

                case 21:

                    ret = ((transform.position - this.RemoteLoc).sqrMagnitude <= (1f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(80, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 66;
                    break;

                case 22:


                    do
                    {
                        ret = (this.PickUpRemote());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(81, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 66;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(81, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 23:

                    ret = (this.isACGood())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(41, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 53;
                    break;

                case 24:

                    ret = (!this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(40, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 53;
                    break;

                case 25:

                    ret = (!this.AreYouInBed())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(15, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 53;
                    break;

                case 26:


                    do
                    {
                        ret = (this.FindBed());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(16, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 53;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(16, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 27:


                    v1 = this.TargetLoc;
                    transform.position = Vector3.MoveTowards(transform.position, v1, 2f * Time.deltaTime);
                    ret  = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                    node = 53;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(63, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 28:

                    ret = (this.isACGood())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(56, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 54;
                    break;

                case 29:

                    ret = (this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(55, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 54;
                    break;

                case 30:


                    do
                    {
                        ret = (this.FindLight());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(54, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 54;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(54, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 31:


                    v1 = this.TargetLoc;
                    transform.position = Vector3.MoveTowards(transform.position, v1, 2f * Time.deltaTime);
                    ret  = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                    node = 54;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(45, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 32:

                    ret = ((transform.position - this.LightLoc).sqrMagnitude <= (1f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(43, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 54;
                    break;

                case 33:


                    do
                    {
                        ret = (this.TurnOffLight());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(44, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 54;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(44, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 34:

                    ret = (!this.isACGood())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(49, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 55;
                    break;

                case 35:

                    ret = (this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(48, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 55;
                    break;

                case 36:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(60, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n36c   = 37;
                    node   = 37;
                    n36_1r = NodeVal.Success;
                    break;

                case 86:

                    n36_1r = (NodeVal)System.Math.Max((int)n36_1r, (int)ret);
                    if (ret == NodeVal.Success && n36c < 38)
                    {
                        node = ++n36c;
                    }
                    else
                    {
                        n36c = 37;
                        node = 55;
                        ret  = n36_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(60, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 37:


                    ret  = (this.Search());
                    node = 86;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(66, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 38:


                    do
                    {
                        v1 = this.SearchDir;
                        transform.position = Vector3.MoveTowards(transform.position, v1, 2f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(82, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 86;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(82, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 39:

                    ret = (!this.isACGood())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(53, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 56;
                    break;

                case 40:

                    ret = (!this.IsLightOn())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(52, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 56;
                    break;

                case 41:

                    f1 = UnityEngine.Random.Range(0.0f, 1.0f);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(62, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif

                    if (f1 <= 0.8f)
                    {
                        node = 42;
                    }
                    else
                    {
                        node = 43;
                    }
                    break;

                case 91:

                    node = 56;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(62, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 42:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(69, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n42c   = 44;
                    node   = 44;
                    n42_1r = NodeVal.Success;
                    break;

                case 92:

                    n42_1r = (NodeVal)System.Math.Max((int)n42_1r, (int)ret);
                    if (ret == NodeVal.Success && n42c < 45)
                    {
                        node = ++n42c;
                    }
                    else
                    {
                        n42c = 44;
                        node = 91;
                        ret  = n42_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(69, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 43:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(67, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n43c   = 46;
                    node   = 46;
                    n43_1r = NodeVal.Success;
                    break;

                case 93:

                    n43_1r = (NodeVal)System.Math.Max((int)n43_1r, (int)ret);
                    if (ret == NodeVal.Success && n43c < 49)
                    {
                        node = ++n43c;
                    }
                    else
                    {
                        n43c = 46;
                        node = 91;
                        ret  = n43_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(67, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 44:


                    ret  = (this.Search());
                    node = 92;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(70, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 45:


                    do
                    {
                        v1 = this.SearchDir;
                        transform.position = Vector3.MoveTowards(transform.position, v1, 2f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(71, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 92;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(71, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 46:


                    f1 = Time.time;

                    do
                    {
                        ret = ((Time.time - f1) > 1f)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(58, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 93;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(58, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 47:


                    do
                    {
                        ret = (this.FindLight());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(59, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 93;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(59, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 48:


                    do
                    {
                        v1 = this.TargetLoc;
                        transform.position = Vector3.MoveTowards(transform.position, v1, 2f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(46, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 93;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(46, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 49:


                    do
                    {
                        ret = (this.TurnOnLight());
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(47, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 93;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(47, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Exemplo n.º 7
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp          = -1;
            comp_Animator = GetComponent <Animator>();
            float   f1     = 0.0f;
            int     n0_1i  = 0;
            int     n10c   = -1;
            int     n1c    = -1;
            int     n25c   = -1;
            int     n26c   = -1;
            int     n2c    = -1;
            int     n3c    = -1;
            int     n4c    = -1;
            int     n9c    = -1;
            NodeVal n1_1r  = NodeVal.Invalid;
            NodeVal n10_1r = NodeVal.Invalid;
            NodeVal n2_1r  = NodeVal.Invalid;
            NodeVal n26_1r = NodeVal.Invalid;
            NodeVal n3_1r  = NodeVal.Invalid;
            NodeVal n4_1r  = NodeVal.Invalid;
            NodeVal r1     = NodeVal.Invalid;
            NodeVal r2     = NodeVal.Invalid;
            NodeVal r3     = NodeVal.Invalid;
            NodeVal r4     = NodeVal.Invalid;
            NodeVal r5     = NodeVal.Invalid;
            Vector3 v1     = Vector3.zero;

            valid = valid && (comp_Animator != null);
            if (!valid)
            {
                throw new BehaviourTreeException("Behaviour tree will not run. The GameObject has missing required components.");
            }
            do
            {
                switch (node)
                {
                case 0:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(23, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0_1i = 0;
                    node  = EvalMouseBehaviourPicker(ref n0_1i);
                    break;

                case 30:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    if (!(ret == NodeVal.Success || ret == NodeVal.Running) && n0_1i != 15)
                    {
                        node = EvalMouseBehaviourPicker(ref n0_1i);
                        break;
                    }
                    node = 0;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(23, _liveHandle, ret, true, false);
                    }
                        #endif
                    yield return(null);

                    break;

                case 1:

                    _pubState = PubState.FleeFromCat;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(30, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n1c   = 5;
                    node  = 5;
                    n1_1r = NodeVal.Success;
                    break;

                case 31:

                    n1_1r = (NodeVal)System.Math.Max((int)n1_1r, (int)ret);
                    if (ret == NodeVal.Success && n1c < 6)
                    {
                        node = ++n1c;
                    }
                    else
                    {
                        n1c  = 5;
                        node = 30;
                        ret  = n1_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(30, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 2:

                    _pubState = PubState.GetCheese;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(29, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n2c   = 7;
                    node  = 7;
                    n2_1r = NodeVal.Success;
                    break;

                case 32:

                    n2_1r = (NodeVal)System.Math.Max((int)n2_1r, (int)ret);
                    if (ret == NodeVal.Success && n2c < 9)
                    {
                        node = ++n2c;
                    }
                    else
                    {
                        n2c  = 7;
                        node = 30;
                        ret  = n2_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(29, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 3:

                    _pubState = PubState.Idle;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n3c   = 14;
                    node  = 14;
                    n3_1r = NodeVal.Success;
                    break;

                case 33:

                    n3_1r = (NodeVal)System.Math.Max((int)n3_1r, (int)ret);
                    if (ret == NodeVal.Success && n3c < 18)
                    {
                        node = ++n3c;
                    }
                    else
                    {
                        n3c  = 14;
                        node = 30;
                        ret  = n3_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 4:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(9, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n4c   = 24;
                    node  = 24;
                    n4_1r = NodeVal.Success;
                    break;

                case 34:

                    n4_1r = (NodeVal)System.Math.Max((int)n4_1r, (int)ret);
                    if (ret == NodeVal.Success && n4c < 25)
                    {
                        node = ++n4c;
                    }
                    else
                    {
                        n4c  = 24;
                        node = 30;
                        ret  = n4_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 5:


                    ret  = (this.SignalBehaviourOnScreen("Flee from cat"));
                    node = 31;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(25, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 6:


                    f1 = Time.time;

                    do
                    {
                        v1 = this.CatPosition();
                        transform.position = Vector3.MoveTowards(transform.position, v1, -2f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if ((Time.time - f1) > 1f)
                            {
                                ret  = NodeVal.Success;
                                node = 31;
                                yield return(null);

                                break;
                            }

                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(26, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 31;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(26, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 7:

                    ret = (this.CheeseIsAvailable())? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(28, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 32;
                    break;

                case 8:


                    ret  = (this.SignalBehaviourOnScreen("Getting cheese"));
                    node = 32;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(27, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 9:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n9c  = 10;
                    node = 10;
                    break;

                case 39:

                    if (ret != NodeVal.Success)
                    {
                        if (++n9c > 11)
                        {
                            n9c  = 10;
                            node = 32;
                        }
                        else
                        {
                            node = n9c;
                        }
                    }
                    else
                    {
                        n9c  = 10;
                        node = 32;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(10, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 10:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(11, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n10c   = 12;
                    node   = 12;
                    n10_1r = NodeVal.Success;
                    break;

                case 40:

                    n10_1r = (NodeVal)System.Math.Max((int)n10_1r, (int)ret);
                    if (ret == NodeVal.Success && n10c < 13)
                    {
                        node = ++n10c;
                    }
                    else
                    {
                        n10c = 12;
                        node = 39;
                        ret  = n10_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(11, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 11:


                    v1 = this.ClosestCheese();
                    transform.position = Vector3.MoveTowards(transform.position, v1, 1.2f * Time.deltaTime);
                    ret  = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                    node = 39;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(12, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 12:

                    ret = ((transform.position - this.ClosestCheese()).sqrMagnitude < (0f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(13, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 40;
                    break;

                case 13:


                    ret  = (this.EatClosestCheese());
                    node = 40;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(14, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 14:


                    ret  = (this.SignalBehaviourOnScreen("Attack! (Rush at cat)"));
                    node = 33;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(2, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 15:


                    do
                    {
                        v1 = this.CatPosition();
                        transform.position = Vector3.MoveTowards(transform.position, v1, 4f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.CatWithinDistance(0.3f))
                            {
                                ret  = NodeVal.Success;
                                node = 33;
                                yield return(null);

                                break;
                            }

                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(1, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 33;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 16:


                    f1  = Time.time;
                    r1  = NodeVal.Running;
                    r2  = NodeVal.Running;
                    r3  = NodeVal.Running;
                    r4  = NodeVal.Running;
                    r5  = NodeVal.Running;
                    ret = NodeVal.Success;

                    do
                    {
                        if (r1 == NodeVal.Running)
                        {
                            /* Show is attacking 1 */
                            r1 = (this.SignalBehaviourOnScreen("Attack! (Pow!)"));
                        }
                        ret = r1;
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(18, _liveHandle, r1, false, false);
                        }
                                #endif

                        if (r2 == NodeVal.Running)
                        {
                            /* Action 3 */
                            r2 = (this.AttackCat());
                        }
                        ret = (NodeVal)System.Math.Max((int)r2, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(15, _liveHandle, r2, false, false);
                        }
                                #endif

                        if (r3 == NodeVal.Running)
                        {
                            /* Trigger pow animation */
                            comp_Animator.SetTrigger("Pow");
                            r3 = NodeVal.Success;
                        }
                        ret = (NodeVal)System.Math.Max((int)r3, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(0, _liveHandle, r3, false, false);
                        }
                                #endif

                        if (r4 == NodeVal.Running)
                        {
                            /* Wait for animation end */
                            r4 = ((Time.time - f1) > 0.75f)? NodeVal.Success : NodeVal.Running;
                        }
                        ret = (NodeVal)System.Math.Max((int)r4, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(16, _liveHandle, r4, false, false);
                        }
                                #endif

                        if (r5 == NodeVal.Running)
                        {
                            /* Action 2 */
                            r5 = (this.ChooseIdleTarget());
                        }
                        ret = (NodeVal)System.Math.Max((int)r5, (int)ret);
                                #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(17, _liveHandle, r5, false, false);
                        }
                                #endif
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(3, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 33;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(3, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 17:


                    ret  = (this.SignalBehaviourOnScreen("Attack! (Retreat!)"));
                    node = 33;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(4, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 18:


                    do
                    {
                        v1 = this.IdleTarget;
                        transform.position = Vector3.MoveTowards(transform.position, v1, 4f * Time.deltaTime);
                        ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                        #if UNITY_EDITOR
                            if (_live != null)
                            {
                                _live = _live.SetLiveValue(5, _liveHandle, NodeVal.Running, true, false);
                            }
                        #endif
                            yield return(null);
                        }
                        else
                        {
                            node = 33;
                            break;
                        }
                    } while (true);

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(5, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 24:


                    ret  = (this.SignalBehaviourOnScreen("Idling"));
                    node = 34;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 25:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n25c = 26;
                    node = 26;
                    break;

                case 55:

                    if (ret != NodeVal.Success)
                    {
                        if (++n25c > 27)
                        {
                            n25c = 26;
                            node = 34;
                        }
                        else
                        {
                            node = n25c;
                        }
                    }
                    else
                    {
                        n25c = 26;
                        node = 34;
                    }

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                    }
                        #endif
                    break;

                case 26:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(22, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n26c   = 28;
                    node   = 28;
                    n26_1r = NodeVal.Success;
                    break;

                case 56:

                    n26_1r = (NodeVal)System.Math.Max((int)n26_1r, (int)ret);
                    if (ret == NodeVal.Success && n26c < 29)
                    {
                        node = ++n26c;
                    }
                    else
                    {
                        n26c = 28;
                        node = 55;
                        ret  = n26_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(22, _liveHandle, ret, false, false);
                        }
                        #endif
                    }
                    break;

                case 27:


                    v1 = this.IdleTarget;
                    transform.position = Vector3.MoveTowards(transform.position, v1, 0.4f * Time.deltaTime);
                    ret  = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                    node = 55;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(21, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;

                case 28:

                    ret = ((transform.position - this.IdleTarget).sqrMagnitude < (0f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(19, _liveHandle, ret, false, false);
                    }
                        #endif
                    node = 56;
                    break;

                case 29:


                    ret  = (this.ChooseIdleTarget());
                    node = 56;

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(20, _liveHandle, ret, false, false);
                    }
                        #endif

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }