public MineSequence(BTNode WrappedNode, Blackboard bb, Miner mine) : base(WrappedNode, bb) { mBB = (MinerBB)bb; MinerRef = mine; mBB.FleeTarget = MinerRef.AttachedVehicle.TargetVehicle; }
public MinerWaitTillAtLocation(Blackboard bb, Miner Mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = Mine; }
public MinerFleeDecorator(BTNode WrappedNode, Blackboard bb, Miner mine) : base(WrappedNode, bb) { mBB = (MinerBB)bb; MinerRef = mine; }
public MinerMoveTo(Blackboard bb, Miner mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = mine; }
void Initialise() { CurrentState = new ScanState(); AttachedVehicle = GetComponentInChildren <Vehicle>(); mBB = GetComponentInParent <MinerBB>(); //Create a reference to a Blackboard for a miner mBB.HQ = HQ; mBB.MiningTarget = MiningTarget; mBB.depositing = false; SB = GetComponent <SteeringBehaviours>(); SB.ObstacleAvoidanceOn(); //If a vehicle is spawned with predefined behaviour tree blackboard attributes, they should be applied if (MiningTarget != null) { mBB.MiningTarget = MiningTarget; } if (FleeTarget != null) { mBB.FleeTarget = FleeTarget; } AttachedVehicle.team = Team; //Create the root selector for the tree Selector rootChild = new Selector(mBB); BTRootNode = rootChild; //Create Flee Sequence CompositeNode fleeSequence = new Sequence(mBB); MinerFleeDecorator fleeRoot = new MinerFleeDecorator(fleeSequence, mBB, this); fleeSequence.AddChild(new MinerCalculateFleeLocation(mBB, this)); fleeSequence.AddChild(new MinerMoveTo(mBB, this)); fleeSequence.AddChild(new MinerWaitTillAtLocation(mBB, this)); fleeSequence.AddChild(new DelayNode(mBB, 2.0f)); CompositeNode mining = new Sequence(mBB); MineSequence MiningRoot = new MineSequence(mining, mBB, this); mining.AddChild(new MoveToAsteroid(mBB, this)); mining.AddChild(new CollectResources(mBB, this)); mining.AddChild(new ReturnToBase(mBB, this)); mining.AddChild(new DelayNode(mBB, 2.0f)); rootChild.AddChild(MiningRoot); rootChild.AddChild(fleeRoot); InvokeRepeating("ExecuteBT", 0.1f, 0.1f); mBB.FleeTarget = FleeTarget; }
public MinerCalculateFleeLocation(Blackboard bb, Miner mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = mine; }
public ReturnToBase(Blackboard bb, Miner mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = mine; }
public CollectResources(Blackboard bb, Miner mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = mine; lastmine = Time.time; }
public MoveToAsteroid(Blackboard bb, Miner mine) : base(bb) { mBB = (MinerBB)bb; MinerRef = mine; }