Compare commits

...

39 Commits

Author SHA1 Message Date
7734692b0f
Throw an exception if using aethernet doesn't work and the destination is in another territory 2025-01-16 22:55:22 +01:00
16b62316c5
Leave TextAdvance active if waiting for a new quest sequence from the server 2025-01-13 18:38:53 +01:00
a2a36c5156
Version bump 2025-01-12 17:59:10 +01:00
10b8c1ddc2
Set minimum StopDistance to navmesh step size (0.25) 2025-01-12 11:35:46 +01:00
76e8ac4995
Set minimum StopDistance to navmesh step size (0.25) 2025-01-12 02:40:09 +01:00
2ffedfa72c
Specify loop count for AD 2025-01-12 02:36:17 +01:00
a111a4f75b
Optimize combat for overworld enemies 2025-01-12 02:28:31 +01:00
97cbeada2a
Minor Azys Lla adjustments 2025-01-12 02:13:23 +01:00
a1d02cceea Merge pull request '[HW][Side Quests][Azys Lla] 14/14 remaining Azys Lla side quests' (#127) from goatzone/Questionable:azys-lla into master
Reviewed-on: #127
2025-01-11 16:09:44 +00:00
ad76ccf057
Make 'CompleteQuest' work with ItemId → UseItem 2025-01-11 17:00:04 +01:00
108d103fd8
Add some extra flight steps to avoid vnav issues; fix bad NextQuestId 2025-01-11 16:54:55 +01:00
eeebebb28c Merge pull request 'New set of sidequests for Triple Triad NPCs' (#125) from Thaksin/Questionable:master into master
Reviewed-on: #125
2025-01-11 14:29:34 +00:00
8200342f2f
Update icon for journal 2025-01-10 17:01:37 +01:00
93e6b6ec02
+1992 2025-01-10 15:42:38 +00:00
ec813ce9f4
+1991 2025-01-10 15:20:27 +00:00
7fe5acbaca
+1990 2025-01-10 15:07:11 +00:00
250cb44f48
+1989 2025-01-10 14:30:20 +00:00
8d4b2320fb
+1988 2025-01-10 13:58:21 +00:00
880082da0e
+1987 2025-01-10 13:35:19 +00:00
9c5fd2d3fe
+1986 2025-01-09 20:50:18 +00:00
4dc89d8ed3
GatheringPathRenderer: minor updates 2025-01-09 19:48:27 +01:00
1773afea46
GatheringPathRenderer: minor updates 2025-01-09 19:34:16 +01:00
8d18b24352
+1985 2025-01-09 16:52:15 +00:00
6e19630e60
+1984 2025-01-09 11:39:45 +00:00
8d64475f0a
+1983 2025-01-09 06:34:20 +00:00
ba5975e6ff
+1982 2025-01-09 06:15:46 +00:00
b917cd4e90
+1981 2025-01-09 06:03:06 +00:00
3889fbfb69
+1980, de-rust 1979 2025-01-09 05:51:09 +00:00
1f4dc134ef
Add third Nitowikwe quest 2025-01-08 21:49:03 +01:00
2cfc5256b9
Add second Nitowikwe quest 2025-01-08 21:38:34 +01:00
65df686329
+1979 2025-01-08 14:02:05 +00:00
90f92b9aa9
Add some Thavnair side quests 2025-01-05 15:51:20 +01:00
69e05722c8
Rework IsMainScenarioQuest to be less reliant on actual journal ids 2025-01-05 14:26:51 +01:00
563a11d47d
Override journal genre for some Radz-at-Han/Thavnair side quests 2025-01-05 14:23:38 +01:00
Gwen
2503d1897f
New set of sidequests for Triple Triad NPCs 2025-01-04 17:22:24 +01:00
459b832ef2
Update logic for which allied society quests can be accepted 2025-01-04 16:48:13 +01:00
25130dcb7c
Add some Moogle quests 2025-01-04 16:10:01 +01:00
ee1d6ce15b
Fix Slug Shot action id + use adjusted action ids for actually executing actions 2025-01-04 15:30:00 +01:00
35649e8663
Add a slight delay in 'The Queen's Tour' for a waypoint where NPCs move weirdly 2025-01-03 19:32:47 +01:00
76 changed files with 5149 additions and 87 deletions

View File

@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<Version>4.13</Version>
<PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
<Version>4.14</Version>
</PropertyGroup>
</Project>

1
GatheringPathRenderer/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/dist

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Target Name="PackagePluginDebug" AfterTargets="Build" Condition="'$(Configuration)' == 'Debug'">
<DalamudPackager
ProjectDir="$(ProjectDir)"
OutputPath="$(OutputPath)"
AssemblyName="$(AssemblyName)"
MakeZip="false"
VersionComponents="2"/>
</Target>
<Target Name="PackagePlugin" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<DalamudPackager
ProjectDir="$(ProjectDir)"
OutputPath="$(OutputPath)"
AssemblyName="$(AssemblyName)"
MakeZip="true"
VersionComponents="2"
Exclude="GatheringPathRenderer.deps.json;ECommons.xml;ECommons.pdb;LLib.pdb"/>
</Target>
</Project>

View File

@ -1,4 +1,11 @@
<Project Sdk="Dalamud.NET.Sdk/11.0.0">
<PropertyGroup>
<Version>0.1</Version>
<OutputPath>dist</OutputPath>
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
<Platforms>x64</Platforms>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\LLib\LLib.csproj" />
<ProjectReference Include="..\Questionable.Model\Questionable.Model.csproj" />
@ -6,4 +13,5 @@
</ItemGroup>
<Import Project="..\LLib\LLib.targets"/>
<Import Project="..\LLib\RenameZip.targets"/>
</Project>

View File

@ -1,6 +1,7 @@
{
"Name": "GatheringPathRenderer",
"Author": "Liza Carvelli",
"Punchline": "dev only plugin: Renders gathering location.",
"Description": "dev only plugin: Renders gathering location (without ECommons polluting the entire normal project)."
"Punchline": "[Questionable dev plugin]: Renders gathering location.",
"Description": "[Questionable dev plugin]: Renders gathering location using Splatoon.",
"RepoUrl": "https://git.carvel.li/liza/Questionable/src/branch/master/GatheringPathRenderer"
}

View File

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Text.Encodings.Web;
@ -17,11 +18,11 @@ using ECommons.Schedulers;
using ECommons.SplatoonAPI;
using GatheringPathRenderer.Windows;
using LLib.GameData;
using Questionable.Model;
using Questionable.Model.Gathering;
namespace GatheringPathRenderer;
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
public sealed class RendererPlugin : IDalamudPlugin
{
private const long OnTerritoryChange = -2;
@ -56,8 +57,10 @@ public sealed class RendererPlugin : IDalamudPlugin
_editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui,
configuration);
_editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable)
var configWindow = new ConfigWindow(pluginInterface, configuration);
_editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable, configWindow)
{ IsOpen = true };
_windowSystem.AddWindow(configWindow);
_windowSystem.AddWindow(_editorWindow);
_currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer;
@ -78,6 +81,7 @@ public sealed class RendererPlugin : IDalamudPlugin
{
get
{
#if DEBUG
DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent?.Parent;
if (solutionDirectory != null)
{
@ -88,6 +92,12 @@ public sealed class RendererPlugin : IDalamudPlugin
}
throw new Exception("Unable to resolve project path");
#else
var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs");
return allPluginsDirectory
.CreateSubdirectory("Questionable")
.CreateSubdirectory("GatheringPaths");
#endif
}
}
@ -103,12 +113,18 @@ public sealed class RendererPlugin : IDalamudPlugin
try
{
foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values)
#if DEBUG
foreach (var expansionFolder in Questionable.Model.ExpansionData.ExpansionFolders.Values)
LoadFromDirectory(
new DirectoryInfo(Path.Combine(PathsDirectory.FullName, expansionFolder)));
_pluginLog.Information(
$"Loaded {_gatheringLocations.Count} gathering root locations from project directory");
#else
LoadFromDirectory(PathsDirectory);
_pluginLog.Information(
$"Loaded {_gatheringLocations.Count} gathering root locations from {PathsDirectory.FullName} directory");
#endif
}
catch (Exception e)
{

View File

@ -0,0 +1,33 @@
using Dalamud.Interface.Windowing;
using Dalamud.Plugin;
using ImGuiNET;
namespace GatheringPathRenderer.Windows;
internal sealed class ConfigWindow : Window
{
private readonly IDalamudPluginInterface _pluginInterface;
private readonly Configuration _configuration;
public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration)
: base("Gathering Path Config", ImGuiWindowFlags.AlwaysAutoResize)
{
_pluginInterface = pluginInterface;
_configuration = configuration;
AllowPinning = false;
AllowClickthrough = false;
}
public override void Draw()
{
string authorName = _configuration.AuthorName;
if (ImGui.InputText("Author name for new files", ref authorName, 256))
{
_configuration.AuthorName = authorName;
Save();
}
}
private void Save() => _pluginInterface.SavePluginConfig(_configuration);
}

