Compare commits

..

No commits in common. "master" and "feat/underneath_starry_lights" have entirely different histories.

92 changed files with 214 additions and 4867 deletions

View File

@ -1,5 +1,5 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>3.10</Version> <Version>3.9</Version>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -76,10 +76,18 @@
"Microsoft.SourceLink.Common": "1.1.1" "Microsoft.SourceLink.Common": "1.1.1"
} }
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"ecommons": { "ecommons": {
"type": "Project" "type": "Project"
@ -93,7 +101,7 @@
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"System.Text.Json": "[8.0.5, )" "System.Text.Json": "[8.0.4, )"
} }
} }
} }

View File

@ -2,15 +2,23 @@
"version": 1, "version": 1,
"dependencies": { "dependencies": {
"net8.0-windows7.0": { "net8.0-windows7.0": {
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"System.Text.Json": "[8.0.5, )" "System.Text.Json": "[8.0.4, )"
} }
} }
} }

View File

@ -26,7 +26,7 @@
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.9.2" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.9.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.9.2" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.9.2" />
<PackageReference Include="System.Text.Json" Version="8.0.5" PrivateAssets="all" /> <PackageReference Include="System.Text.Json" Version="8.0.4" PrivateAssets="all" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -42,9 +42,6 @@ internal static class DialogueChoiceExtensions
.AsSyntaxNodeOrToken(), .AsSyntaxNodeOrToken(),
Assignment(nameof(DialogueChoice.DataId), dialogueChoice.DataId, Assignment(nameof(DialogueChoice.DataId), dialogueChoice.DataId,
emptyChoice.DataId) emptyChoice.DataId)
.AsSyntaxNodeOrToken(),
Assignment(nameof(DialogueChoice.SpecialCondition), dialogueChoice.SpecialCondition,
emptyChoice.SpecialCondition)
.AsSyntaxNodeOrToken())))); .AsSyntaxNodeOrToken()))));
} }
} }

View File

@ -68,9 +68,9 @@
}, },
"System.Text.Json": { "System.Text.Json": {
"type": "Direct", "type": "Direct",
"requested": "[8.0.5, )", "requested": "[8.0.4, )",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": { "dependencies": {
"Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
"System.Buffers": "4.5.1", "System.Buffers": "4.5.1",
@ -264,7 +264,7 @@
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"System.Text.Json": "[8.0.5, )" "System.Text.Json": "[8.0.4, )"
} }
} }
} }

View File

@ -1,222 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012221,
"Position": {
"X": 195.08655,
"Y": -5.3999624,
"Z": -65.65961
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
}
},
{
"DataId": 1012223,
"Position": {
"X": 188.70825,
"Y": -5.3999662,
"Z": -68.833435
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 1012224,
"Position": {
"X": 175.12769,
"Y": -5.4349146,
"Z": -57.938538
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": 197.57971,
"Y": 307.86523,
"Z": 409.82266
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
},
{
"DataId": 1014980,
"Position": {
"X": 198.6571,
"Y": 293.33,
"Z": 418.57007
},
"TerritoryId": 155,
"InteractionType": "Interact",
"Fly": false,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"StopDistance": 4,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1014931,
"Position": {
"X": 182.97095,
"Y": 7.488976,
"Z": -46.830017
},
"TerritoryId": 153,
"InteractionType": "Interact",
"AetheryteShortcut": "South Shroud - Quarrymill",
"StopDistance": 4,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014925,
"Position": {
"X": 184.49683,
"Y": 14.1174555,
"Z": 51.92639
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"NextQuestId": 2013
}
]
}
]
}

View File

@ -1,77 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014981,
"Position": {
"X": 185.62585,
"Y": 14.044273,
"Z": 50.492065
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014981,
"Position": {
"X": 185.62585,
"Y": 14.044273,
"Z": 50.492065
},
"TerritoryId": 153,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"NextQuestId": 2014
}
]
}
]
}

View File

@ -1,169 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014935,
"Position": {
"X": 143.35852,
"Y": -6.0896406,
"Z": 409.81152
},
"TerritoryId": 145,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006314,
"Position": {
"X": 143.05322,
"Y": -6.149414,
"Z": 412.10034
},
"TerritoryId": 145,
"InteractionType": "Interact",
"StopDistance": 2,
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014941,
"Position": {
"X": -61.72278,
"Y": 23.150558,
"Z": -408.71295
},
"TerritoryId": 146,
"InteractionType": "Interact",
"StopDistance": 4,
"Fly": false,
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006315,
"Position": {
"X": -60.16632,
"Y": 23.147888,
"Z": -406.79028
},
"TerritoryId": 146,
"InteractionType": "Interact",
"StopDistance": 2,
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1014941,
"Position": {
"X": -61.72278,
"Y": 23.150558,
"Z": -408.71295
},
"TerritoryId": 146,
"InteractionType": "Interact",
"StopDistance": 3,
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"NextQuestId": 2015
}
]
}
]
}

View File

@ -1,70 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014944,
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2016
}
]
}
]
}

View File

@ -1,260 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014944,
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"MaximumDistance": 100,
"TerritoryId": 419
}
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014946,
"Position": {
"X": -189.89856,
"Y": 16,
"Z": 58.182617
},
"TerritoryId": 129,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Hawkers' Alley"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014947,
"Position": {
"X": -187.85382,
"Y": 3.9999306,
"Z": 170.1228
},
"TerritoryId": 129,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Hawkers' Alley",
"[Limsa Lominsa] Fishermens' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
}
},
{
"Position": {
"X": -2.1358607,
"Y": 45.631218,
"Z": -258.50027
},
"TerritoryId": 128,
"InteractionType": "WalkTo",
"AethernetShortcut": [
"[Limsa Lominsa] Fishermens' Guild",
"[Limsa Lominsa] Marauders' Guild"
],
"SkipConditions": {
"StepIf": {
"InTerritory": [
128
]
}
}
},
{
"DataId": 1003282,
"Position": {
"X": -3.03656,
"Y": 48.168007,
"Z": -261.70752
},
"TerritoryId": 128,
"InteractionType": "Interact",
"StopDistance": 5,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1002680,
"Position": {
"X": 1.4800415,
"Y": 30.47563,
"Z": -242.20648
},
"TerritoryId": 128,
"InteractionType": "Interact",
"StopDistance": 5,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014948,
"Position": {
"X": 17.166382,
"Y": 47.600006,
"Z": -160.23505
},
"TerritoryId": 128,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Marauders' Guild"
]
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2006316,
"Position": {
"X": 17.715698,
"Y": 47.592896,
"Z": -160.47919
},
"TerritoryId": 128,
"InteractionType": "SinglePlayerDuty"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2017
}
]
}
]
}

View File

@ -1,178 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 197.69202,
"Y": 307.86456,
"Z": 409.4611
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
},
{
"DataId": 1006377,
"Position": {
"X": 200.97656,
"Y": 293.33,
"Z": 420.37073
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 4,
"Fly": false,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014949,
"Position": {
"X": -159.65515,
"Y": 40.350307,
"Z": -194.7204
},
"TerritoryId": 156,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 5,
"AetheryteShortcut": "Mor Dhona",
"Fly": true,
"Comment": "Solo duty here!"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006318,
"Position": {
"X": -147.2649,
"Y": 43.320312,
"Z": -186.63312
},
"TerritoryId": 156,
"InteractionType": "Interact",
"StopDistance": 3
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2018
}
]
}
]
}

View File

@ -1,70 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014944,
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2019
}
]
}
]
}

View File

