Beispiel #1
0
    public void GoodJob()
    {
        SetIsTalking(false);

        eventSetting = "event:/vo_char";

        switch (type)
        {
        case HeadType.dude:
            eventSetting += "2";
            break;

        case HeadType.girl:
            eventSetting += "1";
            break;

        case HeadType.asiangirl:
            eventSetting += "3";
            break;

        case HeadType.duck:
            eventSetting += "4";
            break;
        }
        eventSetting += "_good";
        AudioStatics.PlayOneShotAtLocation(eventSetting, transform.position);
    }
Beispiel #2
0
    // Start is called before the first frame update
    void Start()
    {
        if (playWaveSound)
        {
            AudioStatics.PlayEvent(sineEvent);
        }
        AudioStatics.PlayEvent(bgmEvent);

        heads = FindObjectsOfType <Head_AniScript>();
    }
Beispiel #3
0
    public void SetIsTalking(bool talk)
    {
        animator.SetBool("IsTalking", talk);

        if (!talk)
        {
            if (eventSetting.Length > 0)
            {
                AudioStatics.StopEvent(audioEventEmitter);
            }


            return;
        }



        eventSetting = "event:/vo_char";

        switch (type)
        {
        case HeadType.dude:
            eventSetting += "2";
            break;

        case HeadType.girl:
            eventSetting += "1";
            break;

        case HeadType.asiangirl:
            eventSetting += "3";
            break;

        case HeadType.duck:
            eventSetting += "4";
            break;
        }
        eventSetting += loopType == 0 ? "_slow_loop" : "_fast_loop";

        audioEventEmitter.Event = eventSetting;



        AudioStatics.PlayEvent(audioEventEmitter);
        audioEventEmitter.SetParameter("Progress", 0);
    }
Beispiel #4
0
    private void CheckMilestone()
    {
        switch (starAmt)
        {
        case 0:
            if (hiddenProgress >= checkPoint1)
            {
                starAmt++;
                starSpriteRends[0].color = Color.white;
                particleSystems[0].Play();

                AudioStatics.PlayOneShotAtLocation("event:/sfx_star", Vector3.zero);
            }
            break;

        case 1:
            if (hiddenProgress >= checkPoint2)
            {
                starAmt++;
                starSpriteRends[1].color = Color.white;
                starSpriteRends[2].color = Color.white;
                particleSystems[1].Play();

                AudioStatics.PlayOneShotAtLocation("event:/sfx_star", Vector3.zero);
            }
            break;

        case 2:
            if (hiddenProgress >= checkPoint3)
            {
                starAmt++;
                starSpriteRends[3].color = Color.white;
                starSpriteRends[4].color = Color.white;
                starSpriteRends[5].color = Color.white;
                particleSystems[2].Play();

                AudioStatics.PlayOneShotAtLocation("event:/sfx_star", Vector3.zero);
            }
            break;
        }
    }
Beispiel #5
0
    // Update is called once per frame
    void Update()
    {
        switch (hS)
        {
        case HeadState.idle:
        {
            break;
        }


        case HeadState.kissMove:
        {
            MoveHead(moveSpeed);
            if (isLeft && endPos < transform.position.x)
            {
                hS = HeadState.kissFinish;
                Instantiate(goodFx, Vector3.zero, Quaternion.identity);
                AudioStatics.PlayOneShotAtLocation("event:/sfx_kiss_success", Vector3.zero);
            }
            if (!isLeft && endPos > transform.position.x)
            {
                hS = HeadState.kissFinish;
            }
            break;
        }

        case HeadState.headButt:
        {
            if (isLeft && endPos < transform.position.x + 1)
            {
                AudioStatics.PlayOneShotAtLocation("event:/sfx_kiss_fail", Vector3.zero);
                transform.rotation = Quaternion.Euler(0, 0, -30);

                hS = HeadState.kissFinish;
                Instantiate(badFx, Vector3.zero, Quaternion.identity);
            }
            else if (!isLeft && endPos > transform.position.x - 1)
            {
                transform.rotation = Quaternion.Euler(0, 0, 30);

                hS = HeadState.kissFinish;
            }
            else
            {
                MoveHead(moveSpeed);
            }
            break;
        }

        case HeadState.beginGame:
        {
            MoveHead(moveSpeed);
            if (isLeft && gamePos < transform.position.x)
            {
                hS = HeadState.idle;
                //SetIsTalking(true);
            }
            if (!isLeft && gamePos > transform.position.x)
            {
                hS = HeadState.idle;
                //SetIsTalking(true);
            }
            break;
        }

        default:
        {
            break;
        }
        }
    }
Beispiel #6
0
 public void StopBGM()
 {
     AudioStatics.StopEvent(bgmEvent);
 }
Beispiel #7
0
 public void QuitGame()
 {
     AudioStatics.PlayOneShotAttached("event:/UI/ui_click", this.gameObject);
     Application.Quit();
 }
Beispiel #8
0
 public void LoadScene(string scene)
 {
     AudioStatics.PlayOneShotAttached("event:/UI/ui_click", this.gameObject);
     SceneManager.LoadScene(scene);
 }
Beispiel #9
0
 public void HideCredits()
 {
     AudioStatics.PlayOneShotAttached("event:/UI/ui_click", this.gameObject);
     credits.SetActive(false);
 }
Beispiel #10
0
    // Update is called once per frame
    void Update()
    {
        switch (State)
        {
        case Game.begin:
        {
            var   startMarker = new Vector3(0, -7, 0);
            var   endMarker   = new Vector3(0, -4, 0);
            float fraction    = (Time.time - interpolationStart) / 1;
            progressBar.transform.position = Vector3.Lerp(startMarker, endMarker, fraction);


            //Debug.Log(LevelData.Waves.Length);
            WaveType type      = LevelData.Waves[gameCounter].type;
            float    amplitude = LevelData.Waves[gameCounter].amplitude;
            float    frequency = LevelData.Waves[gameCounter].frequency;
            Speaker.GetComponent <LineController>().switchWave(type, amplitude, frequency);

            leftPerson.SetIsTalking(true);
            timer = maxTimer;

            //Debug.Log("Begin State");
            break;
        }

        case Game.game:
        {
            timer -= Time.deltaTime;

            if (waveController.closeness > waveController.winMargin)
            {
                //Debug.Log(closeness + " " + winMargin);
                State = Game.matched;
                timer = maxTimer;
            }

            bgm.UpdateMatchRate(waveController.closeness);

            if (timer < 0)
            {
                State = Game.notMatched;
                timer = maxTimer;
            }

            timerBar.fillAmount = timer / maxTimer;

            //Debug.Log("Game State");
            break;
        }

        case Game.matched:
        {
            AudioStatics.PlayOneShotAtLocation("event:/sfx_good", Vector3.zero);
            gameCounter++;
            won++;
            Debug.Log("Matched State");
            //Debug.Log(LevelData.Waves.Length);

            bgm.UpdateBGM(gameCounter / 2);

            progressBar.progress = (float)won / LevelData.Waves.Length;

            leftPerson.SetIsTalking(false);
            rightPerson.SetIsTalking(false);

            if (gameCounter >= LevelData.Waves.Length)
            {
                EndGame();
            }
            else
            {
                State = Game.game;
                WaveType type      = LevelData.Waves[gameCounter].type;
                float    amplitude = LevelData.Waves[gameCounter].amplitude;
                float    frequency = LevelData.Waves[gameCounter].frequency;
                Speaker.GetComponent <LineController>().switchWave(type, amplitude, frequency);
                if (!leftPersonTalk)
                {
                    if (frequency > 1.4f)
                    {
                        leftPerson.loopType = Head_AniScript.LoopType.fast;
                    }
                    else
                    {
                        leftPerson.loopType = Head_AniScript.LoopType.slow;
                    }

                    leftPerson.SetIsTalking(true);


                    rightPerson.GoodJob();
                    timerBar.fillOrigin = 0;
                }
                else
                {
                    if (frequency > 1.4f)
                    {
                        rightPerson.loopType = Head_AniScript.LoopType.fast;
                    }
                    else
                    {
                        rightPerson.loopType = Head_AniScript.LoopType.slow;
                    }

                    rightPerson.SetIsTalking(true);
                    leftPerson.GoodJob();
                    timerBar.fillOrigin = 1;
                }

                leftPersonTalk = !leftPersonTalk;
            }
            break;
        }

        case Game.notMatched:
            gameCounter++;
            Debug.Log("Not Matched State");
            Debug.Log(LevelData.Waves.Length);
            bgm.UpdateBGM(gameCounter / 2);

            leftPerson.SetIsTalking(false);
            rightPerson.SetIsTalking(false);

            if (gameCounter >= LevelData.Waves.Length)
            {
                EndGame();
            }
            else
            {
                State = Game.game;
                WaveType type      = LevelData.Waves[gameCounter].type;
                float    amplitude = LevelData.Waves[gameCounter].amplitude;
                float    frequency = LevelData.Waves[gameCounter].frequency;
                Speaker.GetComponent <LineController>().switchWave(type, amplitude, frequency);
                if (!leftPersonTalk)
                {
                    if (frequency > 1.4f)
                    {
                        leftPerson.loopType = Head_AniScript.LoopType.fast;
                    }
                    else
                    {
                        leftPerson.loopType = Head_AniScript.LoopType.slow;
                    }

                    leftPerson.SetIsTalking(true);
                    timerBar.fillOrigin = 0;
                }
                else
                {
                    if (frequency > 1.4f)
                    {
                        rightPerson.loopType = Head_AniScript.LoopType.fast;
                    }
                    else
                    {
                        rightPerson.loopType = Head_AniScript.LoopType.slow;
                    }

                    rightPerson.SetIsTalking(true);
                    timerBar.fillOrigin = 1;
                }

                leftPersonTalk = !leftPersonTalk;
            }
            break;

        case Game.win:
        {
            //Debug.Log("You Win");


            break;
        }

        case Game.lose:
        {
            //Debug.Log("You Lose");

            break;
        }
        }
    }