Exemple #1
0
 public NodeGetWeapon(float minDistance, Transform target, NavMeshAgent navMeshAgent, VariableBool gotWeapon)
 {
     this.minDistance  = minDistance;
     this.target       = target;
     this.navMeshAgent = navMeshAgent;
     this.gotWeapon    = gotWeapon;
 }
Exemple #2
0
 public Node_AcquireWeapon(Transform target, NavMeshAgent navAgent, float interactionDistance, VariableBool weaponAcquired)
 {
     this.target              = target;
     this.navAgent            = navAgent;
     this.interactionDistance = interactionDistance;
     this.weaponAcquired      = weaponAcquired;
 }
Exemple #3
0
 public NewPieceHolder(VariableBool holding, int pieceLayer, PieceRespawner pieceRespawner, NewPiecePlacement piecePlacement, Camera camera)
 {
     m_holding        = holding;
     m_pieceLayer     = pieceLayer;
     m_pieceRespawner = pieceRespawner;
     m_piecePlacement = piecePlacement;
     m_camera         = camera;
 }
    void Start()
    {
        isCasting = new VariableBool(() => ((Statue)entity).isCasting);

#if UNITY_EDITOR
        if (LevelEditor.S != null)
        {
            EditorStart();
        }
#endif
    }
    private void Start()
    {
        target          = ( VariableGameObject )ScriptableObject.CreateInstance("VariableGameObject");
        weaponAvailable = ( VariableBool )ScriptableObject.CreateInstance("VariableBool");

        weaponAvailable.Value = false;

        // Patrol Behaviour
        Node_Patrol node_Patrol = new Node_Patrol(waypointsManager, agent);

        Node_TargetVisible node_TargetVisible         = new Node_TargetVisible(agent.transform, target, fov);
        Invertor           node_TargetVisibleInvertor = new Invertor(node_TargetVisible);

        Node_TargetAvailable node_TargetAvailable         = new Node_TargetAvailable(target, active);
        Invertor             node_TargetAvailableInvertor = new Invertor(node_TargetAvailable);

        Sequence sequence_Patrol = new Sequence(new List <BTBaseNode> {
            node_TargetAvailableInvertor, node_Patrol, node_TargetVisibleInvertor
        }, "Guard Sequence: Patrol");

        // Chase & Attack Behaviour
        Node_Bool            node_WeaponAvailable = new Node_Bool(weaponAvailable);
        Node_MoveToTransform node_MoveToTransform = new Node_MoveToTransform(GameObject.FindGameObjectWithTag("Weapon").transform, agent, 2f);             // Again... Not optimal, but it works!
        Node_AcquireWeapon   node_AcquireWeapon   = new Node_AcquireWeapon(GameObject.FindGameObjectWithTag("Weapon").transform, agent, 2f, weaponAvailable);
        Node_Chase           node_Chase           = new Node_Chase(1, 15f, target, agent, true);
        Node_Attack          node_Attack          = new Node_Attack(attackRange.Value, agent, target);

        Sequence sequence_AcquireWeapon = new Sequence(new List <BTBaseNode> {
            node_MoveToTransform, node_AcquireWeapon
        }, "Guard Sequence: Acquire Weapon");
        Selector selector_HasWeapon = new Selector(new List <BTBaseNode> {
            node_WeaponAvailable, sequence_AcquireWeapon
        });
        Sequence sequence_Chase = new Sequence(new List <BTBaseNode> {
            node_TargetAvailable, selector_HasWeapon, node_Chase, node_Attack
        }, "Guard Sequence: Chasing");


        tree = new Selector(new List <BTBaseNode> {
            sequence_Patrol, sequence_Chase
        });

        if (Application.isEditor)
        {
            gameObject.AddComponent <ShowNodeTreeStatus>().AddConstructor(transform, tree);
        }
    }
