Пример #1
0
    //used for fetching casual dialogue for an NPC
    public CasualNPCDialogue getCasualDialogueForSpecificNPC(string NPCName)
    {
        CasualNPCDialogue output = (CasualNPCDialogue)ScriptableObject.CreateInstance("CasualNPCDialogue");

        TextAsset jsonTextFile = Resources.Load("DialogueLines/CasualDialogue/" + NPCName) as TextAsset;

        JsonUtility.FromJsonOverwrite(jsonTextFile.text, output);
        return(output);
    }
Пример #2
0
    public void interact()
    {
        if (PendingTalkToStoryAction != null)
        {
            PendingTalkToStoryAction.DynamicInvoke();
            PendingTalkToStoryAction = null;
        }

        if (casualDialogue == null)
        {
            casualDialogue = DialogueSystem.Main.getCasualDialogueForSpecificNPC(NPCName);
        }

        System.Random rnd = new System.Random();

        int casualPos = rnd.Next(0, casualDialogue.getTotalSizeOfDialogueLines());

        DialogueSystem.Main.DisplayText(casualDialogue.getDialogueLine(casualPos).speaker, casualDialogue.getDialogueLine(casualPos).text);
    }
Пример #3
0
 //saving casual dialogue to a file
 public void outputJSONFileFromCasualNPCDialogue(CasualNPCDialogue dialogue, string NPCNameWithCap)
 {
     File.WriteAllText(Application.dataPath + "/Resources/DialogueLines/CasualDialogue/" + NPCNameWithCap + ".txt",
                       JsonUtility.ToJson(dialogue));
 }
Пример #4
0
    public void interact()
    {
        if (activeQuest == null)
        {
            bool questAvaliable = false;
            gameObject.GetComponent <Animator>().SetTrigger("startTalking");

            while ((!questAvaliable) && (avaliableQuests.Count != 0))
            {
                if (player.GetComponent <QuestsManager>().checkIfQuestAlreadyCompleted(avaliableQuests[0].questName, avaliableQuests[0].questGiver))
                {
                    avaliableQuests.RemoveAt(0);
                }
                else
                {
                    questAvaliable = true;
                }
            }

            if ((avaliableQuests.Count > 0) || questAvaliable)
            {
                activeQuest   = avaliableQuests[0];
                questDialogue = DialogueSystem.Main.getQuestDialogueForSpecificNPC(NPCName).searchByQuestTitleAndNotCompleted(activeQuest.questName);

                for (int i = 0; i < questDialogue.getTotalSizeOfQuestIntroDialogue(); i++)
                {
                    DialogueSystem.Main.DisplayText(questDialogue.getQuestIntroDialogue(i).speaker, questDialogue.getQuestIntroDialogue(i).text);
                }

                DialogueSystem.Main.setActionAfterDialogueQueueFinished(endTalkingAnimation);

                //player acceptance of quest
                DialogueSystem.Main.playerConfirmQuest(NPCName, gameObject, questRejectMessage);
            }
            else
            {
                if (casualDialogue == null)
                {
                    casualDialogue = DialogueSystem.Main.getCasualDialogueForSpecificNPC(NPCName);
                }

                System.Random rnd = new System.Random();

                int casualPos = rnd.Next(0, casualDialogue.getTotalSizeOfDialogueLines());

                DialogueSystem.Main.DisplayText(casualDialogue.getDialogueLine(casualPos).speaker, casualDialogue.getDialogueLine(casualPos).text);
                DialogueSystem.Main.setActionAfterDialogueQueueFinished(endTalkingAnimation);
            }
        }
        else
        {
            if (player.GetComponent <QuestsManager>().checkQuestStatus(activeQuest.questGiver, activeQuest.questName))
            {
                Debug.Log("Quest Completed");

                for (int i = 0; i < questDialogue.getTotalSizeOfQuestCompletionDialogue(); i++)
                {
                    DialogueSystem.Main.DisplayText(questDialogue.getQuestCompletionDialogue(i).speaker, questDialogue.getQuestCompletionDialogue(i).text);
                }
                DialogueSystem.Main.setActionAfterDialogueQueueFinished(endTalkingAnimation);
                player.GetComponent <QuestsManager>().npcConfirmedAndFinishedQuest(activeQuest.questName, activeQuest.questGiver);
                activeQuest   = null;
                questDialogue = null;
            }
            else
            {
                Debug.Log("Quest Not Completed Yet");

                if (fillerPosition >= questDialogue.getTotalSizeOfQuestFillerDialogue())
                {
                    fillerPosition = 0;
                }

                DialogueSystem.Main.DisplayText(questDialogue.getQuestFillerDialogue(fillerPosition).speaker, questDialogue.getQuestFillerDialogue(fillerPosition).text);
                fillerPosition = fillerPosition + 1;
                DialogueSystem.Main.setActionAfterDialogueQueueFinished(endTalkingAnimation);
            }
        }

        if (!RequiresQuestToBeAccepted && PendingTalkToStoryAction != null)
        {
            PendingTalkToStoryAction.DynamicInvoke();
            PendingTalkToStoryAction = null;
        }
    }