Add support for Old Sharlayan leves

pull/62/head^2
Liza 2024-09-28 23:28:53 +02:00
parent 1d6621132b
commit 17cfda172b
Signed by: liza
GPG Key ID: 7199F8D727D55F67
3 changed files with 222 additions and 5 deletions

View File

@ -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
}
]
}
]
}
]
}

View File

@ -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
}
]
}
]
}
]
}

View File

@ -13,7 +13,16 @@ internal sealed class LeveData
{ {
private static readonly List<LeveStepData> Leves = private static readonly List<LeveStepData> 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; private readonly AetheryteData _aetheryteData;
@ -44,6 +53,7 @@ internal sealed class LeveData
TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation],
InteractionType = EInteractionType.AcceptLeve, InteractionType = EInteractionType.AcceptLeve,
AetheryteShortcut = leveStepData.AetheryteLocation, AetheryteShortcut = leveStepData.AetheryteLocation,
AethernetShortcut = leveStepData.AethernetShortcut,
SkipConditions = new() SkipConditions = new()
{ {
AetheryteShortcutIf = new() AetheryteShortcutIf = new()
@ -71,6 +81,7 @@ internal sealed class LeveData
TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation], TerritoryId = _aetheryteData.TerritoryIds[leveStepData.AetheryteLocation],
InteractionType = EInteractionType.CompleteLeve, InteractionType = EInteractionType.CompleteLeve,
AetheryteShortcut = leveStepData.AetheryteLocation, AetheryteShortcut = leveStepData.AetheryteLocation,
AethernetShortcut = leveStepData.AethernetShortcut,
SkipConditions = new() SkipConditions = new()
{ {
AetheryteShortcutIf = new() AetheryteShortcutIf = new()
@ -93,10 +104,16 @@ internal sealed class LeveData
private readonly uint? _crafterTurnInDataId; private readonly uint? _crafterTurnInDataId;
private readonly Vector3? _crafterTurnInPosition; private readonly Vector3? _crafterTurnInPosition;
public LeveStepData(EAetheryteLocation aetheryteLocation, uint issuerDataId, Vector3 issuerPosition, public LeveStepData(EAetheryteLocation aetheryteLocation,
uint? turnInDataId = null, Vector3? turnInPosition = null, AethernetShortcut? aethernetShortcut,
uint? gathererTurnInDataId = null, Vector3? gathererTurnInPosition = null, uint issuerDataId,
uint? crafterTurnInDataId = null, Vector3? crafterTurnInPosition = null) Vector3 issuerPosition,
uint? turnInDataId = null,
Vector3? turnInPosition = null,
uint? gathererTurnInDataId = null,
Vector3? gathererTurnInPosition = null,
uint? crafterTurnInDataId = null,
Vector3? crafterTurnInPosition = null)
{ {
_turnInDataId = turnInDataId; _turnInDataId = turnInDataId;
_turnInPosition = turnInPosition; _turnInPosition = turnInPosition;
@ -105,11 +122,13 @@ internal sealed class LeveData
_crafterTurnInDataId = crafterTurnInDataId; _crafterTurnInDataId = crafterTurnInDataId;
_crafterTurnInPosition = crafterTurnInPosition; _crafterTurnInPosition = crafterTurnInPosition;
AetheryteLocation = aetheryteLocation; AetheryteLocation = aetheryteLocation;
AethernetShortcut = aethernetShortcut;
IssuerDataId = issuerDataId; IssuerDataId = issuerDataId;
IssuerPosition = issuerPosition; IssuerPosition = issuerPosition;
} }
public EAetheryteLocation AetheryteLocation { get; } public EAetheryteLocation AetheryteLocation { get; }
public AethernetShortcut? AethernetShortcut { get; }
public uint IssuerDataId { get; } public uint IssuerDataId { get; }
public Vector3 IssuerPosition { get; } public Vector3 IssuerPosition { get; }