@ -1,149 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014944,
"Position": {
"X": 199.93884,
"Y": -0.899981,
"Z": -48.722107
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014957,
"Position": {
"X": 238.78845,
"Y": 302,
"Z": -277.97363
},
"TerritoryId": 155,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 4,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014960,
"Position": {
"X": 262.83667,
"Y": 359.1351,
"Z": -688.3192
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014961,
"Position": {
"X": 259.72375,
"Y": 359.09564,
"Z": -689.93665
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 2006367,
"Position": {
"X": 205.92041,
"Y": 307.8507,
"Z": 412.25293
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"StopDistance": 2,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"NextQuestId": 2020
}
]
}
]
}

View File

@ -1,205 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1015127,
"Position": {
"X": 204.60815,
"Y": 307.87106,
"Z": 414.63342
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest",
"StopDistance": 3,
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006377,
"Position": {
"X": 200.97656,
"Y": 293.33,
"Z": 420.37073
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 4,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
1,
null,
null,
null,
null,
128
]
}
}
},
{
"Position": {
"X": 205.51671,
"Y": 285.27087,
"Z": 413.4063
},
"TerritoryId": 155,
"InteractionType": "Jump",
"JumpDestination": {
"Position": {
"X": 198.82875,
"Y": 234.59601,
"Z": 424.70218
},
"Type": "SingleJump"
}
},
{
"DataId": 1006376,
"Position": {
"X": 195.3612,
"Y": 234.79839,
"Z": 419.3026
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 3
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015128,
"Position": {
"X": 116.472046,
"Y": -4.734893,
"Z": -52.567383
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1015130,
"Position": {
"X": 51.743286,
"Y": 11.741424,
"Z": 27.115234
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1015129,
"Position": {
"X": -0.07635498,
"Y": 11.965096,
"Z": 44.327393
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2021
}
]
}
]
}

View File

@ -1,249 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1015142,
"Position": {
"X": 446.98242,
"Y": 217.95142,
"Z": 753.994
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1015145,
"Position": {
"X": 487.17468,
"Y": 200.23772,
"Z": 656.27515
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"StopDistance": 5,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015146,
"Position": {
"X": 485.0995,
"Y": 200.2377,
"Z": 654.68823
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": 501.1413,
"Y": 161.74702,
"Z": -318.04788
},
"TerritoryId": 397,
"InteractionType": "Combat",
"StopDistance": 3,
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 4619,
"MinimumKillCount": 1
},
{
"DataId": 4360,
"MinimumKillCount": 2
}
],
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1015147,
"Position": {
"X": 500.11438,
"Y": 161.61157,
"Z": -320.02753
},
"TerritoryId": 397,
"InteractionType": "Action",
"Action": "Aspected Benefic",
"StopDistance": 3
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1015142,
"Position": {
"X": 446.98242,
"Y": 217.95142,
"Z": 753.994
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Fly": true
}
]
},
{
"Sequence": 7,
"Steps": [
{
"Position": {
"X": 529.5874,
"Y": 227.05162,
"Z": 717.32074
},
"TerritoryId": 397,
"InteractionType": "WalkTo",
"Fly": true
},
{
"InteractionType": "None",
"Mount": false,
"TerritoryId": 397
},
{
"DataId": 1015149,
"Position": {
"X": 533.59265,
"Y": 228.33778,
"Z": 720.2715
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 4
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1015151,
"Position": {
"X": 541.25256,
"Y": 228.85133,
"Z": 742.5497
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 4,
"Fly": false
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2022
}
]
}
]
}

View File

@ -1,191 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1015168,
"Position": {
"X": -266.01056,
"Y": 126.407364,
"Z": -0.045776367
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1015169,
"Position": {
"X": -311.42145,
"Y": 126.83597,
"Z": 3.4942627
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1015171,
"Position": {
"X": -320.02753,
"Y": 126.52038,
"Z": -14.023071
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1015170,
"Position": {
"X": -296.86432,
"Y": 125.87531,
"Z": -14.389343
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015163,
"Position": {
"X": -310.0786,
"Y": 125.02021,
"Z": -25.192688
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 4
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1015178,
"Position": {
"X": -310.0786,
"Y": 125.02021,
"Z": -25.192688
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2023
}
]
}
]
}

View File

@ -1,203 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1015084,
"Position": {
"X": 487.08313,
"Y": -51.1414,
"Z": 33.340942
},
"TerritoryId": 398,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": false,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1015094,
"Position": {
"X": 472.03772,
"Y": -51.14139,
"Z": 8.590759
},
"TerritoryId": 398,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1015092,
"Position": {
"X": 560.9979,
"Y": -51.27571,
"Z": 62.974
},
"TerritoryId": 398,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1015093,
"Position": {
"X": 465.568,
"Y": -51.19559,
"Z": 98.10022
},
"TerritoryId": 398,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015087,
"Position": {
"X": 509.75806,
"Y": -51.32657,
"Z": 75.913574
},
"TerritoryId": 398,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1015095,
"Position": {
"X": 731.56323,
"Y": -40.98759,
"Z": -27.420471
},
"TerritoryId": 398,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 4,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2024
}
]
}
]
}

View File

@ -1,209 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1015181,
"Position": {
"X": 707.94226,
"Y": 204.32489,
"Z": -252.49103
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1015190,
"Position": {
"X": 679.1942,
"Y": 207.2133,
"Z": -273.82324
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015191,
"Position": {
"X": 651.78906,
"Y": 207.92256,
"Z": -268.29938
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1015192,
"Position": {
"X": 652.82666,
"Y": 209.09976,
"Z": -282.70392
},
"TerritoryId": 397,
"InteractionType": "Action",
"StopDistance": 4,
"Action": "Aspected Benefic"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"Position": {
"X": 614.313,
"Y": 210.86438,
"Z": -301.28937
},
"TerritoryId": 397,
"InteractionType": "Combat",
"StopDistance": 3,
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 4676,
"MinimumKillCount": 3
}
]
},
{
"DataId": 2006415,
"Position": {
"X": 614.313,
"Y": 210.86438,
"Z": -301.28937
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1015197,
"Position": {
"X": 614.25183,
"Y": 210.67752,
"Z": -300.1908
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 3
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1015181,
"Position": {
"X": 707.94226,
"Y": 204.32489,
"Z": -252.49103
},
"TerritoryId": 397,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2025
}
]
}
]
}

View File

@ -1,178 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1015108,
"Position": {
"X": -359.42633,
"Y": 141.55403,
"Z": -215.32007
},
"TerritoryId": 399,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1015111,
"Position": {
"X": -447.65393,
"Y": 159.354,
"Z": 147.63098
},
"TerritoryId": 399,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
399
]
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1015114,
"Position": {
"X": -370.47382,
"Y": 147.34354,
"Z": 59.128662
},
"TerritoryId": 399,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 4,
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
399
]
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1015114,
"Position": {
"X": -370.47382,
"Y": 147.34354,
"Z": 59.128662
},
"TerritoryId": 399,
"InteractionType": "Interact",
"StopDistance": 4
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2409
}
]
}
]
}

View File

@ -1,47 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
419
]
}
},
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_JOBAST299_02123_Q1_000_000",
"Yes": true
},
{
"Type": "YesNo",
"Prompt": "TEXT_JOBAST299_02123_Q2_000_000",
"Yes": true
}
]
}
]
}
]
}

View File

