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() { 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); }