示例#1
0
    // OnStateExit is called before OnStateExit is called on any state inside this state machine
    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        professorController = GameObject.FindWithTag("Professor").GetComponent <ProfessorController>();
        HotPotatoTimer hotpotatoTimer = FindObjectOfType <HotPotatoTimer>();

        // Init current level controller.
        levelController = LevelController.GetCurrentLevelController();

        if (stateInfo.IsName("Appear") || stateInfo.IsName("AppearBeer") || stateInfo.IsName("AppearBeerGlass") || stateInfo.IsName("AppearAngry") || stateInfo.IsName("AppearMoney"))
        {
            // Activate speech bubble.
            professorController.speechBubble.gameObject.SetActive(true);
            // Show speech bubble.
            professorController.speechBubble.SetVisible(true);
        }
        else if (stateInfo.IsName("Disappear") || stateInfo.IsName("DisappearBeer") || stateInfo.IsName("DisappearBeerGlass") || stateInfo.IsName("DisappearAngry") || stateInfo.IsName("DisappearMoney"))
        {
            professorController.SetVisible(false);
            // Hide professor button.
            ProfessorButton professorButton = FindObjectOfType <ProfessorButton>();
            if (professorButton != null)
            {
                professorButton.SetVisible(true);
            }
            // Deactivate speech bubble.
            professorController.speechBubble.gameObject.SetActive(false);

            // Enable gameplay interaction on current level controller.
            if (levelController != null)
            {
                levelController.SetGameInputEnabled(true);
            }

            // Invoke OnStopDisappear method on level controller.
            if (levelController != null)
            {
                levelController.OnStopProfessorDisappear();
            }

            // when hotpotato is active, resume timer when prof disappears
            if (hotpotatoTimer != null)
            {
                hotpotatoTimer.ResumeTimer();
            }

            //Enable Camera movement when the prof is gone.
            CameraFollowPlayer camera = FindObjectOfType <CameraFollowPlayer>();
            if (camera != null)
            {
                camera.EnableMovement(true);
            }
        }
    }
示例#2
0
    // OnStateEnter is called before OnStateEnter is called on any state inside this state machine
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        professorController = GameObject.FindWithTag("Professor").GetComponent <ProfessorController>();
        HotPotatoTimer hotpotatoTimer = FindObjectOfType <HotPotatoTimer>();

        // Init current level controller.
        levelController = LevelController.GetCurrentLevelController();

        if (stateInfo.IsName("Appear") || stateInfo.IsName("AppearBeer") || stateInfo.IsName("AppearBeerGlass") || stateInfo.IsName("AppearAngry") || stateInfo.IsName("AppearMoney"))
        {
            professorController.SetVisible(true);
            // Hide professor button.
            ProfessorButton professorButton = FindObjectOfType <ProfessorButton>();
            if (professorButton != null)
            {
                professorButton.SetVisible(false);
            }
            // Disable gameplay interaction on current level controller.
            if (levelController != null)
            {
                levelController.SetGameInputEnabled(false);
            }
            //when hotpotato is the game mode and the prof appears, stop timers
            if (hotpotatoTimer != null)
            {
                hotpotatoTimer.PauseTimer();
                //disable movement of the cam when the prof is visible
                CameraFollowPlayer camera = FindObjectOfType <CameraFollowPlayer>();
                if (camera != null)
                {
                    camera.EnableMovement(false);
                }
            }
        }
        else if (stateInfo.IsName("Disappear") || stateInfo.IsName("DisappearBeer") || stateInfo.IsName("DisappearBeerGlass") || stateInfo.IsName("DisappearAngry") || stateInfo.IsName("DisappearMoney"))
        {
            // Hide speech bubble.
            professorController.speechBubble.SetVisible(false);
        }
        else if (stateInfo.IsName("Money") || stateInfo.IsName("Money2") || stateInfo.IsName("Money3"))
        {
            // Reset money animation flag.
            professorController.Money(false);
        }
    }
示例#3
0
    public void ShowBeer(bool show, int version)
    {
        // Do nothing if method already running.
        showBeer = show;
        if (professorButton != null)
        {
            professorButton.SetVisible(false);
        }
        if (animator.GetCurrentAnimatorStateInfo(0).IsName("Invisible") && showBeer)
        {
            TalkAnimation(false);
            //Debug.Log("version: " + version);
            switch (version)
            {
            case 0:
                // Play long get beer sound.
                //audioGetBeer[version].Play();
                // Show professor with beer after audio is finished.
                StartCoroutine(ShowBeerAfterTime(version));
                break;

            case 1:
                // Play short get beer sound.
                audioGetBeer[version].Play();
                // Show professor with beer after audio is finished.
                StartCoroutine(ShowBeerAfterTime(version));
                break;

            case 2:
                // Show professor with beer but no sound.
                animator.SetBool("AppearBeer", showBeer);
                animator.SetBool("DisappearBeer", !showBeer);
                // Reset flag.
                showBeer = false;
                break;

            case 3:
                // Play get beer glass sound.
                audioGetBeer[version].Play();
                // Show professor with beer glass after audio is finished.
                StartCoroutine(ShowBeerAfterTime(version));
                break;

            case 4:
                // Show professor with beer glass immediately.
                animator.SetBool("AppearBeerGlass", showBeer);
                animator.SetBool("Disappear", !showBeer);
                break;
            }
            // Activate eye blinking.
            if (show && !blink)
            {
                StartCoroutine(EyeBlinkAfterTime(5));
            }
        }
        else
        {
            // Hide visible professor.
            animator.SetBool("Appear", false);
            animator.SetBool("Disappear", true);
            // Hide visible professor with beer.
            animator.SetBool("AppearBeer", false);
            animator.SetBool("Disappear", true);
            // Hide visible professor with beer glass.
            animator.SetBool("AppearBeerGlass", false);
            animator.SetBool("Disappear", true);
        }
    }