Пример #1
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp = -1;
            float   f1     = 0.0f;
            float   f2     = 0.0f;
            int     n0c    = -1;
            int     n12c   = -1;
            int     n13c   = -1;
            int     n14c   = -1;
            int     n18_1i = 0;
            int     n19c   = -1;
            int     n1c    = -1;
            int     n20c   = -1;
            int     n21c   = -1;
            int     n22c   = -1;
            int     n23c   = -1;
            int     n2c    = -1;
            int     n4c    = -1;
            int     n5c    = -1;
            int     n6c    = -1;
            NodeVal n1_1r  = NodeVal.Invalid;
            NodeVal n13_1r = NodeVal.Invalid;
            NodeVal n14_1r = NodeVal.Invalid;
            NodeVal n19_1r = NodeVal.Invalid;
            NodeVal n2_1r  = NodeVal.Invalid;
            NodeVal n20_1r = NodeVal.Invalid;
            NodeVal n21_1r = NodeVal.Invalid;
            NodeVal n22_1r = NodeVal.Invalid;
            NodeVal n23_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(1, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c  = 1;
                    node = 1;
                    break;

                case 49:

                    if (_jmp >= 0)
                    {
                        node = _jmp;
                        _jmp = -1;
                        continue;
                    }
                    if (ret != NodeVal.Success)
                    {
                        if (++n0c > 2)
                        {
                            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(1, _liveHandle, ret, true, false);
                    }
                        #endif
                    break;

                case 1:

                        #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 50:

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

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

                case 2:

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

                case 51:

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

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

                case 3:

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

                case 4:

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

                case 53:

                    if (ret != NodeVal.Success)
                    {
                        if (++n4c > 6)
                        {
                            n4c  = 5;
                            node = 50;
                        }
                        else
                        {
                            node = n4c;
                        }
                    }
                    else
                    {
                        n4c  = 5;
                        node = 50;
                    }

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

                case 5:

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

                case 54:

                    n5_1r = (NodeVal)System.Math.Max((int)n5_1r, (int)ret);
                    if (ret == NodeVal.Success && n5c < 8)
                    {
                        node = ++n5c;
                    }
                    else
                    {
                        n5c  = 7;
                        node = 53;
                        ret  = n5_1r;

                        #if UNITY_EDITOR
                        if (_live != null)
                        {
                            _live = _live.SetLiveValue(11, _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   = 9;
                    node  = 9;
                    n6_1r = NodeVal.Success;
                    break;

                case 55:

                    n6_1r = (NodeVal)System.Math.Max((int)n6_1r, (int)ret);
                    if (ret == NodeVal.Success && n6c < 10)
                    {
                        node = ++n6c;
                    }
                    else
                    {
                        n6c  = 9;
                        node = 53;
                        ret  = n6_1r;

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

                case 7:

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

                case 8:


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

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

                    break;

                case 9:

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

                case 10:


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

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

                    break;

                case 11:

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

                case 12:

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

                case 61:

                    if (ret != NodeVal.Success)
                    {
                        if (++n12c > 14)
                        {
                            n12c = 13;
                            node = 51;
                        }
                        else
                        {
                            node = n12c;
                        }
                    }
                    else
                    {
                        n12c = 13;
                        node = 51;
                    }

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

                case 13:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(45, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n13c   = 15;
                    node   = 15;
                    n13_1r = NodeVal.Success;
                    break;

                case 62:

                    n13_1r = (NodeVal)System.Math.Max((int)n13_1r, (int)ret);
                    if (ret == NodeVal.Success && n13c < 16)
                    {
                        node = ++n13c;
                    }
                    else
                    {
                        n13c = 15;
                        node = 61;
                        ret  = n13_1r;

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

                case 14:

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

                case 63:

                    n14_1r = (NodeVal)System.Math.Max((int)n14_1r, (int)ret);
                    if (ret == NodeVal.Success && n14c < 18)
                    {
                        node = ++n14c;
                    }
                    else
                    {
                        n14c = 17;
                        node = 61;
                        ret  = n14_1r;

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

                case 15:

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

                case 16:


                    do
                    {
                        ret = (this.SetTargetToLeave());
                        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 = 62;
                            break;
                        }
                    } while (true);

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

                    break;

                case 17:

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

                case 18:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(48, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n18_1i = 0;
                    node   = EvalUtility(ref n18_1i);
                    break;

                case 67:

                    if (!(ret == NodeVal.Success || ret == NodeVal.Running) && n18_1i != 31)
                    {
                        node = EvalUtility(ref n18_1i);
                        break;
                    }
                    node = 63;

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

                    break;

                case 19:

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

                case 68:

                    n19_1r = (NodeVal)System.Math.Max((int)n19_1r, (int)ret);
                    if (ret == NodeVal.Success && n19c < 28)
                    {
                        node = ++n19c;
                    }
                    else
                    {
                        n19c = 24;
                        node = 67;
                        ret  = n19_1r;

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

                case 20:

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

                case 69:

                    n20_1r = (NodeVal)System.Math.Max((int)n20_1r, (int)ret);
                    if (ret == NodeVal.Success && n20c < 33)
                    {
                        node = ++n20c;
                    }
                    else
                    {
                        n20c = 29;
                        node = 67;
                        ret  = n20_1r;

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

                case 21:

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

                case 70:

                    n21_1r = (NodeVal)System.Math.Max((int)n21_1r, (int)ret);
                    if (ret == NodeVal.Success && n21c < 38)
                    {
                        node = ++n21c;
                    }
                    else
                    {
                        n21c = 34;
                        node = 67;
                        ret  = n21_1r;

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

                case 22:

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

                case 71:

                    n22_1r = (NodeVal)System.Math.Max((int)n22_1r, (int)ret);
                    if (ret == NodeVal.Success && n22c < 43)
                    {
                        node = ++n22c;
                    }
                    else
                    {
                        n22c = 39;
                        node = 67;
                        ret  = n22_1r;

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

                case 23:

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

                case 72:

                    n23_1r = (NodeVal)System.Math.Max((int)n23_1r, (int)ret);
                    if (ret == NodeVal.Success && n23c < 48)
                    {
                        node = ++n23c;
                    }
                    else
                    {
                        n23c = 44;
                        node = 67;
                        ret  = n23_1r;

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

                case 24:


                    ret  = (this.SetTargetToPP());
                    node = 68;

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

                    break;

                case 25:

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

                case 26:


                    do
                    {
                        ret = (this.SetTargetToStay());
                        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 = 68;
                            break;
                        }
                    } while (true);

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

                    break;

                case 27:


                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(1f, 3f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.scared)
                            {
                                node = 2;
                                yield return(null);

                                break;
                            }

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

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

                    break;

                case 28:


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

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

                    break;

                case 29:


                    ret  = (this.SetTargetToBB());
                    node = 69;

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

                    break;

                case 30:

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

                case 31:


                    do
                    {
                        ret = (this.SetTargetToStay());
                        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 = 69;
                            break;
                        }
                    } while (true);

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

                    break;

                case 32:


                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(1f, 3f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.scared)
                            {
                                node = 2;
                                yield return(null);

                                break;
                            }

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

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

                    break;

                case 33:


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

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

                    break;

                case 34:


                    ret  = (this.SetTargetToHS());
                    node = 70;

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

                    break;

                case 35:

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

                case 36:


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

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

                    break;

                case 37:


                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(1f, 3f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.scared)
                            {
                                node = 2;
                                yield return(null);

                                break;
                            }

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

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

                    break;

                case 38:


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

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

                    break;

                case 39:


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

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

                    break;

                case 40:

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

                case 41:


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

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

                    break;

                case 42:


                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(1f, 3f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.scared)
                            {
                                node = 2;
                                yield return(null);

                                break;
                            }

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

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

                    break;

                case 43:


                    do
                    {
                        ret = (this.TakeCandyFromSP());
                        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 = 71;
                            break;
                        }
                    } while (true);

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

                    break;

                case 44:


                    ret  = (this.SetTargetToRW());
                    node = 72;

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

                    break;

                case 45:

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

                case 46:


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

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

                    break;

                case 47:


                    f1 = Time.time;
                    f2 = UnityEngine.Random.Range(1f, 3f);

                    do
                    {
                        ret = ((Time.time - f1) > f2)? NodeVal.Success : NodeVal.Running;
                        if (ret == NodeVal.Running)
                        {
                            if (this.scared)
                            {
                                node = 2;
                                yield return(null);

                                break;
                            }

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

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

                    break;

                case 48:


                    do
                    {
                        ret = (this.TakeCandyFromRW());
                        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 = 72;
                            break;
                        }
                    } while (true);

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

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Пример #2
0
        private IEnumerator StateGen()
        {
            int     node = 0;
            NodeVal ret  = NodeVal.Error;

            _jmp = -1;
            int     n0c    = -1;
            int     n15c   = -1;
            int     n16c   = -1;
            int     n17c   = -1;
            int     n18c   = -1;
            int     n19c   = -1;
            int     n1c    = -1;
            int     n20c   = -1;
            int     n2c    = -1;
            int     n3c    = -1;
            int     n4c    = -1;
            int     n5c    = -1;
            int     n6c    = -1;
            int     n7c    = -1;
            NodeVal n1_1r  = NodeVal.Invalid;
            NodeVal n16_1r = NodeVal.Invalid;
            NodeVal n17_1r = NodeVal.Invalid;
            NodeVal n18_1r = NodeVal.Invalid;
            NodeVal n19_1r = NodeVal.Invalid;
            NodeVal n2_1r  = NodeVal.Invalid;
            NodeVal n20_1r = NodeVal.Invalid;
            NodeVal n3_1r  = NodeVal.Invalid;
            NodeVal n4_1r  = NodeVal.Invalid;
            NodeVal n5_1r  = NodeVal.Invalid;
            NodeVal n6_1r  = NodeVal.Invalid;
            NodeVal n7_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(1, _liveHandle, NodeVal.Running, false, true);
                    }
                        #endif
                    n0c  = 1;
                    node = 1;
                    break;

                case 49:

                    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(1, _liveHandle, ret, true, false);
                    }
                        #endif
                    break;

                case 1:

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

                case 50:

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

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

                case 2:

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

                case 51:

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

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

                case 3:

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

                case 52:

                    n3_1r = (NodeVal)System.Math.Max((int)n3_1r, (int)ret);
                    if (ret == NodeVal.Success && n3c < 15)
                    {
                        node = ++n3c;
                    }
                    else
                    {
                        n3c  = 13;
                        node = 49;
                        ret  = n3_1r;

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

                case 4:

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

                case 53:

                    n4_1r = (NodeVal)System.Math.Max((int)n4_1r, (int)ret);
                    if (ret == NodeVal.Success && n4c < 40)
                    {
                        node = ++n4c;
                    }
                    else
                    {
                        n4c  = 38;
                        node = 49;
                        ret  = n4_1r;

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

                case 5:

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

                case 54:

                    n5_1r = (NodeVal)System.Math.Max((int)n5_1r, (int)ret);
                    if (ret == NodeVal.Success && n5c < 43)
                    {
                        node = ++n5c;
                    }
                    else
                    {
                        n5c  = 41;
                        node = 49;
                        ret  = n5_1r;

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

                case 6:

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

                case 55:

                    n6_1r = (NodeVal)System.Math.Max((int)n6_1r, (int)ret);
                    if (ret == NodeVal.Success && n6c < 46)
                    {
                        node = ++n6c;
                    }
                    else
                    {
                        n6c  = 44;
                        node = 49;
                        ret  = n6_1r;

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

                case 7:

                        #if UNITY_EDITOR
                    if (_live != null)
                    {
                        _live = _live.SetLiveValue(43, _liveHandle, NodeVal.Running, false, false);
                    }
                        #endif
                    n7c   = 47;
                    node  = 47;
                    n7_1r = NodeVal.Success;
                    break;

                case 56:

                    n7_1r = (NodeVal)System.Math.Max((int)n7_1r, (int)ret);
                    if (ret == NodeVal.Success && n7c < 48)
                    {
                        node = ++n7c;
                    }
                    else
                    {
                        n7c  = 47;
                        node = 49;
                        ret  = n7_1r;

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

                case 8:

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

                case 9:


                    do
                    {
                        ret = (this.StartShopping());
                        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 = 50;
                            break;
                        }
                    } while (true);

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

                    break;

                case 10:


                    do
                    {
                        ret = (this.MoveTowards());
                        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 = 50;
                            break;
                        }
                    } while (true);

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

                    break;

                case 11:

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

                case 12:


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

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

                    break;

                case 13:

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

                case 14:

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

                case 15:

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

                case 64:

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

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

                case 16:

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

                case 65:

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

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

                case 17:

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

                case 66:

                    n17_1r = (NodeVal)System.Math.Max((int)n17_1r, (int)ret);
                    if (ret == NodeVal.Success && n17c < 27)
                    {
                        node = ++n17c;
                    }
                    else
                    {
                        n17c = 25;
                        node = 64;
                        ret  = n17_1r;

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

                case 18:

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

                case 67:

                    n18_1r = (NodeVal)System.Math.Max((int)n18_1r, (int)ret);
                    if (ret == NodeVal.Success && n18c < 31)
                    {
                        node = ++n18c;
                    }
                    else
                    {
                        n18c = 28;
                        node = 64;
                        ret  = n18_1r;

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

                case 19:

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

                case 68:

                    n19_1r = (NodeVal)System.Math.Max((int)n19_1r, (int)ret);
                    if (ret == NodeVal.Success && n19c < 34)
                    {
                        node = ++n19c;
                    }
                    else
                    {
                        n19c = 32;
                        node = 64;
                        ret  = n19_1r;

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

                case 20:

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

                case 69:

                    n20_1r = (NodeVal)System.Math.Max((int)n20_1r, (int)ret);
                    if (ret == NodeVal.Success && n20c < 37)
                    {
                        node = ++n20c;
                    }
                    else
                    {
                        n20c = 35;
                        node = 64;
                        ret  = n20_1r;

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

                case 21:

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

                case 22:

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

                case 23:

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

                case 24:


                    do
                    {
                        ret = (this.MoveToNextAisleStart());
                        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 = 65;
                            break;
                        }
                    } while (true);

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

                    break;

                case 25:

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

                case 26:

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

                case 27:

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

                case 28:

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

                case 29:

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

                case 30:

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

                case 31:


                    do
                    {
                        ret = (this.CheckItemsOnNearAisles());
                        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 = 67;
                            break;
                        }
                    } while (true);

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

                    break;

                case 32:

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

                case 33:

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

                case 34:

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

                case 35:

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

                case 36:

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

                case 37:


                    do
                    {
                        ret = (this.getItem());
                        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 = 69;
                            break;
                        }
                    } while (true);

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

                    break;

                case 38:

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

                case 39:

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

                case 40:


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

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

                    break;

                case 41:

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

                case 42:

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

                case 43:


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

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

                    break;

                case 44:

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

                case 45:

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

                case 46:


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

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

                    break;

                case 47:

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

                case 48:


                    do
                    {
                        ret = (this.Leave());
                        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 = 56;
                            break;
                        }
                    } while (true);

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

                    break;
                }
            } while (node >= 0);
            yield return(null);
        }
Пример #3
0
        private IEnumerator StateGen()
        {
            int node = 0;
            NodeVal ret = NodeVal.Error;
            _jmp = -1;
            comp_AudioSource = GetComponent<AudioSource>();
            int n0c = -1;
            int n11c = -1;
            int n1c = -1;
            int n2c = -1;
            int n3c = -1;
            int n5c = -1;
            NodeVal n1_1r = NodeVal.Invalid;
            NodeVal n2_1r = NodeVal.Invalid;
            NodeVal n5_1r = NodeVal.Invalid;
            Vector3 v1 = Vector3.zero;
            valid = valid && (comp_AudioSource != 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(11, _liveHandle, NodeVal.Running, false, true);
                        #endif
                        n0c = 1;
                        node = 1;
                        break;
                    case 19:

                        if (_jmp >= 0) {
                            node = _jmp;
                            _jmp = -1;
                            continue;
                        }
                        if(ret != NodeVal.Success) {
                            if (++n0c > 3) {
                                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(11, _liveHandle, ret, true, false);
                        #endif
                        break;
                    case 1:

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(0, _liveHandle, NodeVal.Running, false, false);
                        #endif
                        n1c = 4;
                        node = 4;
                        n1_1r = NodeVal.Success;
                        break;
                    case 20:

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

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

                        }
                        break;
                    case 2:

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(5, _liveHandle, NodeVal.Running, false, false);
                        #endif
                        n2c = 9;
                        node = 9;
                        n2_1r = NodeVal.Success;
                        break;
                    case 21:

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

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

                        }
                        break;
                    case 3:

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(16, _liveHandle, NodeVal.Running, false, false);
                        #endif
                        n3c = 15;
                        node = 15;
                        break;
                    case 22:

                        if(ret != NodeVal.Success) {
                            if (++n3c > 18) {
                                n3c = 15;
                                node = 19;
                            } else {
                                node = n3c;
                            }
                        } else {
                            n3c = 15;
                            node = 19;
                        }

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(16, _liveHandle, ret, false, false);
                        #endif
                        break;
                    case 4:

                        ret = (this.flowerHunting)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(1, _liveHandle, ret, false, false);
                        #endif
                        node = 20;
                        break;
                    case 5:

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(2, _liveHandle, NodeVal.Running, false, false);
                        #endif
                        n5c = 6;
                        node = 6;
                        n5_1r = NodeVal.Success;
                        break;
                    case 24:

                        n5_1r = (NodeVal)System.Math.Max((int)n5_1r, (int)ret);
                        if (ret == NodeVal.Success && n5c < 8) {
                            node = ++n5c;
                        } else {
                            n5c = 6;
                            node = 20;
                            ret = n5_1r;

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

                        }
                        break;
                    case 6:


                        do
                        {
                            ret = (this.Wander());
                            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 = 24;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 7:


                        do
                        {
                                v1 = this.wanderDir;
                            transform.position = Vector3.MoveTowards(transform.position, v1, 1f * Time.deltaTime);
                            ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                            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 = 24;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 8:


                        do
                        {
                            ret = (this.FindFlower());
                            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 = 24;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 9:

                        ret = (!this.flowerHunting)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(6, _liveHandle, ret, false, false);
                        #endif
                        node = 21;
                        break;
                    case 10:

                        ret = (!this.hasNectar)? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(7, _liveHandle, ret, false, false);
                        #endif
                        node = 21;
                        break;
                    case 11:

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(8, _liveHandle, NodeVal.Running, false, false);
                        #endif
                        n11c = 13;
                        node = 13;
                        break;
                    case 30:

                        if(ret != NodeVal.Success) {
                            if (++n11c > 14) {
                                n11c = 13;
                                node = 21;
                            } else {
                                node = n11c;
                            }
                        } else {
                            n11c = 13;
                            node = 21;
                        }

                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(8, _liveHandle, ret, false, false);
                        #endif
                        break;
                    case 12:


                        do
                        {
                            ret = (this.TakeNectar());
                            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 = 21;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 13:

                        ret = ((transform.position - (this.targetLoc).position).sqrMagnitude <= (0.0625f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(9, _liveHandle, ret, false, false);
                        #endif
                        node = 30;
                        break;
                    case 14:


                        do
                        {
                                v1 = (this.targetLoc).position;
                            transform.position = Vector3.MoveTowards(transform.position, v1, 1f * Time.deltaTime);
                            ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                            if (ret == NodeVal.Running) {

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

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

                        break;
                    case 15:

                        ret = ((transform.position - new Vector3(0f, 4f, 0f)).sqrMagnitude <= (0.0625f))? NodeVal.Success : NodeVal.Fail;
                        #if UNITY_EDITOR
                            if (_live != null) _live = _live.SetLiveValue(14, _liveHandle, ret, false, false);
                        #endif
                        node = 22;
                        break;
                    case 16:


                        do
                        {
                                v1 = new Vector3(0f, 4f, 0f);
                            transform.position = Vector3.MoveTowards(transform.position, v1, 1f * Time.deltaTime);
                            ret = (transform.position == v1)? NodeVal.Success : NodeVal.Running;
                            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 = 22;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 17:


                        do
                        {
                            ret = (this.DeliverNectar());
                            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 = 22;
                                break;
                            }
                        } while (true);

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

                        break;
                    case 18:


                        comp_AudioSource.Play();
                        ret = NodeVal.Success;
                        node = 22;

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

                        break;
                }
            } while (node >= 0);
            yield return null;
        }
        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);
        }
Пример #5
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);
        }
Пример #6
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);
        }
Пример #7
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);
        }
Пример #8
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);
        }
Пример #9
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);
        }
Пример #10
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);
        }