private void SetupChooseTargetSequence(Script_Sequence p_chooseTargetSequence)
    {
        Script_Action_SetFlag setEnemies = new Script_Action_SetFlag(_behaviourTree, _manager.GetEnemies(), _entityListFlag);
        Script_Action_SetEntitiesWithinRange setEnemiesWithinRange = new Script_Action_SetEntitiesWithinRange(_behaviourTree, _grid, _entityListFlag, _entityListFlag, this as Script_IEntity, _engageTargetRange);

        Script_Action_SetNearestEntityFromEntityWithinRange setNearestEnemy = new Script_Action_SetNearestEntityFromEntityWithinRange(_behaviourTree, _grid, _entityListFlag, _engageTargetRange, this as Script_IEntity, _targetEntityFlag);
        Script_Action_SetEnemyAttackingTarget setEnemyAttackingDps          = new Script_Action_SetEnemyAttackingTarget(_behaviourTree, _entityListFlag, _manager.GetDps() as Script_IEntity, _targetEntityFlag);
        Script_Action_SetEnemyAttackingTarget setEnemyAttackingHealer       = new Script_Action_SetEnemyAttackingTarget(_behaviourTree, _entityListFlag, _manager.GetHealer() as Script_IEntity, _targetEntityFlag);

        Script_Selector chooseTargetToAidSelector = new Script_Selector(_behaviourTree);

        Script_LeafTask setEnemiesLeaf            = new Script_LeafTask(_behaviourTree, setEnemies);
        Script_LeafTask setEnemiesWithinRangeLeaf = new Script_LeafTask(_behaviourTree, setEnemiesWithinRange);
        Script_LeafTask setNearestEnemyLeaf       = new Script_LeafTask(_behaviourTree, setNearestEnemy);

        Script_LeafTask setEnemyAttackingHealerLeaf = new Script_LeafTask(_behaviourTree, setEnemyAttackingHealer);
        Script_LeafTask setEnemyAttackingDpsLeaf    = new Script_LeafTask(_behaviourTree, setEnemyAttackingDps);

        chooseTargetToAidSelector.AddTask(setEnemyAttackingHealerLeaf);
        chooseTargetToAidSelector.AddTask(setEnemyAttackingDpsLeaf);

        p_chooseTargetSequence.AddTask(setEnemiesLeaf);
        p_chooseTargetSequence.AddTask(setEnemiesWithinRangeLeaf);
        p_chooseTargetSequence.AddTask(setNearestEnemyLeaf);
        p_chooseTargetSequence.AddTask(chooseTargetToAidSelector);
    }
Example #2
0
    private void InitializeBehaviourTree()
    {
        _behaviourTree = new Script_BehaviourTree();
        SetupTreeFlags();

        Script_Selector startSelector = new Script_Selector(_behaviourTree);

        Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree);

        SetupWalkingSequence(walkingSequence);

        Script_Sequence pursuitSequence = new Script_Sequence(_behaviourTree);

        SetupPursuitSequence(pursuitSequence);

        Script_Sequence attackSequence = new Script_Sequence(_behaviourTree);

        SetupAttackSequence(attackSequence);

        Script_Sequence GetHighestThreatOrNearestSequence = new Script_Sequence(_behaviourTree);

        SetupGetHighestThreatOrNearestFriendlySequence(GetHighestThreatOrNearestSequence);

        Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree);

        SetupGetFreeSpaceSequence(GetFreeSpaceSequence);

        startSelector.AddTask(GetFreeSpaceSequence);
        startSelector.AddTask(GetHighestThreatOrNearestSequence);
        startSelector.AddTask(pursuitSequence);
        startSelector.AddTask(attackSequence);
        startSelector.AddTask(walkingSequence);

        _behaviourTree.AddChild(startSelector);
    }
Example #3
0
    public void InitializeBehaviourTree()
    {
        _behaviourTree = new Script_BehaviourTree();
        SetupTreeFlags();

        Script_Selector startSelector = new Script_Selector(_behaviourTree);

        Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree);

        SetupWalkingSequence(walkingSequence);

        Script_Sequence moveNearDpsSequence = new Script_Sequence(_behaviourTree);

        SetupFollowingSequence(moveNearDpsSequence, GetDps() as Script_IEntity);

        Script_Sequence moveNearTankSequence = new Script_Sequence(_behaviourTree);

        SetupFollowingSequence(moveNearTankSequence, GetTank() as Script_IEntity);

        Script_Sequence healSequence = new Script_Sequence(_behaviourTree);

        SetupHealSequence(healSequence);

        Script_Sequence ChooseAttackingTargetSequence = new Script_Sequence(_behaviourTree);

        SetupChooseTargetToAttack(ChooseAttackingTargetSequence);

        Script_Sequence attackSequence = new Script_Sequence(_behaviourTree);

        SetupAttackSequence(attackSequence);

        Script_Sequence ChooseHealingTargetSequence = new Script_Sequence(_behaviourTree);

        SetupChooseTargetToHeal(ChooseHealingTargetSequence);

        Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree);

        SetupGetFreeSpaceSequence(GetFreeSpaceSequence);


        startSelector.AddTask(GetFreeSpaceSequence);
        startSelector.AddTask(ChooseHealingTargetSequence);
        startSelector.AddTask(healSequence);
        startSelector.AddTask(ChooseAttackingTargetSequence);
        startSelector.AddTask(attackSequence);
        startSelector.AddTask(moveNearTankSequence);
        startSelector.AddTask(moveNearDpsSequence);
        startSelector.AddTask(walkingSequence);



        _behaviourTree.AddChild(startSelector);
    }
    public void InitializeBehaviourTree()
    {
        _behaviourTree = new Script_BehaviourTree();

        SetupTreeFlags();



        Script_Selector startSelector = new Script_Selector(_behaviourTree);

        Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree);

        SetupWalkingSequence(walkingSequence);

        Script_Sequence pursuitSequence = new Script_Sequence(_behaviourTree);

        SetupPursuitSequence(pursuitSequence);

        Script_Sequence attackSequence = new Script_Sequence(_behaviourTree);

        SetupAttackSequence(attackSequence);


        Script_Sequence ChooseTargetSequence = new Script_Sequence(_behaviourTree);

        SetupChooseTargetSequence(ChooseTargetSequence);
        Script_Decorator_AlwaysFail alwaysFailWhileChoosingTarget = new Script_Decorator_AlwaysFail(_behaviourTree, ChooseTargetSequence);

        Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree);

        SetupGetFreeSpaceSequence(GetFreeSpaceSequence);


        startSelector.AddTask(GetFreeSpaceSequence);
        startSelector.AddTask(alwaysFailWhileChoosingTarget);
        startSelector.AddTask(pursuitSequence);
        startSelector.AddTask(attackSequence);
        startSelector.AddTask(walkingSequence);

        _behaviourTree.AddChild(startSelector);
    }
Example #5
0
    public void InitializeBehaviourTree()
    {
        _behaviourTree = new Script_BehaviourTree();
        SetupTreeFlags();

        Script_Selector startSelector = new Script_Selector(_behaviourTree);

        Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree);

        SetupWalkingSequence(walkingSequence);

        Script_Sequence moveNearTankSequence = new Script_Sequence(_behaviourTree);

        SetupMoveToTankSequence(moveNearTankSequence);

        Script_Sequence attackSequence = new Script_Sequence(_behaviourTree);

        SetupAttackSequence(attackSequence);

        Script_Sequence ChooseTargetSequence = new Script_Sequence(_behaviourTree);

        SetupChooseTargetToAttackSequence(ChooseTargetSequence);

        Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree);

        SetupGetFreeSpaceSequence(GetFreeSpaceSequence);


        startSelector.AddTask(GetFreeSpaceSequence);
        startSelector.AddTask(ChooseTargetSequence);
        startSelector.AddTask(attackSequence);
        startSelector.AddTask(moveNearTankSequence);
        startSelector.AddTask(walkingSequence);

        _behaviourTree.AddChild(startSelector);
    }