Esempio n. 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);
    }
Esempio n. 2
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);
    }