From 0e33da7385d15b640589959639442dc18d52ab8f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Wed, 4 Sep 2024 23:18:06 +0200 Subject: [PATCH] Add quest requirements that are only mentioned in quest text --- Questionable/Data/QuestData.cs | 96 +++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/Questionable/Data/QuestData.cs b/Questionable/Data/QuestData.cs index c2a8aba3..7ba7f3cc 100644 --- a/Questionable/Data/QuestData.cs +++ b/Questionable/Data/QuestData.cs @@ -62,8 +62,100 @@ internal sealed class QuestData _quests = quests.ToDictionary(x => x.QuestId, x => x); // workaround because the game doesn't require completion of the CT questline through normal means - QuestInfo aTimeToEveryPurpose = (QuestInfo)_quests[new QuestId(425)]; - aTimeToEveryPurpose.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(new QuestId(495))); + AddPreviousQuest(new QuestId(425), new QuestId(495)); + + // "In order to undertake this quest" [...] + const int mountaintopDiplomacy = 1619; + const int inscrutableTastes = 2095; + const int tideGoesIn = 2490; + const int firstOfMany = 2534; + const int achtIaOrmhInn = 3320; + AddPreviousQuest(new QuestId(1480), new QuestId(2373)); + AddPreviousQuest(new QuestId(1717), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2088), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2062), new QuestId(1617)); + AddPreviousQuest(new QuestId(2063), new QuestId(mountaintopDiplomacy)); + AddPreviousQuest(new QuestId(2257), new QuestId(1655)); + AddPreviousQuest(new QuestId(2608), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(2600), new QuestId(2466)); + AddPreviousQuest(new QuestId(2622), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2624), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(2898), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2974), new QuestId(2491)); + AddPreviousQuest(new QuestId(2975), new QuestId(2630)); + AddPreviousQuest(new QuestId(2912), new QuestId(tideGoesIn)); + AddPreviousQuest(new QuestId(2914), new QuestId(2537)); + AddPreviousQuest(new QuestId(2919), new QuestId(2455)); + AddPreviousQuest(new QuestId(2952), new QuestId(2518)); + AddPreviousQuest(new QuestId(2904), new QuestId(2503)); + AddPreviousQuest(new QuestId(3038), new QuestId(firstOfMany)); + AddPreviousQuest(new QuestId(3087), new QuestId(100)); + AddPreviousQuest(new QuestId(3246), new QuestId(3314)); + AddPreviousQuest(new QuestId(3247), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3270), new QuestId(3333)); + AddPreviousQuest(new QuestId(3271), new QuestId(3634)); + AddPreviousQuest(new QuestId(3264), new QuestId(2247)); + AddPreviousQuest(new QuestId(3253), new QuestId(2247)); + AddPreviousQuest(new QuestId(3254), new QuestId(2537)); + AddPreviousQuest(new QuestId(3228), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3234), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3237), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3238), new QuestId(3634)); + AddPreviousQuest(new QuestId(3240), new QuestId(achtIaOrmhInn)); + AddPreviousQuest(new QuestId(3241), new QuestId(3648)); + AddPreviousQuest(new QuestId(3628), new QuestId(3301)); + AddPreviousQuest(new QuestId(3655), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(3771), new QuestId(495)); + AddPreviousQuest(new QuestId(4068), new QuestId(1658)); + AddPreviousQuest(new QuestId(4078), new QuestId(1583)); + AddPreviousQuest(new QuestId(4150), new QuestId(4417)); + AddPreviousQuest(new QuestId(4155), new QuestId(4383)); + AddPreviousQuest(new QuestId(4156), new QuestId(3326)); + AddPreviousQuest(new QuestId(4158), new QuestId(4434)); + AddPreviousQuest(new QuestId(4159), new QuestId(4464)); + AddPreviousQuest(new QuestId(4163), new QuestId(4398)); + AddPreviousQuest(new QuestId(4165), new QuestId(4438)); + AddPreviousQuest(new QuestId(4473), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(4650), new QuestId(2374)); + AddPreviousQuest(new QuestId(4662), new QuestId(3166)); + AddPreviousQuest(new QuestId(4761), new QuestId(4032)); + AddPreviousQuest(new QuestId(4812), new QuestId(4750)); + AddPreviousQuest(new QuestId(4851), new QuestId(2446)); + AddPreviousQuest(new QuestId(4856), new QuestId(1669)); + AddPreviousQuest(new QuestId(4857), new QuestId(2553)); + AddPreviousQuest(new QuestId(4979), new QuestId(4896)); + AddPreviousQuest(new QuestId(4980), new QuestId(4911)); + AddPreviousQuest(new QuestId(4985), new QuestId(4903)); + AddPreviousQuest(new QuestId(4987), new QuestId(4912)); + AddPreviousQuest(new QuestId(4988), new QuestId(4942)); + AddPreviousQuest(new QuestId(4992), new QuestId(4912)); + AddPreviousQuest(new QuestId(4999), new QuestId(4908)); + AddPreviousQuest(new QuestId(4966), new QuestId(inscrutableTastes)); + AddPreviousQuest(new QuestId(5000), new QuestId(4908)); + AddPreviousQuest(new QuestId(5001), new QuestId(4912)); + + // "In order to proceed with this quest" [...] + /* my little chocobo + AddPreviousQuest(new QuestId(1036), new QuestId()); + AddPreviousQuest(new QuestId(1663), new QuestId()); + AddPreviousQuest(new QuestId(3771), new QuestId()); + AddPreviousQuest(new QuestId(4521), new QuestId()); + */ + /* only applicable for fishers + const int spearfishing = 2922; + AddPreviousQuest(new QuestId(3811), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3812), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3817), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3818), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3821), new QuestId(spearfishing)); + AddPreviousQuest(new QuestId(3833), new QuestId(spearfishing)); + */ + } + + private void AddPreviousQuest(QuestId questToUpdate, QuestId requiredQuestId) + { + QuestInfo quest = (QuestInfo)_quests[questToUpdate]; + quest.AddPreviousQuest(new QuestInfo.PreviousQuestInfo(requiredQuestId)); } public IQuestInfo GetQuestInfo(ElementId elementId)