예제 #1
0
    public void SetMvmtTree(MOVEMENT_TREE type)
    {
        mvmtBrain.ClearTasks();

        switch (type)
        {
        case MOVEMENT_TREE.DEFAULT:
            mvmtTree    = defaultMvmtTree;
            mvmtTracker = Moving.NOT_MOVING_ON_ASTAR;
            mvmtBrain.AddTask(mvmtTree);
            break;

        case MOVEMENT_TREE.DEFENSE:
            mvmtTree    = defenseMvmtTree;
            mvmtTracker = Moving.NOT_MOVING_ON_ASTAR;
            mvmtBrain.AddTask(mvmtTree);
            break;

        case MOVEMENT_TREE.ASTAR:
            mvmtTree    = aStarTree;
            mvmtTracker = Moving.MOVING_ON_ASTAR;
            mvmtBrain.AddTask(mvmtTree);
            break;

        case MOVEMENT_TREE.AGGRESSIVE:
            break;

        case MOVEMENT_TREE.SEARCHING:
            break;
        }
    }
예제 #2
0
    public Sequence_MoveToDefense(HiveOfSurvivors hivemind)
    {
        select = new BT_Selector();
        select.AddTask(new Task_WaitOnCurrEnemies());

        runThru = new BT_Sequence();
        runThru.AddTask(new Task_CallDefenseUpdate(hivemind));
        runThru.AddTask(new Task_MoveToDefensePoint());

        select.AddTask(runThru);

        children.Add(select);
        //children.Add(runThru);
        //children.Add(new Task_CallDefenseUpdate(hivemind));
        //children.Add(new Task_MoveToDefensePoint());
    }
예제 #3
0
    public Task_AStarTree()
    {
        aStarTree       = new BT_Sequence();
        runThroughAStar = new BT_Sequence();
        aStarFinished   = new BT_Selector();

        aStarTree.AddTask(new Task_AStar());
        aStarTree.AddTask(runThroughAStar);

        runThroughAStar.AddTask(new Task_CheckNodeList());
        runThroughAStar.AddTask(new Task_MoveToLocation());
        runThroughAStar.AddTask(aStarFinished);

        aStarFinished.AddTask(new Task_CheckNodeList());
        aStarFinished.AddTask(new Task_SwitchTree());
    }
예제 #4
0
    void CreateMultiGunBT()
    {
        findEnemyBrain = new BT_Selector();
        chooseGun      = new BT_Selector();

        //*
        purchasingTree      = new BT_Selector();
        runThroughPurchases = new BT_Sequence();

        btBrain.AddTask(purchasingTree);
        purchasingTree.AddTask(new Task_CheckIfInBreakTime());
        purchasingTree.AddTask(runThroughPurchases);
        runThroughPurchases.AddTask(new Task_BuyGate());
        runThroughPurchases.AddTask(new Task_BuySurvivor());
        runThroughPurchases.AddTask(new Task_BuyTower());
        runThroughPurchases.AddTask(new Task_BuyShotgunAmmo());
        //runThroughPurchases.AddTask(new Task_BuyRifleAmmo());
        runThroughPurchases.AddTask(new Task_BuySniperAmmo());
        runThroughPurchases.AddTask(new Task_BuyRifleAmmo());
        //runThroughPurchases.AddTask(new Sequence_MoveToDefense(hiveRef));
        //*/

        btBrain.AddTask(findEnemyBrain);
        btBrain.AddTask(new Task_GetDistFromEnemy());
        btBrain.AddTask(chooseGun);
        btBrain.AddTask(new Task_FireGun());
        //btBrain.AddTask(new Task_ThrowGrenade());
        //btBrain.AddTask(new Task_FleeBasic());


        //btBrain.AddTask(new Task_Charge());
        //btBrain.AddTask(new Task_FleeBunnyHord());

        //findEnemyBrain.AddTask(new Task_FindClosestWorstEnemy());
        findEnemyBrain.AddTask(new Task_FindClosestBear());
        findEnemyBrain.AddTask(new Task_FindHellephant());
        findEnemyBrain.AddTask(new Task_FindClosestEnemy());

        chooseGun.AddTask(new Task_SwitchToGrenade());
        chooseGun.AddTask(new Task_SwitchToShotgun());
        chooseGun.AddTask(new Task_SwitchToSniper());
        chooseGun.AddTask(new Task_SwitchToRifle());
        chooseGun.AddTask(new Task_SwitchToPistol());
    }
예제 #5
0
    void Start()
    {
        survivor   = GetComponent <Survivor>();
        blackboard = new Blackboard();
        hiveRef    = GameObject.FindObjectOfType <HiveOfSurvivors>();

        btBrain   = new BT_Sequence();
        mvmtBrain = new BT_Sequence();
        mvmtTree  = new BT_Sequence();

        this.CreateAStarBT();
        this.CreateDefaultMvmtTree();
        this.CreateMultiGunBT();
        this.SetMvmtTree(MOVEMENT_TREE.DEFAULT);

        mvmtBrain.AddTask(mvmtTree);

        blackboard.startNode = start;
        blackboard.goalNode  = end;

        mvmtTracker = Moving.NOT_MOVING_ON_ASTAR;
    }
예제 #6
0
    void CreateAStarBT()
    {
        aStarTree = new BT_Sequence();

        //btBrain.AddTask(aStarTree);

        runThroughAStar = new BT_Sequence();
        aStarFinished   = new BT_Selector();

        aStarTree.AddTask(new Task_AStar());
        aStarTree.AddTask(runThroughAStar);

        runThroughAStar.AddTask(new Task_CheckNodeList());
        runThroughAStar.AddTask(new Task_MoveToLocation());
        runThroughAStar.AddTask(aStarFinished);

        aStarFinished.AddTask(new Task_CheckNodeList());
        aStarFinished.AddTask(new Task_ReturnToPrev());
        //aStarFinished.AddTask(new Task_SwitchTree());

        mvmtTree = aStarTree;
    }
예제 #7
0
 public void SetMvmtTree(BT_Task tree)
 {
     mvmtTree = tree;
 }
예제 #8
0
 void CreateLootAndWaveTree()
 {
     defaultMvmtTree = new BT_Sequence();
 }
예제 #9
0
 void CreateDefenseMvmtTree()
 {
     defenseMvmtTree = new Sequence_MoveToDefense(hiveRef);
 }
예제 #10
0
 void CreateDefaultMvmtTree()
 {
     mvmtTree = new BT_Sequence();
     //mvmtBrain = mvmtTree;
 }
예제 #11
0
 public void RemoveTask(BT_Task t)
 {
     children.Remove(t);
 }
예제 #12
0
 public void AddTask(BT_Task t)
 {
     children.Add(t);
 }