Add Kurenai unlock quests

This commit is contained in:
Liza 2024-08-19 22:57:12 +02:00
parent e31ae92d88
commit b07625c18f
Signed by: liza
GPG Key ID: 7199F8D727D55F67
8 changed files with 489 additions and 6 deletions

View File

@ -0,0 +1,75 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 322.1539,
"Y": -121.22571,
"Z": -314.2446
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Ruby Sea - Tamamizu"
},
{
"Position": {
"X": 22.288645,
"Y": -196.2301,
"Z": -155.5739
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"$": "Sui-no-Sato, NE outside"
},
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1023281,
"Position": {
"X": -9.597961,
"Y": -196.98103,
"Z": -82.383545
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 2705
}
]
}
]
}

View File

@ -0,0 +1,105 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1023282,
"Position": {
"X": -32.791687,
"Y": 0.5718597,
"Z": -554.7723
},
"TerritoryId": 613,
"InteractionType": "Interact",
"AetheryteShortcut": "Ruby Sea - Onokoro",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDZ309_02705_Q1_100_091",
"Answer": "TEXT_STMBDZ309_02705_A1_101_091"
}
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1023285,
"Position": {
"X": 119.493286,
"Y": 5.006782,
"Z": -862.6078
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDZ309_02705_Q2_100_151",
"Answer": "TEXT_STMBDZ309_02705_A2_101_151"
}
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 322.1539,
"Y": -121.22571,
"Z": -314.2446
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Ruby Sea - Tamamizu"
},
{
"Position": {
"X": 22.288645,
"Y": -196.2301,
"Z": -155.5739
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"$": "Sui-no-Sato, NE outside"
},
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 2706
}
]
}
]
}

View File

@ -0,0 +1,183 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1023287,
"Position": {
"X": 422.11023,
"Y": -98.96063,
"Z": -223.22424
},
"TerritoryId": 613,
"InteractionType": "Interact",
"AetheryteShortcut": "Ruby Sea - Tamamizu",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDZ310_02706_Q1_000_100",
"Answer": "TEXT_STMBDZ310_02706_A1_000_102"
}
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1023288,
"Position": {
"X": 350.515,
"Y": -120.581055,
"Z": -316.76202
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDZ310_02706_Q2_000_160",
"Answer": "TEXT_STMBDZ310_02706_A2_000_161"
},
{
"Type": "List",
"Prompt": "TEXT_STMBDZ310_02706_Q3_000_200",
"Answer": "TEXT_STMBDZ310_02706_A3_000_201"
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 322.1539,
"Y": -121.22571,
"Z": -314.2446
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
"X": 198.4342,
"Y": -162.28119,
"Z": 115.91883
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"$": "Exile, outside",
"Fly": true
},
{
"DataId": 1023290,
"Position": {
"X": 222.33911,
"Y": -165.19557,
"Z": 137.89575
},
"TerritoryId": 613,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2008809,
"Position": {
"X": 163.43933,
"Y": -172.01501,
"Z": 262.0736
},
"TerritoryId": 613,
"InteractionType": "Combat",
"EnemySpawnType": "AfterItemUse",
"ItemId": 2002332,
"KillEnemyDataIds": [
7824
],
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1023290,
"Position": {
"X": 222.33911,
"Y": -165.19557,
"Z": 137.89575
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 200.64441,
"Y": -165.55836,
"Z": 116.97804
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
"X": -96.41638,
"Y": -199.01863,
"Z": -68.85027
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"$": "Sui-no-Sato, SW outside",
"Fly": true
},
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest",
"NextQuestId": 2707
}
]
}
]
}

View File

@ -0,0 +1,61 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1023280,
"Position": {
"X": -62.790894,
"Y": -198.96509,
"Z": -64.34735
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1023281,
"Position": {
"X": -9.597961,
"Y": -196.98103,
"Z": -82.383545
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1023291,
"Position": {
"X": 8.46875,
"Y": -198.34206,
"Z": -157.15265
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_STMBDZ311_02707_Q1_000_160",
"Answer": "TEXT_STMBDZ311_02707_A1_000_162"
}
],
"NextQuestId": 3139
}
]
}
]
}

View File

@ -0,0 +1,42 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1025965,
"Position": {
"X": -52.0791,
"Y": -2.9,
"Z": -64.4389
},
"TerritoryId": 628,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] Shiokaze Hostelry"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1025878,
"Position": {
"X": 343.984,
"Y": -120.32947,
"Z": -306.0197
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ruby Sea - Tamamizu"
}
]
}
]
}

View File

@ -5,6 +5,17 @@
{ {
"Sequence": 0, "Sequence": 0,
"Steps": [ "Steps": [
{
"Position": {
"X": 344.12048,
"Y": -120.3312,
"Z": -303.85397
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Ruby Sea - Tamamizu",
"RequiredGatheredItems": []
},
{ {
"DataId": 1025878, "DataId": 1025878,
"Position": { "Position": {
@ -14,8 +25,6 @@
}, },
"TerritoryId": 613, "TerritoryId": 613,
"InteractionType": "Interact", "InteractionType": "Interact",
"RequiredGatheredItems": [],
"AetheryteShortcut": "Ruby Sea - Tamamizu",
"DialogueChoices": [ "DialogueChoices": [
{ {
"Type": "List", "Type": "List",

View File

@ -19,16 +19,18 @@ internal static class AetheryteShortcut
{ {
internal sealed class Factory( internal sealed class Factory(
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
AetheryteData aetheryteData) : SimpleTaskFactory AetheryteData aetheryteData) : ITaskFactory
{ {
public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step) public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{ {
if (step.AetheryteShortcut == null) if (step.AetheryteShortcut == null)
return null; yield break;
return serviceProvider.GetRequiredService<UseAetheryteShortcut>() yield return serviceProvider.GetRequiredService<UseAetheryteShortcut>()
.With(step, quest.Id, step.AetheryteShortcut.Value, .With(step, quest.Id, step.AetheryteShortcut.Value,
aetheryteData.TerritoryIds[step.AetheryteShortcut.Value]); aetheryteData.TerritoryIds[step.AetheryteShortcut.Value]);
yield return serviceProvider.GetRequiredService<WaitAtEnd.WaitDelay>()
.With(TimeSpan.FromSeconds(0.5));
} }
} }

View File

@ -144,6 +144,12 @@ internal static class WaitAtEnd
internal sealed class WaitDelay() : AbstractDelayedTask(TimeSpan.FromSeconds(1)) internal sealed class WaitDelay() : AbstractDelayedTask(TimeSpan.FromSeconds(1))
{ {
public ITask With(TimeSpan delay)
{
Delay = delay;
return this;
}
protected override bool StartInternal() => true; protected override bool StartInternal() => true;
public override string ToString() => $"Wait(seconds: {Delay.TotalSeconds})"; public override string ToString() => $"Wait(seconds: {Delay.TotalSeconds})";