Skip to content

Commit 538fb36

Browse files
committed
easter
1 parent 518ae2c commit 538fb36

8 files changed

Lines changed: 335 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Fix to sylph daily 1270 Milkroot -K
1+
Hatching Tide 2026 quest (instance wip) -alydev

Directory.Build.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
3-
<Version>14.206.48.0</Version>
3+
<Version>14.206.49.0</Version>
44
</PropertyGroup>
55

66
<PropertyGroup>
Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
{
2+
"$schema": "https://qstxiv.github.io/schema/quest-v1.json",
3+
"Author": "alydev",
4+
"LastChecked": {
5+
"Username": "alydev",
6+
"Date": "2026-03-23"
7+
},
8+
"Comment": "This instance requires manual interaction currently.",
9+
"QuestSequence": [
10+
{
11+
"Sequence": 0,
12+
"Steps": [
13+
{
14+
"DataId": 1056053,
15+
"Position": {
16+
"X": -50.003845,
17+
"Y": 6.5,
18+
"Z": -89.76886
19+
},
20+
"TerritoryId": 133,
21+
"InteractionType": "AcceptQuest",
22+
"AetheryteShortcut": "Gridania",
23+
"AethernetShortcut": [
24+
"[Gridania] Aetheryte Plaza",
25+
"[Gridania] Mih Khetto's Amphitheatre"
26+
],
27+
"SkipConditions": {
28+
"AetheryteShortcutIf": {
29+
"InSameTerritory": true,
30+
"InTerritory": [
31+
133
32+
]
33+
}
34+
}
35+
}
36+
]
37+
},
38+
{
39+
"Sequence": 1,
40+
"Steps": [
41+
{
42+
"DataId": 1056054,
43+
"Position": {
44+
"X": 24.64331,
45+
"Y": -1.0772418,
46+
"Z": 58.121582
47+
},
48+
"TerritoryId": 132,
49+
"InteractionType": "Interact",
50+
"AethernetShortcut": [
51+
"[Gridania] Mih Khetto's Amphitheatre",
52+
"[Gridania] Aetheryte Plaza"
53+
],
54+
"SkipConditions": {
55+
"AethernetShortcutIf": {
56+
"InSameTerritory": true
57+
}
58+
}
59+
}
60+
]
61+
},
62+
{
63+
"Sequence": 2,
64+
"Steps": [
65+
{
66+
"DataId": 1056057,
67+
"Position": {
68+
"X": 25.497803,
69+
"Y": -8,
70+
"Z": 104.93628
71+
},
72+
"TerritoryId": 132,
73+
"InteractionType": "Interact",
74+
"CompletionQuestVariablesFlags": [
75+
null,
76+
null,
77+
null,
78+
null,
79+
null,
80+
{
81+
"High": 8
82+
}
83+
]
84+
},
85+
{
86+
"DataId": 1056059,
87+
"Position": {
88+
"X": 24.093994,
89+
"Y": -8,
90+
"Z": 119.40173
91+
},
92+
"TerritoryId": 132,
93+
"InteractionType": "Interact",
94+
"CompletionQuestVariablesFlags": [
95+
null,
96+
null,
97+
null,
98+
null,
99+
null,
100+
{
101+
"High": 2
102+
}
103+
]
104+
},
105+
{
106+
"DataId": 1056058,
107+
"Position": {
108+
"X": 33.920776,
109+
"Y": -8.20001,
110+
"Z": 125.56641
111+
},
112+
"TerritoryId": 132,
113+
"InteractionType": "Interact",
114+
"CompletionQuestVariablesFlags": [
115+
null,
116+
null,
117+
null,
118+
null,
119+
null,
120+
{
121+
"High": 4
122+
}
123+
]
124+
}
125+
]
126+
},
127+
{
128+
"Sequence": 3,
129+
"Steps": [
130+
{
131+
"DataId": 1056060,
132+
"Position": {
133+
"X": 24.673828,
134+
"Y": -1.0534565,
135+
"Z": 58.701416
136+
},
137+
"TerritoryId": 132,
138+
"InteractionType": "Interact"
139+
}
140+
]
141+
},
142+
{
143+
"Sequence": 4,
144+
"Steps": [
145+
{
146+
"DataId": 1056061,
147+
"Position": {
148+
"X": -41.21466,
149+
"Y": 10.918522,
150+
"Z": -232.25757
151+
},
152+
"TerritoryId": 133,
153+
"InteractionType": "Interact",
154+
"AethernetShortcut": [
155+
"[Gridania] Aetheryte Plaza",
156+
"[Gridania] Mih Khetto's Amphitheatre"
157+
]
158+
}
159+
]
160+
},
161+
{
162+
"Sequence": 5,
163+
"Steps": [
164+
{
165+
"DataId": 1056063,
166+
"Position": {
167+
"X": 126.51245,
168+
"Y": 12.991126,
169+
"Z": -92.484924
170+
},
171+
"TerritoryId": 133,
172+
"InteractionType": "Interact",
173+
"AethernetShortcut": [
174+
"[Gridania] Mih Khetto's Amphitheatre",
175+
"[Gridania] Leatherworkers' Guild & Shaded Bower"
176+
]
177+
}
178+
]
179+
},
180+
{
181+
"Sequence": 6,
182+
"Steps": [
183+
{
184+
"DataId": 1056065,
185+
"Position": {
186+
"X": -52.262207,
187+
"Y": 6.774475,
188+
"Z": -110.307495
189+
},
190+
"TerritoryId": 133,
191+
"InteractionType": "Interact",
192+
"AethernetShortcut": [
193+
"[Gridania] Leatherworkers' Guild & Shaded Bower",
194+
"[Gridania] Mih Khetto's Amphitheatre"
195+
]
196+
}
197+
]
198+
},
199+
{
200+
"Sequence": 7,
201+
"Steps": [
202+
{
203+
"DataId": 1056067,
204+
"Position": {
205+
"X": -54.551025,
206+
"Y": 6.851239,
207+
"Z": -110.948364
208+
},
209+
"TerritoryId": 133,
210+
"InteractionType": "Interact",
211+
"SkipConditions": {
212+
"StepIf": {
213+
"Never": true
214+
}
215+
},
216+
"DialogueChoices": [
217+
{
218+
"Type": "List",
219+
"Prompt": "TEXT_FESEST2026ENTRANCE_00960_Q1_000_000",
220+
"Answer": "TEXT_FESEST2026ENTRANCE_00960_A1_000_001",
221+
"ExcelSheet": "custom/009/FesEst2026Entrance_00960"
222+
}
223+
]
224+
},
225+
{
226+
"TerritoryId": 1336,
227+
"InteractionType": "WaitForManualProgress",
228+
"Comment": "This instance requires manual interaction currently."
229+
},
230+
{
231+
"TerritoryId": 1336,
232+
"InteractionType": "None",
233+
"Comment": "Stage 2"
234+
},
235+
{
236+
"TerritoryId": 1336,
237+
"InteractionType": "None",
238+
"Comment": "Stage 3"
239+
}
240+
]
241+
},
242+
{
243+
"Sequence": 8,
244+
"Steps": [
245+
{
246+
"DataId": 1056065,
247+
"Position": {
248+
"X": -52.262207,
249+
"Y": 6.774475,
250+
"Z": -110.307495
251+
},
252+
"TerritoryId": 133,
253+
"InteractionType": "Interact"
254+
}
255+
]
256+
},
257+
{
258+
"Sequence": 255,
259+
"Steps": [
260+
{
261+
"DataId": 1056056,
262+
"Position": {
263+
"X": -50.003845,
264+
"Y": 6.5,
265+
"Z": -89.7384
266+
},
267+
"TerritoryId": 133,
268+
"InteractionType": "CompleteQuest",
269+
"AetheryteShortcut": "Gridania",
270+
"AethernetShortcut": [
271+
"[Gridania] Aetheryte Plaza",
272+
"[Gridania] Mih Khetto's Amphitheatre"
273+
],
274+
"SkipConditions": {
275+
"AetheryteShortcutIf": {
276+
"InSameTerritory": true,
277+
"InTerritory": [
278+
133
279+
]
280+
}
281+
}
282+
}
283+
]
284+
}
285+
]
286+
}

