Example #1
0
    private void LinkButtonToResponse(Button dialogueButton, PlayerDialogue playerDialogue, NPCDialogue NPCDialogue)
    {
        NPCQuestInteraction npcQuestInteraction = null;

        if (npcInteraction.GetType() == typeof(NPCQuestInteraction))
        {
            npcQuestInteraction = (NPCQuestInteraction)npcInteraction;
        }

        switch (playerDialogue.dialogueType)
        {
        case PlayerDialogueType.NextDialogue:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.PlayDialogue(NPCDialogue.nextDialogue); });
            break;

        case PlayerDialogueType.GetInfo:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.PlayDialogue(playerDialogue.nextDialogue); });
            break;

        case PlayerDialogueType.Accept:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be an Accept option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestAccepted();
                });
            }
            break;

        case PlayerDialogueType.Refuse:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be a Refuse option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestRefused();
                });
            }
            break;

        case PlayerDialogueType.CompleteQuest:
            if (!npcQuestInteraction)
            {
                Debug.Log("NPCQuestInteraction not found, there shouldn't be a CompleteQuest option");
            }
            else
            {
                dialogueButton.onClick.AddListener(delegate {
                    npcQuestInteraction.PlayDialogue(playerDialogue.nextDialogue);
                    npcQuestInteraction.QuestCompleted();
                });
            }
            break;

        case PlayerDialogueType.CloseDialogue:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.CloseDialogue(); });
            break;

        default:
            dialogueButton.onClick.AddListener(delegate { npcInteraction.CloseDialogue(); });
            break;
        }
    }