Exemple #6
0
    private void Start()
    {
        target          = (VariableTransform)ScriptableObject.CreateInstance("VariableTransform");
        hasWeapon       = (VariableBool)ScriptableObject.CreateInstance("VariableBool");
        hasWeapon.Value = false;

        //Create your Behaviour Tree here!
        #region patrolling
        // Create target that can be changed by other nodes
        NodePatrol    nodePatrol            = new NodePatrol(0.5f, patrolPoints, agent);
        NodeSeeTarget nodeSeeTarget         = new NodeSeeTarget(GetComponent <FieldOfView>(), agent, transform, target);
        Invertor      invertorSeeTarget     = new Invertor(nodeSeeTarget);
        NodeHasTarget nodeHasTarget         = new NodeHasTarget(target);
        Invertor      invertorNodeHasTarget = new Invertor(nodeHasTarget);
        // Patrol group
        Sequence sequencePatrolling = new Sequence(invertorNodeHasTarget, nodePatrol, invertorSeeTarget);
        #endregion

        #region chasing
        NodeCheckBool     nodeHasWeapon     = new NodeCheckBool(hasWeapon);
        NodeGoToTransform nodeGoToTransform = new NodeGoToTransform(1f, GameObject.FindWithTag("Weapon").transform, agent);
        NodeGetWeapon     nodeGetWeapon     = new NodeGetWeapon(1f, GameObject.FindWithTag("Weapon").transform, agent, hasWeapon);
        NodeChase         nodeChase         = new NodeChase(1f, 5, target, agent, 5f, true);
        NodeAttack        nodeAttack        = new NodeAttack(1f, agent, target);

        Sequence sequenceC1 = new Sequence(nodeGoToTransform, nodeGetWeapon);
        Selector selectorC1 = new Selector(new List <Node>()
        {
            nodeHasWeapon, sequenceC1
        });                                                                                 // param

        Sequence sequenceChasing = new Sequence(nodeHasTarget, selectorC1, nodeChase, nodeAttack);

        #endregion


        tree = new Selector(new List <Node> {
            sequenceChasing, sequencePatrolling
        });

        // Show NodeState in editor
        if (Application.isEditor)
        {
            gameObject.AddComponent <ShowNodeTreeStatus>().AddConstructor(transform, tree);
        }
    }
Exemple #7
0
    void Start()
    {
        if (G.IsInUnityEditMode())
        {
            isLit = new VariableBool()
            {
                value = false
            }
        }
        ;
        else
        {
            isLit = new VariableBool(() => ((Rune)entity).isLit);
        }

        renderer     = transform.GetChild(0).GetComponent <SpriteRenderer>();
        origMaterial = renderer.sharedMaterial;
    }
Exemple #8
0
    void Start()
    {
        if (!G.IsInUnityEditMode() && !G.S.isEditMode)
        {
            isOpen = new VariableBool(() => ((Door)entity).isOpen);
        }

        bool _ = isOpen.IsNew;

        openProgress = isOpen.value ? 1 : 0;
        SetOpenClosePosition();

#if UNITY_EDITOR
        if (LevelEditor.S != null)
        {
            EditorStart();
        }
#endif
    }
Exemple #9
0
    void Start()
    {
        if (G.IsInUnityEditMode())
        {
            isPressed = new VariableBool()
            {
                value = false
            }
        }
        ;
        else
        {
            isPressed = new VariableBool(() => ((PressPlate)entity).isPressed);
        }

#if UNITY_EDITOR
        if (LevelEditor.S != null)
        {
            EditorStart();
        }
#endif
    }
 public BTCheckBool(VariableBool condition, bool desierdCondition)
 {
     this.condition        = condition;
     this.desierdCondition = desierdCondition;
 }
    // Start is called before the first frame update

    private void Awake()
    {
        inCombat = VariableBool.CreateInstance("VariableBool") as VariableBool;
    }
Exemple #12
0
 public Node_TargetAvailable(VariableGameObject target, VariableBool ownerActive)
 {
     this.target      = target;
     this.ownerActive = ownerActive;
 }
 public Node_Bool(VariableBool value)
 {
     this.value = value;
 }