Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
                    }
                }
            }
        }