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); }
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; } }
// 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; } } }
// 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; } } }