Example #1
0
    //Sets up your tree here, assigning additional decisions to the
    //left and right of the tree
    void Start()
    {
        BooleanDecision boolDecision = new BooleanDecision(true);

        boolDecision.trueDecision  = new CustomPrintDecision("True");  //prints "true" if true
        boolDecision.falseDecision = new CustomPrintDecision("False"); //prints "false" if false
        boolDecision.falseDecision = new WaypointReachedDecision();
        decisionTreeRoot           = boolDecision;
    }
    public DefenderDecisionTree(Defender agent)
    {
        patrol  = new Advance(agent);
        rebuild = new Rebuild(agent);
        attack  = new Attack(agent);
        rest    = new Rest(agent);

        wallBroken   = new BooleanDecision(rebuild, patrol);
        enemyInRange = new BooleanDecision(attack, wallBroken);
        tired        = new BooleanDecision(rest, enemyInRange);

        start = tired;
    }
    public EnemyDecisionTree(Enemy agent)
    {
        advance   = new Advance(agent);
        breakWall = new BreakWall(agent);
        attack    = new Attack(agent);
        defend    = new Defend(agent);

        wallInWay         = new BooleanDecision(breakWall, advance);
        defenderAttacking = new BooleanDecision(defend, attack);
        defenseInRange    = new BooleanDecision(defenderAttacking, wallInWay);

        start = defenseInRange;
    }
Example #4
0
    bool waiting;                       // waiting to reset timer????

    /// <param name="agent">the agent to act upon</param>
    public BasicTurretBrain(BasicTurret agent)
    {
        reload       = new Rest(agent);
        turn         = new Turn(agent);
        attack       = new Attack(agent); // override
        assignTarget = new AssignNextAttackTarget(agent);

        canAttack          = new BooleanDecision(attack, reload);
        lookingAtEnemy     = new BooleanDecision(canAttack, turn);
        hasTarget          = new BooleanDecision(lookingAtEnemy, assignTarget);
        enemiesWithinRange = new BooleanDecision(hasTarget, reload);

        start = enemiesWithinRange;
    }
Example #5
0
    Advance advance;     // move towards next target
    #endregion

    /// <param name="agent">the agent to act upon</param>
    public EnemyDecisionTree(BasicEnemy agent)
    {
        advance   = new Advance(agent);
        breakWall = new BreakWall(agent);
        attack    = new Attack(agent);
        defend    = new Defend(agent);

        wallInWay         = new BooleanDecision(breakWall, advance);
        defenderAttacking = new BooleanDecision(defend, attack);
        defenseInRange    = new BooleanDecision(defenderAttacking, wallInWay);

        start = defenseInRange;

        // subscribe update method to game events
    }
Example #6
0
    Action attack;              // attack target
    #endregion


    /// <param name="agent">the agent to act upon</param>
    public BasicEnemyBrain(BasicEnemy agent)
    {
        turn             = new Turn(agent);
        advance          = new Advance(agent);
        rest             = new Rest(agent);
        assignNextTarget = new AssignNextTarget(agent);
        attack           = new Attack(agent);

        lookingAtTarget = new BooleanDecision(advance, turn);
        isTired_move    = new BooleanDecision(rest, lookingAtTarget);
        atTarget        = new BooleanDecision(assignNextTarget, isTired_move);
        isTired_reload  = new BooleanDecision(rest, attack);
        isTired_turn    = new BooleanDecision(rest, turn);
        posedForGoal    = new BooleanDecision(isTired_reload, isTired_turn);
        withinRange     = new BooleanDecision(posedForGoal, atTarget);

        start = withinRange;
    }