public void SetUp() { QuestModel questMock = new QuestModel { id = MOCK_QUEST_ID, name = "name", description = "description", }; QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID }; QuestTask taskMock = new QuestTask { id = MOCK_TASK_ID, type = "single", payload = JsonUtility.ToJson(new TaskPayload_Single { isDone = false }) }; sectionMock.tasks = new [] { taskMock }; questMock.sections = new [] { sectionMock }; DataStore.i.Quests.quests.Set(new []
public void Populate(QuestModel newQuest) { quest = newQuest; QuestTask incompletedTask = quest.sections.FirstOrDefault(x => x.progress < 1)?.tasks.FirstOrDefault(x => x.progress < 1); jumpInButton.gameObject.SetActive(incompletedTask != null && !string.IsNullOrEmpty(incompletedTask?.coordinates)); jumpInDelegate = () => WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {incompletedTask?.coordinates}", }); readMoreDelegate = () => OnReadMoreClicked?.Invoke(quest.id); questName.text = quest.name; description.text = quest.description; SetThumbnail(quest.thumbnail_entry); pinQuestToggle.SetIsOnWithoutNotify(pinnedQuests.Contains(quest.id)); var questCompleted = quest.isCompleted; pinQuestToggle.gameObject.SetActive(!questCompleted); progressInTitle.fillAmount = quest.progress; completedProgressInTitle.gameObject.SetActive(questCompleted); completedMarkInTitle.gameObject.SetActive(questCompleted); }
public void OnBeginQuest() { ActiveTask = ToTask(StartTaskID); uiManager.ShowQuestDialog(this); OnBeginTask(ActiveTask); }
void OnAnswerChoose(object sender, DialogueEventArgs dea) { if (dea.AnswerId == 0 && dea.NodeId == 0) { QuestTask task = QuestManager.GetTask("quest1", 0); task.IsDone = !task.IsDone; } }
public void SetTaskDescription(QuestTask[] tasks) { for (int i = 0; i < txtTasks.Length; i++) { QuestTask task = tasks[i]; txtTasks[i].text = $"{task.Description} {task.ProgressFormatted}"; } }
public async Task <IActionResult> UpdateTask(int questId, int taskId, QuestTask task) { if (!IsMatchingTask(taskId, task) || !await IsQuestTask(questId, taskId)) { return(BadRequest()); } return(Ok(await _taskRepository.Update(task))); }
public static void SendTaskProgressed(QuestModel quest, QuestSection section, QuestTask task) { var data = new Dictionary <string, string>(); FillQuestData(data, quest); FillSectionData(data, section); FillTaskData(data, task); GenericAnalytics.SendAnalytic(TASK_PROGRESSED, data); }
public void FulfilledQuestCondition(QuestTask task) { foreach (KeyValuePair <QuestID, Quest> activeQuest in activeQuests) { if (activeQuest.Value.conditions [activeQuest.Value.progressIndex].ContainsKey(task)) { activeQuest.Value.conditions [activeQuest.Value.progressIndex] [task] = true; } } }
private static void FillTaskData(Dictionary <string, string> data, QuestTask task) { if (task == null) { return; } data.Add("task_id", task.id); data.Add("task_name", task.name); data.Add("task_progress", task.progress.ToString()); data.Add("task_status", task.status); }
private void StartNextTask() { if (tasks.Count == 0) { onComplete?.Invoke(); return; } Debug.Log("Quest :: StartNextTask -> " + gameObject.name); QuestTask questTask = tasks.Dequeue(); questTask.onComplete += StartNextTask; questTask.Activate(); }
internal void CreateTask(QuestTask task) { GameObject prefab = factory.GetPrefab(task.type); if (prefab == null) { Debug.LogError($"Type: {task.type} was not found in QuestTaskFactory"); return; } var taskUIEntry = Instantiate(prefab, tasksContainer).GetComponent <IQuestsPanelTask>(); taskUIEntry.Populate(task); }
public static QuestTask Load(GomObjectData obj, QuestStep step) { QuestTask task = new QuestTask(); task.Step = step; task.Id = (int)obj.ValueOrDefault <long>("qstTaskId", 0); task.CountMax = (int)obj.ValueOrDefault <long>("qstTaskCountMax", 0); task.ShowTracking = obj.ValueOrDefault <bool>("qstTaskShowTracking", false); task.ShowCount = obj.ValueOrDefault <bool>("qstTaskShowTrackingCount", false); task.Hook = QuestHookExtensions.ToQuestHook((string)obj.ValueOrDefault <string>("qstHook", null)); long stringId = 0; long.TryParse(obj.ValueOrDefault <string>("qstTaskStringid", null), out stringId); var txtLookup = step.Branch.Quest.TextLookup; if (txtLookup.ContainsKey(stringId)) { task.String = StringTable.TryGetString(step.Branch.Quest.Fqn, (GomObjectData)txtLookup[stringId]); } task.TaskQuests = new List <Quest>(); task.TaskNpcs = new List <Npc>(); var qstTaskObjects = (Dictionary <object, object>)obj.ValueOrDefault <Dictionary <object, object> >("qstTaskObjects", null); if (qstTaskObjects != null) { foreach (var taskObj in qstTaskObjects) { string fqn = (string)taskObj.Key; if (fqn.StartsWith("qst.")) { var qst = QuestLoader.Load(fqn); task.TaskQuests.Add(qst); } else if (fqn.StartsWith("npc.")) { var npc = NpcLoader.Load(fqn); task.TaskNpcs.Add(npc); } else if (fqn.StartsWith("plc.")) { } } } return(task); }
public async Task <IActionResult> CreateTask(int questId, QuestTask task) { var quest = await _questRepository.ReadById(questId); if (quest == null) { return(BadRequest()); } quest.Tasks.Add(task); await _questRepository.Update(quest); return(Ok(quest.Tasks.Max(t => t.Id))); }
public void SetUp() { QuestModel questMock = new QuestModel { id = MOCK_QUEST_ID, status = QuestsLiterals.Status.ON_GOING }; QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID }; QuestTask taskMock = new QuestTask { id = MOCK_TASK_ID }; sectionMock.tasks = new [] { taskMock }; questMock.sections = new [] { sectionMock }; DataStore.i.Quests.quests.Set(new []
public void SetUp() { QuestModel questMock = new QuestModel { id = MOCK_QUEST_ID }; QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID }; QuestTask taskMock = new QuestTask { id = MOCK_TASK_ID }; sectionMock.tasks = new [] { taskMock }; questMock.sections = new [] { sectionMock }; DataStore.i.Quests.quests.Set(new [] { (questMock.id, questMock) });
public void Populate(QuestTask task) { payload = JsonUtility.FromJson <TaskPayload_Single>(task.payload); jumpInButton.gameObject.SetActive(task.progress < 1 && !string.IsNullOrEmpty(task.coordinates)); jumpInDelegate = () => WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {task.coordinates}", }); taskName.text = task.name; status.isOn = payload.isDone; }
public TaskBuilder AddTask(QuestTask task) { task.TaskID = AllTasks.Count; AllTasks.Add(task); if (Start == null) { Start = task; _current = Start; return(this); } _current.NextTask = task; _current = task; return(this); }
public bool QuestTaskComplete(Quest quest, QuestTask task) { if (quest == null) { return(false); } if (!quest.IsStarted()) { return(false); } if (quest.CurrentTask() != task) { return(false); } QuestCurrentTaskComplete(quest); return(true); }
public ReturnResult(QuestTask task, Player player, string feedback = "") { Task = new { task.Content, task.Title }; Player = new { player.Name, player.Comment, player.HasFinished, player.TaskNumber, player.Token }; Feedback = feedback; }
public void Populate(QuestTask task) { payload = JsonUtility.FromJson <TaskPayload_Numeric>(task.payload); jumpInButton.gameObject.SetActive(task.progress < 1 && !string.IsNullOrEmpty(task.coordinates)); jumpInDelegate = () => WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {task.coordinates}", }); taskName.text = task.name; progressText.text = $"{payload.current}/{payload.end}"; status.isOn = task.progress >= 1; ongoingProgress.transform.localScale = new Vector3(task.progress, 1, 1); ongoingProgress.color = task.progress < 1 ? ongoinColor : completedcolor; }
public void Populate(QuestTask task) { payload = JsonUtility.FromJson <TaskPayload_Numeric>(task.payload); jumpInButton.gameObject.SetActive(task.progress < 1 && !string.IsNullOrEmpty(task.coordinates)); jumpInDelegate = () => WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {task.coordinates}", }); taskName.text = task.name; start.text = payload.start.ToString(); current.text = payload.current.ToString(); end.text = payload.end.ToString(); ongoingProgress.fillAmount = task.progress; }
internal void CreateTask(QuestModel quest, QuestTask task) { if (task.status == QuestsLiterals.Status.BLOCKED) { return; } GameObject prefab = factory.GetPrefab(task.type); if (prefab == null) { Debug.LogError($"Type: {task.type} was not found in QuestTaskFactory"); return; } var taskUIEntry = Instantiate(prefab, tasksContainer).GetComponent <IQuestsPanelTask>(); taskUIEntry.Populate(quest, task); }
public void Populate(QuestSection newSection) { sequenceState = SequenceState.NotStarted; ClearTaskRoutines(); section = newSection; QuestTask[] allTasks = section.tasks; titleContainer.SetActive(!string.IsNullOrEmpty(section.name)); sectionTitle.text = section.name; bool hasCompletedTasksToShow = false; List <string> entriesToRemove = taskEntries.Keys.ToList(); for (int index = 0; index < allTasks.Length; index++) { QuestTask task = allTasks[index]; //We only show completed quests that has been just completed to show the progress if (!taskEntries.ContainsKey(task.id) && (task.status == QuestsLiterals.Status.BLOCKED || (task.progress >= 1 && !task.justProgressed))) { continue; } entriesToRemove.Remove(task.id); if (!taskEntries.TryGetValue(task.id, out QuestsTrackerTask taskEntry)) { taskEntry = CreateTask(); //New tasks are invisible taskEntry.gameObject.SetActive(!task.justUnlocked); taskEntries.Add(task.id, taskEntry); } taskEntry.Populate(task); taskEntry.transform.SetSiblingIndex(index); } for (int index = 0; index < entriesToRemove.Count; index++) { DestroyTaskEntry(entriesToRemove[index]); } OnLayoutRebuildRequested?.Invoke(); }
private void PopulateSubTasks(QuestTask[] tasks) { bool bolded = false; for (int i = 0; i < tasks.Length; i++) { QuestTask task = tasks[i]; SubTaskDisplay display = subTaskDisplays[i]; display.description = task.TaskDescription; display.progress = task.ProgressString; display.cellphone = task.isCellphoneRequired; display.SetActive(true); if (!bolded && task.Progress != 1.0f) { bolded = true; display.SetBolded(true); } } }
public void QuestCurrentTaskComplete(Quest quest) { QuestTask l = quest.CurrentTask(); QuestTask t = quest.NextTask(); Debug.Log("Current: " + l.ToString() + " _ " + t); if (t == null && quest.Completed) { Debug.Log("Quest " + quest.QuestName + " is completed!!"); InProgress.Remove(quest); Completed.Add(quest); if (ActiveQuest == quest) { ActiveQuest = null; } } else { Debug.Log("Task \'" + l.Description + "\' for quest " + quest.QuestName + " is complete. Next, " + t.Description); } }
private Task GetNextTask(ApplicationDbContext db, bool isRight, int taskNumber, Progress current) { QuestTask nextTask = null; if (taskNumber == -1) { nextTask = db.QuestTask.SingleOrDefault(_ => _.Number == current.TaskNumber); } else if (isRight) { nextTask = db.QuestTask.FirstOrDefault(t => t.Id > taskNumber); } return(nextTask != null ? new Task { Number = nextTask.Number, Title = nextTask.Title, Content = nextTask.Content } : null); }
public void CompleteTask(QuestTask task) { if (task != ActiveTask) { return; } OnEndTask(task); int nextIndex = QuestTasks.IndexOf(task) + 1; // All tasks have been completed if (QuestTasks.Count == nextIndex) { ActiveTask = null; GameManager.GetInstance().QuestManager.CompleteQuest(this); } else { ActiveTask = QuestTasks[nextIndex]; OnBeginTask(ActiveTask); } }
void OnAnswerChoose(object sender, DialogueEventArgs dea) { if (dea.AnswerId == 0 && dea.NodeId == 0) { QuestManager.StartQuest("rk_quest"); QuestManager.ShowQuestNote(_QUEST, 0); QuestManager.ShowQuestNote(_QUEST, 1); QuestManager.ShowQuestNote(_QUEST, 2); QuestTask task = QuestManager.GetTask(_QUEST, 0); task.IsVisible = true; task.IsDone = true; } if (dea.AnswerId == 1 && dea.NodeId == 0) { QuestTask task = QuestManager.GetTask(_QUEST, 0); task.IsVisible = true; StateControl.currentStep = StateControl.QUEST_STEP.FIRST_TALK_FINISHED; UnityEngine.SceneManagement.SceneManager.LoadScene(1); } // if (dea.AnswerId == 2 && dea.NodeId == 0) // { // QuestTask task = QuestManager.GetTask(_QUEST, 1); // task.IsVisible = true; // StateControl.currentStep = StateControl.QUEST_STEP.SECOND_TALK_FINISHED; // UnityEngine.SceneManagement.SceneManager.LoadScene (1); // } // if (dea.AnswerId == 3 && dea.NodeId == 0) // { // QuestTask task = QuestManager.GetTask(_QUEST, 0); // task.IsVisible = true; // StateControl.currentStep = StateControl.QUEST_STEP.THIRD_TALK_FINISHED; // UnityEngine.SceneManagement.SceneManager.LoadScene (2); // // // } }
public void Populate(QuestTask task) { taskTitle.text = task.name; jumpInDelegate = () => WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {task.coordinates}", }); jumpInButton.gameObject.SetActive(task.progress < 1 && !string.IsNullOrEmpty(task.coordinates)); progressTarget = task.progress; switch (task.type) { case "single": SetProgressText(task.progress, 1); break; case "numeric": var payload = JsonUtility.FromJson <TaskPayload_Numeric>(task.payload); SetProgressText(payload.current, payload.end); break; } }
public void Populate(QuestModel newQuest) { quest = newQuest; QuestTask incompletedTask = quest.sections.FirstOrDefault(x => x.progress < 1)?.tasks.FirstOrDefault(x => x.progress < 1); jumpInButton.gameObject.SetActive(incompletedTask != null && !string.IsNullOrEmpty(incompletedTask?.coordinates)); jumpInDelegate = () => { if (incompletedTask == null) { return; } QuestsUIAnalytics.SendJumpInPressed(quest.id, incompletedTask.id, incompletedTask.coordinates, QuestsUIAnalytics.UIContext.QuestsLog); WebInterface.SendChatMessage(new ChatMessage { messageType = ChatMessage.Type.NONE, recipient = string.Empty, body = $"/goto {incompletedTask.coordinates}", }); }; readMoreDelegate = () => OnReadMoreClicked?.Invoke(quest.id); questName.text = quest.name; description.text = quest.description; SetThumbnail(quest.thumbnail_entry); pinQuestToggle.SetIsOnWithoutNotify(pinnedQuests.Contains(quest.id)); pinQuestToggle.gameObject.SetActive(!quest.isCompleted); progressInTitle.transform.localScale = new Vector3(quest.progress, 1, 1); completedProgressInTitle.gameObject.SetActive(quest.isCompleted); completedMarkInTitle.gameObject.SetActive(quest.isCompleted); SetRewards(quest.rewards?.Length ?? 0); }
public static XamlQuestTask CopyFrom(QuestTask task) { ItemQuestTask itemQuestTask = task as ItemQuestTask; if (itemQuestTask != null) { return new XamlItemQuestTask(itemQuestTask); } LocationQuestTask locationQuestTask = task as LocationQuestTask; if (locationQuestTask != null) { return new XamlLocationQuestTask(locationQuestTask); } MobQuestTask mobQuestTask = task as MobQuestTask; if (mobQuestTask != null) { return new XamlMobQuestTask(mobQuestTask); } DeathQuestTask deathQuestTask = task as DeathQuestTask; if (deathQuestTask != null) { return new XamlDeathQuestTask(deathQuestTask); } ReputationKillQuestTask reputationKillQuestTask = task as ReputationKillQuestTask; if (reputationKillQuestTask != null) { return new XamlReputationKillQuestTask(reputationKillQuestTask); } ReputationTargetQuestTask reputationTargetQuestTask = task as ReputationTargetQuestTask; if (reputationTargetQuestTask != null) { return new XamlReputationTargetQuestTask(reputationTargetQuestTask); } throw new NotImplementedException("Apparently I missed something."); }
protected XamlQuestTask(QuestTask task) { this.TaskType = task.TaskType; this.Name = task.Name; this.Description = task.Description; }