Compare commits
No commits in common. "master" and "feat/astro" have entirely different histories.
master
...
feat/astro
|
@ -1,5 +1,5 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>3.10</Version>
|
||||
<Version>3.9</Version>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -76,10 +76,18 @@
|
|||
"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": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg=="
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
}
|
||||
},
|
||||
"ecommons": {
|
||||
"type": "Project"
|
||||
|
@ -93,7 +101,7 @@
|
|||
"questionable.model": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"System.Text.Json": "[8.0.5, )"
|
||||
"System.Text.Json": "[8.0.4, )"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,15 +2,23 @@
|
|||
"version": 1,
|
||||
"dependencies": {
|
||||
"net8.0-windows7.0": {
|
||||
"System.Text.Encodings.Web": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.0",
|
||||
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
|
||||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg=="
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
}
|
||||
},
|
||||
"questionable.model": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"System.Text.Json": "[8.0.5, )"
|
||||
"System.Text.Json": "[8.0.4, )"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" 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>
|
||||
|
|
|
@ -42,9 +42,6 @@ internal static class DialogueChoiceExtensions
|
|||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(DialogueChoice.DataId), dialogueChoice.DataId,
|
||||
emptyChoice.DataId)
|
||||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(DialogueChoice.SpecialCondition), dialogueChoice.SpecialCondition,
|
||||
emptyChoice.SpecialCondition)
|
||||
.AsSyntaxNodeOrToken()))));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,9 +68,9 @@
|
|||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Direct",
|
||||
"requested": "[8.0.5, )",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
|
||||
"requested": "[8.0.4, )",
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Bcl.AsyncInterfaces": "8.0.0",
|
||||
"System.Buffers": "4.5.1",
|
||||
|
@ -264,7 +264,7 @@
|
|||
"questionable.model": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"System.Text.Json": "[8.0.5, )"
|
||||
"System.Text.Json": "[8.0.4, )"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +68,7 @@
|
|||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
|
@ -86,12 +91,12 @@
|
|||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
2,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -105,15 +110,7 @@
|
|||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 4,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"StopDistance": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -19,12 +19,10 @@
|
|||
"AetheryteShortcut": "South Shroud - Quarrymill",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -22,10 +22,7 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"MaximumDistance": 100,
|
||||
"TerritoryId": 419
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 199.93884,
|
||||
"Y": -0.899981,
|
||||
"Z": -48.722107
|
||||
},
|
||||
"MaximumDistance": 100,
|
||||
"TerritoryId": 419
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -115,31 +121,11 @@
|
|||
},
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
16,
|
||||
16,
|
||||
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
|
||||
]
|
||||
}
|
||||
|
@ -155,14 +141,39 @@
|
|||
"TerritoryId": 128,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 5,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
"AetheryteShortcut": "Limsa Lominsa",
|
||||
"AethernetShortcut": [
|
||||
"[Limsa Lominsa] Fishermens' Guild",
|
||||
"[Limsa Lominsa] Marauders' Guild"
|
||||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
},
|
||||
"Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower"
|
||||
},
|
||||
{
|
||||
"DataId": 1003282,
|
||||
"Position": {
|
||||
"X": -3.03656,
|
||||
"Y": 48.168007,
|
||||
"Z": -261.70752
|
||||
},
|
||||
"TerritoryId": 128,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 5,
|
||||
"AetheryteShortcut": "Limsa Lominsa",
|
||||
"AethernetShortcut": [
|
||||
"[Limsa Lominsa] Fishermens' Guild",
|
||||
"[Limsa Lominsa] Marauders' Guild"
|
||||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
},
|
||||
"Comment": "You will probably need to do this manually navmesh doesn't work inside Coral Tower"
|
||||
},
|
||||
{
|
||||
"DataId": 1002680,
|
||||
|
@ -174,14 +185,16 @@
|
|||
"TerritoryId": 128,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 5,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"AetheryteShortcut": "Limsa Lominsa",
|
||||
"AethernetShortcut": [
|
||||
"[Limsa Lominsa] Aetheryte Plaza",
|
||||
"[Limsa Lominsa] Marauders' Guild"
|
||||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -202,7 +215,13 @@
|
|||
"AethernetShortcut": [
|
||||
"[Limsa Lominsa] Aetheryte Plaza",
|
||||
"[Limsa Lominsa] Marauders' Guild"
|
||||
]
|
||||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
},
|
||||
"Comment": "Do it manually, navmesh can't get inside the building it seem.\nOtherwise it will run into wall."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -217,7 +236,18 @@
|
|||
"Z": -160.47919
|
||||
},
|
||||
"TerritoryId": 128,
|
||||
"InteractionType": "SinglePlayerDuty"
|
||||
"InteractionType": "SinglePlayerDuty",
|
||||
"StopDistance": 3,
|
||||
"AetheryteShortcut": "Limsa Lominsa",
|
||||
"AethernetShortcut": [
|
||||
"[Limsa Lominsa] Aetheryte Plaza",
|
||||
"[Limsa Lominsa] Marauders' Guild"
|
||||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This Quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 199.93884,
|
||||
"Y": -0.899981,
|
||||
"Z": -48.722107
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -78,13 +84,42 @@
|
|||
"TerritoryId": 155,
|
||||
"InteractionType": "SinglePlayerDuty",
|
||||
"StopDistance": 4,
|
||||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
|
||||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
|
||||
"Comment": "Do the solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014960,
|
||||
"Position": {
|
||||
"X": 262.83667,
|
||||
"Y": 359.1351,
|
||||
"Z": -688.3192
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true,
|
||||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
},
|
||||
"StepIf": {
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 262.83667,
|
||||
"Y": 359.1351,
|
||||
"Z": -688.3192
|
||||
},
|
||||
"MaximumDistance": 100,
|
||||
"TerritoryId": 155
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1014960,
|
||||
"Position": {
|
||||
|
@ -107,6 +142,34 @@
|
|||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014960,
|
||||
"Position": {
|
||||
"X": 259.72375,
|
||||
"Y": 359.09564,
|
||||
"Z": -689.93665
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true,
|
||||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
},
|
||||
"StepIf": {
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 259.72375,
|
||||
"Y": 359.09564,
|
||||
"Z": -689.93665
|
||||
},
|
||||
"MaximumDistance": 100,
|
||||
"TerritoryId": 155
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1014961,
|
||||
"Position": {
|
||||
|
|
|
@ -19,10 +19,15 @@
|
|||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 204.60815,
|
||||
"Y": 307.87106,
|
||||
"Z": 414.63342
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"MaximumDistance": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,14 +73,18 @@
|
|||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1015171,
|
||||
|
@ -88,14 +97,18 @@
|
|||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
2,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1015170,
|
||||
|
@ -107,15 +120,7 @@
|
|||
"TerritoryId": 397,
|
||||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
"Action": "Aspected Benefic"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -68,14 +74,18 @@
|
|||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1015092,
|
||||
|
@ -88,14 +98,18 @@
|
|||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
2,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1015093,
|
||||
|
@ -107,15 +121,7 @@
|
|||
"TerritoryId": 398,
|
||||
"InteractionType": "Action",
|
||||
"StopDistance": 4,
|
||||
"Action": "Aspected Benefic",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
"Action": "Aspected Benefic"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -160,7 +166,8 @@
|
|||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "Do the solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -22,10 +22,15 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,12 +22,18 @@
|
|||
],
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true,
|
||||
"InTerritory": [
|
||||
419
|
||||
]
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": 202.38037,
|
||||
"Y": -5.3999662,
|
||||
"Z": -58.9151
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -119,7 +125,8 @@
|
|||
"AethernetShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "Do the Solo Duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -53,8 +53,7 @@
|
|||
},
|
||||
"TerritoryId": 614,
|
||||
"InteractionType": "Snipe",
|
||||
"Fly": true,
|
||||
"Comment": "Snipe Namazu"
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -70,8 +69,7 @@
|
|||
},
|
||||
"TerritoryId": 614,
|
||||
"InteractionType": "Snipe",
|
||||
"Fly": true,
|
||||
"Comment": "Snipe Namazu"
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
"MaximumDistance": 100
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -190,7 +191,8 @@
|
|||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "Do the Solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
"MaximumDistance": 20
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "This quest have solo duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -48,6 +49,7 @@
|
|||
},
|
||||
"TerritoryId": 628,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 5,
|
||||
"AetheryteShortcut": "Kugane",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
|
@ -105,7 +107,8 @@
|
|||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"Comment": "Do the solo Duty!"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -49,8 +49,7 @@
|
|||
"InteractionType": "Say",
|
||||
"ChatMessage": {
|
||||
"Key": "TEXT_LUCKMB109_03310_SYSTEM_000_060"
|
||||
},
|
||||
"DelaySecondsAtStart": 6
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -68,8 +67,7 @@
|
|||
"InteractionType": "Say",
|
||||
"ChatMessage": {
|
||||
"Key": "TEXT_LUCKMB109_03310_SYSTEM_000_070"
|
||||
},
|
||||
"DelaySecondsAtStart": 8
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -70,12 +70,6 @@
|
|||
"ExcelSheet": "GimmickYesNo",
|
||||
"Prompt": 142,
|
||||
"Yes": true
|
||||
},
|
||||
{
|
||||
"Type": "YesNo",
|
||||
"ExcelSheet": "GimmickYesNo",
|
||||
"Prompt": 137,
|
||||
"Yes": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 351,
|
||||
"InteractionType": "None",
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"Comment": "Credits"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 960,
|
||||
"InteractionType": "Combat",
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [
|
||||
14044
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Kaiser",
|
||||
"Author": "liza",
|
||||
"Disabled": true,
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
|
@ -29,43 +30,11 @@
|
|||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1044569,
|
||||
"Position": {
|
||||
"X": -385.6718,
|
||||
"Y": -151.67168,
|
||||
"Z": -261.28027
|
||||
},
|
||||
"TerritoryId": 959,
|
||||
"InteractionType": "Interact",
|
||||
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
||||
"StopDistance": 5,
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": -385.6718,
|
||||
"Y": -151.67168,
|
||||
"Z": -261.28027
|
||||
},
|
||||
"MaximumDistance": 30,
|
||||
"TerritoryId": 959
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 959,
|
||||
"InteractionType": "Craft",
|
||||
"ItemId": 38861,
|
||||
"ItemCount": 2
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -201.42024,
|
||||
|
@ -73,22 +42,7 @@
|
|||
"Z": -273.68756
|
||||
},
|
||||
"TerritoryId": 959,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"NearPosition": {
|
||||
"Position": {
|
||||
"X": -201.42024,
|
||||
"Y": -49.149708,
|
||||
"Z": -273.68756
|
||||
},
|
||||
"MaximumDistance": 100,
|
||||
"TerritoryId": 959
|
||||
}
|
||||
}
|
||||
}
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 1044403,
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "pot0to",
|
||||
"Author": "liza",
|
||||
"Disabled": true,
|
||||
"QuestSequence": [
|
||||
{
|
||||
"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,
|
||||
"Steps": [
|
||||
|
|
|
@ -188,15 +188,14 @@
|
|||
"Z": 94.77368
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Combat",
|
||||
"InteractionType": "Instruction",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
14079
|
||||
],
|
||||
"CombatItemUse": {
|
||||
"ItemId": 2003231,
|
||||
"Condition": "Incapacitated"
|
||||
},
|
||||
"Comment": "TODO Needs item use?",
|
||||
"ItemId": 2003231,
|
||||
"ItemUseHealthMaxPercent": 10,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
|
@ -280,15 +279,14 @@
|
|||
"Z": 396.96338
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Combat",
|
||||
"InteractionType": "Instruction",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
14080
|
||||
],
|
||||
"CombatItemUse": {
|
||||
"ItemId": 2003231,
|
||||
"Condition": "Incapacitated"
|
||||
},
|
||||
"Comment": "TODO Needs item use?",
|
||||
"ItemId": 2003231,
|
||||
"ItemUseHealthMaxPercent": 10,
|
||||
"DisableNavmesh": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
|
|
|
@ -65,19 +65,6 @@
|
|||
"Type": "YesNo",
|
||||
"Prompt": "TEXT_AKTKMB115_04394_Q1_000_042",
|
||||
"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",
|
||||
|
|
|
@ -37,23 +37,10 @@
|
|||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 206.0426,
|
||||
"Y": 20.561113,
|
||||
"Z": 629.14465
|
||||
},
|
||||
"DataId": 1039998,
|
||||
"TerritoryId": 961,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"KillEnemyDataIds": [
|
||||
13447, 13448, 13449
|
||||
],
|
||||
"CombatItemUse": {
|
||||
"ItemId": 2003232,
|
||||
"Condition": "Health%",
|
||||
"Value": 50
|
||||
}
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"Comment": "Capture Mobs with less than 50% HP"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -32,16 +32,6 @@
|
|||
"InteractionType": "AcceptQuest",
|
||||
"PickUpQuestId": 4507
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -109.12761,
|
||||
"Y": -34.0357,
|
||||
"Z": 397.6694
|
||||
},
|
||||
"TerritoryId": 961,
|
||||
"InteractionType": "WalkTo",
|
||||
"$": "Avoids combat"
|
||||
},
|
||||
{
|
||||
"DataId": 1040073,
|
||||
"Position": {
|
||||
|
|
|
@ -44,22 +44,19 @@
|
|||
"Y": -18.777306,
|
||||
"Z": 527.2946
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [
|
||||
14107
|
||||
],
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
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": {
|
||||
|
@ -67,21 +64,9 @@
|
|||
"Y": -18.937208,
|
||||
"Z": 338.0957
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [
|
||||
14107
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"Comment": "Use the mount's abilities to kill the drones."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -89,12 +74,6 @@
|
|||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 135.85095,
|
||||
"Y": -17.135998,
|
||||
"Z": 567.8645
|
||||
},
|
||||
"StopDistance": 2000,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "None",
|
||||
"Mount": false
|
||||
|
@ -108,8 +87,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true,
|
||||
"NextQuestId": 4218
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -30,12 +30,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
null,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
],
|
||||
"$": "0 0 0 0 0 0 -> 16 1 0 0 0 128"
|
||||
},
|
||||
|
@ -49,12 +49,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
null,
|
||||
16,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
],
|
||||
"$": "16 1 0 0 0 128 -> 32 17 0 0 0 160"
|
||||
},
|
||||
|
@ -67,15 +67,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"$": "32 17 0 0 0 160 -> 0 0 0 0 0 0",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
"$": "32 17 0 0 0 160 -> 0 0 0 0 0 0"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -67,15 +67,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"$": "33 1 16 0 0 192 -> 0 0 0 0 0 0",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"$": "33 1 16 0 0 192 -> 0 0 0 0 0 0"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -75,15 +75,7 @@
|
|||
"KillEnemyDataIds": [
|
||||
14104
|
||||
],
|
||||
"$": "33 16 16 0 0 192 -> 0 0 0 0 0 0",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"$": "33 16 16 0 0 192 -> 0 0 0 0 0 0"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -45,12 +45,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
null,
|
||||
128,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
],
|
||||
"$": "0 0 0 0 0 0 -> 0 128 0 0 0 64"
|
||||
},
|
||||
|
@ -64,12 +64,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
null,
|
||||
64,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
],
|
||||
"$": "0 128 0 0 0 64 -> 0 192 0 0 0 96"
|
||||
},
|
||||
|
@ -83,12 +83,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
null,
|
||||
32,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
],
|
||||
"$": "0 192 0 0 0 96 -> 0 224 0 0 0 112"
|
||||
},
|
||||
|
|
|
@ -48,12 +48,12 @@
|
|||
],
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
],
|
||||
"$": "0 0 0 0 0 0 -> 0 0 0 128 0 64"
|
||||
},
|
||||
|
@ -74,12 +74,12 @@
|
|||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
],
|
||||
"$": "0 0 0 128 0 64 -> 0 0 0 192 0 96"
|
||||
},
|
||||
|
@ -91,15 +91,7 @@
|
|||
"Z": -292.98853
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -21,23 +21,15 @@
|
|||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 13468,
|
||||
"Position": {
|
||||
"X": -159.59418,
|
||||
"Y": 10.8,
|
||||
"Z": -468.8335
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"KillEnemyDataIds": [
|
||||
13468
|
||||
],
|
||||
"CombatItemUse": {
|
||||
"ItemId": 2003202,
|
||||
"Condition": "Health%",
|
||||
"Value": 40
|
||||
},
|
||||
"InteractionType": "WaitForManualProgress",
|
||||
"Comment": "Use item 2003202 on 13468 after \"weakening\"",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"Mount": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
|
@ -92,15 +91,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"$": "49 16 16 0 0 224 -> 0 16 0 0 0 0",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
]
|
||||
"$": "49 16 16 0 0 224 -> 0 16 0 0 0 0"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -27,28 +27,6 @@
|
|||
{
|
||||
"Sequence": 1,
|
||||
"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,
|
||||
"Position": {
|
||||
|
@ -59,12 +37,12 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
],
|
||||
"$": "0 0 0 0 0 0 -> 1 32 0 0 0 64"
|
||||
},
|
||||
|
@ -85,12 +63,12 @@
|
|||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
],
|
||||
"$": "1 32 0 0 0 64 -> 2 16 0 0 0 192"
|
||||
},
|
||||
|
@ -102,15 +80,7 @@
|
|||
"Z": -175.21942
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -45,8 +45,7 @@
|
|||
"Z": -296.37604
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Snipe",
|
||||
"Comment": "Snipe Magitek Colossi"
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -61,7 +60,7 @@
|
|||
"Z": -299.36682
|
||||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact"
|
||||
"InteractionType": "Snipe"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -81,15 +81,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003210,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
"ItemId": 2003210
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -20,29 +20,6 @@
|
|||
{
|
||||
"Sequence": 1,
|
||||
"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,
|
||||
"Position": {
|
||||
|
@ -53,15 +30,17 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
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,
|
||||
|
@ -73,61 +52,15 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
],
|
||||
"Fly": true,
|
||||
"$": "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,
|
||||
"Position": {
|
||||
|
@ -138,15 +71,15 @@
|
|||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
],
|
||||
"$.0": "2 32 0 0 0 192 -> 3 48 0 0 0 224",
|
||||
"Fly": true
|
||||
"$.1": "fly also gets stuck here"
|
||||
},
|
||||
{
|
||||
"DataId": 2012057,
|
||||
|
@ -155,19 +88,10 @@
|
|||
"Y": 16.494995,
|
||||
"Z": -413.016
|
||||
},
|
||||
"StopDistance": 1,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "Interact",
|
||||
"$.0": "3 48 0 0 0 224 -> 0 64 0 0 0 0",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
]
|
||||
"$.1": "no fly here, tries and fails to land on the railing: can't interact while flying"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -53,8 +53,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Garlemald - Camp Broken Glass",
|
||||
"NextQuestId": 4500
|
||||
"AetheryteShortcut": "Garlemald - Camp Broken Glass"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -71,8 +71,7 @@
|
|||
"Prompt": "TEXT_AKTKZC103_04500_Q2_000_000",
|
||||
"Answer": "TEXT_AKTKZC103_04500_A2_000_001"
|
||||
}
|
||||
],
|
||||
"NextQuestId": 4501
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -83,8 +83,7 @@
|
|||
},
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Garlemald - Tertium",
|
||||
"NextQuestId": 4504
|
||||
"AetheryteShortcut": "Garlemald - Tertium"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -77,8 +77,7 @@
|
|||
"Prompt": "TEXT_AKTKZD103_04504_Q2_000_000",
|
||||
"Answer": "TEXT_AKTKZD103_04504_A2_000_001"
|
||||
}
|
||||
],
|
||||
"NextQuestId": 4505
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
"Y": 23.164677,
|
||||
"Z": -415.36584
|
||||
},
|
||||
"StopDistance": 7,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true,
|
||||
|
@ -87,8 +86,7 @@
|
|||
"Answer": "TEXT_AKTKZD104_04505_A1_000_002"
|
||||
}
|
||||
],
|
||||
"AetheryteShortcut": "Garlemald - Tertium",
|
||||
"NextQuestId": 4506
|
||||
"AetheryteShortcut": "Garlemald - Tertium"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
"Y": -36.65,
|
||||
"Z": -132.64673
|
||||
},
|
||||
"StopDistance": 5,
|
||||
"TerritoryId": 958,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"DialogueChoices": [
|
||||
|
|
|
@ -2,15 +2,23 @@
|
|||
"version": 1,
|
||||
"dependencies": {
|
||||
"net8.0-windows7.0": {
|
||||
"System.Text.Encodings.Web": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.0",
|
||||
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
|
||||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg=="
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
}
|
||||
},
|
||||
"questionable.model": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"System.Text.Json": "[8.0.5, )"
|
||||
"System.Text.Json": "[8.0.4, )"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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": {
|
||||
"type": "number"
|
||||
}
|
||||
|
@ -1298,30 +1275,6 @@
|
|||
"ItemsToGather"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"properties": {
|
||||
"InteractionType": {
|
||||
"anyOf": [
|
||||
{
|
||||
"const": "WaitForManualProgress"
|
||||
},
|
||||
{
|
||||
"const": "Instruction"
|
||||
},
|
||||
{
|
||||
"const": "Snipe"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"required": [
|
||||
"Comment"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
}
|
|
@ -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%" },
|
||||
};
|
||||
}
|
|
@ -23,9 +23,4 @@ public sealed class DialogueChoice
|
|||
/// If set, only applies when focusing the given target id.
|
||||
/// </summary>
|
||||
public uint? DataId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Used for 'In from the Cold'.
|
||||
/// </summary>
|
||||
public string? SpecialCondition { get; set; }
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
namespace Questionable.Model.Questing;
|
||||
|
||||
public enum ECombatItemUseCondition
|
||||
{
|
||||
None,
|
||||
Incapacitated,
|
||||
HealthPercent,
|
||||
}
|
|
@ -67,7 +67,6 @@ public sealed class QuestStep
|
|||
public EEnemySpawnType? EnemySpawnType { get; set; }
|
||||
public List<uint> KillEnemyDataIds { get; set; } = [];
|
||||
public List<ComplexCombatData> ComplexCombatData { get; set; } = [];
|
||||
public CombatItemUse? CombatItemUse { get; set; }
|
||||
public float? CombatDelaySecondsAtStart { get; set; }
|
||||
|
||||
public JumpDestination? JumpDestination { get; set; }
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.5" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Direct",
|
||||
"requested": "[8.0.5, )",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
|
||||
"requested": "[8.0.4, )",
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"Microsoft.Bcl.AsyncInterfaces": "8.0.0",
|
||||
"System.Buffers": "4.5.1",
|
||||
|
|
|
@ -65,11 +65,11 @@ internal sealed class CombatController : IDisposable
|
|||
{
|
||||
Stop("Starting combat");
|
||||
|
||||
var combatModule = _combatModules.FirstOrDefault(x => x.CanHandleFight(combatData));
|
||||
var combatModule = _combatModules.FirstOrDefault(x => x.IsLoaded);
|
||||
if (combatModule == null)
|
||||
return false;
|
||||
|
||||
if (combatModule.Start(combatData))
|
||||
if (combatModule.Start())
|
||||
{
|
||||
_currentFight = new CurrentFight
|
||||
{
|
||||
|
@ -364,7 +364,6 @@ internal sealed class CombatController : IDisposable
|
|||
public required EEnemySpawnType SpawnType { get; init; }
|
||||
public required List<uint> KillEnemyDataIds { get; init; }
|
||||
public required List<ComplexCombatData> ComplexCombatDatas { get; init; }
|
||||
public required CombatItemUse? CombatItemUse { get; init; }
|
||||
|
||||
public HashSet<int> CompletedComplexDatas { get; } = new();
|
||||
}
|
||||
|
|
|
@ -4,9 +4,9 @@ namespace Questionable.Controller.CombatModules;
|
|||
|
||||
internal interface ICombatModule
|
||||
{
|
||||
bool CanHandleFight(CombatController.CombatData combatData);
|
||||
bool IsLoaded { get; }
|
||||
|
||||
bool Start(CombatController.CombatData combatData);
|
||||
bool Start();
|
||||
|
||||
bool Stop();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -25,9 +25,9 @@ internal sealed class Mount128Module : ICombatModule
|
|||
_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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -32,20 +32,23 @@ internal sealed class RotationSolverRebornModule : ICombatModule, IDisposable
|
|||
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");
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
try
|
||||
{
|
||||
_test.InvokeAction("Validate RSR is callable from Questionable");
|
||||
return true;
|
||||
}
|
||||
catch (IpcError)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool Start(CombatController.CombatData combatData)
|
||||
public bool Start()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
|
@ -7,9 +7,7 @@ using Dalamud.Game.Addon.Lifecycle;
|
|||
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
||||
using Dalamud.Game.ClientState.Objects;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.Event;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.InstanceContent;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||
|
@ -335,16 +333,7 @@ internal sealed class InteractionUiController : IDisposable
|
|||
}
|
||||
else
|
||||
{
|
||||
QuestStep? step = null;
|
||||
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);
|
||||
|
||||
var step = quest.FindSequence(currentQuest.Sequence)?.FindStep(currentQuest.Step);
|
||||
if (step == null)
|
||||
_logger.LogDebug("Ignoring current quest dialogue choices, no active step");
|
||||
else
|
||||
|
@ -438,27 +427,6 @@ internal sealed class InteractionUiController : IDisposable
|
|||
if (dialogueChoice.Type != EDialogChoiceType.List)
|
||||
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)
|
||||
{
|
||||
_logger.LogDebug("Ignoring entry in DialogueChoices, no answer");
|
||||
|
|
|
@ -169,7 +169,7 @@ internal abstract class MiniTaskController<T>
|
|||
if (_condition[ConditionFlag.Mounted])
|
||||
tasks.Add(new Mount.UnmountTask());
|
||||
|
||||
tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null));
|
||||
tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], []));
|
||||
tasks.Add(new WaitAtEnd.WaitDelay());
|
||||
_taskQueue.InterruptWith(tasks);
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ internal sealed class QuestRegistry
|
|||
|
||||
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)
|
||||
|
|
|
@ -97,12 +97,12 @@ internal static class Combat
|
|||
|
||||
bool isLastStep = sequence.Steps.Last() == step;
|
||||
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,
|
||||
IList<uint> killEnemyDataIds, IList<QuestWorkValue?> completionQuestVariablesFlags,
|
||||
IList<ComplexCombatData> complexCombatData, CombatItemUse? combatItemUse)
|
||||
IList<ComplexCombatData> complexCombatData)
|
||||
{
|
||||
return new Task(new CombatController.CombatData
|
||||
{
|
||||
|
@ -110,7 +110,6 @@ internal static class Combat
|
|||
SpawnType = enemySpawnType,
|
||||
KillEnemyDataIds = killEnemyDataIds.ToList(),
|
||||
ComplexCombatDatas = complexCombatData.ToList(),
|
||||
CombatItemUse = combatItemUse,
|
||||
}, completionQuestVariablesFlags, isLastStep);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,14 +25,5 @@ internal interface IQuestInfo
|
|||
|
||||
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)
|
||||
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<PackageReference Include="JetBrains.Annotations" Version="2024.2.0" ExcludeAssets="runtime" />
|
||||
<PackageReference Include="JsonSchema.Net" Version="7.1.2" />
|
||||
<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>
|
||||
|
|
|
@ -234,7 +234,6 @@ public sealed class QuestionablePlugin : IDalamudPlugin
|
|||
serviceCollection.AddSingleton<LeveUiController>();
|
||||
|
||||
serviceCollection.AddSingleton<ICombatModule, Mount128Module>();
|
||||
serviceCollection.AddSingleton<ICombatModule, ItemUseModule>();
|
||||
serviceCollection.AddSingleton<ICombatModule, RotationSolverRebornModule>();
|
||||
}
|
||||
|
||||
|
|
|
@ -157,17 +157,14 @@ internal sealed class CreationUtilsComponent
|
|||
}
|
||||
#endif
|
||||
|
||||
#if false
|
||||
if (_configuration.Advanced.AdditionalStatusInformation)
|
||||
#if true
|
||||
unsafe
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
var actionManager = ActionManager.Instance();
|
||||
ImGui.Text(
|
||||
$"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})");
|
||||
ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}");
|
||||
ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}");
|
||||
}
|
||||
var actionManager = ActionManager.Instance();
|
||||
ImGui.Text(
|
||||
$"A1: {actionManager->CastActionId} ({actionManager->LastUsedActionSequence} → {actionManager->LastHandledActionSequence})");
|
||||
ImGui.Text($"A2: {actionManager->CastTimeElapsed} / {actionManager->CastTimeTotal}");
|
||||
ImGui.Text($"{_questController.TaskQueue.CurrentTaskExecutor?.ProgressContext}");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -65,9 +65,12 @@
|
|||
},
|
||||
"System.Text.Json": {
|
||||
"type": "Direct",
|
||||
"requested": "[8.0.5, )",
|
||||
"resolved": "8.0.5",
|
||||
"contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg=="
|
||||
"requested": "[8.0.4, )",
|
||||
"resolved": "8.0.4",
|
||||
"contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
}
|
||||
},
|
||||
"Humanizer.Core": {
|
||||
"type": "Transitive",
|
||||
|
@ -171,10 +174,15 @@
|
|||
"Microsoft.SourceLink.Common": "1.1.1"
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web": {
|
||||
"type": "Transitive",
|
||||
"resolved": "8.0.0",
|
||||
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
|
||||
},
|
||||
"gatheringpaths": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"Questionable.Model": "[3.10.0, )"
|
||||
"Questionable.Model": "[1.0.0, )"
|
||||
}
|
||||
},
|
||||
"llib": {
|
||||
|
@ -186,13 +194,13 @@
|
|||
"questionable.model": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"System.Text.Json": "[8.0.5, )"
|
||||
"System.Text.Json": "[8.0.4, )"
|
||||
}
|
||||
},
|
||||
"questpaths": {
|
||||
"type": "Project",
|
||||
"dependencies": {
|
||||
"Questionable.Model": "[3.10.0, )"
|
||||
"Questionable.Model": "[1.0.0, )"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue