public void BuildGUIForDetailedQuest(string questName) { questInDetailPanel.SetActive(false); NPC_Quest_Scriptable_Object quest = currentQuests.Find(x => x.name == questName); if (quest != null) { titleDetailedQuest.text = quest.name; briefDetailedQuest.text = quest.brief; descriptionDetailedQuest.text = quest.description; foreach (NPC_Quest_Objective_Scriptable_Object objective in quest.objectives) { if (objective.isComplete) { objectivesDetailedQuest.text = objective.description + " (1/1)"; } else { objectivesDetailedQuest.text = objective.description + " (0/1)"; } } foreach (NPC_Quest_Reward_Scriptable_Object reward in quest.rewards) { rewardsDetailedQuest.text = reward.quantity + " " + reward.name; } } questInDetailPanel.SetActive(true); }
public void AddNewQuest(NPC_Quest_Scriptable_Object quest) { GameObject questItem = Instantiate(questItemPrefab); Text[] texts = questItem.GetComponentsInChildren <Text>(); texts[0].text = quest.name; texts[1].text = quest.brief; questItem.transform.SetParent(questListGUI.transform); foreach (NPC_Quest_Objective_Scriptable_Object obj in quest.objectives) { obj.isComplete = false; } currentQuests.Add(quest); }
public void ValidateObjectiveOnQuest(string questName, string objectiveName) { NPC_Quest_Scriptable_Object quest = GetQuestByName(questName); if (quest != null) { NPC_Quest_Objective_Scriptable_Object objective = quest.objectives.Find(x => x.description == objectiveName); if (objective != null) { objective.isComplete = true; bool allComplete = true; foreach (NPC_Quest_Objective_Scriptable_Object obj in quest.objectives) { if (obj.isComplete == false) { allComplete = false; } } if (allComplete && !quest.needValidation) { RemoveQuestFromQuestList(quest.name); questSucceedText.text = "Félicitation\nVous venez de terminer la quête\n\"" + quest.name + "\""; questSucceedText.gameObject.SetActive(true); questSucceedText.CrossFadeAlpha(0, 0.0f, false); questSucceedText.CrossFadeAlpha(1, 1.0f, false); StartCoroutine(FadeOutTextQuestSucceed()); foreach (NPC_Quest_Reward_Scriptable_Object reward in quest.rewards) { reward.Claim(player); } if (quest.name == "Récupérer l'arceau") { pool.GetComponent <Pool.Main>().hoopFound(); } } } } }
public void SetCurrentSpeakerTopic(int topicIndex) { NPC_Discussion_Scriptable_Object nextDiscussion = currentDiscussion.relatedDiscussions[topicIndex]; currentDiscussion = nextDiscussion; if (currentDiscussion.isQuestAttached && !currentDiscussion.isFinalQuestDiscussion) { if (currentSpeaker.Npc.hasAlreadyProposeQuest) { NPC_Discussion_Quest_Scriptable_Object asQuest = (NPC_Discussion_Quest_Scriptable_Object)currentDiscussion; currentDiscussion = asQuest.questSeen; } else { NPC_Discussion_Quest_Scriptable_Object asQuest = (NPC_Discussion_Quest_Scriptable_Object)currentDiscussion; currentDiscussion = asQuest.questUnseen; currentSpeaker.Npc.hasAlreadyProposeQuest = true; } } currentDiscussionContentIndex = 0; topicGUI.SetActive(false); discussionGUI.SetActive(false); if (currentDiscussion.content.Count == 0 && currentDiscussion.relatedDiscussions.Count == 0) { if (currentDiscussion.isQuestAttached) { NPC_Quest_Scriptable_Object quest = currentSpeaker.Quest; player.AcceptQuest(quest); } EndOfDiscussion(); } else { BuildDiscussionArea(); } }
public void AcceptQuest(NPC_Quest_Scriptable_Object quest) { quests.AddNewQuest(quest); }