public void triggerTutorial(int tutorialID)
    {
        tutorialUI.setTutorial(tutorialTexts[tutorialID]);
        activeTutorial = tutorialID;
        Debug.Log("Triggering: " + tutorialID);
        switch (tutorialID)
        {
        case 0:
            //dog moves to player

            player.GetComponent <CharacterMovement>().CutsceneLock = true;
            ci.PermitAction(0, false);
            ci.PermitAction(1, false);
            ci.PermitAction(2, false);
            ci.PermitAction(3, false);
            dog.StartAction(new Call(dog.GetComponent <Dog>(), player.transform));
            finishTutorial(activeTutorial);
            break;

        case 1:
            //pet dog
            ci.PermitAction(2, true);
            //tutorial 1 starting
            break;

        case 2:
            //dog go to waypoint
            ci.PermitAction(2, false);
            dog.StartAction(new GoStraightToPosition(dog.GetComponent <Dog>(), dogWaypoint.position));
            //tutorial 2 starting
            break;

        case 3:
            ci.PermitAction(1, true);
            //enable call dog thing
            break;

        case 4:
            ci.PermitAction(1, false);
            ci.PermitAction(3, true);
            //pick up dog enable
            break;
        }
    }
示例#2
0
    IEnumerator blabla(Dog dog, DogAI dogai, DogAction dogaction)
    {
        bool dogready = false;

        while (!dogready)
        {
            dogready = dogai.gameObject.GetComponent <Dog>().IsIdle();

            yield return(null);
        }
        dogai.StartAction(dogaction);
        StartCoroutine(blabla(dog, dogai, new Rest(dog, -1)));
    }
示例#3
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            Vector3 ilaTelPos = other.transform.position + -other.transform.right * 20;
            Vector3 ilaSitPos = other.transform.position + -other.transform.right * 1.5f + other.transform.forward * 3f;



            Dog dog = GameObject.FindGameObjectWithTag("Dog").GetComponent <Dog>();
            Debug.Log("Tjaba");
            //dog.gameObject.transform.position = ilaTelPos;
            DogAI dogai = dog.gameObject.GetComponent <DogAI>();
            dogai.StartAction(new GoStraightToPosition(dog, ilaTelPos));

            //dogai.StartAction(new GoStraightToPosition(dog, ilaSitPos));
            StartCoroutine(blabla(dog, dogai, new GoStraightToPosition(dog, ilaSitPos)));
        }
    }
示例#4
0
 void Update()
 {
     if (savedAction != null)
     {
         Debug.Log("saved action " + savedAction.ToString());
     }
     Debug.DrawLine(transform.position, transform.position + transform.forward * 3, Color.yellow);
     if (itemHand != null && itemHand.GetItemInHand() != null && itemHand.GetItemInHand().name == "Stick")
     {
         if (currentAction != null && currentAction.GetImportance() == DogAction.Importance.HIGH)
         {
             savedAction = currentAction;
         }
         if (Vector3.Distance(transform.position, player.position) < 3)
         {
             if (!isWaitingForFetch)
             {
                 ai.StartAction(new WaitForFetch(this, player));
             }
         }
         else
         {
             ai.StartAction(new FollowPlayer(this, player));
         }
     }
     if (currentAction != null)
     {
         currentAction.UpdateAction();
     }
     else if (savedAction != null)
     {
         currentAction = savedAction;
         currentAction.StartAction();
         savedAction = null;
     }
 }
 public void NextAction()
 {
     dogAI.StartAction(actions [actionCount]);
     actionCount++;
 }