//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; }
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; }
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 }
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; }