@ -1,141 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1009813,
"Position": {
"X": 55.436035,
"Y": 31.187548,
"Z": -763.42413
},
"TerritoryId": 156,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1009828,
"Position": {
"X": 64.95764,
"Y": 20.487333,
"Z": -641.01624
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1009831,
"Position": {
"X": -58.487915,
"Y": 3.4366195,
"Z": -645.655
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1009835,
"Position": {
"X": -103.379944,
"Y": -1.3236009,
"Z": -615.9304
},
"TerritoryId": 156,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
3565,
4619,
5044
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1009835,
"Position": {
"X": -103.379944,
"Y": -1.3236009,
"Z": -615.9304
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2004633,
"Position": {
"X": -98.74121,
"Y": -0.015319824,
"Z": -616.5408
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1009839,
"Position": {
"X": -95.780945,
"Y": -0.42092213,
"Z": -625.6962
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006530,
"Position": {
"X": 21.927185,
"Y": 20.746975,
"Z": -682.06305
},
"TerritoryId": 156,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -1,166 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1009812,
"Position": {
"X": 74.08252,
"Y": 30.549389,
"Z": -720.9735
},
"TerritoryId": 156,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 26.405773,
"Y": 29.49983,
"Z": -767.3998
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": 25.629164,
"Y": 28.999998,
"Z": -823.2204
},
"TerritoryId": 156,
"InteractionType": "WalkTo"
},
{
"DataId": 1001304,
"Position": {
"X": 25.589355,
"Y": 29,
"Z": -825.37573
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2004628,
"Position": {
"X": 50.614136,
"Y": 31.143677,
"Z": -748.40924
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2004631,
"Position": {
"X": -127.55017,
"Y": -1.9379272,
"Z": -638.4833
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -165.20372,
"Y": 11.28438,
"Z": -619.29504
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2004629,
"Position": {
"X": -166.79645,
"Y": 12.283508,
"Z": -619.8978
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1009817,
"Position": {
"X": -130.1748,
"Y": -0.85852593,
"Z": -645.2583
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1006530,
"Position": {
"X": 21.927185,
"Y": 20.746975,
"Z": -682.06305
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1009813,
"Position": {
"X": 55.436035,
"Y": 31.187548,
"Z": -763.42413
},
"TerritoryId": 156,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 50
}
]
}
]
}

View File

@ -1,212 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1009813,
"Position": {
"X": 55.436035,
"Y": 31.187548,
"Z": -763.42413
},
"TerritoryId": 156,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1009812,
"Position": {
"X": 74.08252,
"Y": 30.549389,
"Z": -720.9735
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1006530,
"Position": {
"X": 21.927185,
"Y": 20.746975,
"Z": -682.06305
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1009825,
"Position": {
"X": 86.07605,
"Y": 28.34813,
"Z": -622.18665
},
"StopDistance": 0.5,
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"Position": {
"X": 30.917934,
"Y": 20.495003,
"Z": -656.1909
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true,
"$": "Rising Stones Door",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
}
}
},
{
"DataId": 1009826,
"Position": {
"X": 29.160034,
"Y": 21.252728,
"Z": -642.51166
},
"TerritoryId": 156,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"Position": {
"X": 30.917934,
"Y": 20.495003,
"Z": -656.1909
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Mount": true,
"$": "Rising Stones Door"
},
{
"Position": {
"X": 18.883974,
"Y": 53.583996,
"Z": -702.24194
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
}
},
{
"DataId": 1009823,
"Position": {
"X": 16.983276,
"Y": 53.614998,
"Z": -703.3341
},
"TerritoryId": 156,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1009824,
"Position": {
"X": 22.262878,
"Y": 28.999968,
"Z": -780.85
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1009813,
"Position": {
"X": 55.436035,
"Y": 31.187548,
"Z": -763.42413
},
"TerritoryId": 156,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 100
}
]
}
]
}

View File

@ -53,8 +53,7 @@
}, },
"TerritoryId": 614, "TerritoryId": 614,
"InteractionType": "Snipe", "InteractionType": "Snipe",
"Fly": true, "Fly": true
"Comment": "Snipe Namazu"
} }
] ]
}, },
@ -70,8 +69,7 @@
}, },
"TerritoryId": 614, "TerritoryId": 614,
"InteractionType": "Snipe", "InteractionType": "Snipe",
"Fly": true, "Fly": true
"Comment": "Snipe Namazu"
} }
] ]
}, },

View File

@ -1,128 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1021184,
"Position": {
"X": 191.9126,
"Y": 234.44899,
"Z": 402.45667
},
"TerritoryId": 155,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1021187,
"Position": {
"X": -1.9990234,
"Y": 0.74534994,
"Z": 360.25012
},
"TerritoryId": 153,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "South Shroud - Camp Tranquil",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_JOBAST601_02409_Q1_000_000",
"Answer": "TEXT_JOBAST601_02409_A1_000_001"
}
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1021191,
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2410
}
]
}
]
}

View File

@ -1,164 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1021191,
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1021221,
"Position": {
"X": 180.22424,
"Y": -5.4349146,
"Z": -55.588684
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 244.403,
"Y": 361.78677,
"Z": -616.2311
},
"TerritoryId": 155,
"InteractionType": "Combat",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 7235,
"MinimumKillCount": 2
}
]
},
{
"DataId": 1021222,
"Position": {
"X": 240.68054,
"Y": 362.1392,
"Z": -614.74023
},
"TerritoryId": 155,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1021191,
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 195.1781,
"Y": -5.3999624,
"Z": -67.06348
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
},
"NextQuestId": 2411
}
]
}
]
}

View File

@ -1,233 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012222,
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Athenaeum Astrologicum"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 202.38037,
"Y": -5.3999662,
"Z": -58.9151
},
"TerritoryId": 419,
"MaximumDistance": 100
}
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1021255,
"Position": {
"X": -0.35101318,
"Y": 11.965101,
"Z": 45.029297
},
"TerritoryId": 419,
"InteractionType": "Interact",
"StopDistance": 5,
"AethernetShortcut": [
"[Ishgard] Athenaeum Astrologicum",
"[Ishgard] The Last Vigil"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1021259,
"Position": {
"X": -16.250854,
"Y": 0.09999631,
"Z": -31.784546
},
"TerritoryId": 628,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": {
"CompletionQuestVariablesFlags": [
1,
null,
null,
null,
null,
64
]
}
}
},
{
"DataId": 1021256,
"Position": {
"X": 28.610596,
"Y": 4,
"Z": 53.57434
},
"TerritoryId": 628,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": {
"CompletionQuestVariablesFlags": [
2,
null,
null,
null,
null,
null
]
}
}
},
{
"DataId": 1021260,
"Position": {
"X": -12.069946,
"Y": -4.9889293,
"Z": 15.579407
},
"TerritoryId": 628,
"InteractionType": "Interact",
"StopDistance": 4,
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2007937,
"Position": {
"X": -51.621338,
"Y": 16.891724,
"Z": 0.045776367
},
"TerritoryId": 628,
"InteractionType": "Interact",
"StopDistance": 2,
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -53.109528,
"Y": 15.469519,
"Z": 22.387312
},
"TerritoryId": 628,
"InteractionType": "Jump",
"JumpDestination": {
"Type": "RepeatedJumps",
"Position": {
"X": -57.846985,
"Y": -3,
"Z": 25.16211
},
"StopDistance": 4
}
},
{
"DataId": 1021261,
"Position": {
"X": -57.846985,
"Y": -3,
"Z": 25.16211
},
"StopDistance": 4,
"TerritoryId": 628,
"InteractionType": "SinglePlayerDuty",
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1021262,
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] The Ruby Bazaar"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"MaximumDistance": 20
}
}
},
"NextQuestId": 2412
}
]
}
]
}

View File

