コード例 #1
0
ファイル: Citizen.cs プロジェクト: KeithSwanger/TipOfMyTongue
    public void OnPlayerSubmittedAnswer(string answer)
    {
        if (!isKilled && !isSaved)
        {
            if (riddle.TryAnswer(answer))
            {
                // Riddle correct! Let's do something!
                isSaved = true;
                if (currentDialogBubble != null)
                {
                    currentDialogBubble.ForceFadeMessage();
                }

                answerThatSavedMe = answer;
                responses.AddCorrectAnswerToResponses(answerThatSavedMe);

                CreateDialogBubble(responses.GetRandomCorrectAnswerResponse(), 0.1f, 0.35f, 1, false, false);

                SavedEvent.Invoke(this);
            }
            else
            {
                health -= 1;

                if (health <= 0)
                {
                    isKilled           = true;
                    answerThatKilledMe = answer;
                    responses.AddWrongAnswerToResponses(answerThatKilledMe);

                    if (currentDialogBubble != null)
                    {
                        currentDialogBubble.ForceFadeMessage();
                    }

                    DiedEvent.Invoke(this);
                }
            }
        }
    }
コード例 #2
0
    public void OnPlayerInteract()
    {
        if (isFirstInteraction)
        {
            if (introDialogIndex < introDialog.Count)
            {
                if (currentDialogBubble != null)
                {
                    if (currentDialogBubble.isFullMessageVisible)
                    {
                        currentDialogBubble.ForceFadeMessage();
                    }
                    else
                    {
                        currentDialogBubble.ForceShowFullMessage();
                    }
                }

                if (currentDialogBubble == null || currentDialogBubble.isFading)
                {
                    if (introDialogIndex == introDialog.Count - 1)
                    {
                        CreateDialogBubble(introDialog[introDialogIndex], 0.07f, 2f, 1f, false, false);
                    }
                    else
                    {
                        CreateDialogBubble(introDialog[introDialogIndex], 0.07f, 100f, 1f, false, false);
                    }

                    introDialogIndex++;
                    if (introDialogIndex >= introDialog.Count)
                    {
                        // intro over, unlock player
                        isFirstInteraction = false;
                        InitialConversationOver.Invoke();
                    }
                }
            }
        }
        else if (isEndingConversation)
        {
            if (endingDialogIndex < endingDialog.Count)
            {
                if (currentDialogBubble != null)
                {
                    if (currentDialogBubble.isFullMessageVisible)
                    {
                        currentDialogBubble.ForceFadeMessage();
                    }
                    else
                    {
                        currentDialogBubble.ForceShowFullMessage();
                    }
                }

                if (currentDialogBubble == null || currentDialogBubble.isFading)
                {
                    CreateDialogBubble(endingDialog[endingDialogIndex], 0.07f, 100f, 1f, false, false);
                    endingDialogIndex++;
                }
            }
            else
            {
                EndingConversationOver.Invoke();

                EndingConversationOver.RemoveAllListeners();
            }
        }
        else
        {
            ShowRandomMidGameMessage();
        }
    }