View File

@ -6,6 +6,7 @@ using System.Numerics;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Interface;
using Dalamud.Interface.Colors;
using Dalamud.Interface.Windowing;
using Dalamud.Plugin.Services;
@ -32,8 +33,8 @@ internal sealed class EditorWindow : Window
_targetLocation;
public EditorWindow(RendererPlugin plugin, EditorCommands editorCommands, IDataManager dataManager,
ITargetManager targetManager, IClientState clientState, IObjectTable objectTable)
: base("Gathering Path Editor###QuestionableGatheringPathEditor",
ITargetManager targetManager, IClientState clientState, IObjectTable objectTable, ConfigWindow configWindow)
: base($"Gathering Path Editor {typeof(EditorWindow).Assembly.GetName().Version!.ToString(2)}###QuestionableGatheringPathEditor",
ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.AlwaysAutoResize)
{
_plugin = plugin;
@ -48,6 +49,20 @@ internal sealed class EditorWindow : Window
MinimumSize = new Vector2(300, 100),
};
TitleBarButtons.Add(new TitleBarButton
{
Icon = FontAwesomeIcon.Cog,
IconOffset = new Vector2(1.5f, 1),
Click = _ => configWindow.IsOpen = true,
Priority = int.MinValue,
ShowTooltip = () =>
{
ImGui.BeginTooltip();
ImGui.Text("Open Configuration");
ImGui.EndTooltip();
}
});
RespectCloseHotkey = false;
ShowCloseButton = false;
AllowPinning = false;

View File

@ -0,0 +1,138 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
"Author": "liza",
"Steps": [
{
"TerritoryId": 1190,
"InteractionType": "None"
}
],
"Groups": [
{
"Nodes": [
{
"DataId": 34920,
"Locations": [
{
"Position": {
"X": 192.6021,
"Y": 12.31054,
"Z": 631.2545
}
},
{
"Position": {
"X": 194.8373,
"Y": 12.50387,
"Z": 646.5401
}
},
{
"Position": {
"X": 180.8447,
"Y": 12.43262,
"Z": 610.7131
}
}
]
},
{
"DataId": 34919,
"Locations": [
{
"Position": {
"X": 186.171,
"Y": 12.54104,
"Z": 634.9042
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34917,
"Locations": [
{
"Position": {
"X": 39.45634,
"Y": -0.06042051,
"Z": 502.3853
}
}
]
},
{
"DataId": 34918,
"Locations": [
{
"Position": {
"X": 46.03248,
"Y": -0.7049216,
"Z": 491.6059
}
},
{
"Position": {
"X": 36.15481,
"Y": -0.0501074,
"Z": 505.9388
}
},
{
"Position": {
"X": 24.72226,
"Y": 0.5922582,
"Z": 528.0809
}
}
]
}
]
},
{
"Nodes": [
{
"DataId": 34922,
"Locations": [
{
"Position": {
"X": 2.302937,
"Y": -4.586716,
"Z": 687.4797
}
},
{
"Position": {
"X": 30.02284,
"Y": -2.447479,
"Z": 704.4326
}
},
{
"Position": {
"X": 41.59287,
"Y": -0.8454803,
"Z": 692.0099
}
}
]
},
{
"DataId": 34921,
"Locations": [
{
"Position": {
"X": 18.47237,
"Y": -2.987581,
"Z": 690.8011
}
}
]
}
]
}
]
}

View File

@ -57,7 +57,7 @@
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"StopDistance": 0.25,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
@ -83,7 +83,7 @@
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"StopDistance": 0.25,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
@ -109,7 +109,7 @@
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"StopDistance": 0.25,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -18,6 +17,125 @@
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1017351,
"Position": {
"X": -74.87604,
"Y": -8.172172,
"Z": 158.70898
},
"TerritoryId": 400,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 400,
"InteractionType": "Craft",
"ItemId": 15725,
"ItemCount": 3
},
{
"DataId": 1017352,
"Position": {
"X": -56.809387,
"Y": -8.866012,
"Z": 161.8219
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1017353,
"Position": {
"X": -33.554626,
"Y": -8.866012,
"Z": 163.43933
},
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
"X": -104.788086,
"Y": -8.655561,
"Z": 194.60593
},
"TerritoryId": 400,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 1017354,
"Position": {
"X": -104.41754,
"Y": -8.6555605,
"Z": 193.16394
},
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1017355,
"Position": {
"X": -110.97894,
"Y": -8.866015,
"Z": 247.94385
},
"TerritoryId": 400,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
@ -30,21 +148,7 @@
},
"TerritoryId": 400,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "The Churning Mists - Zenith",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": -335.56116,
"Y": 59.003433,
"Z": 313.98486
},
"TerritoryId": 400,
"MaximumDistance": 50
}
}
}
"Fly": true
}
]
}

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -18,6 +17,59 @@
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1017406,
"Position": {
"X": -95.04846,
"Y": 79.8345,
"Z": -301.80823
},
"TerritoryId": 400,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1017407,
"Position": {
"X": -128.34369,
"Y": 125.92322,
"Z": -314.6258
},
"TerritoryId": 400,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"TerritoryId": 400,
"InteractionType": "Craft",
"ItemId": 15736,
"ItemCount": 3
},
{
"DataId": 1017408,
"Position": {
"X": -108.59851,
"Y": 122.442116,
"Z": -318.31848
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -18,6 +17,177 @@
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1017471,
"Position": {
"X": -391.0735,
"Y": 59.9946,
"Z": 303.1814
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -255.2606,
"Y": -24.29513,
"Z": 737.67456
},
"TerritoryId": 400,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1017409,
"Position": {
"X": -254.71893,
"Y": -24.295156,
"Z": 738.5519
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2007244,
"Position": {
"X": -658.9609,
"Y": 94.25488,
"Z": -417.07483
},
"TerritoryId": 400,
"InteractionType": "Interact",
"AetheryteShortcut": "The Churning Mists - Zenith",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
"X": -673.58887,
"Y": 93.64293,
"Z": -506.5746
},
"TerritoryId": 400,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 2007245,
"Position": {
"X": -671.1376,
"Y": 93.91919,
"Z": -507.49982
},
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2007246,
"Position": {
"X": -813.1685,
"Y": 94.865234,
"Z": -457.3282
},
"TerritoryId": 400,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -255.2606,
"Y": -24.29513,
"Z": 737.67456
},
"TerritoryId": 400,
"InteractionType": "WalkTo",
"AetheryteShortcut": "The Churning Mists - Zenith",
"Fly": true
},
{
"DataId": 1017409,
"Position": {
"X": -254.71893,
"Y": -24.295156,
"Z": 738.5519
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"TerritoryId": 400,
"InteractionType": "Craft",
"ItemId": 15737,
"ItemCount": 1
},
{
"DataId": 1017410,
"Position": {
"X": -246.2044,
"Y": -24.295149,
"Z": 760.7384
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [

View File

@ -1,7 +1,6 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -18,6 +17,72 @@
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1017470,
"Position": {
"X": -353.53632,
"Y": 60.896175,
"Z": 299.61084
},
"TerritoryId": 400,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2007264,
"Position": {
"X": 508.32373,
"Y": -0.77819824,
"Z": -360.49445
},
"TerritoryId": 400,
"InteractionType": "Action",
"Action": "Roar",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2007265,
"Position": {
"X": 613.39734,
"Y": -11.917358,
"Z": -335.6222
},
"TerritoryId": 400,
"InteractionType": "Action",
"Action": "Roar",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2007266,
"Position": {
"X": 554.0398,
"Y": 50.644653,
"Z": -393.72858
},
"TerritoryId": 400,
"InteractionType": "Action",
"Action": "Roar",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [

View File

@ -0,0 +1,61 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012145,
"Position": {
"X": -607.7516,
"Y": -176.4502,
"Z": -527.5502
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -441.42657,
"Y": -167.25401,
"Z": -432.4462
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4093,
"MinimumKillCount": 5
}
],
"Fly": true,
"$": "5 in close range here, so if any dead it might be a little slower.",
"$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV."
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012145,
"Position": {
"X": -607.7516,
"Y": -176.4502,
"Z": -527.5502
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012146,
"Position": {
"X": -643.76294,
"Y": -176.4502,
"Z": -527.3976
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -439.6144,
"Y": -186.3405,
"Z": -617.2911
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4092,
"MinimumKillCount": 5
}
],
"Fly": true,
"$": "by starting here we can guarantee a more sane straightline progression instead of starting in the middle, going all the way to one side, then running all the way to the other side."
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012146,
"Position": {
"X": -643.76294,
"Y": -176.4502,
"Z": -527.3976
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Azys Lla - Helix"
}
]
}
]
}

