private void GotoNextRound() { round++; switch (round) { case 1: DateView date1 = CreateDate(); date1.transform.position = datePositions[1]; DateView date2 = CreateDate(); date2.transform.position = datePositions[2]; UnlockNewInfo(0); break; case 2: UnlockNewInfo(); break; case 3: DateView date3 = CreateDate(); date3.transform.position = datePositions[0]; UpdateInfo(); break; case 4: UnlockNewInfo(); break; case 5: DateView date4 = CreateDate(); date4.transform.position = datePositions[3]; UpdateInfo(); break; case 6: UnlockNewInfo(); break; case 7: DateView date5 = CreateDate(); date5.transform.position = datePositions[4]; UpdateInfo(); break; default: break; } }
private DateView CreateDate() { GameObject dateObj = Instantiate(datePrefab); DateModel dateModel; do { dateModel = DateFactory.instance.CreateRandomModel(); }while (DoesDateHaveDupe(dateModel)); DateView dateView = dateObj.GetComponent <DateView>(); dateView.Init(dateModel); dates.Add(dateView); return(dateView); }
private void Update() { if (!IsGamePlayable()) { return; } phaseTimeElapsed += Time.deltaTime; if (phase == GamePhase.INVESTIGATING) { // Update timer investigationTimer.text = ((int)(investigationPhaseDuration - phaseTimeElapsed) + 1).ToString(); if (phaseTimeElapsed > investigationPhaseDuration) { selectedDate = dates[Random.Range(0, dates.Count)]; selectedOrigPos = selectedDate.transform.position; investigationTimer.text = ""; phaseTimeElapsed = 0; phase = GamePhase.TRANSITIONING_TO_ANSWERING; } } else if (phase == GamePhase.TRANSITIONING_TO_ANSWERING) { // Move players back and move date to interview position selectedDate.transform.position = Vector2.Lerp(selectedOrigPos, interviewPosition, phaseTimeElapsed / transitionToAnsweringPhaseDuration); p1Dater.transform.position = Vector2.Lerp(p1Dater.transform.position, p1DaterOrigPos, phaseTimeElapsed / transitionToAnsweringPhaseDuration); p2Dater.transform.position = Vector2.Lerp(p2Dater.transform.position, p2DaterOrigPos, phaseTimeElapsed / transitionToAnsweringPhaseDuration); if (phaseTimeElapsed > transitionToAnsweringPhaseDuration) { interviewObject.SetActive(true); InterviewView.instance.InitInterview(selectedDate.model, infoUsed[Random.Range(0, infoUsed.Count)]); selectedDate.ChangeToSpriteLayer("Interview"); phaseTimeElapsed = 0; phase = GamePhase.ANSWERING; } } else if (phase == GamePhase.ANSWERING) { // Update timer interviewTimer.text = ((int)(answeringPhaseDuration - phaseTimeElapsed) + 1).ToString(); if (phaseTimeElapsed > answeringPhaseDuration) { interviewTimer.text = ""; phaseTimeElapsed = 0; phase = GamePhase.SHOW_ANSWER; } } else if (phase == GamePhase.SHOW_ANSWER) { // Do nothing, just show answer if (phaseTimeElapsed > showAnswerPhaseDuration) { interviewObject.SetActive(false); selectedDate.ChangeToSpriteLayer("Default"); p1CorrectObj.SetActive(false); p2CorrectObj.SetActive(false); GotoNextRound(); phaseTimeElapsed = 0; phase = GamePhase.TRANSITIONING_TO_INVESTIGATING; } } else if (phase == GamePhase.TRANSITIONING_TO_INVESTIGATING) { // Move date back selectedDate.transform.position = Vector2.Lerp(interviewPosition, selectedOrigPos, phaseTimeElapsed / transitionToInvestigationPhaseDuration); if (phaseTimeElapsed > transitionToInvestigationPhaseDuration) { phaseTimeElapsed = 0; phase = GamePhase.INVESTIGATING; if (p1Points == 5) { GameOver(0); } else if (p2Points == 5) { GameOver(1); } } } }