Example #1
0
    Task BuildTask_GetTreasue()
    {
        List <Task> taskList = new List <Task>();

        Task isDoorNotLocked = new IsFalse(theDoor.isLocked);
        Task waitABeat       = new Wait(0.5f);
        Task openDoor        = new OpenDoor(theDoor);

        taskList.Add(isDoorNotLocked);
        taskList.Add(waitABeat);
        taskList.Add(openDoor);
        Sequence openUnlockedDoor = new Sequence(taskList);

        taskList = new List <Task>();
        Task isDoorClosed = new IsTrue(theDoor.isClosed);
        Task hulkOut      = new HulkOut(this.gameObject);
        Task bargeDoor    = new BargeDoor(theDoor.transform.GetChild(0).GetComponent <Rigidbody>());

        taskList.Add(isDoorClosed);
        taskList.Add(waitABeat);
        taskList.Add(hulkOut);
        taskList.Add(waitABeat);
        taskList.Add(bargeDoor);
        Sequence bargeClosedDoor = new Sequence(taskList);

        // open a closed door, one way or another
        taskList = new List <Task>();
        taskList.Add(openUnlockedDoor);
        taskList.Add(bargeClosedDoor);
        Selector openTheDoor = new Selector(taskList);

        // get the treasure when the door is closed
        taskList = new List <Task>();
        Task moveToDoor     = new MoveKinematicToObject(this.GetComponent <Kinematic>(), theDoor.gameObject);
        Task moveToTreasure = new MoveKinematicToObject(this.GetComponent <Kinematic>(), theTreasure.gameObject);

        taskList.Add(moveToDoor);
        taskList.Add(waitABeat);
        taskList.Add(openTheDoor); // one way or another
        taskList.Add(waitABeat);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindClosedDoor = new Sequence(taskList);

        // get the treasure when the door is open
        taskList = new List <Task>();
        Task isDoorOpen = new IsFalse(theDoor.isClosed);

        taskList.Add(isDoorOpen);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindOpenDoor = new Sequence(taskList);

        // get the treasure, one way or another
        taskList = new List <Task>();
        taskList.Add(getTreasureBehindOpenDoor);
        taskList.Add(getTreasureBehindClosedDoor);
        Selector getTreasure = new Selector(taskList);

        return(getTreasure);
    }
    Task BuildTask_GetHolocron()
    {
        List <Task> taskList = new List <Task>();

        Task isDoorNotLocked = new isFalse(aDore.isLocked);
        Task waitABeat       = new Wait(0.5f);
        Task openDoor        = new OpenDoor(aDore);

        taskList.Add(isDoorNotLocked);
        taskList.Add(waitABeat);
        taskList.Add(openDoor);
        Sequence openUnlockedDoor = new Sequence(taskList);

        taskList = new List <Task>();
        Task isDoorClosed = new isTrue(aDore.isClosed);
        Task darkside     = new DarkSide(this.gameObject);
        Task bargeDoor    = new PushDoor(aDore.GetComponent <Rigidbody>());
        Task darksidetwo  = new DarkSideTwo(this.gameObject);

        taskList.Add(isDoorClosed);
        taskList.Add(waitABeat);
        taskList.Add(darkside);
        taskList.Add(waitABeat);
        taskList.Add(darksidetwo);
        taskList.Add(waitABeat);
        taskList.Add(bargeDoor);
        Sequence bargeClosedDoor = new Sequence(taskList);

        taskList = new List <Task>();
        taskList.Add(openUnlockedDoor);
        taskList.Add(bargeClosedDoor);
        Selector openTheDoor = new Selector(taskList);

        taskList = new List <Task>();
        Task moveToDoor     = new MoveKinematicToObject(this.GetComponent <Kinematic>(), aDore.gameObject);
        Task moveToTreasure = new MoveKinematicToObject(this.GetComponent <Kinematic>(), holocron.gameObject);

        taskList.Add(moveToDoor);
        taskList.Add(waitABeat);
        taskList.Add(openTheDoor);
        taskList.Add(waitABeat);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindClosedDoor = new Sequence(taskList);

        taskList = new List <Task>();
        Task isDoorOpen = new isFalse(aDore.isClosed);

        taskList.Add(isDoorOpen);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindOpenDoor = new Sequence(taskList);

        taskList = new List <Task>();
        taskList.Add(getTreasureBehindOpenDoor);
        taskList.Add(getTreasureBehindClosedDoor);
        Selector getTreasure = new Selector(taskList);

        return(getTreasure);
    }
