private void startingStatementUpdate()
 {
     if (continueButtonPressed())
     {
         if (currentDialog.startingStatement.advanceIndex())
         {
             currentStatement = currentDialog.startingStatement;
             playCurrentStatement(PortraitType.Normal);
         }
         else
         {
             if (gameStateManager.getCurrentTimeState() == TimeState.DateSelection)
             {
                 if (gameStateManager.isLastDay())
                 {
                     ui.displayDateChoices(accusations[currentCharacterId]);
                     dialogState = DialogState.AccuseChoice;
                 }
                 else
                 {
                     ui.displayDateChoices(dates[currentCharacterId]);
                     dialogState = DialogState.AskOnDateChoice;
                 }
             }
             else
             {
                 ui.displayChoices(currentDialog);
                 dialogState = DialogState.DisplayingChoices;
             }
         }
     }
 }
Пример #2
0
    private void questioningUpdate()
    {
        if (stateChanged)
        {
            stateChanged = false;

            switch (conversationState)
            {
            case ConversationState.StartingStatement:
                uiManager.displayStartingStatement(currentDialog);
                addKeywordsFromStatement(currentDialog.startingStatement);
                break;

            case ConversationState.Choices:
                if (currentDialog.questions.Count == 0)
                {
                    changeState(ConversationState.NotTalking);
                }

                uiManager.displayChoices(currentDialog, seenKeywords, currentQuestion);
                break;

            case ConversationState.Question:
                uiManager.displayQuestion(currentQuestion);
                addKeywordsFromStatement(currentQuestion.question);
                break;

            case ConversationState.Answer:
                uiManager.displayAnswer(currentQuestion);
                addKeywordsFromStatement(currentQuestion.answer);

                if (OnAddLogEntry != null)
                {
                    OnAddLogEntry(currentDialog.personId, currentQuestion.answer.highlightedShortenedText(), currentQuestion.answer.highlightedDisplayText());
                }
                break;

            default:
                uiManager.removeDisplay();
                player.doneTalking();
                break;
            }
        }

        if (Input.GetKeyDown(KeyCode.E))
        {
            switch (conversationState)
            {
            case ConversationState.StartingStatement:
                changeState(ConversationState.Choices);
                currentQuestionIndex = 0;
                currentQuestion      = (Question)currentDialog.filteredQuestions(seenKeywords)[currentQuestionIndex];
                break;

            case ConversationState.Choices:
                currentQuestion = (Question)currentDialog.questions[currentQuestionIndex];
                changeState(ConversationState.Question);
                break;

            case ConversationState.Question:
                changeState(ConversationState.Answer);
                break;

            case ConversationState.Answer:
                changeState(ConversationState.NotTalking);
                break;

            default:
                break;
            }
        }

        if (conversationState == ConversationState.Choices)
        {
            if (Input.GetKeyDown(KeyCode.S))
            {
                ArrayList filteredQuestions = currentDialog.filteredQuestions(seenKeywords);
                currentQuestionIndex = currentDialog.getFilteredQuestionIndex(currentQuestion, seenKeywords);
                currentQuestionIndex = (currentQuestionIndex + 1) % filteredQuestions.Count;
                currentQuestionIndex = currentDialog.getQuestionIndex((Question)filteredQuestions[currentQuestionIndex]);
                currentQuestion      = (Question)currentDialog.questions[currentQuestionIndex];
                uiManager.displayChoices(currentDialog, seenKeywords, currentQuestion);
            }

            if (Input.GetKeyDown(KeyCode.W))
            {
                ArrayList filteredQuestions = currentDialog.filteredQuestions(seenKeywords);
                currentQuestionIndex = currentDialog.getFilteredQuestionIndex(currentQuestion, seenKeywords);
                int filteredCount = filteredQuestions.Count;
                currentQuestionIndex = (currentQuestionIndex + filteredCount - 1) % filteredCount;
                currentQuestionIndex = currentDialog.getQuestionIndex((Question)filteredQuestions[currentQuestionIndex]);
                currentQuestion      = (Question)currentDialog.questions[currentQuestionIndex];
                uiManager.displayChoices(currentDialog, seenKeywords, currentQuestion);
            }
        }
    }