View File

@ -0,0 +1,55 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012147,
"Position": {
"X": -426.627,
"Y": -162.1281,
"Z": -328.6031
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -528.74396,
"Y": -143.65883,
"Z": -580.686
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [4503],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012147,
"Position": {
"X": -426.627,
"Y": -162.1281,
"Z": -328.6031
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012148,
"Position": {
"X": -173.2663,
"Y": -162.03395,
"Z": -510.39905
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -189.43037,
"Y": -160.1837,
"Z": -499.3027
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4091,
"MinimumKillCount": 3,
"$": "Slay clockwork paladins."
},
{
"DataId": 4090,
"MinimumKillCount": 3,
"$": "Slay clockwork engineers."
}
],
"$": "they're all around so we can just start here. possible issue with a FATE spawning here, YMMV."
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012148,
"Position": {
"X": -173.2663,
"Y": -162.03395,
"Z": -510.39905
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,61 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012289,
"Position": {
"X": 231.18933,
"Y": -72.92926,
"Z": -603.1434
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 517.51276,
"Y": -40.378292,
"Z": -785.99677
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4141,
"MinimumKillCount": 2
}
],
"Fly": true,
"$": "FATE spawns on top of the suggested area, so we move a bit east."
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012289,
"Position": {
"X": 231.18933,
"Y": -72.92926,
"Z": -603.1434
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012290,
"Position": {
"X": 760.5248,
"Y": -30.307041,
"Z": -579.67505
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 668.9029,
"Y": -86.006,
"Z": -775.5664
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4046,
"MinimumKillCount": 4
}
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012290,
"Position": {
"X": 760.5248,
"Y": -30.307041,
"Z": -579.67505
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012291,
"Position": {
"X": 804.074,
"Y": -26.326342,
"Z": -527.48914
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 355.31863,
"Y": -46.22946,
"Z": -507.70428
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4072,
"MinimumKillCount": 4
}
],
"Fly": true,
"$": "we go to the west of the marked area to avoid idling in the FATE that spawns on the east of it; we'll still path through it when we expend all the westward mobs, but that's just how they spawn, shrugging emoji."
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012291,
"Position": {
"X": 804.074,
"Y": -26.326342,
"Z": -527.48914
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,55 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012292,
"Position": {
"X": 583.9779,
"Y": 10.93506,
"Z": 100.02283
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 773.4017,
"Y": -0.06258035,
"Z": 147.04689
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [4669, 4970, 4671, 4672, 4673],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012292,
"Position": {
"X": 583.9779,
"Y": 10.93506,
"Z": 100.02283
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012293,
"Position": {
"X": 573.4187,
"Y": 13.072888,
"Z": 329.2439
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 495.16974,
"Y": 31.67624,
"Z": 517.37463
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4083,
"MinimumKillCount": 4
}
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012293,
"Position": {
"X": 573.4187,
"Y": 13.072888,
"Z": 329.2439
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,156 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012294,
"Position": {
"X": 366.4148,
"Y": 20.214104,
"Z": 756.7101
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 505.4667,
"Y": 16.87959,
"Z": 751.14856
},
"TerritoryId": 402,
"InteractionType": "WalkTo",
"Fly": true,
"$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it.",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 2005900,
"Position": {
"X": 506.76733,
"Y": 16.861145,
"Z": 750.24023
},
"TerritoryId": 402,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2005903,
"Position": {
"X": 544.64014,
"Y": 15.945618,
"Z": 760.61633
},
"TerritoryId": 402,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
},
{
"DataId": 2005899,
"Position": {
"X": 545.4031,
"Y": 20.2182,
"Z": 802.8534
},
"TerritoryId": 402,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2005902,
"Position": {
"X": 614.6791,
"Y": 20.2182,
"Z": 758.938
},
"TerritoryId": 402,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2005901,
"Position": {
"X": 605.3406,
"Y": 15.945618,
"Z": 708.06433
},
"TerritoryId": 402,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012294,
"Position": {
"X": 366.4148,
"Y": 20.214104,
"Z": 756.7101
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012295,
"Position": {
"X": 214.64856,
"Y": 13.75853,
"Z": 536.9801
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 144.31177,
"Y": 5.9740877,
"Z": 387.8086
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4630,
"MinimumKillCount": 3
}
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012295,
"Position": {
"X": 214.64856,
"Y": 13.75853,
"Z": 536.9801
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,85 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012296,
"Position": {
"X": -658.32,
"Y": -75.48534,
"Z": 699.1531
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -345.30673,
"Y": -89.61499,
"Z": 353.53
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4075,
"MinimumKillCount": 3
}
],
"CompletionQuestVariablesFlags": [
{ "Low": 3 },
null,
null,
null,
null,
null
],
"Fly": true
},
{
"Position": {
"X": -553.4664,
"Y": -104.895905,
"Z": 175.68343
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4668,
"MinimumKillCount": 3
}
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012296,
"Position": {
"X": -658.32,
"Y": -75.48534,
"Z": 699.1531
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012297,
"Position": {
"X": -554.95544,
"Y": -89.69182,
"Z": 771.87756
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -679.16223,
"Y": -48.151093,
"Z": 542.7097
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 4095,
"MinimumKillCount": 4
}
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012297,
"Position": {
"X": -554.95544,
"Y": -89.69182,
"Z": 771.87756
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,116 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012298,
"Position": {
"X": -192.67572,
"Y": -102.749916,
"Z": 476.9817
},
"TerritoryId": 402,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -375.98807,
"Y": -106.10026,
"Z": 710.48956
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 4493,
"MinimumKillCount": 1
}
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
],
"Fly": true
},
{
"Position": {
"X": -372.88766,
"Y": -105.78837,
"Z": 746.95245
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 4493,
"MinimumKillCount": 1
}
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
"X": -321.94852,
"Y": -106.57244,
"Z": 716.5662
},
"TerritoryId": 402,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 4493,
"MinimumKillCount": 1
}
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012298,
"Position": {
"X": -192.67572,
"Y": -102.749916,
"Z": 476.9817
},
"TerritoryId": 402,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,126 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014133,
"Position": {
"X": -259.84595,
"Y": 126.44779,
"Z": 1.9073486
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006005,
"Position": {
"X": -157.70203,
"Y": 110.73462,
"Z": -52.414795
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2006006,
"Position": {
"X": -228.25977,
"Y": 112.47424,
"Z": -127.55017
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2006007,
"Position": {
"X": -348.10413,
"Y": 116.50256,
"Z": -91.93567
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014133,
"Position": {
"X": -259.84595,
"Y": 126.44779,
"Z": 1.9073486
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1764
}
]
}
]
}

View File

@ -0,0 +1,98 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014134,
"Position": {
"X": -293.23267,
"Y": 126.85495,
"Z": 5.2643433
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"DataId": 1014136,
"Position": {
"X": 292.74426,
"Y": 132.44626,
"Z": -244.73944
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"Position": {
"X": 289.0053,
"Y": 132.30807,
"Z": -233.57523
},
"DataId": 4041,
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
4041
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014136,
"Position": {
"X": 292.74426,
"Y": 132.44626,
"Z": -244.73944
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1765
}
]
}
]
}

View File

@ -0,0 +1,99 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014138,
"Position": {
"X": -219.19586,
"Y": 112.21238,
"Z": -244.1596
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"DataId": 4470,
"Position": {
"X": -468.44992,
"Y": 93.85853,
"Z": -506.40417
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
4470
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": -219.1624,
"Y": 112.29031,
"Z": -239.88861
},
"TerritoryId": 397,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1014138,
"Position": {
"X": -219.19586,
"Y": 112.21238,
"Z": -244.1596
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1766,
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,107 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014138,
"Position": {
"X": -219.19586,
"Y": 112.21238,
"Z": -244.1596
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"DataId": 1014140,
"Position": {
"X": -472.19043,
"Y": 93.87282,
"Z": -503.7156
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 4468,
"Position": {
"X": -696.8278,
"Y": 100.08534,
"Z": -603.926
},
"StopDistance": 0.5,
"TerritoryId": 397,
"InteractionType": "Combat",
"KillEnemyDataIds": [
4468
],
"EnemySpawnType": "AutoOnEnterArea",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014140,
"Position": {
"X": -472.19043,
"Y": 93.87282,
"Z": -503.7156
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1769
}
]
}
]
}

View File

@ -0,0 +1,185 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Fly": true,
"DataId": 1014142,
"Position": {
"X": -290.33344,
"Y": 76.98337,
"Z": -259.93744
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006013,
"Position": {
"X": -287.76996,
"Y": 77.74463,
"Z": -278.00415
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014142,
"Position": {
"X": -290.33344,
"Y": 76.98337,
"Z": -259.93744
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006014,
"Position": {
"X": -291.8593,
"Y": 76.98169,
"Z": -261.0056
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 4037,
"Position": {
"X": -285.1214,
"Y": 76.98337,
"Z": -275.5287
},
"TerritoryId": 397,
"InteractionType": "Combat",
"KillEnemyDataIds": [4037],
"EnemySpawnType": "AfterInteraction"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1014142,
"Position": {
"X": -290.33344,
"Y": 76.98337,
"Z": -259.93744
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Fly": true,
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1014144,
"Position": {
"X": -258.16742,
"Y": 126.98671,
"Z": 12.77179
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 2006015,
"Position": {
"X": -252.33844,
"Y": 127.00073,
"Z": 11.093262
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 9,
"Steps": [
{
"DataId": 1014144,
"Position": {
"X": -258.16742,
"Y": 126.98671,
"Z": 12.77179
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,121 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014147,
"Position": {
"X": -256.97723,
"Y": 126.99508,
"Z": 13.168518
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"Position": {
"X": -298.8484,
"Y": 221.68138,
"Z": 548.0529
},
"TerritoryId": 397,
"InteractionType": "WalkTo"
},
{
"Land": true,
"DataId": 1014149,
"Position": {
"X": -294.5144,
"Y": 221.58685,
"Z": 545.922
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2006017,
"Position": {
"X": -253.34558,
"Y": 221.36255,
"Z": 528.92346
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 4076,
"Position": {
"X": -257.5558,
"Y": 221.35532,
"Z": 520.9053
},
"TerritoryId": 397,
"InteractionType": "Combat",
"KillEnemyDataIds": [4076],
"EnemySpawnType": "AfterInteraction"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014149,
"Position": {
"X": -294.5144,
"Y": 221.58685,
"Z": 545.922
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1890
}
]
}
]
}

View File

@ -0,0 +1,92 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -297.49585,
"Y": 219.87524,
"Z": 281.65045
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 3992,
"MinimumKillCount": 5
}
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"DataId": 1014150,
"Position": {
"X": 507.13354,
"Y": 217.95148,
"Z": 791.37854
},
"TerritoryId": 397,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -110.26132,
"Y": 153.61101,
"Z": 10.394781
},
"TerritoryId": 397,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"Flying": "Locked"
}
}
},
{
"Fly": true,
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1891
}
]
}
]
}

View File

@ -0,0 +1,98 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Fly": true,
"DataId": 1014151,
"Position": {
"X": -156.08453,
"Y": 219.14235,
"Z": 669.7031
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 732,
"Position": {
"X": -151.29321,
"Y": 218.95082,
"Z": 669.4895
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
732
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014151,
"Position": {
"X": -156.08453,
"Y": 219.14235,
"Z": 669.7031
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014151,
"Position": {
"X": -156.08453,
"Y": 219.14235,
"Z": 669.7031
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1892
}
]
}
]
}

View File

@ -0,0 +1,83 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Fly": true,
"DataId": 2006019,
"Position": {
"X": -152.42242,
"Y": 219.62305,
"Z": 669.94727
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 4782,
"Position": {
"X": -158.97404,
"Y": 219.45131,
"Z": 672.79553
},
"TerritoryId": 397,
"KillEnemyDataIds": [
4782
],
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006181,
"Position": {
"X": -152.42242,
"Y": 219.62305,
"Z": 669.94727
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1893
}
]
}
]
}

View File

@ -0,0 +1,113 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014146,
"Position": {
"X": -258.74725,
"Y": 126.98546,
"Z": 12.649658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1011907,
"Position": {
"X": -288.8686,
"Y": 127.06639,
"Z": 13.199036
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1011910,
"Position": {
"X": -298.26813,
"Y": 126.67049,
"Z": -1.4191895
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1014133,
"Position": {
"X": -259.84595,
"Y": 126.44779,
"Z": 1.9073486
},
"TerritoryId": 397,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Fly": true,
"DataId": 1014152,
"Position": {
"X": 496.1776,
"Y": 133.93082,
"Z": -862.2416
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1014153,
"Position": {
"X": -295.82666,
"Y": 126.83744,
"Z": 3.829956
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"NextQuestId": 1898
}
]
}
]
}

View File

@ -0,0 +1,229 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014153,
"Position": {
"X": -295.82666,
"Y": 126.83744,
"Z": 3.829956
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Fly": true,
"DataId": 1014154,
"Position": {
"X": -519.1577,
"Y": 119.39417,
"Z": -161.24213
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014155,
"Position": {
"X": -527.245,
"Y": 118.94699,
"Z": -163.13422
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2006026,
"Position": {
"X": -525.7191,
"Y": 119.06604,
"Z": -165.72827
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Fly": true,
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"Fly": true,
"Position": {
"X": -92.57648,
"Y": 96.33008,
"Z": -645.1057
},
"TerritoryId": 397,
"InteractionType": "WalkTo"
},
{
"DataId": 2006027,
"Position": {
"X": -92.57648,
"Y": 96.33008,
"Z": -645.1057
},
"TerritoryId": 397,
"InteractionType": "UseItem",
"ItemId": 2001751
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 2006028,
"Position": {
"X": -92.5155,
"Y": 93.52246,
"Z": -623.621
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 4621,
"Position": {
"X": -92.37683,
"Y": 95.76039,
"Z": -640.7043
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
4621
]
}
]
},
{
"Sequence": 9,
"Steps": [
{
"DataId": 2006460,
"Position": {
"X": -92.57648,
"Y": 96.33008,
"Z": -645.1057
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 10,
"Steps": [
{
"Fly": true,
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 11,
"Steps": [
{
"DataId": 1014147,
"Position": {
"X": -256.97723,
"Y": 126.99508,
"Z": 13.168518
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013710,
"Position": {
"X": -294.6975,
"Y": 126.84874,
"Z": 4.5318604
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,140 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012170,
"Position": {
"X": 102.92212,
"Y": 3.6299734,
"Z": 65.56799
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1012162,
"Position": {
"X": 135.97314,
"Y": 24.376427,
"Z": 12.619202
},
"TerritoryId": 418,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012170,
"Position": {
"X": 102.92212,
"Y": 3.6299734,
"Z": 65.56799
},
"TerritoryId": 418,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014711,
"Position": {
"X": 58.03003,
"Y": -7.146736,
"Z": 82.41394
},
"TerritoryId": 418,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1014712,
"Position": {
"X": 93.91919,
"Y": -19.941168,
"Z": 78.20239
},
"TerritoryId": 418,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1014713,
"Position": {
"X": 131.9447,
"Y": -20.000105,
"Z": 62.027832
},
"TerritoryId": 418,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014714,
"Position": {
"X": 23.178406,
"Y": -12.020877,
"Z": 35.294067
},
"TerritoryId": 418,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012170,
"Position": {
"X": 102.92212,
"Y": 3.6299734,
"Z": 65.56799
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,149 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012180,
"Position": {
"X": -174.18176,
"Y": -12.555469,
"Z": -21.561035
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2006246,
"Position": {
"X": -218.40247,
"Y": -16.037292,
"Z": -34.683777
},
"TerritoryId": 419,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2006247,
"Position": {
"X": -229.23633,
"Y": -20.035156,
"Z": -83.05487
},
"TerritoryId": 419,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2006248,
"Position": {
"X": -252.1554,
"Y": -20.035156,
"Z": -57.66388
},
"TerritoryId": 419,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012180,
"Position": {
"X": -174.18176,
"Y": -12.555469,
"Z": -21.561035
},
"TerritoryId": 419,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014721,
"Position": {
"X": 119.31018,
"Y": -12.634913,
"Z": -13.626343
},
"TerritoryId": 419,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Ishgard] The Jeweled Crozier",
"[Ishgard] Athenaeum Astrologicum"
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006330,
"Position": {
"X": 118.791504,
"Y": -11.6427,
"Z": -13.351685
},
"TerritoryId": 419,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012180,
"Position": {
"X": -174.18176,
"Y": -12.555469,
"Z": -21.561035
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"AethernetShortcut": [
"[Ishgard] Athenaeum Astrologicum",
"[Ishgard] The Jeweled Crozier"
]
}
]
}
]
}

View File

@ -0,0 +1,68 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014718,
"Position": {
"X": -29.526245,
"Y": 11.965078,
"Z": 48.355713
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1011231,
"Position": {
"X": 503.1051,
"Y": 217.95148,
"Z": 790.2189
},
"TerritoryId": 397,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -110.26132,
"Y": 153.61101,
"Z": 10.394781
},
"TerritoryId": 397,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"Flying": "Locked"
}
}
},
{
"DataId": 1014719,
"Position": {
"X": -293.6294,
"Y": 125.4389,
"Z": -19.058533
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,134 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "Thaksin",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012085,
"Position": {
"X": 286.88477,
"Y": 14.36517,
"Z": 645.1666
},
"TerritoryId": 400,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Fly": true,
"DataId": 2005720,
"Position": {
"X": 565.9419,
"Y": -9.445435,
"Z": -14.328308
},
"TerritoryId": 400,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
],
"InteractionType": "Interact"
},
{
"DataId": 2005718,
"Position": {
"X": 664.39294,
"Y": -0.4730835,
"Z": -3.2807007
},
"Fly": true,
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2005721,
"Position": {
"X": 653.83374,
"Y": -0.7172241,
"Z": -70.02368
},
"TerritoryId": 400,
"Fly": true,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null, null,
null, null,
null, 8
]
},
{
"DataId": 2005717,
"Position": {
"X": 639.00195,
"Y": 46.463623,
"Z": -113.05414
},
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2005719,
"Position": {
"X": 527.0923,
"Y": -4.287842,
"Z": -84.916504
},
"Fly": true,
"TerritoryId": 400,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Fly": true,
"DataId": 1012085,
"Position": {
"X": 286.88477,
"Y": 14.36517,
"Z": 645.1666
},
"TerritoryId": 400,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,72 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 193.6185,
"Y": 1.9123514,
"Z": 713.436
},
"TerritoryId": 957,
"InteractionType": "WalkTo"
},
{
"DataId": 1037622,
"Position": {
"X": 189.94562,
"Y": 0.8560083,
"Z": 702.7896
},
"StopDistance": 0.25,
"TerritoryId": 957,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2011979,
"Position": {
"X": 236.1333,
"Y": 10.666016,
"Z": 613.27527
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 193.6185,
"Y": 1.9123514,
"Z": 713.436
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1037622,
"Position": {
"X": 189.94562,
"Y": 0.8560083,
"Z": 702.7896
},
"StopDistance": 0.25,
"TerritoryId": 957,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,59 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037625,
"Position": {
"X": 176.47058,
"Y": 1.8742183,
"Z": 799.2217
},
"StopDistance": 1,
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 13.657948,
"Y": 1.6567476,
"Z": 631.81714
},
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
13527
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037625,
"Position": {
"X": 176.47058,
"Y": 1.8742183,
"Z": 799.2217
},
"StopDistance": 1,
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,74 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037682,
"Position": {
"X": -564.1108,
"Y": 11.802608,
"Z": 124.28467
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039378,
"Position": {
"X": -103.25781,
"Y": 2.5712337,
"Z": 597.589
},
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14119,
14120
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2011933,
"Position": {
"X": -102.61694,
"Y": 3.0059814,
"Z": 598.9319
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037682,
"Position": {
"X": -564.1108,
"Y": 11.802608,
"Z": 124.28467
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037671,
"Position": {
"X": -554.37555,
"Y": 1.120665,
"Z": 22.690125
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039384,
"Position": {
"X": 223.22424,
"Y": 10.211119,
"Z": 562.4321
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_AKTKZA021_04200_Q1_000_000",
"Answer": "TEXT_AKTKZA021_04200_A1_000_002"
}
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037671,
"Position": {
"X": -554.37555,
"Y": 1.120665,
"Z": 22.690125
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,104 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039516,
"Position": {
"X": -554.89435,
"Y": 11.402609,
"Z": 125.10864
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1037680,
"Position": {
"X": -550.1946,
"Y": 1.6023201,
"Z": 50.766724
},
"StopDistance": 1,
"TerritoryId": 957,
"InteractionType": "Emote",
"Emote": "greeting",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1037670,
"Position": {
"X": -508.84262,
"Y": -3.7109916E-05,
"Z": -20.767578
},
"TerritoryId": 957,
"InteractionType": "Emote",
"Emote": "greeting",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1037676,
"Position": {
"X": -502.95264,
"Y": 12.375282,
"Z": 116.31946
},
"TerritoryId": 957,
"InteractionType": "Emote",
"Emote": "greeting",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039516,
"Position": {
"X": -554.89435,
"Y": 11.402609,
"Z": 125.10864
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,110 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039379,
"Position": {
"X": -478.3246,
"Y": 39.636753,
"Z": 95.47571
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_AKTKZA023_04202_Q1_000_000",
"Answer": "TEXT_AKTKZA023_04202_A1_000_001"
}
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039380,
"Position": {
"X": -386.862,
"Y": 21.832859,
"Z": 206.77502
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039380,
"Position": {
"X": -386.862,
"Y": 21.832859,
"Z": 206.77502
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2011911,
"Position": {
"X": -387.28925,
"Y": 21.744019,
"Z": 208.88062
},
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14118
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1039380,
"Position": {
"X": -386.862,
"Y": 21.832859,
"Z": 206.77502
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039379,
"Position": {
"X": -478.3246,
"Y": 39.636753,
"Z": 95.47571
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,149 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039365,
"Position": {
"X": -490.37924,
"Y": 5.667216,
"Z": 63.553833
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039366,
"Position": {
"X": -385.24457,
"Y": 15.095761,
"Z": 62.974
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039367,
"Position": {
"X": -161.85254,
"Y": 32.732735,
"Z": 210.74231
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2011903,
"Position": {
"X": -161.5473,
"Y": 32.211792,
"Z": 225.36047
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2011904,
"Position": {
"X": -148.57715,
"Y": 34.10388,
"Z": 207.84314
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2011902,
"Position": {
"X": -170.21442,
"Y": 31.814941,
"Z": 193.1029
},
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14117
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1039367,
"Position": {
"X": -161.85254,
"Y": 32.732735,
"Z": 210.74231
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039365,
"Position": {
"X": -490.37924,
"Y": 5.667216,
"Z": 63.553833
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,185 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039371,
"Position": {
"X": -409.93365,
"Y": 10.751212,
"Z": 33.035767
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039372,
"Position": {
"X": 195.91052,
"Y": 4.763736,
"Z": 658.2893
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Yedlihmad"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039373,
"Position": {
"X": -314.6258,
"Y": 0.70631444,
"Z": 561.12
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_AKTKZA026_04205_Q1_000_000",
"Answer": "TEXT_AKTKZA026_04205_A1_000_001"
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2011905,
"Position": {
"X": -443.04572,
"Y": -0.22894287,
"Z": 800.7781
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2011906,
"Position": {
"X": -458.42682,
"Y": -0.19836426,
"Z": 830.8689
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Mount": false,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
"X": -458.42682,
"Y": -0.19836426,
"Z": 830.8689
},
"StopDistance": 5,
"TerritoryId": 957,
"InteractionType": "Dive"
},
{
"DataId": 2011908,
"Position": {
"X": -484.85547,
"Y": -72.22095,
"Z": 814.35876
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2011907,
"Position": {
"X": -452.90308,
"Y": -67.00244,
"Z": 776.2417
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2011909,
"Position": {
"X": -513.51184,
"Y": -52.689453,
"Z": 773.73914
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039371,
"Position": {
"X": -409.93365,
"Y": 10.751212,
"Z": 33.035767
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,74 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037685,
"Position": {
"X": -468.864,
"Y": 6.2912574,
"Z": 3.463745
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -568.1513,
"Y": 40.91181,
"Z": -451.32486
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14116
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039383,
"Position": {
"X": -567.6509,
"Y": 41.313267,
"Z": -448.41687
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037685,
"Position": {
"X": -468.864,
"Y": 6.2912574,
"Z": 3.463745
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,246 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039385,
"Position": {
"X": -480.12518,
"Y": 5.362214,
"Z": 37.582886
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039386,
"Position": {
"X": -431.7846,
"Y": 72.61802,
"Z": -555.3826
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -477.78827,
"Y": 73.67918,
"Z": -542.7145
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 2011962,
"Position": {
"X": -477.16492,
"Y": 74.75391,
"Z": -544.5792
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2011963,
"Position": {
"X": -479.2401,
"Y": 74.784424,
"Z": -541.619
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
],
"DelaySecondsAtStart": 3
},
{
"Position": {
"X": -482.98328,
"Y": 73.32367,
"Z": -521.75024
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
}
}
},
{
"DataId": 2011964,
"Position": {
"X": -484.67236,
"Y": 74.021484,
"Z": -523.15564
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2011965,
"Position": {
"X": -483.6042,
"Y": 74.35718,
"Z": -519.7986
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
],
"DelaySecondsAtStart": 3
},
{
"Position": {
"X": -475.0877,
"Y": 73.24273,
"Z": -512.62787
},
"TerritoryId": 957,
"InteractionType": "WalkTo"
},
{
"DataId": 2011967,
"Position": {
"X": -476.92078,
"Y": 74.08252,
"Z": -511.43665
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
4
]
},
{
"DataId": 2011966,
"Position": {
"X": -473.0144,
"Y": 74.32666,
"Z": -512.3827
},
"TerritoryId": 957,
"InteractionType": "UseItem",
"ItemId": 2003199,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
],
"DelaySecondsAtStart": 3
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1039386,
"Position": {
"X": -431.7846,
"Y": 72.61802,
"Z": -555.3826
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039385,
"Position": {
"X": -480.12518,
"Y": 5.362214,
"Z": 37.582886
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,98 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037673,
"Position": {
"X": -517.0215,
"Y": 11.975277,
"Z": 100.541626
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039370,
"Position": {
"X": -106.21808,
"Y": 95.53504,
"Z": -700.4959
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1039368,
"Position": {
"X": -65.07977,
"Y": 89.860886,
"Z": -659.8764
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1039369,
"Position": {
"X": -66.14789,
"Y": 89.4264,
"Z": -635.8892
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037673,
"Position": {
"X": -517.0215,
"Y": 11.975277,
"Z": 100.541626
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,64 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037681,
"Position": {
"X": -554.74176,
"Y": 11.402611,
"Z": 137.31592
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -281.16296,
"Y": 94.31451,
"Z": -289.12802
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2011910,
"Position": {
"X": -280.99493,
"Y": 95.87244,
"Z": -287.64783
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1037681,
"Position": {
"X": -554.74176,
"Y": 11.402611,
"Z": 137.31592
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048605,
"Position": {
"X": -358.38867,
"Y": 19.728025,
"Z": -105.02789
},
"TerritoryId": 1190,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Shaaloani - Sheshenewezi Springs",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014456,
"Position": {
"X": -128.64886,
"Y": 16.311829,
"Z": -290.69965
},
"TerritoryId": 1190,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1048608,
"Position": {
"X": -126.57361,
"Y": 15.67948,
"Z": -369.46674
},
"TerritoryId": 1190,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048605,
"Position": {
"X": -358.38867,
"Y": 19.728025,
"Z": -105.02789
},
"TerritoryId": 1190,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 5241
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": -363.2864,
"Y": 20.16234,
"Z": -90.06508
},
"TerritoryId": 1190,
"InteractionType": "WalkTo"
},
{
"DataId": 1051495,
"Position": {
"X": -365.28577,
"Y": 20.14268,
"Z": -88.51758
},
"TerritoryId": 1190,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -354.53677,
"Y": 19.32763,
"Z": -99.326805
},
"TerritoryId": 1190,
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
"X": -91.25145,
"Y": 17.80576,
"Z": -267.2748
},
"TerritoryId": 1190,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1051497,
"Position": {
"X": -91.5694,
"Y": 17.7503,
"Z": -268.54352
},
"TerritoryId": 1190,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -88,6 +88,15 @@
"InteractionType": "AttuneAethernetShard",
"AethernetShard": "[Solution Nine] Nexus Arcade"
},
{
"Position": {
"X": -320.34818,
"Y": 9.519508,
"Z": -6.9244547
},
"TerritoryId": 1186,
"InteractionType": "WalkTo"
},
{
"DataId": 1048065,
"Position": {
@ -97,7 +106,8 @@
},
"StopDistance": 0.25,
"TerritoryId": 1186,
"InteractionType": "Interact"
"InteractionType": "Interact",
"DelaySecondsAtStart": 3
}
]
},

View File

@ -80,7 +80,7 @@
"null"
],
"description": "Set if pathfinding should stop closer or further away from the default stop distance",
"exclusiveMinimum": 0
"minimum": 0.25
},
"IgnoreDistanceToObject": {
"type": "boolean",
@ -859,7 +859,8 @@
"joy",
"mogdance",
"salute",
"laugh"
"laugh",
"greeting"
]
}
}

View File

@ -43,6 +43,7 @@ public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
{ EEmote.Flex, "flex" },
{ EEmote.Respect, "respect" },
{ EEmote.Box, "box" },
{ EEmote.Uchiwasshoi, "uchiwasshoi" }
{ EEmote.Greeting, "greeting" },
{ EEmote.Uchiwasshoi, "uchiwasshoi" },
};
}

View File

@ -48,7 +48,7 @@ public enum EAction
Katon = 2266,
Raiton = 2267,
RabbitMedium = 2272,
SlugShot = 7412,
SlugShot = 2868,
BosomBrook = 37173,
Souleater = 3632,
Fire3 = 152,

View File

@ -44,6 +44,7 @@ public enum EEmote
Flex = 139,
Respect = 140,
Box = 166,
Greeting = 172,
Uchiwasshoi = 278
}

View File

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Numerics;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Enums;
@ -10,7 +11,8 @@ using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.Object;
using FFXIVClientStructs.FFXIV.Client.Game.UI;
using FFXIVClientStructs.FFXIV.Common.Math;
using FFXIVClientStructs.FFXIV.Client.System.Framework;
using FFXIVClientStructs.FFXIV.Common.Component.BGCollision;
using Microsoft.Extensions.Logging;
using Questionable.Controller.CombatModules;
using Questionable.Controller.Steps;
@ -38,6 +40,7 @@ internal sealed class CombatController : IDisposable
private CurrentFight? _currentFight;
private bool _wasInCombat;
private ulong? _lastTargetId;
private List<byte>? _previousQuestVariables;
public CombatController(
IEnumerable<ICombatModule> combatModules,
@ -79,7 +82,9 @@ internal sealed class CombatController : IDisposable
Data = combatData,
LastDistanceCheck = DateTime.Now,
};
_wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny;
_wasInCombat =
combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny;
UpdateLastTargetAndQuestVariables(null);
return true;
}
else
@ -115,7 +120,31 @@ internal sealed class CombatController : IDisposable
{
// wait until the game cleans up the target
if (lastTarget.IsDead)
return EStatus.InCombat;
{
ElementId? elementId = _currentFight.Data.ElementId;
QuestProgressInfo? questProgressInfo = elementId != null
? _questFunctions.GetQuestProgressInfo(elementId)
: null;
if (questProgressInfo != null &&
questProgressInfo.Sequence == _currentFight.Data.Sequence &&
QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags) &&
QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags,
questProgressInfo))
{
// would be the final enemy of the bunch
return EStatus.InCombat;
}
else if (questProgressInfo != null &&
questProgressInfo.Sequence == _currentFight.Data.Sequence &&
_previousQuestVariables != null &&
!questProgressInfo.Variables.SequenceEqual(_previousQuestVariables))
{
UpdateLastTargetAndQuestVariables(null);
}
else
return EStatus.InCombat;
}
}
else
_lastTargetId = null;
@ -372,9 +401,18 @@ internal sealed class CombatController : IDisposable
float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius;
float actualDistance = Vector3.Distance(player.Position, gameObject.Position);
float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f;
if (actualDistance - hitboxOffset >= maxDistance)
bool outOfRange = actualDistance - hitboxOffset >= maxDistance;
bool isInLineOfSight = IsInLineOfSight(gameObject);
if (outOfRange || !isInLineOfSight)
{
if (actualDistance - hitboxOffset <= 5)
bool useNavmesh = actualDistance - hitboxOffset > 5f;
if (!outOfRange && !isInLineOfSight)
{
maxDistance = Math.Min(maxDistance, actualDistance) / 2;
useNavmesh = true;
}
if (!useNavmesh)
{
_logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name,
gameObject.DataId);
@ -391,6 +429,44 @@ internal sealed class CombatController : IDisposable
}
}
internal unsafe bool IsInLineOfSight(IGameObject target)
{
Vector3 sourcePos = _clientState.LocalPlayer!.Position;
sourcePos.Y += 2;
Vector3 targetPos = target.Position;
targetPos.Y += 2;
Vector3 direction = targetPos - sourcePos;
float distance = direction.Length();
direction = Vector3.Normalize(direction);
Vector3 originVect = new Vector3(sourcePos.X, sourcePos.Y, sourcePos.Z);
Vector3 directionVect = new Vector3(direction.X, direction.Y, direction.Z);
RaycastHit hit;
var flags = stackalloc int[] { 0x4000, 0, 0x4000, 0 };
var isLoSBlocked =
Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&hit, &originVect, &directionVect, distance,
1, flags);
return isLoSBlocked == false;
}
private void UpdateLastTargetAndQuestVariables(IGameObject? target)
{
_lastTargetId = target?.GameObjectId;
_previousQuestVariables = _currentFight!.Data.ElementId != null
? _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables
: null;
/*
_logger.LogTrace("UpdateTargetData: {TargetId}; {QuestVariables}",
target?.GameObjectId.ToString("X8", CultureInfo.InvariantCulture) ?? "null",
_previousQuestVariables != null ? string.Join(", ", _previousQuestVariables) : "null");
*/
}
public void Stop(string label)
{
using var scope = _logger.BeginScope(label);
@ -422,6 +498,8 @@ internal sealed class CombatController : IDisposable
public sealed class CombatData
{
public required ElementId? ElementId { get; init; }
public required int Sequence { get; init; }
public required IList<QuestWorkValue?> CompletionQuestVariablesFlags { get; init; }
public required EEnemySpawnType SpawnType { get; init; }
public required List<uint> KillEnemyDataIds { get; init; }
public required List<ComplexCombatData> ComplexCombatDatas { get; init; }

View File

@ -173,7 +173,7 @@ internal abstract class MiniTaskController<T>
if (_condition[ConditionFlag.Mounted])
tasks.Add(new Mount.UnmountTask());
tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null));
tasks.Add(Combat.Factory.CreateTask(null, -1, false, EEnemySpawnType.QuestInterruption, [], [], [], null));
tasks.Add(new WaitAtEnd.WaitDelay());
_taskQueue.InterruptWith(tasks);
}

View File

@ -102,17 +102,30 @@ internal static class Combat
ArgumentNullException.ThrowIfNull(step.EnemySpawnType);
bool isLastStep = sequence.Steps.Last() == step;
return CreateTask(quest.Id, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds,
step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse);
return CreateTask(quest.Id,
sequence.Sequence,
isLastStep,
step.EnemySpawnType.Value,
step.KillEnemyDataIds,
step.CompletionQuestVariablesFlags,
step.ComplexCombatData,
step.CombatItemUse);
}
internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType,
IList<uint> killEnemyDataIds, IList<QuestWorkValue?> completionQuestVariablesFlags,
IList<ComplexCombatData> complexCombatData, CombatItemUse? combatItemUse)
internal static Task CreateTask(ElementId? elementId,
int sequence,
bool isLastStep,
EEnemySpawnType enemySpawnType,
IList<uint> killEnemyDataIds,
IList<QuestWorkValue?> completionQuestVariablesFlags,
IList<ComplexCombatData> complexCombatData,
CombatItemUse? combatItemUse)
{
return new Task(new CombatController.CombatData
{
ElementId = elementId,
Sequence = sequence,
CompletionQuestVariablesFlags = completionQuestVariablesFlags,
SpawnType = enemySpawnType,
KillEnemyDataIds = killEnemyDataIds.ToList(),
ComplexCombatDatas = complexCombatData.ToList(),

View File

@ -29,7 +29,7 @@ internal static class UseItem
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
if (step.InteractionType is EInteractionType.SinglePlayerDuty)
if (step.InteractionType is EInteractionType.SinglePlayerDuty or EInteractionType.CompleteQuest)
{
if (step.ItemId == null)
return [];

View File

@ -179,10 +179,12 @@ internal static class AethernetShortcut
}
}
}
else
else if (clientState.TerritoryType == aetheryteData.TerritoryIds[Task.To])
logger.LogWarning(
"Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), walking manually",
"Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), skipping as we are already in the destination territory",
Task.From, Task.To);
else
throw new TaskException($"Aethernet shortcut not unlocked (from: {Task.From}, to: {Task.To})");
return false;
}

View File

@ -53,7 +53,7 @@ internal sealed class AlliedSocietyData
else if (alliedSociety == EAlliedSociety.Moogles)
{
normalNpcs = [];
mountNpcs = [1017322, 1017470];
mountNpcs = [1017322, 1017470, 1017471];
}
else
{

View File

@ -40,6 +40,12 @@ internal sealed class QuestData
public QuestData(IDataManager dataManager)
{
JournalGenreOverrides journalGenreOverrides = new()
{
RadzAtHanSideQuests = dataManager.GetExcelSheet<Quest>().GetRow(69805).JournalGenre.RowId,
ThavnairSideQuests = dataManager.GetExcelSheet<Quest>().GetRow(70025).JournalGenre.RowId,
};
Dictionary<uint, uint> questChapters =
dataManager.GetExcelSheet<QuestChapter>()
.Where(x => x.RowId > 0 && x.Quest.RowId > 0)
@ -59,7 +65,7 @@ internal sealed class QuestData
.Where(x => x.RowId > 0)
.Where(x => x.IssuerLocation.RowId > 0)
.Select(x => new QuestInfo(x, questChapters.GetValueOrDefault(x.RowId),
startingCities.GetValueOrDefault(x.RowId))),
startingCities.GetValueOrDefault(x.RowId), journalGenreOverrides)),
..dataManager.GetExcelSheet<SatisfactionNpc>()
.Where(x => x is { RowId: > 0, Npc.RowId: > 0 })
.Select(x => new SatisfactionSupplyInfo(x)),

View File

@ -67,7 +67,7 @@ internal sealed class AutoDutyIpc
try
{
_run.InvokeAction(cfcData.TerritoryId, 0, true);
_run.InvokeAction(cfcData.TerritoryId, 1, true);
}
catch (IpcError e)
{

View File

@ -22,13 +22,16 @@ internal sealed class TextAdvanceIpc : IDisposable
private readonly string _pluginName;
private readonly ExternalTerritoryConfig _externalTerritoryConfig = new();
public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration)
public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework,
QuestController questController, Configuration configuration)
{
_framework = framework;
_questController = questController;
_configuration = configuration;
_isInExternalControl = pluginInterface.GetIpcSubscriber<bool>("TextAdvance.IsInExternalControl");
_enableExternalControl = pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>("TextAdvance.EnableExternalControl");
_enableExternalControl =
pluginInterface.GetIpcSubscriber<string, ExternalTerritoryConfig, bool>(
"TextAdvance.EnableExternalControl");
_disableExternalControl = pluginInterface.GetIpcSubscriber<string, bool>("TextAdvance.DisableExternalControl");
_pluginName = pluginInterface.InternalName;
_framework.Update += OnUpdate;
@ -37,7 +40,7 @@ internal sealed class TextAdvanceIpc : IDisposable
public void Dispose()
{
_framework.Update -= OnUpdate;
if(_isExternalControlActivated)
if (_isExternalControlActivated)
{
_disableExternalControl.InvokeFunc(_pluginName);
}
@ -45,11 +48,13 @@ internal sealed class TextAdvanceIpc : IDisposable
private void OnUpdate(IFramework framework)
{
if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning)
bool hasActiveQuest = _questController.IsRunning ||
_questController.AutomationType != QuestController.EAutomationType.Manual;
if (_configuration.General.ConfigureTextAdvance && hasActiveQuest)
{
if(!_isInExternalControl.InvokeFunc())
if (!_isInExternalControl.InvokeFunc())
{
if(_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig))
if (_enableExternalControl.InvokeFunc(_pluginName, _externalTerritoryConfig))
{
_isExternalControlActivated = true;
}
@ -57,9 +62,9 @@ internal sealed class TextAdvanceIpc : IDisposable
}
else
{
if(_isExternalControlActivated)
if (_isExternalControlActivated)
{
if(_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc())
if (_disableExternalControl.InvokeFunc(_pluginName) || !_isInExternalControl.InvokeFunc())
{
_isExternalControlActivated = false;
}

View File

@ -206,10 +206,12 @@ internal sealed unsafe class GameFunctions
public bool UseAction(EAction action)
{
if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0)
uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action);
if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId) == 0)
{
bool result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action);
_logger.LogInformation("UseAction {Action} result: {Result}", action, result);
bool result = ActionManager.Instance()->UseAction(ActionType.Action, actionId);
_logger.LogInformation("UseAction {Action} (adjusted: {AdjustedActionId}) result: {Result}", action,
actionId, result);
return result;
}
@ -219,31 +221,34 @@ internal sealed unsafe class GameFunctions
public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true)
{
var actionRow = _dataManager.GetExcelSheet<Action>().GetRow((uint)action);
if (checkCanUse && !ActionManager.CanUseActionOnTarget((uint)action, (GameObject*)gameObject.Address))
uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action);
var actionRow = _dataManager.GetExcelSheet<Action>().GetRow(actionId);
if (checkCanUse && !ActionManager.CanUseActionOnTarget(actionId, (GameObject*)gameObject.Address))
{
_logger.LogWarning("Can not use action {Action} on target {Target}", action, gameObject);
_logger.LogWarning("Can not use action {Action} (adjusted: {AdjustedActionId}) on target {Target}", action,
actionId, gameObject);
return false;
}
_targetManager.Target = gameObject;
if (ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action, gameObject.GameObjectId) == 0)
if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId, gameObject.GameObjectId) == 0)
{
bool result;
if (actionRow.TargetArea)
{
Vector3 position = gameObject.Position;
result = ActionManager.Instance()->UseActionLocation(ActionType.Action, (uint)action,
result = ActionManager.Instance()->UseActionLocation(ActionType.Action, actionId,
location: &position);
_logger.LogInformation("UseAction {Action} on target area {Target} result: {Result}", action,
gameObject,
result);
_logger.LogInformation(
"UseAction {Action} (adjusted: {AdjustedActionId}) on target area {Target} result: {Result}",
action, actionId, gameObject, result);
}
else
{
result = ActionManager.Instance()->UseAction(ActionType.Action, (uint)action, gameObject.GameObjectId);
_logger.LogInformation("UseAction {Action} on target {Target} result: {Result}", action, gameObject,
result);
result = ActionManager.Instance()->UseAction(ActionType.Action, actionId, gameObject.GameObjectId);
_logger.LogInformation(
"UseAction {Action} (adjusted: {AdjustedActionId}) on target {Target} result: {Result}", action,
actionId, gameObject, result);
}
return result;
@ -307,7 +312,7 @@ internal sealed unsafe class GameFunctions
StatusManager* statusManager = battleChara->GetStatusManager();
return statusManager->HasStatus((uint)statusId);
}
public static bool RemoveStatus(EStatus statusId)
{
return StatusManager.ExecuteStatusOff((uint)statusId);
@ -452,7 +457,8 @@ internal sealed unsafe class GameFunctions
public bool IsLoadingScreenVisible()
{
if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && fade->IsVisible)
if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) &&
fade->IsVisible)
return true;
if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible)

View File

@ -450,14 +450,19 @@ internal sealed unsafe class QuestFunctions
if (IsQuestAccepted(questId))
return false;
if (quest.Info.AlliedSociety != EAlliedSociety.None)
if (questId is QuestId qId && IsDailyAlliedSocietyQuest(qId))
{
if (QuestManager.Instance()->IsDailyQuestCompleted(questId.Value))
return false;
}
if (IsQuestComplete(questId))
return false;
if (!IsDailyAlliedSocietyQuestAndAvailableToday(qId))
return false;
}
else
{
if (IsQuestComplete(questId))
return false;
}
}
else
{

View File

@ -0,0 +1,7 @@
namespace Questionable.Model;
internal sealed class JournalGenreOverrides
{
public required uint ThavnairSideQuests { get; init; }
public required uint RadzAtHanSideQuests { get; init; }
}

View File

@ -12,7 +12,7 @@ namespace Questionable.Model;
internal sealed class QuestInfo : IQuestInfo
{
public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity)
public QuestInfo(ExcelQuest quest, uint newGamePlusChapter, byte startingCity, JournalGenreOverrides journalGenreOverrides)
{
QuestId = new QuestId((ushort)(quest.RowId & 0xFFFF));
@ -53,10 +53,14 @@ internal sealed class QuestInfo : IQuestInfo
.Where(x => x.Value != 0)
.ToImmutableList();
QuestLockJoin = (EQuestJoin)quest.QuestLockJoin;
JournalGenre = quest.JournalGenre.ValueNullable?.RowId;
JournalGenre = QuestId.Value switch
{
>= 4196 and <= 4209 => journalGenreOverrides.ThavnairSideQuests,
4173 => journalGenreOverrides.RadzAtHanSideQuests,
_ => quest.JournalGenre.ValueNullable?.RowId,
};
SortKey = quest.SortKey;
IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.JournalCategory.ValueNullable?.JournalSection
.ValueNullable?.RowId is 0 or 1;
IsMainScenarioQuest = quest.JournalGenre.ValueNullable?.Icon == 61412;
CompletesInstantly = quest.TodoParams[0].ToDoCompleteSeq == 0;
PreviousInstanceContent = quest.InstanceContent.Select(x => (ushort)x.RowId).Where(x => x != 0).ToList();
PreviousInstanceContentJoin = (EQuestJoin)quest.InstanceContentJoin;

View File

@ -91,8 +91,10 @@ internal sealed class QuickAccessButtonsComponent
Reload?.Invoke(this, EventArgs.Empty);
ImGui.SameLine();
if (ImGuiComponents.IconButton(FontAwesomeIcon.ChartColumn))
if (ImGuiComponents.IconButton(FontAwesomeIcon.BookBookmark))
_journalProgressWindow.IsOpen = true;
if (ImGui.IsItemHovered())
ImGui.SetTooltip("Journal Progress");
if (_questRegistry.ValidationIssueCount > 0)