Example #3
0
    Task BuildTask_GetHolocron()
    {
        Debug.Log("Checkpoint 3");
        List <Task> taskList = new List <Task>();

        //if door isn't locked, open it
        Task isDoorNotLocked = new isFalse(aDore.isLocked);
        Task openDoor        = new OpenDoor(aDore);

        taskList.Add(isDoorNotLocked);
        taskList.Add(openDoor);
        Sequence openUnlockedDoor = new Sequence(taskList);

        //barge a closed door
        taskList = new List <Task>();
        Task isDoorClosed = new isTrue(aDore.isClosed);
        Task darkside     = new DarkSide(this.gameObject);
        Task bargeDoor    = new PushDoor(aDore.GetComponent <Rigidbody>());

        taskList.Add(isDoorClosed);
        taskList.Add(darkside);
        taskList.Add(bargeDoor);
        Sequence bargeClosedDoor = new Sequence(taskList);

        //open a closed door, one way or another
        taskList = new List <Task>();
        taskList.Add(openUnlockedDoor);
        taskList.Add(bargeClosedDoor);
        Selector openTheDoor = new Selector(taskList);

        //get the treasure when the door is closed
        taskList = new List <Task>();
        Task moveToDoor     = new MoveKinematicToObject(this.GetComponent <Kinematic>(), aDore.gameObject);
        Task moveToTreasure = new MoveKinematicToObject(this.GetComponent <Kinematic>(), holocron.gameObject);

        taskList.Add(moveToDoor);
        taskList.Add(openTheDoor);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindClosedDoor = new Sequence(taskList);

        //get the treasure when the door is open
        taskList = new List <Task>();
        Task isDoorOpen = new isFalse(aDore.isClosed);

        taskList.Add(isDoorOpen);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindOpenDoor = new Sequence(taskList);

        //get the treasure, one way or another???
        taskList = new List <Task>();
        taskList.Add(getTreasureBehindOpenDoor);
        taskList.Add(getTreasureBehindClosedDoor);
        Selector getTreasure = new Selector(taskList);

        return(getTreasure);
    }
Example #4
0
    Task BuildTask_GetPill()
    {
        List <Task> taskList = new List <Task>();


        ///Open unlocked door
        Task isDoorNotLocked = new IsFalse(targetDoor.bIsLocked);
        Task catchBreath     = new Pause(2f);
        Task openDoor        = new OpenDoor(targetDoor);

        taskList.Add(isDoorNotLocked);
        taskList.Add(catchBreath);
        taskList.Add(openDoor);
        Sequence sqOpenUnlockedDoor = new Sequence(taskList);



        ///Barge door
        taskList = new List <Task>();
        Task isDoorClosed = new IsTrue(targetDoor.bIsClosed);
        Task stackUp      = new StackUp(this.gameObject);
        Task bargeDoor    = new BargeDoor(targetDoor.transform.GetChild(0).GetComponent <Rigidbody>());

        taskList.Add(isDoorClosed);
        taskList.Add(catchBreath);
        taskList.Add(stackUp);
        taskList.Add(catchBreath);
        taskList.Add(bargeDoor);
        Sequence sqBargeClosedDoor = new Sequence(taskList);


        ///Guarantee open closed door
        taskList = new List <Task>();

        taskList.Add(sqOpenUnlockedDoor);
        taskList.Add(sqBargeClosedDoor);
        Selector sqOpenTheDoor = new Selector(taskList);


        ///Get pill behind closed door
        taskList = new List <Task>();
        Task moveToDoor = new MoveKinematicToObject(this.gameObject.GetComponent <Kinematic>(), targetDoor.gameObject);
        Task moveToPill = new MoveKinematicToObject(this.gameObject.GetComponent <Kinematic>(), drugs.gameObject);

        taskList.Add(moveToDoor);
        taskList.Add(catchBreath);
        taskList.Add(sqOpenTheDoor);
        taskList.Add(catchBreath);
        taskList.Add(moveToPill);
        Sequence sqGetTreasureBehindClosedDoor = new Sequence(taskList);


        //Get pill if door is open
        taskList = new List <Task>();
        Task isDoorOpen = new IsFalse(targetDoor.bIsClosed);

        taskList.Add(isDoorOpen);
        taskList.Add(moveToPill);
        Sequence sqGetTreasureBehindOpenDoor = new Sequence(taskList);


        //Guarantee get pill
        taskList = new List <Task>();

        taskList.Add(sqGetTreasureBehindOpenDoor);
        taskList.Add(sqGetTreasureBehindClosedDoor);
        Selector sqGetTreasure = new Selector(taskList);



        return(sqGetTreasure);
    }