@ -1,165 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1021262,
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] The Ruby Bazaar"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"MaximumDistance": 20
}
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1021273,
"Position": {
"X": 469.84045,
"Y": 69.6416,
"Z": -68.37573
},
"TerritoryId": 614,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Yanxia - Namai"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1021274,
"Position": {
"X": -413.77893,
"Y": 55.093624,
"Z": 305.83655
},
"TerritoryId": 614,
"InteractionType": "Combat",
"StopDistance": 4,
"Fly": true,
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_JOBAST680_02412_Q1_000_024",
"Yes": true
}
],
"AetheryteShortcut": "Yanxia - Namai",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
7236
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1021274,
"Position": {
"X": -413.77893,
"Y": 55.093624,
"Z": 305.83655
},
"TerritoryId": 614,
"InteractionType": "Interact",
"StopDistance": 4,
"Fly": false
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1021054,
"Position": {
"X": -36.66742,
"Y": 14.000003,
"Z": -58.457336
},
"TerritoryId": 628,
"InteractionType": "Interact",
"AetheryteShortcut": "Kugane",
"StopDistance": 4,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1021262,
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] The Ruby Bazaar"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"MaximumDistance": 20
}
}
},
"NextQuestId": 2413
}
]
}
]
}

View File

@ -1,144 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1021262,
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Aetheryte Plaza",
"[Kugane] The Ruby Bazaar"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": 98.10022,
"Y": 4.0000014,
"Z": 87.44946
},
"TerritoryId": 628,
"MaximumDistance": 20
}
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2008103,
"Position": {
"X": 44.84619,
"Y": 8.255066,
"Z": 178.11853
},
"TerritoryId": 628,
"InteractionType": "Interact",
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1021305,
"Position": {
"X": -61.356567,
"Y": -3,
"Z": 28.854736
},
"TerritoryId": 628,
"InteractionType": "Interact",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Thavnairian Consulate",
"[Kugane] Kogane Dori Markets"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2008104,
"Position": {
"X": 128.13,
"Y": 24.979004,
"Z": -0.22894287
},
"TerritoryId": 628,
"InteractionType": "SinglePlayerDuty",
"StopDistance": 3,
"AetheryteShortcut": "Kugane",
"AethernetShortcut": [
"[Kugane] Kogane Dori Markets",
"[Kugane] The Ruby Bazaar"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1021309,
"Position": {
"X": -47.501343,
"Y": 16.624714,
"Z": 9.719971
},
"TerritoryId": 628,
"InteractionType": "CompleteQuest",
"StopDistance": 5,
"AetheryteShortcut": "Kugane",
"SkipConditions": {
"AetheryteShortcutIf": {
"NearPosition": {
"Position": {
"X": -47.501343,
"Y": 16.624714,
"Z": 9.719971
},
"TerritoryId": 628,
"MaximumDistance": 20
}
}
},
"NextQuestId": 3222
}
]
}
]
}

View File

@ -1,103 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1024791,
"Position": {
"X": 31.60144,
"Y": 0.26575702,
"Z": 28.915894
},
"TerritoryId": 759,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Doman Enclave",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006530,
"Position": {
"X": 21.927185,
"Y": 20.746975,
"Z": -682.06305
},
"TerritoryId": 156,
"InteractionType": "Interact",
"AetheryteShortcut": "Mor Dhona"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1025287,
"Position": {
"X": 64.34729,
"Y": 31.199963,
"Z": -754.0246
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 2009436,
"Position": {
"X": 70.05408,
"Y": 30.746826,
"Z": -722.86566
},
"TerritoryId": 156,
"InteractionType": "CompleteQuest",
"Fly": true,
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_STMBDY501_03086_Q1_000_091",
"Yes": true
},
{
"Type": "List",
"Prompt": "TEXT_STMBDY501_03086_Q2_000_097",
"Answer": "TEXT_STMBDY501_03086_A2_000_100"
},
{
"Type": "List",
"Prompt": "TEXT_STMBDY501_03086_Q3_000_118",
"Answer": "TEXT_STMBDY501_03086_A3_000_119"
},
{
"Type": "List",
"Prompt": "TEXT_STMBDY501_03086_Q4_000_134",
"Answer": "TEXT_STMBDY501_03086_A4_000_136"
},
{
"Type": "List",
"Prompt": "TEXT_STMBDY501_03086_Q5_000_156",
"Answer": "TEXT_STMBDY501_03086_A5_000_158"
}
],
"NextQuestId": 3087
}
]
}
]
}

View File

@ -1,118 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1025330,
"Position": {
"X": 64.83557,
"Y": 30.6188,
"Z": -722.3774
},
"StopDistance": 7,
"TerritoryId": 156,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006530,
"Position": {
"X": 21.927185,
"Y": 20.746975,
"Z": -682.06305
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1009813,
"Position": {
"X": 55.436035,
"Y": 31.187548,
"Z": -763.42413
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 51.799374,
"Y": 50,
"Z": -774.0067
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1018433,
"Position": {
"X": 50.766724,
"Y": 50,
"Z": -772.3964
},
"TerritoryId": 156,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1025287,
"Position": {
"X": 64.34729,
"Y": 31.199963,
"Z": -754.0246
},
"TerritoryId": 156,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1024791,
"Position": {
"X": 31.60144,
"Y": 0.26575702,
"Z": 28.915894
},
"TerritoryId": 759,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Doman Enclave",
"NextQuestId": 3141
}
]
}
]
}

View File

@ -1,57 +0,0 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1024791,
"Position": {
"X": 31.60144,
"Y": 0.26575702,
"Z": 28.915894
},
"TerritoryId": 759,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Doman Enclave",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1024793,
"Position": {
"X": 66.666626,
"Y": -7.579447E-09,
"Z": -59.67804
},
"TerritoryId": 759,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1024791,
"Position": {
"X": 31.60144,
"Y": 0.26575702,
"Z": 28.915894
},
"TerritoryId": 759,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -49,8 +49,7 @@
"InteractionType": "Say", "InteractionType": "Say",
"ChatMessage": { "ChatMessage": {
"Key": "TEXT_LUCKMB109_03310_SYSTEM_000_060" "Key": "TEXT_LUCKMB109_03310_SYSTEM_000_060"
}, }
"DelaySecondsAtStart": 6
} }
] ]
}, },
@ -68,8 +67,7 @@
"InteractionType": "Say", "InteractionType": "Say",
"ChatMessage": { "ChatMessage": {
"Key": "TEXT_LUCKMB109_03310_SYSTEM_000_070" "Key": "TEXT_LUCKMB109_03310_SYSTEM_000_070"
}, }
"DelaySecondsAtStart": 8
} }
] ]
}, },

View File

@ -70,12 +70,6 @@
"ExcelSheet": "GimmickYesNo", "ExcelSheet": "GimmickYesNo",
"Prompt": 142, "Prompt": 142,
"Yes": true "Yes": true
},
{
"Type": "YesNo",
"ExcelSheet": "GimmickYesNo",
"Prompt": 137,
"Yes": true
} }
] ]
} }

View File

@ -55,7 +55,7 @@
"Steps": [ "Steps": [
{ {
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "None", "InteractionType": "WaitForManualProgress",
"Comment": "Credits" "Comment": "Credits"
} }
] ]

View File

@ -51,7 +51,7 @@
}, },
"StopDistance": 0.5, "StopDistance": 0.5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Combat", "InteractionType": "WaitForManualProgress",
"EnemySpawnType": "AutoOnEnterArea", "EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14044 14044

View File