QuestPaths/quest-v1.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,8 @@
13371337
"type": "string",
13381338
"description": "The action to use",
13391339
"enum": [
1340+
"Duty Action I",
1341+
"Duty Action II",
13401342
"Heavy Swing",
13411343
"Bootshine",
13421344
"Twin Snakes",
@@ -1368,10 +1370,10 @@
13681370
"Blue Gulal",
13691371
"Electric Flux",
13701372
"Hop-step",
1373+
"Hide",
13711374
"Fuma Shuriken",
13721375
"Katon",
13731376
"Raiton",
1374-
"Hide",
13751377
"Slug Shot",
13761378
"Bosom Brook",
13771379
"Souleater",
@@ -1383,8 +1385,9 @@
13831385
"Big Sneeze",
13841386
"Trickster's Treat",
13851387
"Treater's Trick",
1386-
"Duty Action I",
1387-
"Duty Action II",
1388+
"Pruning Pirouette",
1389+
"Roaring Eggscapade",
1390+
"The Spriganator",
13881391
"FSHCast",
13891392
"FSHQuit"
13901393
]

Questionable.Model/Questing/Converter/ActionConverter.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ public sealed class ActionConverter() : EnumConverter<EAction>(Values)
5555
{ EAction.BigSneeze, "Big Sneeze" },
5656
{ EAction.TrickstersTreat, "Trickster's Treat" },
5757
{ EAction.TreatersTrick, "Treater's Trick" },
58+
{ EAction.PruningPirouette, "Pruning Pirouette" },
59+
{ EAction.RoaringEggscapade, "Roaring Eggscapade" },
60+
{ EAction.TheSpriganator, "The Spriganator" },
5861
{ EAction.FSHCast, "FSHCast" },
5962
{ EAction.FSHQuit, "FSHQuit" }
6063
};

Questionable.Model/Questing/EAction.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ public enum EAction
6262
BigSneeze = 1765,
6363
TrickstersTreat = 44517,
6464
TreatersTrick = 44518,
65+
PruningPirouette = 45127,
66+
RoaringEggscapade = 42039,
67+
TheSpriganator = 42038,
6568

6669
Prospect = 227,
6770
CollectMiner = 240,

Questionable/Controller/GameUi/InteractionUiController.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,9 @@ private static bool IsMatch(string? actualAnswer, StringOrRegex? expectedAnswer)
565565
if (actualAnswer == null || expectedAnswer == null)
566566
return false;
567567

568-
return expectedAnswer.IsMatch(actualAnswer) || expectedAnswer.IsMatch(actualAnswer.Replace("\n", string.Empty));
568+
return expectedAnswer.IsMatch(actualAnswer) ||
569+
expectedAnswer.IsMatch(actualAnswer.Replace("\n", string.Empty)) ||
570+
expectedAnswer.IsMatch(actualAnswer.Split('\n')[0]);
569571
}
570572

571573
private int? HandleInstanceListChoice(string? actualPrompt)

0 commit comments

Comments
 (0)