Example #5
0
    Task BuildTask()
    {
        List <Task> taskList = new List <Task>();

        Task isOutOfFood        = new IsTrue(OutOfFood);
        Task machineBroken      = new IsTrue(MachineBroken);
        Task walkToCounter      = new MoveKinematicToObject(this.GetComponent <Kinematic>(), stopPoint.gameObject, text);
        Task walkFromCounter    = new MoveKinematicToObject(this.GetComponent <Kinematic>(), startPoint.gameObject, text);
        Task walkFromCounterMid = new MoveKinematicToObject(this.GetComponent <Kinematic>(), midPoint.gameObject, text);
        Task wait         = new Wait(1.5f);
        Task orderFood    = new OrderFood(text);
        Task giveFood     = new GiveFood(textEmp);
        Task takeSlurpie  = new TakeSlurpie(text);
        Task takingLong   = new TakingLong(text);
        Task outOfFood    = new OutOfFood(textEmp);
        Task outOfSlurpie = new OutOfSlurpie(textEmp);
        Task hulkOut      = new HulkOut(text, this.gameObject);
        Task enterManager = new EnterManager(managerRb);
        Task killKaren    = new KillKaren(this.gameObject, karenAnim);

        //if out of food, yell and get slurpie
        taskList.Add(isOutOfFood);
        taskList.Add(walkToCounter);
        taskList.Add(wait);
        taskList.Add(orderFood);
        taskList.Add(wait);
        taskList.Add(outOfFood);
        taskList.Add(wait);
        taskList.Add(takeSlurpie);
        taskList.Add(wait);
        taskList.Add(walkFromCounter);


        Sequence sequenceSlurpie = new Sequence(taskList);

        taskList = new List <Task>();

        //if slurpie machine broken
        taskList.Add(machineBroken);
        taskList.Add(walkToCounter);
        taskList.Add(wait);
        taskList.Add(orderFood);
        taskList.Add(wait);
        taskList.Add(outOfSlurpie);
        taskList.Add(wait);
        taskList.Add(hulkOut);
        taskList.Add(wait);
        taskList.Add(wait);
        taskList.Add(takingLong);
        taskList.Add(enterManager);
        taskList.Add(walkFromCounterMid);
        taskList.Add(killKaren);

        Sequence sequenceKaren = new Sequence(taskList);


        taskList = new List <Task>();

        //if else walk and get food
        taskList.Add(walkToCounter);
        taskList.Add(wait);
        taskList.Add(orderFood);
        taskList.Add(wait);
        taskList.Add(giveFood);
        taskList.Add(wait);
        taskList.Add(walkFromCounter);

        Sequence sequenceNormal = new Sequence(taskList);

        taskList = new List <Task>();

        taskList.Add(sequenceSlurpie);
        taskList.Add(sequenceKaren);
        taskList.Add(sequenceNormal);

        Selector selector = new Selector(taskList);

        return(selector);
    }
    tasks BuildTask_GetTreasue()
    {
        // create our behavior tree based on Millington pg. 344
        // building from the bottom up

        //I like the use of a list, much more than what Millington
        List <tasks> taskList = new List <tasks>();

        // if door isn't locked, open it
        tasks isDoorNotLocked = new IsFalse(theDoor.isLocked);
        tasks waitABeat       = new Wait(0.5f);
        tasks openDoor        = new OpenDoor(theDoor);

        taskList.Add(isDoorNotLocked);
        taskList.Add(waitABeat);
        taskList.Add(openDoor);
        Sequence openUnlockedDoor = new Sequence(taskList);

        // barge a closed door
        taskList = new List <tasks>();
        tasks isDoorClosed = new IsTrue(theDoor.isClosed);
        // made a small change to get the rigid body of the door instead of the children
        tasks bargeDoor = new BargeDoor(theDoor.transform.GetComponent <Rigidbody>());

        taskList.Add(isDoorClosed);
        taskList.Add(waitABeat);
        taskList.Add(bargeDoor);
        Sequence bargeClosedDoor = new Sequence(taskList);

        // open a closed door, one way or another
        taskList = new List <tasks>();
        taskList.Add(openUnlockedDoor);
        taskList.Add(bargeClosedDoor);
        Selector openTheDoor = new Selector(taskList);

        // get the treasure when the door is closed
        taskList = new List <tasks>();
        tasks moveToDoor     = new MoveKinematicToObject(this.GetComponent <Kinematic>(), theDoor.gameObject);
        tasks moveToTreasure = new MoveKinematicToObject(this.GetComponent <Kinematic>(), theTreasure.gameObject);

        taskList.Add(moveToDoor);
        taskList.Add(waitABeat);
        taskList.Add(openTheDoor); // one way or another
        taskList.Add(waitABeat);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindClosedDoor = new Sequence(taskList);

        // get the treasure when the door is open
        taskList = new List <tasks>();
        tasks isDoorOpen = new IsFalse(theDoor.isClosed);

        taskList.Add(isDoorOpen);
        taskList.Add(moveToTreasure);
        Sequence getTreasureBehindOpenDoor = new Sequence(taskList);

        // get the treasure, one way or another
        taskList = new List <tasks>();
        taskList.Add(getTreasureBehindOpenDoor);
        taskList.Add(getTreasureBehindClosedDoor);
        Selector getTreasure = new Selector(taskList);

        return(getTreasure);
    }