@ -1,6 +1,7 @@
{ {
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to", "Author": "liza",
"Disabled": true,
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -17,51 +18,6 @@
} }
] ]
}, },
{
"Sequence": 1,
"Steps": [
{
"DataId": 2013074,
"Position": {
"X": 304.3412,
"Y": 483.48206,
"Z": 143.11438
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 1073,
"$": "Without this step, there are times where it doesn't confirm automatically"
},
{
"TerritoryId": 1073,
"InteractionType": "Gather",
"ItemsToGather": [
{
"QuestAcceptedAsClass": "Miner",
"ItemId": 38288,
"ItemCount": 3
},
{
"QuestAcceptedAsClass": "Botanist",
"ItemId": 38312,
"ItemCount": 3
}
]
},
{
"DataId": 1043936,
"Position": {
"X": 194.56775,
"Y": 567.4998,
"Z": 250.93457
},
"TerritoryId": 960,
"InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Base Omicron",
"Mount": true
}
]
},
{ {
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [

View File

@ -188,15 +188,14 @@
"Z": 94.77368 "Z": 94.77368
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Combat", "InteractionType": "Instruction",
"EnemySpawnType": "AfterInteraction", "EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14079 14079
], ],
"CombatItemUse": { "Comment": "TODO Needs item use?",
"ItemId": 2003231, "ItemId": 2003231,
"Condition": "Incapacitated" "ItemUseHealthMaxPercent": 10,
},
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
@ -280,15 +279,14 @@
"Z": 396.96338 "Z": 396.96338
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Combat", "InteractionType": "Instruction",
"EnemySpawnType": "AfterInteraction", "EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14080 14080
], ],
"CombatItemUse": { "Comment": "TODO Needs item use?",
"ItemId": 2003231, "ItemId": 2003231,
"Condition": "Incapacitated" "ItemUseHealthMaxPercent": 10,
},
"DisableNavmesh": true, "DisableNavmesh": true,
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,

View File

@ -65,19 +65,6 @@
"Type": "YesNo", "Type": "YesNo",
"Prompt": "TEXT_AKTKMB115_04394_Q1_000_042", "Prompt": "TEXT_AKTKMB115_04394_Q1_000_042",
"Yes": true "Yes": true
},
{
"Type": "List",
"ExcelSheet": "ContentTalk",
"Prompt": 254,
"Answer": 247,
"SpecialCondition": "NoDutyActions"
},
{
"Type": "List",
"ExcelSheet": "ContentTalk",
"Prompt": 254,
"Answer": 248
} }
], ],
"AetheryteShortcut": "Garlemald - Camp Broken Glass", "AetheryteShortcut": "Garlemald - Camp Broken Glass",

View File

@ -37,23 +37,10 @@
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{ {
"Position": {
"X": 206.0426,
"Y": 20.561113,
"Z": 629.14465
},
"DataId": 1039998, "DataId": 1039998,
"TerritoryId": 961, "TerritoryId": 961,
"InteractionType": "Combat", "InteractionType": "WaitForManualProgress",
"EnemySpawnType": "OverworldEnemies", "Comment": "Capture Mobs with less than 50% HP"
"KillEnemyDataIds": [
13447, 13448, 13449
],
"CombatItemUse": {
"ItemId": 2003232,
"Condition": "Health%",
"Value": 50
}
} }
] ]
}, },

View File

@ -32,16 +32,6 @@
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest",
"PickUpQuestId": 4507 "PickUpQuestId": 4507
}, },
{
"Position": {
"X": -109.12761,
"Y": -34.0357,
"Z": 397.6694
},
"TerritoryId": 961,
"InteractionType": "WalkTo",
"$": "Avoids combat"
},
{ {
"DataId": 1040073, "DataId": 1040073,
"Position": { "Position": {

View File

@ -44,22 +44,19 @@
"Y": -18.777306, "Y": -18.777306,
"Z": 527.2946 "Z": 527.2946
}, },
"StopDistance": 0.5,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Combat", "InteractionType": "WaitForManualProgress",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14107
],
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
128 128
], ],
"$.0": "0 0 0 0 0 0 -> 16 64 0 0 0 128" "Comment": "Use the mount's abilities to kill the drones.",
"$.0": "0 0 0 0 0 0 -> 16 64 0 0 0 128",
"$.1": "can't find any currently extant method of automating this - could add the actions, but it's combat with the actions specifically, repeat use on targets"
}, },
{ {
"Position": { "Position": {
@ -67,21 +64,9 @@
"Y": -18.937208, "Y": -18.937208,
"Z": 338.0957 "Z": 338.0957
}, },
"StopDistance": 0.5,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Combat", "InteractionType": "WaitForManualProgress",
"EnemySpawnType": "AutoOnEnterArea", "Comment": "Use the mount's abilities to kill the drones."
"KillEnemyDataIds": [
14107
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
} }
] ]
}, },
@ -89,12 +74,6 @@
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{ {
"Position": {
"X": 135.85095,
"Y": -17.135998,
"Z": 567.8645
},
"StopDistance": 2000,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "None", "InteractionType": "None",
"Mount": false "Mount": false
@ -108,8 +87,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest",
"Fly": true, "Fly": true
"NextQuestId": 4218
} }
] ]
} }

View File

@ -30,12 +30,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, 1,
null, null,
null, null,
null, null,
128 128
], ],
"$": "0 0 0 0 0 0 -> 16 1 0 0 0 128" "$": "0 0 0 0 0 0 -> 16 1 0 0 0 128"
}, },
@ -49,12 +49,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, 16,
null, null,
null, null,
null, null,
32 32
], ],
"$": "16 1 0 0 0 128 -> 32 17 0 0 0 160" "$": "16 1 0 0 0 128 -> 32 17 0 0 0 160"
}, },
@ -67,15 +67,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"$": "32 17 0 0 0 160 -> 0 0 0 0 0 0", "$": "32 17 0 0 0 160 -> 0 0 0 0 0 0"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
} }
] ]
}, },

View File

@ -67,15 +67,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"$": "33 1 16 0 0 192 -> 0 0 0 0 0 0", "$": "33 1 16 0 0 192 -> 0 0 0 0 0 0"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
} }
] ]
}, },

View File

@ -75,15 +75,7 @@
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14104 14104
], ],
"$": "33 16 16 0 0 192 -> 0 0 0 0 0 0", "$": "33 16 16 0 0 192 -> 0 0 0 0 0 0"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
} }
] ]
}, },

View File

@ -45,12 +45,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, 128,
null, null,
null, null,
null, null,
64 64
], ],
"$": "0 0 0 0 0 0 -> 0 128 0 0 0 64" "$": "0 0 0 0 0 0 -> 0 128 0 0 0 64"
}, },
@ -64,12 +64,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, 64,
null, null,
null, null,
null, null,
32 32
], ],
"$": "0 128 0 0 0 64 -> 0 192 0 0 0 96" "$": "0 128 0 0 0 64 -> 0 192 0 0 0 96"
}, },
@ -83,12 +83,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, 32,
null, null,
null, null,
null, null,
16 16
], ],
"$": "0 192 0 0 0 96 -> 0 224 0 0 0 112" "$": "0 192 0 0 0 96 -> 0 224 0 0 0 112"
}, },

View File

@ -48,12 +48,12 @@
], ],
"Fly": true, "Fly": true,
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
64 64
], ],
"$": "0 0 0 0 0 0 -> 0 0 0 128 0 64" "$": "0 0 0 0 0 0 -> 0 0 0 128 0 64"
}, },
@ -74,12 +74,12 @@
} }
], ],
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
32 32
], ],
"$": "0 0 0 128 0 64 -> 0 0 0 192 0 96" "$": "0 0 0 128 0 64 -> 0 0 0 192 0 96"
}, },
@ -91,15 +91,7 @@
"Z": -292.98853 "Z": -292.98853
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },

View File

@ -21,23 +21,15 @@
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{ {
"DataId": 13468,
"Position": { "Position": {
"X": -159.59418, "X": -159.59418,
"Y": 10.8, "Y": 10.8,
"Z": -468.8335 "Z": -468.8335
}, },
"StopDistance": 0.5,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Combat", "InteractionType": "WaitForManualProgress",
"EnemySpawnType": "OverworldEnemies", "Comment": "Use item 2003202 on 13468 after \"weakening\"",
"KillEnemyDataIds": [
13468
],
"CombatItemUse": {
"ItemId": 2003202,
"Condition": "Health%",
"Value": 40
},
"Fly": true "Fly": true
} }
] ]

