public Sequence_SpendGold() { // Selector to Buy Ammo Selector chooseAmmoToBuy = new Selector(); chooseAmmoToBuy.AddTask(new Task_BuyAssaultAmmo()); chooseAmmoToBuy.AddTask(new Task_BuySniperAmmo()); chooseAmmoToBuy.AddTask(new Task_BuyShotgunAmmo()); children.Add(chooseAmmoToBuy); // selector to purchase ammo Selector purchaseSurvivors = new Selector(); purchaseSurvivors.AddTask(new Task_BuySurvivors()); purchaseSurvivors.AddTask(new Task_CannotPurchase()); children.Add(purchaseSurvivors); Selector purchaseTowers = new Selector(); purchaseTowers.AddTask(new Task_BuyTowers()); purchaseTowers.AddTask(new Task_CannotPurchase()); children.Add(purchaseTowers); }
// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); ViewMark mark = new ViewMark(bb); NoDanger noDanger = new NoDanger(bb); Sequence actionSeq = new Sequence(bb); Selector ramSel = new Selector(bb); Sequence ramSeq = new Sequence(bb); LineOfSight los = new LineOfSight(bb); Boost boost = new Boost(bb); NormalizeBoost norm = new NormalizeBoost(bb); Chase chase = new Chase(bb); ramSeq.AddTask(los); ramSeq.AddTask(boost); ramSel.AddTask(ramSeq); ramSel.AddTask(norm); actionSeq.AddTask(ramSel); actionSeq.AddTask(chase); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(targetSel); root.AddTask(noDanger); root.AddTask(actionSeq); this.bt = root; }
public Sequence_KillHellephant(Enemy e) { targetedHellephant = e; children.Add(new Task_SetTarget(targetedHellephant)); children.Add(new Task_IsEnemyVisible()); Task weaponSelector = new Selector(); weaponSelector.AddTask(new Task_UseShotgun()); weaponSelector.AddTask(new Task_UsePistol()); children.Add(weaponSelector); children.Add(new Task_FireAtEnemy()); }
// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); NoDanger noDanger = new NoDanger(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); ViewMark mark = new ViewMark(bb); Sequence actionSeq = new Sequence(bb); Selector ramSel = new Selector(bb); Sequence ramSeq = new Sequence(bb); LineOfSight los = new LineOfSight(bb); Boost boost = new Boost(bb); NormalizeBoost norm = new NormalizeBoost(bb); Selector shootOrChase = new Selector(bb); Sequence shootSeq = new Sequence(bb); WithinFortyDist wtd = new WithinFortyDist(bb); KinematicAim aim = new KinematicAim(bb); Fire fire = new Fire(bb); Chase chase = new Chase(bb); shootSeq.AddTask(wtd); shootSeq.AddTask(aim); shootSeq.AddTask(fire); shootOrChase.AddTask(shootSeq); shootOrChase.AddTask(chase); ramSeq.AddTask(los); ramSeq.AddTask(boost); ramSel.AddTask(ramSeq); ramSel.AddTask(norm); actionSeq.AddTask(ramSel); actionSeq.AddTask(shootOrChase); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(noDanger); root.AddTask(targetSel); root.AddTask(actionSeq); this.bt = root; }
public Sequence_KillSpecial(Enemy e) { specialTarget = e; children.Add(new Task_SetTarget(specialTarget)); children.Add(new Task_IsEnemyVisible()); Task weaponSelector = new Selector(); weaponSelector.AddTask(new Task_UseAssault()); weaponSelector.AddTask(new Task_UseSniper()); weaponSelector.AddTask(new Task_UsePistol()); children.Add(weaponSelector); children.Add(new Task_FireAtEnemy()); }
public Sequence_DefaultFire() { Task enemySelector = new Selector(); enemySelector.AddTask(new Task_FindClosestTarget()); children.Add(new Task_UsePistol()); children.Add(enemySelector); children.Add(new Task_IsEnemyVisible()); children.Add(new Task_FireAtEnemy()); }
// Start is called before the first frame update void Start() { Sequence root = new Sequence(bb); Selector targetSel = new Selector(bb); Help help = new Help(bb); AllMark mark = new AllMark(bb); Sequence shootSeq = new Sequence(bb); KinematicAim aim = new KinematicAim(bb); WithinFortyDist wtd = new WithinFortyDist(bb); Fire fire = new Fire(bb); shootSeq.AddTask(aim); shootSeq.AddTask(wtd); shootSeq.AddTask(fire); targetSel.AddTask(help); targetSel.AddTask(mark); root.AddTask(targetSel); root.AddTask(shootSeq); this.bt = root; }
// Use this for initialization void Start() { graph = GameObject.FindObjectsOfType <PathNode> (); for (int i = 0; i < 4; i++) { RunAllTask rootTask = new RunAllTask(); /******* Attack ******/ Sequence attackSequence = new Sequence(); AquireTargetPriority aquireTargetNode = new AquireTargetPriority(); //PredictAim predictAimNode = new PredictAim(); ChooseWeapon chooseWeapon = new ChooseWeapon(); AttackTarget attackNode = new AttackTarget(); attackSequence.AddTask(aquireTargetNode); //attackSequence.AddTask(predictAimNode); attackSequence.AddTask(chooseWeapon); attackSequence.AddTask(attackNode); /****** Movement *******/ Selector movementSelector = new Selector(); /****** Flee *******/ Sequence fleeSequence = new Sequence(); FindFleeDirection findFleeNode = new FindFleeDirection(); Flee fleeNode = new Flee(); fleeSequence.AddTask(findFleeNode); fleeSequence.AddTask(fleeNode); /****** Pickups ******/ Selector pickupSelector = new Selector(); MoveToItem moveToItemNode = new MoveToItem(); PickupItem pickupItemNode = new PickupItem(); Sequence pickupSequence = new Sequence(); Selector choosePickup = new Selector(); NeedAmmo needAmmoNode = new NeedAmmo(); NeedHealth needHealthNode = new NeedHealth(); FindPathToItem findPathToItemNode = new FindPathToItem(); choosePickup.AddTask(needHealthNode); choosePickup.AddTask(needAmmoNode); pickupSequence.AddTask(choosePickup); pickupSequence.AddTask(findPathToItemNode); pickupSelector.AddTask(moveToItemNode); pickupSelector.AddTask(pickupItemNode); pickupSelector.AddTask(pickupSequence); movementSelector.AddTask(pickupSelector); movementSelector.AddTask(fleeSequence); // Add sequences to root rootTask.AddTask(attackSequence); rootTask.AddTask(movementSelector); //rootTask.AddTask(pickupSelector); if (i == 0) { Blackboard bd = new Blackboard(Francis, graph); bd.fleeDistance = 10.0f; FrancisBT = new BehaviorTree(rootTask, bd); } else if (i == 1) { Blackboard bd = new Blackboard(Zoey, graph); bd.fleeDistance = 10.0f; ZoeyBT = new BehaviorTree(rootTask, bd); } else if (i == 2) { Blackboard bd = new Blackboard(Bill, graph); bd.fleeDistance = 10.0f; BillBT = new BehaviorTree(rootTask, bd); } else { Blackboard bd = new Blackboard(Louis, graph); bd.fleeDistance = 10.0f; LouisBT = new BehaviorTree(rootTask, bd); } } }