Exemplo n.º 1
0
        public MineSequence(BTNode WrappedNode, Blackboard bb, Miner mine) : base(WrappedNode, bb)
        {
            mBB      = (MinerBB)bb;
            MinerRef = mine;

            mBB.FleeTarget = MinerRef.AttachedVehicle.TargetVehicle;
        }
Exemplo n.º 2
0
 public MinerWaitTillAtLocation(Blackboard bb, Miner Mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = Mine;
 }
Exemplo n.º 3
0
 public MinerFleeDecorator(BTNode WrappedNode, Blackboard bb, Miner mine) : base(WrappedNode, bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
 }
Exemplo n.º 4
0
 public MinerMoveTo(Blackboard bb, Miner mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
 }
Exemplo n.º 5
0
    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;
    }
Exemplo n.º 6
0
 public MinerCalculateFleeLocation(Blackboard bb, Miner mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
 }
Exemplo n.º 7
0
 public ReturnToBase(Blackboard bb, Miner mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
 }
Exemplo n.º 8
0
 public CollectResources(Blackboard bb, Miner mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
     lastmine = Time.time;
 }
Exemplo n.º 9
0
 public MoveToAsteroid(Blackboard bb, Miner mine) : base(bb)
 {
     mBB      = (MinerBB)bb;
     MinerRef = mine;
 }