View File

@ -72,7 +72,6 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"Mount": true,
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
@ -92,15 +91,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"$": "49 16 16 0 0 224 -> 0 16 0 0 0 0", "$": "49 16 16 0 0 224 -> 0 16 0 0 0 0"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
} }
] ]
}, },

View File

@ -27,28 +27,6 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": 545.40717,
"Y": -36.616177,
"Z": -267.17505
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
},
"$": "Without this step, it'll interact with the NPC in the wagon through the wall"
},
{ {
"DataId": 1037766, "DataId": 1037766,
"Position": { "Position": {
@ -59,12 +37,12 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
64 64
], ],
"$": "0 0 0 0 0 0 -> 1 32 0 0 0 64" "$": "0 0 0 0 0 0 -> 1 32 0 0 0 64"
}, },
@ -85,12 +63,12 @@
} }
], ],
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
128 128
], ],
"$": "1 32 0 0 0 64 -> 2 16 0 0 0 192" "$": "1 32 0 0 0 64 -> 2 16 0 0 0 192"
}, },
@ -102,15 +80,7 @@
"Z": -175.21942 "Z": -175.21942
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
} }
] ]
}, },

View File

@ -45,8 +45,7 @@
"Z": -296.37604 "Z": -296.37604
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Snipe", "InteractionType": "Interact"
"Comment": "Snipe Magitek Colossi"
} }
] ]
}, },
@ -61,7 +60,7 @@
"Z": -299.36682 "Z": -299.36682
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact" "InteractionType": "Snipe"
} }
] ]
}, },

View File

@ -81,15 +81,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "UseItem", "InteractionType": "UseItem",
"ItemId": 2003210, "ItemId": 2003210
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
} }
] ]
}, },

View File

@ -20,29 +20,6 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": -189.97284,
"Y": 15.907461,
"Z": -169.83481
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"Flying": "Locked",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
}
},
{ {
"DataId": 2012054, "DataId": 2012054,
"Position": { "Position": {
@ -53,15 +30,17 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
128 128
], ],
"$.0": "0 0 0 0 0 0 -> 1 16 0 0 0 128", "$.0": "0 0 0 0 0 0 -> 1 16 0 0 0 128",
"Fly": true "AetheryteShortcut": "Garlemald - Tertium",
"Fly": true,
"$.1": "flight path gets stuck from camp BG, not so from tertium; walkto would probably be cleaner but this seems intuitive."
}, },
{ {
"DataId": 2012055, "DataId": 2012055,
@ -73,61 +52,15 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
64 64
], ],
"Fly": true,
"$": "1 16 0 0 0 128 -> 2 32 0 0 0 192" "$": "1 16 0 0 0 128 -> 2 32 0 0 0 192"
}, },
{
"Position": {
"X": -223.12543,
"Y": 10.826223,
"Z": -368.8611
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"Flying": "Unlocked",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
}
},
{
"Position": {
"X": -140.08179,
"Y": 16.226164,
"Z": -310.9478
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"Fly": true,
"SkipConditions": {
"StepIf": {
"Flying": "Locked",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
}
},
{ {
"DataId": 2012056, "DataId": 2012056,
"Position": { "Position": {
@ -138,15 +71,15 @@
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,
null, null,
null, null,
null, null,
32 32
], ],
"$.0": "2 32 0 0 0 192 -> 3 48 0 0 0 224", "$.0": "2 32 0 0 0 192 -> 3 48 0 0 0 224",
"Fly": true "$.1": "fly also gets stuck here"
}, },
{ {
"DataId": 2012057, "DataId": 2012057,
@ -155,19 +88,10 @@
"Y": 16.494995, "Y": 16.494995,
"Z": -413.016 "Z": -413.016
}, },
"StopDistance": 1,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "Interact", "InteractionType": "Interact",
"$.0": "3 48 0 0 0 224 -> 0 64 0 0 0 0", "$.0": "3 48 0 0 0 224 -> 0 64 0 0 0 0",
"Fly": true, "$.1": "no fly here, tries and fails to land on the railing: can't interact while flying"
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
} }
] ]
}, },

View File

@ -53,8 +53,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest",
"AetheryteShortcut": "Garlemald - Camp Broken Glass", "AetheryteShortcut": "Garlemald - Camp Broken Glass"
"NextQuestId": 4500
} }
] ]
} }

View File

@ -71,8 +71,7 @@
"Prompt": "TEXT_AKTKZC103_04500_Q2_000_000", "Prompt": "TEXT_AKTKZC103_04500_Q2_000_000",
"Answer": "TEXT_AKTKZC103_04500_A2_000_001" "Answer": "TEXT_AKTKZC103_04500_A2_000_001"
} }
], ]
"NextQuestId": 4501
} }
] ]
} }

View File

@ -83,8 +83,7 @@
}, },
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest",
"AetheryteShortcut": "Garlemald - Tertium", "AetheryteShortcut": "Garlemald - Tertium"
"NextQuestId": 4504
} }
] ]
} }

View File

@ -77,8 +77,7 @@
"Prompt": "TEXT_AKTKZD103_04504_Q2_000_000", "Prompt": "TEXT_AKTKZD103_04504_Q2_000_000",
"Answer": "TEXT_AKTKZD103_04504_A2_000_001" "Answer": "TEXT_AKTKZD103_04504_A2_000_001"
} }
], ]
"NextQuestId": 4505
} }
] ]
} }

View File

@ -12,7 +12,6 @@
"Y": 23.164677, "Y": 23.164677,
"Z": -415.36584 "Z": -415.36584
}, },
"StopDistance": 7,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest",
"Fly": true, "Fly": true,
@ -87,8 +86,7 @@
"Answer": "TEXT_AKTKZD104_04505_A1_000_002" "Answer": "TEXT_AKTKZD104_04505_A1_000_002"
} }
], ],
"AetheryteShortcut": "Garlemald - Tertium", "AetheryteShortcut": "Garlemald - Tertium"
"NextQuestId": 4506
} }
] ]
} }

View File

@ -12,7 +12,6 @@
"Y": -36.65, "Y": -36.65,
"Z": -132.64673 "Z": -132.64673
}, },
"StopDistance": 5,
"TerritoryId": 958, "TerritoryId": 958,
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest",
"DialogueChoices": [ "DialogueChoices": [

View File

@ -2,15 +2,23 @@
"version": 1, "version": 1,
"dependencies": { "dependencies": {
"net8.0-windows7.0": { "net8.0-windows7.0": {
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"System.Text.Json": "[8.0.5, )" "System.Text.Json": "[8.0.4, )"
} }
} }
} }

View File

@ -617,29 +617,6 @@
] ]
} }
}, },
"CombatItemUse": {
"description": "Unlike the 'AfterItemUse' condition that is used for spawning an enemy in the first place, interacting with an item at a certain stage of combat is required",
"type": "object",
"properties": {
"ItemId": {
"type": "integer"
},
"Condition": {
"type": "string",
"enum": [
"Incapacitated",
"Health%"
]
},
"Value": {
"type": "integer"
}
},
"required": [
"ItemId",
"Condition"
]
},
"CombatDelaySecondsAtStart": { "CombatDelaySecondsAtStart": {
"type": "number" "type": "number"
} }
@ -1298,30 +1275,6 @@
"ItemsToGather" "ItemsToGather"
] ]
} }
},
{
"if": {
"properties": {
"InteractionType": {
"anyOf": [
{
"const": "WaitForManualProgress"
},
{
"const": "Instruction"
},
{
"const": "Snipe"
}
]
}
}
},
"then": {
"required": [
"Comment"
]
}
} }
] ]
} }

