Add SkipConditions to resume if duty-blocked at 'Good Intentions' and 'A Time to Every Purpose'

pull/15/head^2
Liza 2024-08-11 02:44:29 +02:00
parent 84c95535ae
commit 13e54aa8c3
Signed by: liza
GPG Key ID: 7199F8D727D55F67
12 changed files with 150 additions and 11 deletions

View File

@ -22,9 +22,9 @@
"Steps": [ "Steps": [
{ {
"Position": { "Position": {
"X": -209.9414, "X": -203.21945,
"Y": -42.109043, "Y": -42.30963,
"Z": -248.07559 "Z": -253.10411
}, },
"StopDistance": 0.25, "StopDistance": 0.25,
"TerritoryId": 138, "TerritoryId": 138,

View File

@ -117,7 +117,12 @@
}, },
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "WalkTo", "InteractionType": "WalkTo",
"Mount": true "Mount": true,
"SkipConditions": {
"StepIf": {
"AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
}
}
}, },
{ {
"Position": { "Position": {
@ -127,12 +132,22 @@
}, },
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "WalkTo", "InteractionType": "WalkTo",
"Fly": true "Fly": true,
"SkipConditions": {
"StepIf": {
"AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
}
}
}, },
{ {
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "AttuneAetheryte", "InteractionType": "AttuneAetheryte",
"Aetheryte": "Lower La Noscea - Moraby Drydocks" "Aetheryte": "Lower La Noscea - Moraby Drydocks",
"SkipConditions": {
"StepIf": {
"AetheryteUnlocked": "Lower La Noscea - Moraby Drydocks"
}
}
}, },
{ {
"Position": { "Position": {
@ -142,7 +157,13 @@
}, },
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "WalkTo", "InteractionType": "WalkTo",
"Fly": true "Fly": true,
"AetheryteShortcut": "Lower La Noscea - Moraby Drydocks",
"SkipConditions": {
"AetheryteShortcutIf": {
"AetheryteLocked": "Lower La Noscea - Moraby Drydocks"
}
}
}, },
{ {
"DataId": 1008693, "DataId": 1008693,

View File

@ -91,6 +91,17 @@
{ {
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{
"Position": {
"X": -119.1183,
"Y": 3.7999938,
"Z": -104.33473
},
"TerritoryId": 130,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Ul'dah",
"$": "Ul'dah Aetheryte to Immortal Flames"
},
{ {
"DataId": 1004576, "DataId": 1004576,
"Position": { "Position": {
@ -99,8 +110,7 @@
"Z": -114.67157 "Z": -114.67157
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest", "InteractionType": "CompleteQuest"
"AetheryteShortcut": "Ul'dah"
} }
] ]
} }

View File

@ -87,6 +87,16 @@
{ {
"Sequence": 4, "Sequence": 4,
"Steps": [ "Steps": [
{
"Position": {
"X": -340.60776,
"Y": 259.52878,
"Z": 58.521606
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"Fly": true
},
{ {
"DataId": 2004655, "DataId": 2004655,
"Position": { "Position": {

View File

@ -86,6 +86,7 @@
"Y": 71.617355, "Y": 71.617355,
"Z": -132.52466 "Z": -132.52466
}, },
"StopDistance": 5,
"TerritoryId": 147, "TerritoryId": 147,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest"
} }

View File

@ -12,6 +12,7 @@
"Y": 71.617355, "Y": 71.617355,
"Z": -132.52466 "Z": -132.52466
}, },
"StopDistance": 5,
"TerritoryId": 147, "TerritoryId": 147,
"InteractionType": "AcceptQuest", "InteractionType": "AcceptQuest",
"AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant", "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant",

View File

@ -5,6 +5,46 @@
{ {
"Sequence": 0, "Sequence": 0,
"Steps": [ "Steps": [
{
"TerritoryId": 156,
"DataId": 2002881,
"Position": {
"X": 21.133728,
"Y": 22.323914,
"Z": -631.281
},
"InteractionType": "Interact",
"TargetTerritoryId": 351,
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"StepIf": {
"InTerritory": [
351
]
},
"AetheryteShortcutIf": {
"InTerritory": [
351
]
}
}
},
{
"DataId": 2002878,
"Position": {
"X": -0.015319824,
"Y": -1.0223389,
"Z": -26.779602
},
"TerritoryId": 351,
"InteractionType": "Interact",
"TargetTerritoryId": 351,
"SkipConditions": {
"StepIf": {
"ExtraCondition": "RisingStonesSolar"
}
}
},
{ {
"DataId": 1008969, "DataId": 1008969,
"Position": { "Position": {

View File

@ -5,6 +5,46 @@
{ {
"Sequence": 0, "Sequence": 0,
"Steps": [ "Steps": [
{
"TerritoryId": 156,
"DataId": 2002881,
"Position": {
"X": 21.133728,
"Y": 22.323914,
"Z": -631.281
},
"InteractionType": "Interact",
"TargetTerritoryId": 351,
"AetheryteShortcut": "Mor Dhona",
"SkipConditions": {
"StepIf": {
"InTerritory": [
351
]
},
"AetheryteShortcutIf": {
"InTerritory": [
351
]
}
}
},
{
"DataId": 2002878,
"Position": {
"X": -0.015319824,
"Y": -1.0223389,
"Z": -26.779602
},
"TerritoryId": 351,
"InteractionType": "Interact",
"TargetTerritoryId": 351,
"SkipConditions": {
"StepIf": {
"ExtraCondition": "RisingStonesSolar"
}
}
},
{ {
"DataId": 1010897, "DataId": 1010897,
"Position": { "Position": {

View File

@ -246,7 +246,8 @@
"ExtraCondition": { "ExtraCondition": {
"type": "string", "type": "string",
"enum": [ "enum": [
"WakingSandsMainArea" "WakingSandsMainArea",
"RisingStonesSolar"
] ]
} }
}, },

View File

@ -8,5 +8,6 @@ public sealed class SkipConditionConverter() : EnumConverter<EExtraSkipCondition
private static readonly Dictionary<EExtraSkipCondition, string> Values = new() private static readonly Dictionary<EExtraSkipCondition, string> Values = new()
{ {
{ EExtraSkipCondition.WakingSandsMainArea, "WakingSandsMainArea" }, { EExtraSkipCondition.WakingSandsMainArea, "WakingSandsMainArea" },
{ EExtraSkipCondition.RisingStonesSolar, "RisingStonesSolar"},
}; };
} }

View File

@ -8,4 +8,6 @@ public enum EExtraSkipCondition
{ {
None, None,
WakingSandsMainArea, WakingSandsMainArea,
RisingStonesSolar,
} }

View File

@ -204,7 +204,8 @@ internal static class SkipCondition
} }
} }
if (SkipConditions.ExtraCondition == EExtraSkipCondition.WakingSandsMainArea) if (SkipConditions.ExtraCondition == EExtraSkipCondition.WakingSandsMainArea &&
clientState.TerritoryType == 212)
{ {
var position = clientState.LocalPlayer!.Position; var position = clientState.LocalPlayer!.Position;
if (position.X < 24) if (position.X < 24)
@ -214,6 +215,17 @@ internal static class SkipCondition
} }
} }
if (SkipConditions.ExtraCondition == EExtraSkipCondition.RisingStonesSolar &&
clientState.TerritoryType == 351)
{
var position = clientState.LocalPlayer!.Position;
if (position.Z <= -28)
{
logger.LogInformation("Skipping step, as we're in the Rising Stones Solar");
return true;
}
}
if (Step.PickUpQuestId != null && questFunctions.IsQuestAcceptedOrComplete(Step.PickUpQuestId)) if (Step.PickUpQuestId != null && questFunctions.IsQuestAcceptedOrComplete(Step.PickUpQuestId))
{ {
logger.LogInformation("Skipping step, as we have already picked up the relevant quest"); logger.LogInformation("Skipping step, as we have already picked up the relevant quest");