public Quest(Knowledge.ResearchRoute rr, byte subID) { subIndex = subID; int stepsCount = 1; switch (rr) { case Knowledge.ResearchRoute.Foundation: type = QuestType.Foundation; break; case Knowledge.ResearchRoute.CloudWhale: type = QuestType.CloudWhale; break; case Knowledge.ResearchRoute.Engine: type = QuestType.Engine; break; case Knowledge.ResearchRoute.Pipes: type = QuestType.Pipe; break; case Knowledge.ResearchRoute.Crystal: type = QuestType.Crystal; break; case Knowledge.ResearchRoute.Monument: type = QuestType.Monument; break; case Knowledge.ResearchRoute.Pollen: type = QuestType.Pollen; break; case Knowledge.ResearchRoute.Blossom: type = QuestType.Blossom; break; } steps = new string[stepsCount]; stepsAddInfo = new string[stepsCount]; stepsFinished = new bool[stepsCount]; Localization.FillQuestData(this); }
public Quest FindQuest(Knowledge.ResearchRoute rr, byte subIndex) { Quest q; QuestType qt = QuestType.Total; switch (rr) { case Knowledge.ResearchRoute.Foundation: qt = QuestType.Foundation; break; case Knowledge.ResearchRoute.CloudWhale: qt = QuestType.CloudWhale; break; case Knowledge.ResearchRoute.Engine: qt = QuestType.Engine; break; case Knowledge.ResearchRoute.Pipes: qt = QuestType.Pipe; break; case Knowledge.ResearchRoute.Crystal: qt = QuestType.Crystal; break; case Knowledge.ResearchRoute.Monument: qt = QuestType.Monument; break; case Knowledge.ResearchRoute.Blossom: qt = QuestType.Blossom; break; case Knowledge.ResearchRoute.Pollen: qt = QuestType.Pollen; break; } for (int i = 0; i < activeQuests.Length; i++) { q = activeQuests[i]; if (q != Quest.NoQuest) { if (q.type == qt && q.subIndex == subIndex) { return(q); } } } return(null); }
public void FindAndCompleteQuest(Knowledge.ResearchRoute rr, byte subIndex) { var q = FindQuest(rr, subIndex); q?.MakeQuestCompleted(); }
public static void GiveRoutePoints(Knowledge.ResearchRoute rr, int count) { Knowledge.GetCurrent()?.AddResearchPoints(rr, count); }