View File

@ -1,14 +0,0 @@
using System.Text.Json.Serialization;
using Questionable.Model.Questing.Converter;
namespace Questionable.Model.Questing;
public sealed class CombatItemUse
{
public uint ItemId { get; set; }
[JsonConverter(typeof(CombatItemUseConditionConverter))]
public ECombatItemUseCondition Condition { get; set; }
public int Value { get; set; }
}

View File

@ -1,13 +0,0 @@
using System.Collections.Generic;
using Questionable.Model.Common.Converter;
namespace Questionable.Model.Questing.Converter;
public sealed class CombatItemUseConditionConverter() : EnumConverter<ECombatItemUseCondition>(Values)
{
private static readonly Dictionary<ECombatItemUseCondition, string> Values = new()
{
{ ECombatItemUseCondition.Incapacitated, "Incapacitated" },
{ ECombatItemUseCondition.HealthPercent, "Health%" },
};
}

View File

@ -23,9 +23,4 @@ public sealed class DialogueChoice
/// If set, only applies when focusing the given target id. /// If set, only applies when focusing the given target id.
/// </summary> /// </summary>
public uint? DataId { get; set; } public uint? DataId { get; set; }
/// <summary>
/// Used for 'In from the Cold'.
/// </summary>
public string? SpecialCondition { get; set; }
} }

View File

@ -1,8 +0,0 @@
namespace Questionable.Model.Questing;
public enum ECombatItemUseCondition
{
None,
Incapacitated,
HealthPercent,
}

View File

@ -67,7 +67,6 @@ public sealed class QuestStep
public EEnemySpawnType? EnemySpawnType { get; set; } public EEnemySpawnType? EnemySpawnType { get; set; }
public List<uint> KillEnemyDataIds { get; set; } = []; public List<uint> KillEnemyDataIds { get; set; } = [];
public List<ComplexCombatData> ComplexCombatData { get; set; } = []; public List<ComplexCombatData> ComplexCombatData { get; set; } = [];
public CombatItemUse? CombatItemUse { get; set; }
public float? CombatDelaySecondsAtStart { get; set; } public float? CombatDelaySecondsAtStart { get; set; }
public JumpDestination? JumpDestination { get; set; } public JumpDestination? JumpDestination { get; set; }

View File

@ -11,7 +11,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="System.Text.Json" Version="8.0.5" /> <PackageReference Include="System.Text.Json" Version="8.0.4" />
</ItemGroup> </ItemGroup>

View File

@ -13,9 +13,9 @@
}, },
"System.Text.Json": { "System.Text.Json": {
"type": "Direct", "type": "Direct",
"requested": "[8.0.5, )", "requested": "[8.0.4, )",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": { "dependencies": {
"Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
"System.Buffers": "4.5.1", "System.Buffers": "4.5.1",

View File

@ -65,11 +65,11 @@ internal sealed class CombatController : IDisposable
{ {
Stop("Starting combat"); Stop("Starting combat");
var combatModule = _combatModules.FirstOrDefault(x => x.CanHandleFight(combatData)); var combatModule = _combatModules.FirstOrDefault(x => x.IsLoaded);
if (combatModule == null) if (combatModule == null)
return false; return false;
if (combatModule.Start(combatData)) if (combatModule.Start())
{ {
_currentFight = new CurrentFight _currentFight = new CurrentFight
{ {
@ -364,7 +364,6 @@ internal sealed class CombatController : IDisposable
public required EEnemySpawnType SpawnType { get; init; } public required EEnemySpawnType SpawnType { get; init; }
public required List<uint> KillEnemyDataIds { get; init; } public required List<uint> KillEnemyDataIds { get; init; }
public required List<ComplexCombatData> ComplexCombatDatas { get; init; } public required List<ComplexCombatData> ComplexCombatDatas { get; init; }
public required CombatItemUse? CombatItemUse { get; init; }
public HashSet<int> CompletedComplexDatas { get; } = new(); public HashSet<int> CompletedComplexDatas { get; } = new();
} }

View File

@ -4,9 +4,9 @@ namespace Questionable.Controller.CombatModules;
internal interface ICombatModule internal interface ICombatModule
{ {
bool CanHandleFight(CombatController.CombatData combatData); bool IsLoaded { get; }
bool Start(CombatController.CombatData combatData); bool Start();
bool Stop(); bool Stop();

View File

@ -1,157 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.Character;
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Questionable.Functions;
using Questionable.Model.Questing;
namespace Questionable.Controller.CombatModules;
internal sealed class ItemUseModule : ICombatModule
{
private readonly IServiceProvider _serviceProvider;
private readonly ICondition _condition;
private readonly ILogger<ItemUseModule> _logger;
private ICombatModule? _delegate;
private CombatController.CombatData? _combatData;
private bool _isDoingRotation;
private DateTime _continueAt;
public ItemUseModule(IServiceProvider serviceProvider, ICondition condition, ILogger<ItemUseModule> logger)
{
_serviceProvider = serviceProvider;
_condition = condition;
_logger = logger;
}
public bool CanHandleFight(CombatController.CombatData combatData)
{
if (combatData.CombatItemUse == null)
return false;
_delegate = _serviceProvider.GetRequiredService<IEnumerable<ICombatModule>>()
.Where(x => x is not ItemUseModule)
.FirstOrDefault(x => x.CanHandleFight(combatData));
_logger.LogInformation("ItemUse delegate: {Delegate}", _delegate?.GetType().Name);
return _delegate != null;
}
public bool Start(CombatController.CombatData combatData)
{
if (_delegate!.Start(combatData))
{
_combatData = combatData;
_isDoingRotation = true;
_continueAt = DateTime.Now;
return true;
}
return false;
}
public bool Stop()
{
if (_isDoingRotation)
{
_delegate!.Stop();
_isDoingRotation = false;
_combatData = null;
_delegate = null;
_continueAt = DateTime.Now;
}
return true;
}
public void Update(IGameObject nextTarget)
{
if (_delegate == null)
return;
if (_continueAt > DateTime.Now)
return;
if (_combatData?.CombatItemUse == null)
{
_delegate.Update(nextTarget);
return;
}
if (_combatData.KillEnemyDataIds.Contains(nextTarget.DataId) ||
_combatData.ComplexCombatDatas.Any(x => x.DataId == nextTarget.DataId))
{
if (_isDoingRotation)
{
unsafe
{
InventoryManager* inventoryManager = InventoryManager.Instance();
if (inventoryManager->GetInventoryItemCount(_combatData.CombatItemUse.ItemId) == 0)
{
_isDoingRotation = false;
_delegate.Stop();
return;
}
}
if (ShouldUseItem(nextTarget))
{
_isDoingRotation = false;
_delegate.Stop();
unsafe
{
AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId);
}
_continueAt = DateTime.Now.AddSeconds(2);
}
else
_delegate.Update(nextTarget);
}
else if (_condition[ConditionFlag.Casting])
{
// do nothing
DateTime alternativeContinueAt = DateTime.Now.AddSeconds(0.5);
if (alternativeContinueAt > _continueAt)
_continueAt = alternativeContinueAt;
}
else
{
_isDoingRotation = true;
_delegate.Start(_combatData);
}
}
else if (_isDoingRotation)
{
_delegate.Update(nextTarget);
}
}
private unsafe bool ShouldUseItem(IGameObject gameObject)
{
if (_combatData?.CombatItemUse == null)
return false;
if (gameObject is IBattleChara)
{
BattleChara* battleChara = (BattleChara*)gameObject.Address;
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.Incapacitated)
return (battleChara->Flags2 & 128u) != 0;
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent)
return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value;
}
return false;
}
public void MoveToTarget(IGameObject nextTarget) => _delegate!.MoveToTarget(nextTarget);
public bool CanAttack(IBattleNpc target) => _delegate!.CanAttack(target);
}

View File

@ -25,9 +25,9 @@ internal sealed class Mount128Module : ICombatModule
_gameFunctions = gameFunctions; _gameFunctions = gameFunctions;
} }
public bool CanHandleFight(CombatController.CombatData combatData) => _gameFunctions.GetMountId() == MountId; public bool IsLoaded => _gameFunctions.GetMountId() == MountId;
public bool Start(CombatController.CombatData combatData) => true; public bool Start() => true;
public bool Stop() => true; public bool Stop() => true;
@ -47,5 +47,5 @@ internal sealed class Mount128Module : ICombatModule
{ {
} }
public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505 or 14107; public bool CanAttack(IBattleNpc target) => target.DataId is 7504 or 7505;
} }

View File

@ -32,20 +32,23 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable
pluginInterface.GetIpcSubscriber<StateCommandType, object>("RotationSolverReborn.ChangeOperatingMode"); pluginInterface.GetIpcSubscriber<StateCommandType, object>("RotationSolverReborn.ChangeOperatingMode");
} }
public bool CanHandleFight(CombatController.CombatData combatData) public bool IsLoaded
{ {
try get
{ {
_test.InvokeAction("Validate RSR is callable from Questionable"); try
return true; {
} _test.InvokeAction("Validate RSR is callable from Questionable");
catch (IpcError) return true;
{ }
return false; catch (IpcError)
{
return false;
}
} }
} }
public bool Start(CombatController.CombatData combatData) public bool Start()
{ {
try try
{ {

View File

@ -7,9 +7,7 @@ using Dalamud.Game.Addon.Lifecycle;
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Game.Event;
using FFXIVClientStructs.FFXIV.Client.Game.InstanceContent;
using FFXIVClientStructs.FFXIV.Client.Game.UI; using FFXIVClientStructs.FFXIV.Client.Game.UI;
using FFXIVClientStructs.FFXIV.Client.UI; using FFXIVClientStructs.FFXIV.Client.UI;
using FFXIVClientStructs.FFXIV.Component.GUI; using FFXIVClientStructs.FFXIV.Component.GUI;
@ -335,16 +333,7 @@ internal sealed class InteractionUiController : IDisposable
} }
else else
{ {
QuestStep? step = null; var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
if (_territoryData.IsQuestBattleInstance(_clientState.TerritoryType))
{
step = quest.FindSequence(currentQuest.Sequence)?.Steps
.FirstOrDefault(x => x.InteractionType == EInteractionType.SinglePlayerDuty);
}
if (step == null)
step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
if (step == null) if (step == null)
_logger.LogDebug("Ignoring current quest dialogue choices, no active step"); _logger.LogDebug("Ignoring current quest dialogue choices, no active step");
else else
@ -438,27 +427,6 @@ internal sealed class InteractionUiController : IDisposable
if (dialogueChoice.Type != EDialogChoiceType.List) if (dialogueChoice.Type != EDialogChoiceType.List)
continue; continue;
if (dialogueChoice.SpecialCondition == "NoDutyActions")
{
try
{
unsafe
{
ContentDirector* contentDirector = EventFramework.Instance()->GetContentDirector();
if (contentDirector != null && contentDirector->DutyActionManager.ActionsPresent)
{
_logger.LogInformation("NoDutyActions: actions present, skipping dialogue choice");
continue;
}
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to check for duty actions");
continue;
}
}
if (dialogueChoice.Answer == null) if (dialogueChoice.Answer == null)
{ {
_logger.LogDebug("Ignoring entry in DialogueChoices, no answer"); _logger.LogDebug("Ignoring entry in DialogueChoices, no answer");

View File

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

View File

@ -144,7 +144,7 @@ internal sealed class QuestRegistry
private void ValidateQuests() private void ValidateQuests()
{ {
_questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly).ToList()); _questValidator.Validate(_quests.Values.Where(x => x.Source != Quest.ESource.Assembly));
} }
private void LoadQuestFromStream(string fileName, Stream stream, Quest.ESource source) private void LoadQuestFromStream(string fileName, Stream stream, Quest.ESource source)

View File

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

View File

@ -25,14 +25,5 @@ internal interface IQuestInfo
public string SimplifiedName => Name public string SimplifiedName => Name
.Replace(".", "", StringComparison.Ordinal) .Replace(".", "", StringComparison.Ordinal)
.Replace("*", "", StringComparison.Ordinal)
.Replace("\"", "", StringComparison.Ordinal)
.Replace("/", "", StringComparison.Ordinal)
.Replace("\\", "", StringComparison.Ordinal)
.Replace("<", "", StringComparison.Ordinal)
.Replace(">", "", StringComparison.Ordinal)
.Replace("|", "", StringComparison.Ordinal)
.Replace(":", "", StringComparison.Ordinal)
.Replace("?", "", StringComparison.Ordinal)
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' '); .TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
} }

View File

@ -13,7 +13,7 @@
<PackageReference Include="JetBrains.Annotations" Version="2024.2.0" ExcludeAssets="runtime" /> <PackageReference Include="JetBrains.Annotations" Version="2024.2.0" ExcludeAssets="runtime" />
<PackageReference Include="JsonSchema.Net" Version="7.1.2" /> <PackageReference Include="JsonSchema.Net" Version="7.1.2" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0"/> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0"/>
<PackageReference Include="System.Text.Json" Version="8.0.5" /> <PackageReference Include="System.Text.Json" Version="8.0.4" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -234,7 +234,6 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<LeveUiController>(); serviceCollection.AddSingleton<LeveUiController>();
serviceCollection.AddSingleton<ICombatModule, Mount128Module>(); serviceCollection.AddSingleton<ICombatModule, Mount128Module>();
serviceCollection.AddSingleton<ICombatModule, ItemUseModule>();
serviceCollection.AddSingleton<ICombatModule, RotationSolverRebornModule>(); serviceCollection.AddSingleton<ICombatModule, RotationSolverRebornModule>();
} }

View File

@ -157,17 +157,14 @@ internal sealed class CreationUtilsComponent
} }
#endif #endif
#if false #if true
if (_configuration.Advanced.AdditionalStatusInformation) unsafe
{ {
unsafe var actionManager = ActionManager.Instance();
{ ImGui.Text(
var actionManager = ActionManager.Instance(); $"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})");
ImGui.Text( ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}");
$"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})"); ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}");
ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}");
ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}");
}
} }
#endif #endif

View File

@ -65,9 +65,12 @@
}, },
"System.Text.Json": { "System.Text.Json": {
"type": "Direct", "type": "Direct",
"requested": "[8.0.5, )", "requested": "[8.0.4, )",
"resolved": "8.0.5", "resolved": "8.0.4",
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==" "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"Humanizer.Core": { "Humanizer.Core": {
"type": "Transitive", "type": "Transitive",
@ -171,10 +174,15 @@
"Microsoft.SourceLink.Common": "1.1.1" "Microsoft.SourceLink.Common": "1.1.1"
} }
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"gatheringpaths": { "gatheringpaths": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"Questionable.Model": "[3.10.0, )" "Questionable.Model": "[1.0.0, )"
} }
}, },
"llib": { "llib": {
@ -186,13 +194,13 @@
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"System.Text.Json": "[8.0.5, )" "System.Text.Json": "[8.0.4, )"
} }
}, },
"questpaths": { "questpaths": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"Questionable.Model": "[3.10.0, )" "Questionable.Model": "[1.0.0, )"
} }
} }
} }