From 17cfda172b8c819a5cc8485c7f15a3c5f7e9c22b Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 28 Sep 2024 23:28:53 +0200 Subject: [PATCH] Add support for Old Sharlayan leves --- .../6.x - Endwalker/Labyrinthos/886__MIN.json | 160 ++++++++++++++++++ .../Leves/MIN/L1675_Rocks of a Feather.json | 38 +++++ Questionable/Data/LeveData.cs | 29 +++- 3 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json create mode 100644 QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json diff --git a/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json new file mode 100644 index 00000000..8bb59514 --- /dev/null +++ b/GatheringPaths/6.x - Endwalker/Labyrinthos/886__MIN.json @@ -0,0 +1,160 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json", + "Author": "liza", + "Steps": [ + { + "TerritoryId": 956, + "InteractionType": "None" + } + ], + "Groups": [ + { + "Nodes": [ + { + "DataId": 34281, + "Locations": [ + { + "Position": { + "X": -510.2663, + "Y": -20.72923, + "Z": -119.9257 + }, + "MinimumAngle": -120, + "MaximumAngle": 10 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34283, + "Locations": [ + { + "Position": { + "X": -502.4525, + "Y": -18.55583, + "Z": -139.683 + }, + "MinimumAngle": -95, + "MaximumAngle": -35, + "MinimumDistance": 1, + "MaximumDistance": 1.8 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34284, + "Locations": [ + { + "Position": { + "X": -499.3535, + "Y": -18.75164, + "Z": -141.9256 + }, + "MinimumAngle": -75, + "MaximumAngle": 15, + "MinimumDistance": 1, + "MaximumDistance": 2.3 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34285, + "Locations": [ + { + "Position": { + "X": -495.1168, + "Y": -18.65139, + "Z": -142.5636 + }, + "MinimumAngle": -85, + "MaximumAngle": 45 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34286, + "Locations": [ + { + "Position": { + "X": -491.4826, + "Y": -19.44574, + "Z": -144.2088 + }, + "MinimumAngle": -105, + "MaximumAngle": 25 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34287, + "Locations": [ + { + "Position": { + "X": -488.8665, + "Y": -19.70717, + "Z": -147.403 + }, + "MinimumAngle": 230, + "MaximumAngle": 340 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34289, + "Locations": [ + { + "Position": { + "X": -489.1829, + "Y": -19.91622, + "Z": -153.7781 + }, + "MinimumAngle": 200, + "MaximumAngle": 320 + } + ] + } + ] + }, + { + "Nodes": [ + { + "DataId": 34291, + "Locations": [ + { + "Position": { + "X": -490.1324, + "Y": -18.06493, + "Z": -164.4281 + }, + "MinimumAngle": 210, + "MaximumAngle": 310 + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json b/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json new file mode 100644 index 00000000..7b90c2f7 --- /dev/null +++ b/QuestPaths/6.x - Endwalker/Leves/MIN/L1675_Rocks of a Feather.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", + "Author": "liza", + "QuestSequence": [ + { + "Sequence": 1, + "Steps": [ + { + "Position": { + "X": -506.1484, + "Y": -22.671598, + "Z": -116.16144 + }, + "TerritoryId": 956, + "InteractionType": "InitiateLeve", + "AetheryteShortcut": "Labyrinthos - Aporia", + "Fly": true, + "SkipConditions": { + "AetheryteShortcutIf": { + "InSameTerritory": true + } + } + }, + { + "TerritoryId": 956, + "InteractionType": "Gather", + "ItemsToGather": [ + { + "ItemId": 2003172, + "AlternativeItemId": 2003173, + "ItemCount": 999 + } + ] + } + ] + } + ] +} diff --git a/Questionable/Data/LeveData.cs b/Questionable/Data/LeveData.cs index a8d5835c..a8084200 100644 --- a/Questionable/Data/LeveData.cs +++ b/Questionable/Data/LeveData.cs @@ -13,7 +13,16 @@ internal sealed class LeveData { private static readonly List Leves = [ - new(EAetheryteLocation.Tuliyollal, 1048390, new(15.243713f, -14.000001f, 85.83191f)), + new( + aetheryteLocation: EAetheryteLocation.OldSharlayan, + aethernetShortcut: new AethernetShortcut + { From = EAetheryteLocation.OldSharlayan, To = EAetheryteLocation.OldSharlayanScholarsHarbor }, + issuerDataId: 1037263, + issuerPosition: new(45.818386f, -15.646993f, 109.40509f)), + new(aetheryteLocation: EAetheryteLocation.Tuliyollal, + aethernetShortcut: null, + issuerDataId: 1048390, + issuerPosition: new(15.243713f, -14.000001f, 85.83191f)), ]; private readonly AetheryteData _aetheryteData; @@ -44,6 +53,7 @@ internal sealed class LeveData TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], InteractionType = EInteractionType.AcceptLeve, AetheryteShortcut = leveStepData.AetheryteLocation, + AethernetShortcut = leveStepData.AethernetShortcut, SkipConditions = new() { AetheryteShortcutIf = new() @@ -71,6 +81,7 @@ internal sealed class LeveData TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], InteractionType = EInteractionType.CompleteLeve, AetheryteShortcut = leveStepData.AetheryteLocation, + AethernetShortcut = leveStepData.AethernetShortcut, SkipConditions = new() { AetheryteShortcutIf = new() @@ -93,10 +104,16 @@ internal sealed class LeveData private readonly uint? _crafterTurnInDataId; private readonly Vector3? _crafterTurnInPosition; - public LeveStepData(EAetheryteLocation aetheryteLocation, uint issuerDataId, Vector3 issuerPosition, - uint? turnInDataId = null, Vector3? turnInPosition = null, - uint? gathererTurnInDataId = null, Vector3? gathererTurnInPosition = null, - uint? crafterTurnInDataId = null, Vector3? crafterTurnInPosition = null) + public LeveStepData(EAetheryteLocation aetheryteLocation, + AethernetShortcut? aethernetShortcut, + uint issuerDataId, + Vector3 issuerPosition, + uint? turnInDataId = null, + Vector3? turnInPosition = null, + uint? gathererTurnInDataId = null, + Vector3? gathererTurnInPosition = null, + uint? crafterTurnInDataId = null, + Vector3? crafterTurnInPosition = null) { _turnInDataId = turnInDataId; _turnInPosition = turnInPosition; @@ -105,11 +122,13 @@ internal sealed class LeveData _crafterTurnInDataId = crafterTurnInDataId; _crafterTurnInPosition = crafterTurnInPosition; AetheryteLocation = aetheryteLocation; + AethernetShortcut = aethernetShortcut; IssuerDataId = issuerDataId; IssuerPosition = issuerPosition; } public EAetheryteLocation AetheryteLocation { get; } + public AethernetShortcut? AethernetShortcut { get; } public uint IssuerDataId { get; } public Vector3 IssuerPosition { get; }